Autenticació de l'API
Autentica l'API de Feedjolt amb claus API enviades com a token Bearer a la capçalera Authorization. Crea, limita i revoca claus, només servidor a servidor.
L'API fa servir claus de workspace. Envia la clau com Authorization: Bearer <key> o com X-API-Key: <key>. Les sessions del tauler per cookie segueixen funcionant sense clau.
Crear una clau
Panell -> Configuració -> Claus API -> Nova clau.
Configuraràs:
- Nom - per la teva sanitat.
production-zapier,local-dev-marc. No "key", "test", "asdf". - Scopes - què pot fer la clau (emmagatzemat com un array JSON a la clau).
La clau completa es mostra un sol cop en generar-se. Desa-la; només desem un hash. Clau perduda = fes-ne una de nova.
Format
fjk_<random>El prefix fjk_ és intencional:
- Fàcil de detectar als teus logs (i a la nostra detecció de filtracions de git).
- Fàcil escriure un regex / hook de pre-commit contra ell.
- Et permet saber a primera vista "aquesta és una clau de Feedjolt, no de Stripe".
Tracta la clau completa com un secret. No posis claus a: codi del client, apps mòbils, repos públics, tickets de suport, captures.
Enviar la clau
Prefereix Bearer. X-API-Key és la mateixa credencial.
Authorization: Bearer fjk_abc123...X-API-Key: fjk_abc123...Una clau pertany a un sol workspace. GET /api/v1/workspaces retorna aquest workspace.
Exemples:
curl -H "Authorization: Bearer $FEEDJOLT_KEY" \
"https://api.feedjolt.com/api/v1/workspaces"fetch("https://api.feedjolt.com/api/v1/workspaces", {
headers: { Authorization: `Bearer ${process.env.FEEDJOLT_KEY}` }
});import os, httpx
r = httpx.get(
"https://api.feedjolt.com/api/v1/workspaces",
headers={"Authorization": f"Bearer {os.environ['FEEDJOLT_KEY']}"}
)Scopes
Les claus porten una llista de scopes. Els strings exactes de scope i les comprovacions per endpoint estan documentats a la referència OpenAPI sota la secció "security" de cada endpoint - aquesta és la font de veritat.
En triar scopes, parteix de només lectura i expandeix només segons necessitis. Les crides sense el scope adequat retornen 403.
Revocar
Configuració -> Claus API -> Revocar. Immediat.
Si una clau es filtra:
- Revoca-la.
- Genera una clau nova.
- Actualitza el teu store de secrets.
- Redesplega.
- Considera rotar qualsevol dada que hagi pogut llegir-se.
Només servidor a servidor
No existeix un flux de clau API per a client. Les claus han de quedar-se al servidor. Les crides des del navegador han de passar pel teu backend.
Per a accés client sense auth (dades públiques només lectura), fes servir el widget o les URLs estàndard del portal públic - estan indexades i sense requisit d'auth.
Estat de la subscripció
Les claus API necessiten un pla amb dret (Startup o Scale) i un estat amb dret. Files cancel·lades, impagades, incompletes o mai pagades retornen 403 SUBSCRIPTION_INACTIVE a cada crida, també a GET. past_due manté accés complet 7 dies després de la primera marca de renovació fallida (past_due_since); després les lectures segueixen i les escriptures retornen el mateix 403. El current_period_end renovat no allarga aquesta finestra. Els espais compensats (comped) no es bloquegen mai. Les sessions cookie del panell queden en només lectura si estan cancel·lades; no usen aquesta porta de claus API.
Administració des del panell
La gestió de membres, les connexions d'integracions, les claus API, la facturació i la configuració JWT requereixen una sessió iniciada al panell. Les claus API no poden accedir a aquests recursos, encara que tinguin tots els permisos. Una petició que inclogui tant una clau API com una cookie del panell continua subjecta a les restriccions de la clau API.
Fes servir el panell per convidar companys o connectar Slack, Linear o GitHub. L'accés de l'API als recursos de feedback continua disponible segons els permisos de la clau.
