Skip to main content
/v1/keys est exclu de l’authentification standard /v1/* (ApiKeyAuthMiddleware) : il a sa propre logique, décrite ici. Voir aussi Sécurité pour le modèle complet.

Règles d’accès (V1, volontairement simples)

Toute la gestion des clés exige Authorization: Bearer <HAKI_ADMIN_KEY>. L’admin choisit librement org_id/project_id à la création et voit toutes les clés en liste.

Créer une clé

string
requis
1 à 128 caractères.
string
requis
1 à 128 caractères.
string
Max 128 caractères.

Réponse — 201 Created

string
requis
La clé en clair (hk_...) — retournée une seule fois, ici. Seul son hash sha256 est stocké ensuite ; elle ne peut plus jamais être récupérée.
uuid
requis
string
requis
Les 8 premiers caractères, pour les affichages masqués.
string
requis
string
requis
string | null
datetime
requis

Lister les clés (masqué)

Sans HAKI_ADMIN_KEY, la liste est bornée au projet de la clé appelante.
KeyOut[]
requis
Jamais la clé ni son hash — seulement prefix.

Révoquer une clé

Pose revoked_at — effet immédiat : la clé renvoie 401 unauthorized dès l’appel suivant.
uuid
requis
string
défaut:"revoked"

Erreurs possibles

unauthorized (401), forbidden_scope (403 — une clé tente de créer une clé pour un autre org_id/project_id que le sien), key_not_found (404).

Provisioning d’organisation (console uniquement)

Endpoint interne, appelé uniquement par le backend Next.js de la console avec une identité Clerk déjà vérifiée — jamais par un navigateur ni par la clé hk_ d’un client. Authentifié par un secret partagé unique (HAKI_CONSOLE_SERVICE_KEY), pas par le modèle de clés standard. Non couvert par le SDK.
Prend {owner_ref, name} ; génère un org_id serveur (jamais fourni par l’appelant, contrairement au bootstrap /v1/keys), crée un projet prj_<org_id>_default et une clé. Un appel répété pour un owner_ref déjà connu ne recrée pas l’organisation : il émet une nouvelle clé sur le même projet (org_created: false).