# Politica de acesso GPT/MCP Gateway - report_id: `mcp-gateway-access-policy-15ac101b6174411e` - generated_at: `2026-05-02T02:38:41+00:00` - policy_version: `mcp-gateway-access-policy.v1` - endpoint: `https://mcps-gateway.ami-app.workers.dev/v1/execute` - status: `passed` - live_ready: `True` - secret_safe: `True` - method: `POST` - content_type: `application/json` - user_agent: `Codex-Mais-Humana-MCP-Publication-Gate/1.0` - auth_scheme: `Bearer credentialRef; raw token forbidden in artifacts` - rate_limit_per_minute: `30` - log_retention_days: `30` ## Sumario - Probes live avaliados: 3. - Probes live OK: 3/3. - Regras aprovadas: 12/12. - Bearer bruto persistido: False. - Falha do plugin Cloudflare nao e blocker operacional: True. ## Regras ### http.method.post - kind: `http` - required: `True` - requisito: Toda chamada GPT/MCP deve usar POST em /v1/execute. - validacao: Comparar metodo observado com POST. ### header.content-type.json - kind: `header` - required: `True` - requisito: Toda chamada deve enviar Content-Type application/json. - validacao: Comparar content_type observado. ### header.user-agent.codex - kind: `header` - required: `True` - requisito: Probes Codex devem usar User-Agent Codex-Mais-Humana-MCP-Publication-Gate/1.0. - validacao: Comparar User-Agent observado para separar WAF de runtime. ### auth.bearer.present-redacted - kind: `auth` - required: `True` - requisito: Authorization Bearer pode ser usado no probe, mas relatorios devem guardar apenas existencia, hash e credentialRef. - validacao: Confirmar authorization_present e authorization_redacted. ### waf.classification.explicit - kind: `waf` - required: `True` - requisito: HTTP 403/1010 e bloqueios WAF devem ser separados de tool_not_found, erro de runtime e erro de contrato. - validacao: Usar http_status e response_excerpt redigido para classificar falha. ### evidence.trace-audit-required - kind: `evidence` - required: `True` - requisito: Toda resposta aceita deve possuir traceId e auditId reais ou derivados de hash de evidencia. - validacao: Confirmar trace_id e audit_id por probe. ### evidence.hashes-required - kind: `evidence` - required: `True` - requisito: Toda evidencia deve guardar request_hash e response_hash sem payload sensivel bruto. - validacao: Confirmar hashes preenchidos por probe. ### redaction.no-secret-shapes - kind: `redaction` - required: `True` - requisito: Evidencias nao podem conter cfat_, Authorization Bearer cru, tokens longos ou bearer numerico bruto. - validacao: Varrer response_excerpt e campos textuais por formatos proibidos. ### rate-limit.default - kind: `rate_limit` - required: `True` - requisito: Probes automatizados devem respeitar limite padrao de 30 chamadas/minuto por ator. - validacao: Registrar limite no contrato e bloquear suites que excedam o teto. ### retention.logs - kind: `retention` - required: `True` - requisito: Logs de evidencia operacional devem reter metadados redigidos por 30 dias. - validacao: Registrar politica no artefato de acesso. ### transit.required-fields - kind: `transit` - required: `True` - requisito: Fluxos interplataforma devem preservar origin, destination, tool, payload, actor, permission, result, traceId, auditId e timestamp. - validacao: Validar campos exigidos no contrato de transito MCP. ### governance.plugin-not-operational-path - kind: `governance` - required: `True` - requisito: Falha ou aceite do plugin Cloudflare fica fora do diagnostico de Workers; trabalho real usa wrangler ou validacao HTTP live. - validacao: Confirmar que o artefato nao transforma plugin em blocker operacional. ## Probes - `mais_humana.rulebook.compact` http `200` ok `True` - evidenceId: `evidence-a75a27e0669c49da1db8b615` - traceId: `trace-3e1c8f057ac439f4b9b3eb7f` - auditId: `audit-a75a27e0669c49da1db8b615` - requestHash: `3e1c8f057ac439f4b9b3eb7f8f5be9ac36323f08adc23db6fc7d51633076b79a` - responseHash: `a75a27e0669c49da1db8b6157757c0615eed06c32674c7ed87a6db5d071359de` - `mais_humana.admin_ui.same_source` http `200` ok `True` - evidenceId: `evidence-af37a8d489b0038a7a6b5575` - traceId: `trace-17e7d8039c8c34e3f570b6de` - auditId: `audit-af37a8d489b0038a7a6b5575` - requestHash: `17e7d8039c8c34e3f570b6de8b386edc1cfd0c079084b0c7013016d2c76b388c` - responseHash: `af37a8d489b0038a7a6b5575970ec69855dd0f0e0ab09cf38b0e7658d3678195` - `mais_humana.mcp_transit.ledger` http `200` ok `True` - evidenceId: `evidence-3f0e3b9f829c7ff912b335d0` - traceId: `trace-dae7d91a59e37901d50c027d` - auditId: `audit-3f0e3b9f829c7ff912b335d0` - requestHash: `dae7d91a59e37901d50c027d3a0792f697902bd4289801edb2a508f3baf177fe` - responseHash: `3f0e3b9f829c7ff912b335d01afb5e78acdaa331bd984713dfca757072be6bbf` ## Checks - `http.method.post`: `passed` - motivo: todos os probes usaram POST - proxima_acao: manter regra como gate de release - `header.content-type.json`: `passed` - motivo: todos os probes usaram application/json - proxima_acao: manter regra como gate de release - `header.user-agent.codex`: `passed` - motivo: User-Agent operacional aplicado - proxima_acao: manter regra como gate de release - `auth.bearer.present-redacted`: `passed` - motivo: bearer usado como credencial de probe e redigido nos artefatos - proxima_acao: manter regra como gate de release - `waf.classification.explicit`: `passed` - motivo: WAF nao bloqueou os probes atuais; HTTP/runtime classificados separadamente - proxima_acao: manter regra como gate de release - `evidence.trace-audit-required`: `passed` - motivo: traceId e auditId presentes em todos os probes - proxima_acao: manter regra como gate de release - `evidence.hashes-required`: `passed` - motivo: hashes de request/response presentes - proxima_acao: manter regra como gate de release - `redaction.no-secret-shapes`: `passed` - motivo: nenhum formato de segredo bruto detectado nas evidencias - proxima_acao: manter regra como gate de release - `rate-limit.default`: `passed` - motivo: regra institucional materializada no artefato de politica - proxima_acao: manter regra como gate de release - `retention.logs`: `passed` - motivo: regra institucional materializada no artefato de politica - proxima_acao: manter regra como gate de release - `transit.required-fields`: `passed` - motivo: regra institucional materializada no artefato de politica - proxima_acao: manter regra como gate de release - `governance.plugin-not-operational-path`: `passed` - motivo: regra institucional materializada no artefato de politica - proxima_acao: manter regra como gate de release ## Blockers - Nenhum blocker tecnico na politica local.