Operações
Operar a Orquena significa manter isolamento entre tenants, proteger credenciais e dados pessoais, preservar rastreabilidade e impedir que automações ou providers externos contornem regras do produto.Esta página reúne a visão operacional. Threat models, políticas, runbooks e contratos específicos permanecem separados e versionados.
Requisitos desde o primeiro código
- Tenant isolation na aplicação e no banco.
- Least privilege para usuários, serviços, agentes e plugins.
- Credenciais criptografadas e preparadas para rotação.
- Webhooks autenticados, deduplicados e observáveis.
- Sessões seguras e revogáveis.
- Auditoria de ações privilegiadas e automáticas.
- Redação de dados sensíveis em logs e traces.
- Dependency, secret e container scanning.
- Backups com testes reais de restauração.
- Idempotência para side effects.
- Kill switches para respostas automáticas e providers.
- Aprovação humana para ações de maior impacto.
Fronteiras de confiança
Os principais limites são:- Navegador para edge/API.
- Provider de mensagens para webhook público.
- Aplicações para PostgreSQL, Valkey e object storage.
- AI Runtime para APIs internas autenticadas.
- Plataforma para providers externos.
- Suporte da plataforma para dados de uma organização.
- Plugins externos para contracts restritos.
Privacidade
- Contacts, mensagens e appointments são dados da organização.
- Acesso de suporte é temporário, justificado e auditado.
- Conversas não entram em logs completos por conveniência.
- Export, retenção e exclusão são tenant-aware.
- Media utiliza URLs assinadas e curtas.
- Memória e retrieval da IA seguem a mesma política de retenção dos dados de origem.
- Provider ou modelo recebe apenas o mínimo necessário para executar a tarefa.
Observabilidade
OpenTelemetry é o contrato de telemetria. A stack inicial planejada inclui:- Grafana Alloy para coleta.
- Prometheus para métricas.
- Loki para logs.
- Tempo para traces.
- Grafana para visualização e alertas.
- Latência e erros da API.
- Webhooks recebidos, rejeitados e duplicados.
- Jobs, retries e dead letters.
- Estado das sessões WAHA.
- Falhas e atraso de sincronização do Calendar.
- Execuções de IA, tool failures, custo e handoff.
- Cross-tenant authorization denials.
- Backlog de mensagens e notificações.
Ambientes
- Configuração é tipada e validada no startup.
- Falta de variável obrigatória causa fail fast.
.env.examplecontém somente nomes e exemplos seguros.- Credenciais de produção não são reutilizadas em desenvolvimento.
- Preview não acessa dados reais de clientes.
- Migrações e rollback são exercitados antes de produção.
Implantação inicial
A primeira topologia será Docker Compose em VPS, com processos e stores separados em containers. Antes do piloto, precisam existir:- Health checks.
- Persistent volumes revisados.
- Backup e restore testados.
- TLS e headers de segurança.
- Firewall e acesso administrativo restrito.
- Métricas, logs e alertas básicos.
- Procedimentos de atualização e rollback.
- Plano para reconectar sessões WAHA.
Qualidade
Checks esperados no bootstrap:- Tenant isolation.
- Permission enforcement.
- Idempotência.
- Concorrência.
- Retry e recovery.
- Timezone e DST quando aplicável.
- Provider outage.
- Auditoria.
Modelo documental híbrido
A documentação possui quatro camadas:- Orientação: seis páginas simples do Mintlify.
- Especificação: PRDs, contratos de arquitetura, threat models e ADRs.
- Componentes: READMEs próximos de apps, packages, plugins, providers e infra.
- Pesquisa: avaliações, referências e candidatos ainda não aceitos.
- Destino canônico explícito.
- Mapeamento de seções preservadas.
- Redirect quando houver rota pública.
- Revisão das referências e links.
- Confirmação de que histórico e governança não foram enfraquecidos.
docs/documentation-governance.md para precedência e manutenção.
Fluxo de contribuição
- Referenciar uma tarefa, requisito, RFC ou incidente.
- Ler as páginas de orientação.
- Ler os documentos específicos da área.
- Identificar impactos de tenancy, segurança, events, migration, privacy e operação.
- Trabalhar em branch dedicada.
- Atualizar especificações e testes junto com o comportamento.
- Executar os checks relevantes.
- Explicar riscos, rollback e trabalho restante no PR.
Resposta a vulnerabilidades
Até existir um canal privado formal, vulnerabilidades não devem ser publicadas com detalhes exploráveis em issues ou PRs. O proprietário do repositório deve ser contatado de forma privada, sem incluir credenciais ou dados de cliente.Documentos detalhados
SECURITY.mdCONTRIBUTING.mddocs/security/threat-model-v1.mddocs/product/non-functional-requirements.mddocs/legal/open-source-policy.mddocs/architecture/events-and-jobs-v1.mdinfra/docs/operations/docs/runbooks/