jornada-workflows-starter

Jornada — Okta Workflows Starter para Conformidade com a CLT

Template open-source para empresas brasileiras que usam Okta e precisam controlar acesso fora do horário de expediente, evitando passivos trabalhistas (horas extras, sobreaviso, danos morais por violação do direito à desconexão).

License: MIT Okta Workflows Made in Brazil

O problema

A jurisprudência da Justiça do Trabalho tem reconhecido que o simples acesso de funcionários a ferramentas corporativas (e-mail, Slack, VPN, sistemas internos) fora do horário de expediente pode configurar:

Este repositório fornece um starter completo para implementar controle de acesso CLT-compliant usando Okta Workflows — sem precisar comprar uma ferramenta dedicada.

O que está incluído

jornada-workflows-starter/
├── flows/                          # Workflows exportados (.json)
│   ├── 01-evaluator.json        # Avalia cada autenticação
│   ├── 02-daily-reconciliation.json
│   └── 03-defesa-report.json    # Relatório para Justiça do Trabalho
├── okta/
│   ├── profile-schema/             # Atributos customizados de usuário
│   └── tables/                     # Schemas das Okta Tables
├── acknowledgment-page/            # Next.js app: "Confirmo hora extra"
└── docs/
    ├── INSTALACAO.md               # Setup passo a passo
    ├── ARQUITETURA.md              # Como funciona
    └── LIMITACOES.md               # ⚠️ Leia antes de implantar

Como funciona

┌─────────────────────────────────────────────────────────┐
│  1. Funcionário tenta logar via Okta às 22h de sábado   │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│  2. Okta dispara Event Hook (user.session.start)        │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│  3. Workflow "Evaluator" verifica:                      │
│     - Horário contratado do usuário                     │
│     - Dia da semana / feriado                           │
│     - CCT aplicável                                     │
│     - Isenção do Art. 62 da CLT                         │
└─────────────────────────────────────────────────────────┘
                          │
              ┌───────────┴───────────┐
              ▼                       ▼
       ┌─────────────┐        ┌──────────────────┐
       │  Permitido  │        │  Fora do horário │
       │  Log: ALLOW │        │  → Notifica RH   │
       └─────────────┘        │  → Adiciona em   │
                              │    grupo "ack"   │
                              │  → Envia link    │
                              └──────────────────┘
                                       │
                                       ▼
                              ┌──────────────────┐
                              │ Funcionário      │
                              │ confirma hora    │
                              │ extra na página  │
                              │ → Status: ACK    │
                              │ → Calcula minutos│
                              │ → Envia ao ponto │
                              └──────────────────┘

Quick start

Pré-requisitos:

Setup em 30 minutos:

  1. Importe o schema de perfil (okta/profile-schema/user-profile-extension.json)
    Okta Admin Console → Directory → Profile Editor → User (default) → Add Attribute
    
  2. Crie as Okta Tables (okta/tables/)
    • auth_log — todos os eventos de autenticação
    • violations — eventos fora do horário
    • holidays — feriados nacionais/estaduais/municipais
    • cct_rules — regras de convenção coletiva
  3. Importe os flows (flows/*.json)
    Okta Workflows Console → Flows → Import Flowpack
    
  4. Implante a página de acknowledgment
    cd acknowledgment-page
    npm install
    vercel deploy
    
  5. Configure o Event Hook apontando para o flow Evaluator

Detalhes completos em docs/INSTALACAO.md.

⚠️ Limitações importantes

Este starter resolve ~70% do problema com ~5% do esforço de uma solução dedicada. As limitações estão documentadas em docs/LIMITACOES.md, mas as principais:

Limitação Impacto
Reativo, não preventivo Event Hooks disparam após a autenticação. O usuário já acessou os dados quando o log é gerado. Defesa jurídica mais fraca.
Sem audit chain criptográfica Okta Tables não são append-only. Um admin com permissão pode editar linhas. Hash chain ajuda mas não é prova legal robusta.
CCT é manual Cada Convenção Coletiva precisa ser codificada manualmente nas tables. Renegociações anuais quebram a configuração.
Sem UI para o funcionário A página de ack é separada e precisa ser hospedada por você.
Sem relatório “defesa-ready” O export é CSV. Para Justiça do Trabalho, você precisa de PDF assinado, com timestamps de autoridade certificadora.
Limites de execução do Workflows Tenants com 100k+ autenticações/dia podem estourar quota.

Quando este starter é suficiente:

Quando você precisa de algo mais robusto:

Para esses casos, considere Jornada Pro — versão hospedada com rules engine de CLT, biblioteca de CCTs, audit chain criptográfica e relatórios defesa-ready. (Em desenvolvimento.)

Contribuindo

Aceitamos PRs! Especialmente:

FAQ

Posso usar isso em produção? Sim, com as ressalvas acima. Vários componentes são apenas “good faith” — não são prova legal robusta. Se você está em uma indústria de alto risco trabalhista (bancário, varejo, telemarketing), use isto como prototipagem e migre para uma solução dedicada.

E se o funcionário precisar trabalhar fora do horário em emergência? O fluxo permite isso via “acknowledgment” — o funcionário declara que está fazendo hora extra, registra eletronicamente, e o sistema computa para o ponto. Isso transforma um sobreaviso ambíguo em uma hora extra explícita e devidamente paga.

O Art. 62 da CLT (isenção de controle de jornada) está coberto? Sim. Usuários com exemptArt62 = true no perfil são pulados pelo Evaluator. Use isso para gerentes, cargos de confiança e teletrabalho por produção.

E o trabalho remoto / home office? A Lei 14.442/2022 e Art. 6º da CLT equiparam trabalho remoto a presencial para fins de jornada. O sistema funciona igualmente — o controle é por horário, não por localização.

Preciso da licença Enterprise do Okta Workflows? A versão básica do Workflows funciona para até ~50 usuários. Acima disso, você provavelmente precisará da licença Enterprise por questões de quota de execução.

Licença

MIT. Use, modifique, redistribua à vontade. Sem garantia, sem responsabilidade — você é responsável pela conformidade trabalhista da sua empresa.

Sobre

Construído por Matt — Senior Solutions Engineer especializado em IAM (Okta, Auth0) atuando no mercado brasileiro.

Se este starter foi útil, considere:


Disclaimer: Este projeto não constitui aconselhamento jurídico. Consulte advogado trabalhista para validar a aderência da implementação à sua realidade específica.