| Domínio | Tipo |
|---|
app.profarma.dev | Produção (primary) |
profarma.dev | Redirect → app.profarma.dev |
www.profarma.dev | Redirect → app.profarma.dev |
| Método | Path | Auth | Rate Limit | Descrição |
|---|
| POST | /auth/register | Não | 3/hora por IP | Registro local |
| POST | /auth/login | Não | 5/15min por IP | Login local → JWT cookie |
| GET | /auth/me | JWT (opt) | Não | Retorna user ou null |
| POST | /auth/logout | JWT | Não | Limpa cookie |
| GET | /auth/microsoft | Não | Não | Redirect → Azure AD OAuth |
| GET | /auth/callback | OAuth state | Não | Callback Azure AD |
| GET | /auth/guest/verify | Token | 10/15min | Página verificação guest |
| POST | /auth/guest/verify | Token + Turnstile | 10/15min | Valida convite + Turnstile |
| POST | /auth/verify-access | JWT | Não | Turnstile + app access |
| Método | Path | Auth | Descrição |
|---|
| GET | /api/apps | JWT | Lista apps publicados |
| GET | /api/apps/:slug/forks | JWT | Lista forks de um app |
| Método | Path | Auth | Descrição |
|---|
| GET | /api/admin/apps | JWT + isAdmin | Lista todos os apps |
| POST | /api/admin/apps | JWT + isAdmin | Cria app |
| PUT | /api/admin/apps/:id | JWT + isAdmin | Atualiza app |
| DELETE | /api/admin/apps/:id | JWT + isAdmin | Deleta app |
| GET | /api/admin/guests | JWT + isAdmin | Lista convites |
| POST | /api/admin/guests | JWT + isAdmin | Cria convite |
| DELETE | /api/admin/guests/:id | JWT + isAdmin | Revoga convite |
| Método | Path | Auth | Descrição |
|---|
| POST | /optimizer/api/internal/trigger-cron-sync | Admin | Trigger sync VTEX |
| POST | /optimizer/api/internal/emergency-stop | Sessão | Para sync |
| GET | /optimizer/api/internal/do-sync-status | Sessão | Status DO sync |
| POST | /optimizer/api/internal/do-sync-cancel | Sessão | Cancela sync |
| POST | /optimizer/api/internal/emergency-reset | EMERGENCY_RESET_KEY | Reset forçado DO |
| POST | /optimizer/api/internal/do-sync-reset | Admin | Reset limpo DO |
| POST | /optimizer/api/internal/sku-full-sync | Admin | Sync completo SKUs |
| POST | /optimizer/api/internal/sku-incremental-sync | Admin | Sync incremental |
| GET | /optimizer/api/internal/sku-sync-status | Admin | Status sync SKUs |
| POST | /optimizer/api/internal/sku-sync-test | Admin | Teste sync SKUs |
| Método | Path | Auth | Descrição |
|---|
| * | /optimizer/api/* | JWT + app auth | Todas as rotas delegadas ao sub-app |
| Pattern | Acesso |
|---|
/optimizer/api/internal/ | Permitido |
/optimizer/api/catalog/fix-* | Permitido |
/optimizer/api/catalog/normalize-* | Permitido |
/optimizer/api/catalog/ensure-* | Permitido |
/optimizer/api/catalog/analyze | Permitido |
/optimizer/api/catalog/products | Read-only |
/optimizer/api/catalog/stats | Read-only |
/optimizer/api/catalog/enrichment-stats | Read-only |
| Pattern | Motivo |
|---|
/optimizer/api/catalog/publish | Bloqueado — Operação crítica |
/optimizer/api/catalog/approve | Bloqueado — Operação crítica |
/optimizer/api/settings | Bloqueado — Configurações |
/optimizer/api/admin | Bloqueado — Admin |
Rate limit da Internal API: 100 req/min por IP.
| Path | Auth | Descrição |
|---|
/ | JWT (SPA) | Portal Aura |
/login | Não | Redirect → / |
/admin | JWT + isAdmin | Admin panel |
/qrcode | JWT + Turnstile | QR Code generator |
/captain/* | JWT + Turnstile | Captain geospatial |
/captain/fork-1/* | JWT + app auth | Captain Fork-1 |
/captain/api/* | JWT + app auth | Captain API |
/optimizer/* | JWT + Turnstile | Optimizer catalog |
/ciclos/* | JWT + Turnstile | Fora do scope |
/app/* | Não | Static assets |
| Schedule | Descrição |
|---|
0 8 * * * (05:00 BRT) | Full catalog sync VTEX → D1 |
| Serviço | URL Base | Uso |
|---|
| Azure AD | login.microsoftonline.com | SSO OAuth 2.0 |
| Microsoft Graph | graph.microsoft.com | Perfil de usuário |
| Cloudflare Turnstile | challenges.cloudflare.com | Anti-bot |
| VTEX Commerce | *.vtexcommercestable.com.br | Catálogo |
| AirOps | *.airops.com | IA enrichment |
| RapidAPI | Via header | Data enrichment |
| Google Maps | maps.googleapis.com | Geolocalização |
| Google BigQuery | Via SA | Analytics |
| Resend | Via SDK | Email |
| Secret | Criticidade |
|---|
AUTH_SECRET | Crítico — compromete todas as sessões |
AZURE_CLIENT_SECRET | Crítico — compromete SSO |
INTERNAL_API_KEY | Crítico — bypass auth |
VTEX_APP_TOKEN | Crítico — write VTEX |
AZURE_CLIENT_ID | Alto — impersonar SSO |
EMERGENCY_RESET_KEY | Alto — operação destrutiva |
VTEX_APP_KEY | Alto — acesso catálogo |
BIGQUERY_SERVICE_ACCOUNT_JSON | Alto — acesso BQ |
TURNSTILE_SECRET_KEY | Médio — bypass anti-bot |
GOOGLE_MAPS_API_KEY | Médio — billing |
RAPIDAPI_KEY | Médio — billing |
AIROPS_API_KEY | Médio — billing |
RESEND_API_KEY | Médio — email spoofing |
AZURE_TENANT_ID | Médio — metadado |
TURNSTILE_SITE_KEY | Baixo — público |
Nenhum secret em plaintext no código ou wrangler.toml. Todos gerenciados via Cloudflare Workers Secrets.