Skip to content

fix(cli): não devolver chaves em texto puro a credenciais de máquina em /api/cli-tools/keys - #16654

Merged
diegosouzapw merged 2 commits into
release/v3.8.52from
fix/ghsa-qx9v-cli-keys-rawkey
Oct 15, 2026
Merged

diegosouzapw merged 2 commits into
release/v3.8.52from
fix/ghsa-qx9v-cli-keys-rawkey

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Resumo

Endurecimento da listagem GET /api/cli-tools/keys: não devolver chaves em texto puro a credenciais de máquina.

  • O campo rawKey agora só é devolvido ao operador da instância (resolveOperatorCredential: sessão do dashboard, credencial local da CLI ou instância com login desligado).
  • Credenciais de máquina (chaves de API de qualquer escopo e tokens oma_, inclusive de escopo read) continuam recebendo a listagem, mas apenas com key mascarada.
  • Se a verificação de operador lançar erro, a rota falha fechada com 503 (corpo genérico, sem err.message/stack e sem material de chave).
  • A UI não muda: operadores continuam recebendo rawKey como antes (sem gate em ALLOW_API_KEY_REVEAL).

Evidência TDD

  • RED (9ac5423): 3 falhas pelo motivo certo (token read e chave manage recebiam o texto puro; o 503 não era alcançado).
  • GREEN: tests/unit/cli-tools-keys-rawkey-ghsa-qx9v.test.ts + cli-tools-keys-route.test.ts + route-guard-cli-tools-settings-local-only.test.ts = 66/66 passando.
  • typecheck:core, ESLint (com suppressions) e Prettier limpos nos arquivos alterados.

⚠️ base-red inherited: #15306

diegosouzapw and others added 2 commits October 14, 2026 23:20
…hine credentials

Co-authored-by: AndreAlmeidaDC <AndreAlmeidaDC@users.noreply.github.com>
… /api/cli-tools/keys (GHSA-qx9v)

Co-authored-by: AndreAlmeidaDC <AndreAlmeidaDC@users.noreply.github.com>
@diegosouzapw
diegosouzapw merged commit ae179c4 into release/v3.8.52 Oct 15, 2026
37 of 50 checks passed
@diegosouzapw
diegosouzapw deleted the fix/ghsa-qx9v-cli-keys-rawkey branch October 15, 2026 04:17
@github-actions

Copy link
Copy Markdown
Contributor

CI Coverage Report

  • Coverage job: skipped
  • PR test policy: success

Coverage artifact was not available for this run.

W25X80 pushed a commit to W25X80/OmniRoute that referenced this pull request Oct 19, 2026
Adapt upstream cheaper-inference#16489, cheaper-inference#16654 and cheaper-inference#16543 while retaining asynchronous PostgreSQL token repositories. Cover delegated denial and operator access in native control-plane scenarios.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant