Aller au contenu principal

Cas d’usage

Migration sandbox → production (sk_test_* vers sk_live_*)

Bascule contrôlée des clés API et données métier

Scell.io expose deux environnements isolés sur le même domaine `api.scell.io`. Le préfixe de la clé API détermine la base de données utilisée : `sk_test_*` / `pk_test_*` → DB sandbox (`pgsql_sandbox`), `sk_live_*` / `pk_live_*` → DB production (`pgsql`). Aucun appel n'est facturé en sandbox, les factures sandbox ne sont PAS conformes ISCA (volontairement). Workflow de bascule : (1) tester intégration complète en sandbox, (2) générer la clé live depuis le dashboard, (3) déployer la nouvelle clé via secret manager (jamais en code), (4) lancer un smoke test sur 1 facture live, (5) bascule progressive du trafic. Les webhooks sandbox et production utilisent des secrets différents.

À retenir

  • Même domaine `api.scell.io`, routage via préfixe de clé
  • `sk_test_*` → DB sandbox, `sk_live_*` → DB production
  • Sandbox : factures non scellées fiscalement, balance fictive, pas de facturation Scell.io
  • Production : scellement fiscal actif, balance réelle, facturation Scell.io
  • Webhooks sandbox et production indépendants
  • Migration des clés via secret manager (Vault, AWS Secrets Manager)

Exemple de code

// lib/scell.ts — un seul client, clé injectée par environnement
import { ScellClient } from '@scell/sdk';

const apiKey = process.env.SCELL_SECRET_KEY!;
if (!/^sk_(test|live)_/.test(apiKey)) {
  throw new Error('Invalid SCELL_SECRET_KEY format');
}

const environment = apiKey.startsWith('sk_live_') ? 'production' : 'sandbox';
console.log(`[scell] running in ${environment} mode`);

export const scell = new ScellClient({ apiKey });

// Smoke test post-deploy live (CI)
if (environment === 'production' && process.env.RUN_SMOKE === '1') {
  const ping = await scell.health.check();
  if (!ping.ok) throw new Error('Smoke test failed');
}

Voir aussi

Vos préférences cookies

Nous utilisons des cookies pour améliorer votre expérience. Les cookies essentiels sont toujours actifs. Politique cookies.