Febasidocs
Reference

Endpoints

The public surface of Febasi Auth — every endpoint a tenant integration may call, grouped by module and required permission.

The Febasi Auth service exposes its API under /api/v1. The same OpenAPI 3.1 specification used to render the Scalar reference at https://auth.febasi.com.br/docs powers the Postman collection shipped with the service.

The Auth column uses three labels:

  • Public — no credential required.
  • JWTAuthorization: Bearer <access-token> only.
  • Dual — JWT or Client Key (X-API-Key: ck_...) with X-Tenant-Code: <tenant-code> for tenant-scoped operations.

Two surfaces, one document

The tables below cover the tenant-facing surface — everything an external integration uses. A small set of endpoints exists for Febasi platform internals (used by Eved to provision and manage tenants). Those are listed at the bottom for completeness; you do not call them from your application.

Authentication module

MethodPathAuthPermission
POST/loginPublic
POST/refreshPublic
POST/logoutPublic
POST/registerDualusers:create
GET/meJWT
POST/validateJWT
GET/auth/logsDualauth:logs:read
GET/tokensDualtokens:read
POST/tokens/:tokenId/revokeDualtokens:revoke
POST/tokens/revoke-user/:userIdDualtokens:revoke
POST/tokens/revoke-allDualtokens:revoke

See Registration, Login & sessions, and Audit logs.

Users module

MethodPathAuthPermission
GET/usersDualusers:read
GET/users/:userIdDualusers:read
PATCH/users/:userIdDualusers:update
DELETE/users/:userIdDualusers:delete

PATCH /users/:userId accepts updates to email, username, status, emailVerified, and otpEnabled. Passwords are not changed via this endpoint.

Roles module

MethodPathAuthPermission
GET/rolesDualroles:read
GET/roles/:idDualroles:read
GET/roles/:id/permissionsDualroles:read
POST/rolesDualroles:create
PATCH/roles/:idDualroles:update
DELETE/roles/:idDualroles:delete
POST/roles/assignDualroles:assign
POST/roles/removeDualroles:revoke
POST/roles/:id/permissionsDualroles:update
DELETE/roles/:id/permissionsDualroles:update
GET/users/:userId/rolesDualroles:read
GET/users/:userId/levelDualroles:read

The hierarchy rule applies to every assign/remove call — see Authorization.

Permissions module

MethodPathAuthPermission
GET/permissionsDualpermissions:read
GET/permissions/customDualpermissions:read
POST/permissionsDualpermissions:create
PATCH/permissions/:idDualpermissions:update
DELETE/permissions/:idDualpermissions:delete
POST/permissions/grantDualpermissions:grant
POST/permissions/revokeDualpermissions:revoke
GET/permissions/user/:userIdDualpermissions:read
POST/permissions/checkDual

POST /permissions/check reads from the database, not the JWT — use it when permission changes need to take effect immediately. Body field is permissionName.

Tenant self-management

These act on your own tenant only. The tenant id you pass is your own — sourced from /tenants/me or from your JWT.

MethodPathAuthPermission
GET/tenants/meDual
PATCH/tenants/:idJWTtenants:update
PATCH/tenants/:id/configJWTtenants:update
GET/tenants/me/jwt-secretDualtenants:read
POST/tenants/me/jwt-secret/generateDualtenants:update
PUT/tenants/me/jwt-secretDualtenants:update
POST/tenants/me/jwt-secret/rotateDualtenants:update
DELETE/tenants/me/jwt-secretDualtenants:update
GET/tenants/me/metricsDualtenants:read
GET/tenants/me/metrics/loginsDualtenants:read
GET/tenants/me/metrics/securityDualtenants:read

PATCH /tenants/:id/config accepts cors, ipAllowlist, passwordPolicy, tokenConfig, sessionLimits, and the other authConfig fields. See CORS configuration and IP allowlist for those blocks.

Updates that would lock the caller out via ipAllowlist are rejected with 400 IP_LOCKOUT_PREVENTED. Append ?force=true to override (logs IP_ALLOWLIST_FORCE_UPDATE to the audit trail).

The JWT-secret endpoints implement secret rotation with a 7-day overlap.

Client Keys module

MethodPathAuthPermission
GET/client-keys/scopesDualclient-keys:read
GET/client-keys/tenantDualclient-keys:read
GET/client-keysJWTclient-keys:read
POST/client-keysDualclient-keys:create
GET/client-keys/:idDualclient-keys:read
PATCH/client-keys/:idDualclient-keys:update
POST/client-keys/:id/revokeDualclient-keys:delete
GET/client-keys/:id/logsDualclient-keys:read
GET/client-keys/:id/statsDualclient-keys:read

See Integrations → Client Keys.

System endpoints

MethodPathAuthDescription
GET/healthPublicDatabase and routing-pool status.
GET/docsPublicInteractive Scalar reference for the OpenAPI 3.1 spec.

Platform-only operations

The endpoints below are reserved for Febasi platform internals — Eved calls them on your behalf when you provision or delete an Auth project. External tenants do not call them; provisioning happens through the Eved Auth project wizard.

MethodPathUsed by
POST/tenantsEved Auth wizard to create your tenant during onboarding.
GET/tenantsPlatform listing — every tenant on the instance.
GET/tenants/statsPlatform-wide statistics.
GET/tenants/searchPlatform-wide tenant search.
GET/tenants/:idPlatform read of any tenant (your own is fetched via /tenants/me).
DELETE/tenants/:idTenant deletion.

These exist for completeness but are not part of the tenant-facing contract.

On this page