Skip to content

feat(radar): stable catalog export workflow with provenance - #10826

Merged
diegosouzapw merged 1 commit into
release/v3.8.50from
feat/radar-export-workflow
Aug 20, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.50from
feat/radar-export-workflow

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Contexto

Passo 10 do go-live do Radar ("export estável + proveniência"). Hoje o servidor privado do Radar (1 GB RAM na Akamai, nunca clona/builda o OmniRoute) depende do snapshot do export gravado no deploy, vindo da máquina do operador. Este PR publica o export numa URL estável para o servidor baixar via RADAR_EXPORT_URL.

Mudança

  • scripts/release/radar-export.mjs — gera {geradoEm, budgets, totais, registry, provenance} a partir dos módulos de catálogo (open-sse/config/freeModelCatalog*.ts, providerRegistry.ts). Proveniência (sourceCommit, sourceRef, runUrl, generatedBy) nunca é inventada — desconhecido permanece null (D16). Contrato do consumidor (src/feed/exportSource.ts do radar-server) preservado: budgets[] não-vazio; chaves extras ignoradas.
  • .github/workflows/radar-export.yml — em mudança do catálogo no main / dispatch manual / semanal, gera e clobra o asset estável radar-export-latest (via gh release, GH_TOKEN; checkout com persist-credentials: false).
  • Teste tests/unit/radar-export.test.mjs — contrato do consumidor + proveniência null-quando-desconhecido + reflexo do ambiente GitHub Actions. 3/3 verde.

URL estável (definir em RADAR_EXPORT_URL no .env do radar-server)

https://github.com/diegosouzapw/OmniRoute/releases/download/radar-export-latest/export-omniroute.json

Gates locais

  • check:test-discovery OK · check:workflows --ratchet OK (zizmorFindings re-baseline 190→192, +2 unpinned-uses @vn — convenção deliberada do repo; artipacked corrigido com persist-credentials: false).
  • Gerador rodado local: 455 modelos / 261 providers / proveniência com SHA.

⚠️ base-red inherited: #9985 (release/v3.8.50 tip já estava vermelho antes deste PR; falhas herdadas não são deste PR). Mudança é aditiva (script + workflow + teste), não toca produção src//open-sse/bin.

Passo 10 of the Radar go-live: publish the OmniRoute catalog export the Radar
server consumes to a stable URL, so the 1 GB-RAM private server pulls it via
RADAR_EXPORT_URL instead of depending on the deploy-time snapshot.

- scripts/release/radar-export.mjs: emits {geradoEm, budgets, totais, registry,
  provenance} from the catalog config modules. Provenance (sourceCommit,
  sourceRef, runUrl, generatedBy) is never fabricated — unknown fields stay null.
- .github/workflows/radar-export.yml: on main catalog changes / manual dispatch /
  weekly, generates the export and clobbers the stable 'radar-export-latest'
  release asset (gh release, GH_TOKEN — checkout persist-credentials:false).
- tests/unit/radar-export.test.mjs: consumer contract (budgets[] non-empty) +
  provenance null-when-unknown + GitHub-env reflection.

Stable URL for RADAR_EXPORT_URL:
https://github.com/diegosouzapw/OmniRoute/releases/download/radar-export-latest/export-omniroute.json

Re-baselines zizmorFindings 190->192 (+2 unpinned-uses @vn, the repo-wide
deliberate convention; artipacked auto-fixed).
@diegosouzapw
diegosouzapw merged commit 0f13fe4 into release/v3.8.50 Aug 20, 2026
11 checks passed
@diegosouzapw
diegosouzapw deleted the feat/radar-export-workflow branch August 20, 2026 11:10
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…inference#10826)

Passo 10 of the Radar go-live: publish the OmniRoute catalog export the Radar
server consumes to a stable URL, so the 1 GB-RAM private server pulls it via
RADAR_EXPORT_URL instead of depending on the deploy-time snapshot.

- scripts/release/radar-export.mjs: emits {geradoEm, budgets, totais, registry,
  provenance} from the catalog config modules. Provenance (sourceCommit,
  sourceRef, runUrl, generatedBy) is never fabricated — unknown fields stay null.
- .github/workflows/radar-export.yml: on main catalog changes / manual dispatch /
  weekly, generates the export and clobbers the stable 'radar-export-latest'
  release asset (gh release, GH_TOKEN — checkout persist-credentials:false).
- tests/unit/radar-export.test.mjs: consumer contract (budgets[] non-empty) +
  provenance null-when-unknown + GitHub-env reflection.

Stable URL for RADAR_EXPORT_URL:
https://github.com/diegosouzapw/OmniRoute/releases/download/radar-export-latest/export-omniroute.json

Re-baselines zizmorFindings 190->192 (+2 unpinned-uses @vn, the repo-wide
deliberate convention; artipacked auto-fixed).

Co-authored-by: Xiangzhe <bakryun0718@proton.me>
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.

2 participants