Clés API
Votre page de support s'authentifie au backend avec une clé publiable liée au site. Une clé active par site. Les clés sont préfixées pk_ et stockées en hash SHA-256 : une fois créée, la valeur en clair est affichée exactement une fois et n'est jamais récupérable.
Pourquoi liée au site
La clé porte l'identité du site. Chaque requête avec une clé pk_ est implicitement filtrée par site au niveau de la base : une clé pour acme-app ne peut pas lire les tickets, articles ou FAQ de acme-marketing, même si l'URL prétend le contraire. La liste d'origins CORS est elle aussi liée au site, donc une clé qui fuite d'un produit ne peut pas servir depuis un autre domaine.
Publiable par conception
La clé part dans votre bundle navigateur, comme une clé publiable Stripe. C'est sûr parce que la clé ne peut que lire du contenu publié et soumettre des tickets, que la liste d'origins bloque les autres domaines, et que les limites de débit par site plafonnent les abus. Elle ne touche jamais aux données côté agent : dashboard, membres, paramètres et brouillons exigent une session.
Format
pk_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
pk_ plus 43 caractères base64 url-safe, 46 caractères au total. Le backend identifie la clé par son hash, pas par son préfixe.
Créer et faire tourner
Les clés vivent dans le dashboard sous Websites, votre site. La clé est révélée une seule fois à la création ; copiez-la tout de suite dans votre fichier d'env. La rotation émet une nouvelle clé et invalide l'ancienne immédiatement. Pas de fenêtre de grâce : déployez d'abord la nouvelle clé, puis faites la rotation.
Utiliser la clé
Passez la clé dans l'en-tête X-Vicket-Key sur n'importe quel endpoint /support/v1/... :
curl https://api.vicket.app/support/v1/help/articles \
-H "X-Vicket-Key: pk_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
Le support-client.ts généré le fait pour vous, en lisant la clé dans votre env.
N'exposez jamais une session
Le cookie de session du dashboard porte des permissions d'org. Il ne doit jamais apparaître dans du code client hors du dashboard, et il n'existe aucun moyen de convertir une clé pk_ en session. Si vous avez besoin d'un accès serveur à serveur aux endpoints côté agent, ouvrez un ticket : les credentials machine sont sur la roadmap.
La suite
- Le modèle d'auth complet : authentification.
- Les endpoints qui acceptent les clés
pk_: endpoints.