Features
API keys
Bearer tokens with a role, for AI agents, scripts, and other services.
Admins issue keys at /admin/api-keys or POST /_cms/api-keys with { name, role }. The plaintext key (cms_...) is returned once; only its hash is stored. DELETE /_cms/api-keys/:id revokes it.
The host turns the Bearer header into the request user with bearerToken from @interactive-inc/cms/api-key and verifyApiKey({ db, token }). The key's role is then checked by the same access rules as a session user.
curl https://<host>/api/docs -H "Authorization: Bearer cms_..."Use an editor key for AI agents so publishing and structure changes stay with an admin. Scripts that publish or reindex need an admin key.