[seguranca] fix(release): ref do ci-shared sem fallback e allowlist do infisical_host no release.yml [INFRA-71909] #167

Merged
tarcisio merged 1 commit from fix/INFRA-71909-release-ref-host into develop 2026-11-04 10:59:59 -03:00
Owner

O que muda

release.yml (deploy por tag dos produtos) recebe as duas guardas que o security-reviewer pediu no #166 (INFRA-71902):

  • Ref do ci-shared sem fallback: os scripts que rodam com os segredos do deploy vinham da ref achada por grep, com fallback silencioso para @main e sem conferir a forma. Agora só main ou vX.Y.Z, uma única ref, linhas de comentário não contam; ausente, ambígua ou fora disso reprova o job tag.
  • Allowlist do infisical_host: passo novo no job tag, logo após a config, aceita só http://192.168.0.101:8100. Os jobs que leem o Infisical dependem de tag, então nada lê segredo com host fora da lista.

Impacto na frota (medido em 04/11 pela API): todo ci-config visível usa o host padrão, e o release-chamador.yml chama @main. Nenhum produto quebra.

Fora do escopo: pin das actions internas @main (INFRA-71235).

Prova

  • tests/release/test_release_ref_e_host.py (9 testes, rodam o run: real dos passos): passam.
  • Suítes fechar-release, pin-actions, reusable-publico, ci-unico, soberania, if-em-caller, version-code: OK local.
  • tests/release local: 3 erros de timeout em test_b3_resto.TestSinal (testes de sinal, não tocados pelo diff; máquina carregada). O CI decide.
  • Parecer security-reviewer: CLEAN c93ca26 (comentado abaixo).

INFRA-71909

🤖 Generated with Claude Code

https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2

## O que muda `release.yml` (deploy por tag dos produtos) recebe as duas guardas que o security-reviewer pediu no #166 (INFRA-71902): - **Ref do ci-shared sem fallback:** os scripts que rodam com os segredos do deploy vinham da ref achada por grep, com fallback silencioso para `@main` e sem conferir a forma. Agora só `main` ou `vX.Y.Z`, uma única ref, linhas de comentário não contam; ausente, ambígua ou fora disso reprova o job `tag`. - **Allowlist do `infisical_host`:** passo novo no job `tag`, logo após a config, aceita só `http://192.168.0.101:8100`. Os jobs que leem o Infisical dependem de `tag`, então nada lê segredo com host fora da lista. Impacto na frota (medido em 04/11 pela API): todo ci-config visível usa o host padrão, e o `release-chamador.yml` chama `@main`. Nenhum produto quebra. Fora do escopo: pin das actions internas `@main` (INFRA-71235). ## Prova - `tests/release/test_release_ref_e_host.py` (9 testes, rodam o `run:` real dos passos): passam. - Suítes `fechar-release`, `pin-actions`, `reusable-publico`, `ci-unico`, `soberania`, `if-em-caller`, `version-code`: OK local. - `tests/release` local: 3 erros de timeout em `test_b3_resto.TestSinal` (testes de sinal, não tocados pelo diff; máquina carregada). O CI decide. - Parecer `security-reviewer: CLEAN c93ca26` (comentado abaixo). INFRA-71909 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
fix(release): ref do ci-shared sem fallback e allowlist do infisical_host no release.yml [INFRA-71909]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 5m19s
c93ca2638f
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
Author
Owner

security-reviewer: CLEAN c93ca26

  • Ref do ci-shared (release.yml:160-183): só main/vX.Y.Z, única, comentários ignorados, sem fallback; $REF só entra como variável de shell. Fechado.
  • infisical_host (release.yml:195-206): case com literal exato, valor por env:; o único job que lê o Infisical (deploy) tem needs: tag e usa needs.tag.outputs.infisical_host, o mesmo valor validado. Fechado.
  • Residuais sem bloqueio: tag de produto pode apontar para vX.Y.Z antigo do ci-shared (tags imutáveis, é o design); actions internas @main sem pin (INFRA-71235).
security-reviewer: CLEAN c93ca26 - Ref do ci-shared (release.yml:160-183): só main/vX.Y.Z, única, comentários ignorados, sem fallback; `$REF` só entra como variável de shell. Fechado. - infisical_host (release.yml:195-206): `case` com literal exato, valor por `env:`; o único job que lê o Infisical (`deploy`) tem `needs: tag` e usa `needs.tag.outputs.infisical_host`, o mesmo valor validado. Fechado. - Residuais sem bloqueio: tag de produto pode apontar para `vX.Y.Z` antigo do ci-shared (tags imutáveis, é o design); actions internas `@main` sem pin (INFRA-71235).
tarcisio merged commit 8bd0d9f6db into develop 2026-11-04 10:59:59 -03:00
tarcisio deleted branch fix/INFRA-71909-release-ref-host 2026-11-04 11:00:00 -03:00
Sign in to join this conversation.
No reviewers
No labels
seguranca
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
TMF/ci-shared!167
No description provided.