Skip to content
Back to skills

Evernote Multi Env Setup

ASecurity

'Configure multi-environment setup for Evernote integrations.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
devopsjavascriptjavabashnodedockertestingapici/cd

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add pauldx/claudifying --skill evernote-multi-env-setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Evernote Multi Env Setup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Evernote Multi Env Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pauldx-evernote-multi-env-setup/badge)](https://www.skillsdirectory.com/skills/pauldx-evernote-multi-env-setup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.0.0
license: MIT
tags:
- saas
- evernote
- evernote-multi
compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
---
# 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.

```javascript
// config/environments.js
const configs = {
  development: {
    sandbox: true,
    apiUrl: 'https://sandbox.evernote.com',
    rateLimitDelayMs: 0,  // No throttle in dev
    logLevel: 'debug'
  },
  staging: {
    sandbox: true,
    apiUrl: 'https://sandbox.evernote.com',
    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.

```bash
# .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.

```javascript
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](references/implementation-guide.md).

## 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
| Error | Cause | Solution |
|-------|-------|----------|
| `Invalid consumer key` | Using sandbox key in production | Verify `EVERNOTE_SANDBOX` matches key type |
| Wrong environment | `NODE_ENV` not set | Default to `development`, warn in logs |
| Sandbox data in production | Environment misconfiguration | Add startup validation that checks key/env match |
| Docker connection refused | Service not started | Run `docker compose up` before testing |

## Resources
- [12 Factor App - Config](https://12factor.net/config)
- [Evernote Sandbox](https://sandbox.evernote.com)
- [Docker Compose](https://docs.docker.com/compose/)

## 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.

Files in this skill

  • SKILL.md4.6 KB
  • references/implementation-guide.md11.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in devops →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.