┌──────────────────────────────────────────────────────────────────┐
│ Okta Tenant │
│ │
│ ┌─────────────┐ user.session.start ┌──────────────────────┐ │
│ │ Usuário │────────────────────► │ Event Hook │ │
│ └─────────────┘ └──────────┬───────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Okta Workflows Console │ │
│ │ │ │
│ │ Flow 1: Evaluator (síncrono ao event hook) │ │
│ │ ├─► Read User │ │
│ │ ├─► Lookup CCT (Tables) │ │
│ │ ├─► Lookup Holiday (Tables) │ │
│ │ ├─► Decide ALLOWED / BLOCKED_* │ │
│ │ ├─► Write auth_log + violations (Tables) │ │
│ │ ├─► Generate HMAC ack token │ │
│ │ └─► Email user + Slack + Email manager │ │
│ │ │ │
│ │ Flow 2: Daily Reconciliation (cron 06:00 BRT) │ │
│ │ ├─► Process pending violations │ │
│ │ ├─► Push to ponto eletrônico API │ │
│ │ └─► Send daily digest │ │
│ │ │ │
│ │ Flow 3: Defesa Report (API endpoint) │ │
│ │ ├─► Verify hash chain │ │
│ │ └─► Generate ZIP + email to requester │ │
│ │ │ │
│ │ Tables: │ │
│ │ - auth_log (todos os eventos) │ │
│ │ - violations (eventos fora do horário) │ │
│ │ - holidays (calendário de feriados) │ │
│ │ - cct_rules (regras por CCT) │ │
│ └────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
│ HMAC link
▼
┌─────────────────────────────────────────┐
│ Acknowledgment Page (Next.js) │
│ ack.empresa.com.br │
│ │
│ - Renderiza form de confirmação │
│ - Valida HMAC server-side │
│ - POST /api/ack → Workflows webhook │
└─────────────────────────────────────────┘
│
▼ ack callback
┌─────────────────────────────────────────┐
│ Workflow inbound webhook │
│ (atualiza violation row) │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Sistema de Ponto Eletrônico │
│ (Pontomais / Tangerino / Senior) │
└─────────────────────────────────────────┘
Workflows é ótimo para orquestração mas péssimo para:
A página de ack precisa ser hospedada externamente. Por isso o Next.js separado.
Você poderia fazer todo o sistema em Next.js + Postgres. Mas:
Workflows te dá orquestração de baixo código + integração nativa com Okta. Vale a pena.
Atacante 1: Funcionário tentando burlar.
Atacante 2: Admin tentando adulterar logs.
LIMITACOES.md §2.Atacante 3: Credencial comprometida (phishing).
Dados pessoais em jogo:
Bases legais:
Implementações necessárias:
| Métrica | Valor esperado | Limite |
|---|---|---|
| Latência do flow Evaluator | 2–4s | Workflows timeout: 30s |
| Throughput | ~50 exec/min | Cota da licença |
| Tamanho de auth_log/ano | ~5 MB / 100 usuários | Tables: sem hard limit publicado |
| Latência da página de ack | <500ms | Vercel Edge |
cct_rulescctCode no enum do profile schemaholidays com scope=NACIONAL ou via cctOverridecct_rules com nova colunaviolationType em violationsSHA-256 é nativo no Workflows. SHA-3 exigiria custom function.
Inline Hooks exigem endpoint síncrono <3s, hospedado externamente, com SLA. Saem do escopo de “starter de baixo esforço”. Esse é justamente o gap que justifica um produto comercial.
Mercado-alvo é Brasil. Internacionalizar dobra escopo sem aumentar valor.
Veja LIMITACOES.md. Os principais ausentes: