Documentation

De zéro au premier job en 10 minutes.

Scena Connect est une API backend. Gardez la clé privée côté serveur, envoyez un preset et recevez le résultat sur votre webhook signé.

01 · Architecture

Votre frontend ne contacte jamais Scena.

Le navigateur appelle votre backend. Votre backend ajoute la clé privée, contacte Scena et retourne uniquement les données utiles à votre interface.

1

Frontend → votre API

Le brief et les assets sont envoyés à votre serveur authentifié.

2

Votre API → Scena

Votre serveur ajoute le Bearer token de la connexion.

3

Scena → votre webhook

Les événements signés annoncent l’avancement et la sortie finale.

02 · Authentification

Utilisez la clé one-time.

Conservez SCENA_API_KEY et SCENA_WEBHOOK_SECRET dans votre gestionnaire de secrets. Ne les injectez jamais dans un bundle frontend.

SCENA_BASE_URL=https://api.walter-ai.cloud
SCENA_API_KEY=sk_scena_••••••••
SCENA_WEBHOOK_SECRET=whsec_••••••••
03 · Générer

Créez un job avec un preset métier.

const res = await fetch(
  `${process.env.SCENA_BASE_URL}/api/saas/generate`,
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.SCENA_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      preset: 'ugc_product_demo',
      input: { prompt, image_url }
    })
  }
);

if (!res.ok) throw new Error(`Scena ${res.status}`);
const job = await res.json();
04 · Webhooks

Vérifiez avant de traiter.

Calculez le HMAC sur le corps brut et le timestamp reçu, comparez la signature en temps constant, puis dédupliquez l’événement avec son idempotency key.

X-Scena-Signature: sha256=••••••
X-Scena-Timestamp: 1784865600
X-Scena-Idempotency-Key: evt_••••••

signature = HMAC_SHA256(
  SCENA_WEBHOOK_SECRET,
  `${timestamp}.${rawBody}`
)
05 · Sécurité

Les règles qui évitent les mauvaises surprises.

Secrets

Backend uniquement

Ni localStorage, ni source client, ni logs applicatifs.

Retries

Idempotence

Une relivraison du même événement ne doit pas répéter votre effet métier.

Assets

URLs contrôlées

Utilisez des URLs temporaires et des permissions minimales pour vos médias.