Pular para conteúdo

Runtime, segurança e consistência

Data: 11/10/2026 · Status de todos os itens: aberto para avaliação. Não foram feitos testes de carga, exploração ou falha distribuída nesta edição.

AA-001 — Fronteiras de tenant e autorização

Evidência: BFF possui verificação de JWT/apps e resolução de tenant. ResourceAuthorizationService e interceptor existem, mas não foram encontradas aplicações de @RequiresResource aos resources. O serviço prevê bypass para identidade técnica. Core/Discovery/Checker transportam referências com owner, mas lookup não equivale a autorização de compartilhamento.

Fontes: IpaasJwtFilter, autorização, projeção Core.

Risco inferido: descrever RBAC como concluído ou confiar em headers internos sem comprovar fronteira de confiança. Recomendação: matriz endpoint × identidade × tenant × política, incluindo rotas públicas e técnicas. Fechamento: revisar aplicação nos endpoints e controles efetivos de rede/identidade, com testes correspondentes. Nenhuma vulnerabilidade explorada nesta tarefa.

AA-002 — Dependências síncronas durante execução

Evidência: Discovery consulta Core; Builder consulta Core/iPaaS/Accounts/Auth Provider; Checker consulta políticas e identidade. Discovery client, BuildService, Checker.

Risco inferido: falha ou latência dessas dependências afetar requisições, especialmente em misses. Recomendação: documentar TTL, fallback, deadlines e SLO por caminho antes de propor isolamento. Fechamento: medir caminhos quentes/frios e falhas no ambiente escolhido. Não se afirma SPOF produtivo a partir de charts locais.

AA-003 — Quotas e política de falha

Evidência: checkRateLimit do Checker busca *:ratelimit:<id>, lê valor e decrementa em chamadas separadas; determinadas falhas permitem continuidade. O BFF possui mecanismo diferente: Lua INCR/EXPIRE e fallback permitido quando Redis falha. Checker, RedisRateLimitCache BFF.

Risco inferido: varredura de chaves, escolha de owner e concorrência no Checker; perda de enforcement durante falhas conforme contrato atual. Recomendação: discutir lookup delimitado, atomicidade e política explícita. Fechamento: definir comportamento e validar concorrência/falhas; sem alterar os algoritmos nesta entrega.

AA-004 — Contrato HTTP do Router

Evidência: Router usa io.ReadAll, conserva o primeiro valor de cada header e codifica resposta não textual em base64. Broker monta a resposta a partir do envelope. RouterService, modelo Broker, pipeline Broker.

Risco inferido: limites de memória, binários, headers multivalorados e streaming precisam de contrato explícito. Recomendação: caracterizar cenários de conteúdo grande, Set-Cookie e passthrough. Fechamento: testes integrados desses casos e decisão de compatibilidade. Não há medição de impacto nesta edição.

AA-005 — Entrega de eventos e recuperação

Evidência: Dispatcher faz claim, publicação e atualização separados; consumidores possuem mecanismos próprios; Cache Monitor inclui FLUSHALL. Outbox repository, OpenAPI consumer, Cache Monitor.

Risco inferido: redelivery, efeitos duplicados e invalidação ampla de estado Redis compartilhado. Recomendação: tornar explícitos idempotência, retenção, DLQ, escopo da recuperação e observabilidade. Fechamento: ensaios de crash/reprocessamento e inventário dos estados Redis. Não se declara exactly-once.