Docs
04 — API e Integrações
Service API
| Ambiente | Base URL |
|---|---|
| Local | http://localhost:3002 |
| Produção | https://service.framework.forestbit.io |
- Swagger (dev):
/docs - Health:
/health
Módulos de plataforma (boilerplate)
Inventário de negócio (status, descrição, specs): product/04-features-modules.md.
| Módulo | Prefixo / path | Spec |
|---|---|---|
| Auth | /auth/* | 002-auth-module |
| Companies | /companies/* | 004-multi-tenant |
| Invites | /companies/invites/* | 004-multi-tenant |
| Members | /companies/members/* | 004-multi-tenant |
| Subscriptions | /subscriptions/* | 003-billing-subscriptions |
| Webhooks | /webhooks/stripe | 003-billing-subscriptions |
| Storage | /storage/* | 006-storage |
| User | /user/* | 002-auth-module |
Detalhes de endpoints: Swagger em dev ou implementation-status.md de cada spec.
Hasura GraphQL
| Ambiente | URL |
|---|---|
| Local | http://localhost:8080 |
| Produção | https://api.framework.forestbit.io |
- Permissões por role (
user,anonymous, admin secret) - Migrations:
apps/hasura/migrations/ - Metadata:
apps/hasura/metadata/ - JWT: claims
https://hasura.io/jwt/claimsemitidas pelo auth module (ver spec 001)
Contratos app ↔ service
Autenticação (JWT)
| Aspecto | Contrato |
|---|---|
| Login / register | POST /auth/login, /auth/register → { token, refresh_token, user } |
| Refresh | POST /auth/refresh-token com refresh token |
| Requests autenticados | Header Authorization: Bearer <access_token> |
| Hasura | Mesmo JWT; Apollo client envia Bearer |
| Logout | POST /auth/logout + clear local storage no client |
Fluxo completo: specs/002-auth-module.
Formato de erro
Respostas de erro seguem padrão NestJS + interceptors (ErrorLoggingInterceptor). Códigos auth: AUTH_001–AUTH_006.
Versionamento
Sem version prefix na URL v1 — breaking changes exigem coordenação app + service.
Integrações externas — plataforma
| Integração | Uso | Módulo | Secrets |
|---|---|---|---|
| Stripe | Billing | subscriptions | STRIPE_* |
| DigitalOcean Spaces | File storage | storage | DO_SPACES_* / S3-compatible |
| SMTP / email | Auth emails | auth | mail env vars |
Integrações — produto (preencher no fork)
Documente aqui integrações específicas do seu produto — não entram no checklist do PLAYBOOK. Remova linhas que não usar.
| Integração | Uso típico | Módulo service | Secrets |
|---|---|---|---|
| Google PageSpeed Insights | Métricas de performance | TBD | PAGESPEED_API_KEY, PAGESPEED_API_ENDPOINT |
| Apify | Web scraping | TBD | APIFY_API_TOKEN |
| Google AI (runtime no service) | IA em backend | TBD | GOOGLE_AI_API_KEY |
| TBD |
Webhooks
| Evento | Endpoint | Idempotência |
|---|---|---|
Stripe (checkout.session.completed, customer.subscription.*, …) | POST /webhooks/stripe | Tabela webhook events (spec 002) |
Rate limits e quotas
- Auth:
@ThrottlenoAuthController(spec 001) - Demais módulos: documentar por plano em product/07-plans-pricing.md