Contexto
Sequência de #9/#13, testando o reteste pedido pelo time da LayoutParserApi (que anunciou
fix de timing de deploy da config M2M em 2026-09-08). Testamos agora, pela primeira vez com
o Cypress real, o ambiente "produção"/dev real https://layoutparser.duckdns.org (além do
ambiente local 172.19.176.1:5100, já rastreado em #13).
Testado em 2026-09-10 com o mesmo token M2M válido (client LayoutParserE2EClient, scope
api://f76c2598-4759-48a9-8145-8a967ec7ac96/.default, obtido via Entra client_credentials
— confirmado 200 com access_token válido).
Sintoma
Contra https://layoutparser.duckdns.org:
POST /api/TransformationExecution/execute-lowcode com Authorization: Bearer <token>
→ 401, corpo:
{"statusCode":401,"error":"Unauthorized","message":"Autenticação obrigatória.","correlationId":"<varia por request>"}
POST /api/AutoTransformation/generate-for-layout — endpoint que no ambiente local
(172.19.176.1:5100) responde 404 "Layout não encontrado" sem exigir nenhuma
autenticação (não deveria ter [Authorize], pelo comportamento observado no ambiente
local) — também retornou 401, com o mesmo formato "Autenticação obrigatória."
nesse ambiente.
Por que é diferente de #13
A #13 documenta um 401 sem body/WWW-Authenticate, isolado ao endpoint
execute-lowcode, no ambiente local. Aqui temos um 401 com body estruturado, afetando
inclusive um endpoint que não deveria exigir auth. Escopo/causa provável parecem diferentes
— possivelmente uma camada de autenticação (API Gateway/reverse proxy, ou
TrustedIdentityMiddleware) bloqueando todos os endpoints nesse ambiente específico, e
o token M2M do Entra não sendo aceito por essa camada ali (scheme diferente do esperado, ou
audience/issuer não reconhecido nesse ambiente).
Nota sobre rede
curl direto do WSL contra https://layoutparser.duckdns.org trava no handshake TLS
(connection reset) — o teste real só funcionou via Cypress rodando em Electron/Windows.
Possível particularidade de rede do WSL, não necessariamente do servidor; mencionado aqui
só como contexto de diagnóstico, não como parte do sintoma reportado.
Hipótese (não confirmada, para o time da API investigar)
- Existe um gateway/proxy ou middleware de auth na frente de todos os endpoints em
layoutparser.duckdns.org que não existe (ou está configurado diferente) no ambiente
local.
- O scheme/audience/issuer que esse gateway espera pode ser diferente do que o M2M do
Entra (client LayoutParserE2EClient) emite — mesmo token, mesmo client, comportamento
diferente por ambiente.
Relacionado
- #13 — mesmo token M2M,
sintoma distinto, ambiente local.
- #9 — origem do bloqueio de
auth de serviço.
- PRs da API mencionados como contexto pelo próprio time: #218, #221, #295.
- Doc persistente:
docs/e2e-fiat-sysmiddle-tcl-xsl.md, seção 13.
Severidade
Bloqueia validar o gate sysmiddle no ambiente que o time da API classifica como o
"servidor real" de dev — não confirmado se é bug ou config de ambiente pendente, mas sem
isso não há como confirmar cStat=100 no ambiente correto.
Contexto
Sequência de #9/#13, testando o reteste pedido pelo time da LayoutParserApi (que anunciou
fix de timing de deploy da config M2M em 2026-09-08). Testamos agora, pela primeira vez com
o Cypress real, o ambiente "produção"/dev real
https://layoutparser.duckdns.org(além doambiente local
172.19.176.1:5100, já rastreado em #13).Testado em 2026-09-10 com o mesmo token M2M válido (client
LayoutParserE2EClient, scopeapi://f76c2598-4759-48a9-8145-8a967ec7ac96/.default, obtido via Entraclient_credentials— confirmado
200comaccess_tokenválido).Sintoma
Contra
https://layoutparser.duckdns.org:POST /api/TransformationExecution/execute-lowcodecomAuthorization: Bearer <token>→
401, corpo:{"statusCode":401,"error":"Unauthorized","message":"Autenticação obrigatória.","correlationId":"<varia por request>"}POST /api/AutoTransformation/generate-for-layout— endpoint que no ambiente local(
172.19.176.1:5100) responde404 "Layout não encontrado"sem exigir nenhumaautenticação (não deveria ter
[Authorize], pelo comportamento observado no ambientelocal) — também retornou
401, com o mesmo formato"Autenticação obrigatória."nesse ambiente.
Por que é diferente de #13
A #13 documenta um 401 sem body/
WWW-Authenticate, isolado ao endpointexecute-lowcode, no ambiente local. Aqui temos um 401 com body estruturado, afetandoinclusive um endpoint que não deveria exigir auth. Escopo/causa provável parecem diferentes
— possivelmente uma camada de autenticação (API Gateway/reverse proxy, ou
TrustedIdentityMiddleware) bloqueando todos os endpoints nesse ambiente específico, eo token M2M do Entra não sendo aceito por essa camada ali (scheme diferente do esperado, ou
audience/issuer não reconhecido nesse ambiente).
Nota sobre rede
curldireto do WSL contrahttps://layoutparser.duckdns.orgtrava no handshake TLS(connection reset) — o teste real só funcionou via Cypress rodando em Electron/Windows.
Possível particularidade de rede do WSL, não necessariamente do servidor; mencionado aqui
só como contexto de diagnóstico, não como parte do sintoma reportado.
Hipótese (não confirmada, para o time da API investigar)
layoutparser.duckdns.orgque não existe (ou está configurado diferente) no ambientelocal.
Entra (client
LayoutParserE2EClient) emite — mesmo token, mesmo client, comportamentodiferente por ambiente.
Relacionado
sintoma distinto, ambiente local.
auth de serviço.
docs/e2e-fiat-sysmiddle-tcl-xsl.md, seção 13.Severidade
Bloqueia validar o gate
sysmiddleno ambiente que o time da API classifica como o"servidor real" de dev — não confirmado se é bug ou config de ambiente pendente, mas sem
isso não há como confirmar
cStat=100no ambiente correto.