Appuyez sur / pour rechercher

Toute la documentation
docs Appeler depuis votre logiciel Authentification

S’exécute surWrit Cloud

auth ▸ cinq familles de tokens

Authentification.

Cinq familles d’identifiants, chacune ouvrant exactement une surface. Cette page en dresse la carte, puis approfondit les deux que vous émettrez le plus : les clés API wt_ avec leurs scopes, et OAuth pour les applications tierces.

tokens ▸ la carte

Cinq identifiants, cinq surfaces.

Chaque identifiant ouvre exactement une tranche de Writ. Le moyen le plus rapide de déboguer un 401 est de vérifier la paire : quel token, sur quelle surface.

IdentifiantPréfixeOù il fonctionne
Clé API wt_ Vos propres serveurs, sur toute la surface /api/* + /api/v1/* et sur POST /mcp.
Token d’accès OAuth wto_ Les applications tierces, sur /api/* et sur les serveurs publiés /mcp/{slug}. Les tokens hérités pso_ sont encore acceptés.
Clé consommateur csk_ Vos clients, uniquement sur la passerelle /v1/{slug}/{path} — jamais sur /api.
Token SCIM Votre fournisseur d’identité, uniquement sur /scim/v2/* — un token par organisation.
Session (JWT) L’application web après connexion — tokens d’accès de 15 minutes, révoqués côté serveur à la déconnexion.

wt ▸ clés + scopes

Clés API : un en-tête, une portée serrée.

Une clé est wt_ suivi de 43 caractères URL-safe. Le secret est affiché une seule fois à la création et stocké haché — les listes et journaux ne montrent qu’un court préfixe non secret. Envoyez-la comme token Bearer :

curl https://api.usewrit.app/api/v1/workflows \
  -H "Authorization: Bearer $WRIT_API_KEY"

Scopes : resource:action

Les actions sont read, write, execute et delete, sur dix-sept ressources. Une clé ne porte que les scopes que vous lui accordez — et les ressources épinglables peuvent être restreintes davantage, à des ids précis.

RessourceActionsNote
workflowsread · write · execute · deleteÉpinglable à des workflows précis.
runsread
monitorsread · write · execute · deleteÉpinglable.
datasetsread · deleteÉpinglable.
transferread · writeExport et import en masse de tout le compte — jamais inclus dans un preset.
crawlread · execute · delete
scrapeexecuteSéparé de crawl : une clé d’extraction de page unique ne peut pas lancer un crawl de site.
filesread · write · delete
personasread · write · delete
secretsread · write · deleteLes valeurs ne sont jamais renvoyées — noms et métadonnées uniquement.
agentsread · write · execute
triggersread · write · execute · delete
recorderread · execute
streamingread · execute · delete
mcpread · write · execute · delete
marketplaceread · write
accountread

Trois presets couvrent la plupart des clés : read_only (chaque :read), run (:read + :execute) et full (tout, suppression comprise). transfer est exclu de chaque preset et doit être accordé à la main. Les jokers se développent en scopes concrets au moment de l’octroi, si bien qu’une clé ne peut jamais s’élargir en silence — et l’application est en refus par défaut : une route qui n’est pas explicitement ouverte aux clés API les refuse.

Rotation. Les clés sont indépendantes : émettez une nouvelle clé avec les mêmes scopes, déployez-la, puis révoquez l’ancienne — aucune interruption. Stockez les clés dans votre gestionnaire de secrets ; elles ne peuvent pas être réaffichées.

oauth ▸ applications tierces

OAuth : PKCE, sans client secret.

La surface OAuth est faite pour les clients publics : PKCE est obligatoire, il n’y a pas de client secret, et les clients peuvent s’enregistrer eux-mêmes via l’enregistrement dynamique RFC 7591. Les tokens d’accès portent le préfixe wto_ (l’héritage pso_ reste accepté) et fonctionnent sur /api/* et les serveurs publiés /mcp/{slug}.

EndpointRôle
GET /api/oauth/.well-known/oauth-authorization-serverMétadonnées du serveur d’autorisation — endpoints, scopes, méthodes PKCE.
POST /api/oauth/registerEnregistrement dynamique de clients RFC 7591, pour les clients publics PKCE.

Les scopes OAuth forment un ensemble séparé, plus petit — treize — et un octroi plafonne au rôle operator, jamais admin :

ScopeAccorde
targets:readVoir les cibles surveillées et leur statut.
targets:writeCréer, modifier et supprimer des cibles.
changes:readVoir les changements détectés et les diffs.
workflows:readVoir les workflows.
workflows:writeCréer et modifier des workflows.
workflows:executeDéclencher l’exécution de workflows.
triggers:readVoir les règles de déclenchement et les configurations de webhook.
triggers:writeCréer et modifier des déclencheurs.
reports:readVoir les résultats de runs et les rapports.
notifications:readVoir les réglages de notification.
notifications:writeGérer les réglages de notification.
org:readVoir les informations de l’organisation et les membres de l’équipe.
profile:readVoir les informations du profil utilisateur.

compte ▸ sécurité de connexion

Verrouiller le compte lui-même.

Indépendamment des identifiants d’API, le compte porte ses propres protections :

MFA TOTP

Enregistrez une application d’authentification, confirmez un code pour l’activer, désactivez avec un code valide — avec des codes de récupération à usage unique en secours. La vérification est limitée en débit contre la force brute.

Passkeys WebAuthn

Connexion sans mot de passe, ou second facteur à côté du mot de passe.

SSO SAML 2.0 + OIDC

Configuré par connexion — assertions signées côté SAML, PKCE + nonce côté OIDC.

Vérification de domaine

Prouvez un domaine avec un enregistrement DNS TXT sur _writ-sso-verify.{domain} ; activez en option sso_enforced pour que les membres passent obligatoirement par le SSO.

Provisionnement SCIM 2.0

Votre fournisseur d’identité crée et déprovisionne les comptes sur /scim/v2/* ; le déprovisionnement révoque immédiatement les sessions et tokens actifs de l’utilisateur.

secrets ▸ deux syntaxes

Références vault vs placeholders IA.

Deux syntaxes de placeholder, deux canaux — ne les mélangez pas. {{vault:key}} est la syntaxe des champs de workflow : elle accepte des sous-champs comme {{vault:name.username}}, et une référence d’identifiants nue se résout en mot de passe. {{secret:key}} est le placeholder du canal IA, quand une session IA a besoin d’un secret. Un champ de workflow attend vault: ; une instruction IA attend secret:.

faq

Questions d’authentification, répondues.

Quel token ouvre quelle surface ?
wt_ ouvre /api/* (plus /api/v1/*) et POST /mcp. Les tokens OAuth wto_ ouvrent /api/* et les serveurs publiés /mcp/{slug}. Les clés consommateur csk_ n’ouvrent que la passerelle /v1/{slug}/{path}. Les tokens SCIM n’ouvrent que /scim/v2/* — et la session web ne quitte jamais l’application.
Comment les clés sont-elles stockées — puis-je en récupérer une ?
Non. Le secret est affiché une seule fois à la création et stocké haché ; les listes et journaux identifient les clés par un court préfixe non secret. Si une clé fuite, révoquez-la et émettez-en une nouvelle — les clés sont indépendantes, la rotation se fait sans interruption.
Que peut-il manquer à un preset, toujours ?
transfer — l’export et l’import en masse de tout le compte. read_only accorde chaque :read, run ajoute :execute, full accorde tout, suppression comprise ; les scopes transfer doivent toujours être accordés explicitement, à la main.
Une application OAuth peut-elle devenir admin ?
Non. Les octrois OAuth sont limités aux treize scopes OAuth et plafonnent au rôle operator — une application autorisée ne peut jamais détenir de droits admin, quoi qu’elle demande.