인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
생산성 및 협업 · SKILL.md

evernote-multi-env-setup

evernote-multi-env-setup

Configure multi-environment setup for Evernote integrations. Use when setting up dev, staging, and production environments, or managing environment-specific configurations. Trigger with phrases like "evernote environments", "evernote staging", "evernote dev setup", "multiple environments evernote".

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: evernote-multi-env-setup description: 'Configure multi-environment setup for Evernote integrations.

Use when setting up dev, staging, and production environments,

or managing environment-specific configurations.

Trigger with phrases like "evernote environments", "evernote staging",

"evernote dev setup", "multiple environments evernote".

' allowed-tools: Read, Write, Edit, Bash(npm:*), Grep version: 1.13.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:

  • saas
  • evernote
  • evernote-multi compatibility: Designed for Claude Code

Evernote Multi-Environment Setup

Overview

Configure separate development, staging, and production environments for Evernote integrations with proper isolation, configuration management, and environment-aware client factories.

Prerequisites

  • Multiple Evernote API keys (sandbox for dev/staging, production for prod)
  • Environment management infrastructure
  • CI/CD pipeline (see evernote-ci-integration)

Instructions

Step 1: Environment Configuration Files

Create per-environment config files that define the Evernote endpoint, sandbox flag, rate limit settings, and logging level.

// config/environments.js
const configs = {
  development: {
    sandbox: true,
    apiUrl: '',
    rateLimitDelayMs: 0,  // No throttle in dev
    logLevel: 'debug'
  },
  staging: {
    sandbox: true,
    apiUrl: '',
    rateLimitDelayMs: 100,
    logLevel: 'info'
  },
  production: {
    sandbox: false,
    apiUrl: 'https://www.evernote.com',
    rateLimitDelayMs: 200,
    logLevel: 'warn'
  }
};

module.exports = configs[process.env.NODE_ENV || 'development'];

Step 2: Environment Variables

Define environment-specific .env files. Each environment uses its own API key and token. The EVERNOTE_SANDBOX flag controls which Evernote endpoint the SDK connects to.

# .env.development - sandbox with dev token
EVERNOTE_SANDBOX=true
EVERNOTE_DEV_TOKEN=S=s1:U=...

# .env.production - production with OAuth
EVERNOTE_SANDBOX=false
EVERNOTE_CONSUMER_KEY=prod-key
EVERNOTE_CONSUMER_SECRET=prod-secret

Step 3: Environment-Aware Client Factory

Build a factory that creates properly configured Evernote clients based on the active environment. Include validation that production never uses sandbox tokens.

Step 4: Docker Compose for Local Development

Define services for the app, Redis (caching), and a webhook receiver (ngrok or localtunnel) in docker-compose.yml. Mount .env.development as environment file.

Step 5: Health Check Endpoint

Create a /health endpoint that verifies Evernote API connectivity, reports the active environment, and checks cache availability.

app.get('/health', async (req, res) => {
  const checks = {
    environment: process.env.NODE_ENV,
    sandbox: config.sandbox,
    evernoteApi: 'unknown',
    cacheConnected: false
  };
  try {
    await userStore.getUser();
    checks.evernoteApi = 'connected';
  } catch { checks.evernoteApi = 'error'; }
  res.json(checks);
});

For the full configuration loader, client factory, Docker setup, and CI/CD environment matrix, see Implementation Guide.

Output

  • Per-environment configuration files (development, staging, production)
  • Environment-aware Evernote client factory
  • .env templates for each environment
  • Docker Compose setup for local development
  • Health check endpoint with environment reporting
  • CI/CD configuration with environment-specific secrets

Error Handling

ErrorCauseSolution
Invalid consumer keyUsing sandbox key in productionVerify EVERNOTE_SANDBOX matches key type
Wrong environmentNODE_ENV not setDefault to development, warn in logs
Sandbox data in productionEnvironment misconfigurationAdd startup validation that checks key/env match
Docker connection refusedService not startedRun docker compose up before testing

Resources

Next Steps

For observability setup, see evernote-observability.

Examples

Three-environment setup: Development uses sandbox Developer Token for instant testing. Staging uses sandbox OAuth for integration testing. Production uses production OAuth with full rate limiting and monitoring.

Docker local dev: Run docker compose up to start the app with Redis caching and ngrok for webhook testing, all preconfigured for the sandbox environment.

저장한 Skills