Skip to content

feat(proxy): surface anonymous egress-IP sharing in the health sweep and the egress API - #10876

Merged
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
maxmad64bis:feat/10677-egress-sharing-summary
Aug 20, 2026
Merged

diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
maxmad64bis:feat/10677-egress-sharing-summary

Conversation

@maxmad64bis

Copy link
Copy Markdown
Contributor

⚠️ base-red inherited: #9985

Summary

When several accounts of the same rotation group exit through one egress IP,
the provider can revoke them all at once — the situation behind codex anomaly
revocations. OmniRoute already detects it (analyzeEgressSharing), but only
behind a management-authenticated curl. This PR surfaces the signal where
operators actually look: the periodic proxy-health sweep and the egress API
response, as counts only.

Related Issues

Closes #10677. Respects the redaction decision from #10348 (merged via #10539):
no IP literals and no account identities by default; PROXY_LOG_INCLUDE_IPS=true
remains the only raw-detail opt-in.

Validation

  • Change type: provider / routing / UI / i18n / CLI / DB / build-deploy / other
  • Focused tests and category gates from the golden path
  • npm run lint
  • Reconciled with the current active release base; focused checks rerun afterward
  • Production-code changes include a new or updated automated test in this PR

Tests Added Or Updated

tests/unit/proxy-egress-summary.test.ts (pure aggregate, 6 cases),
tests/unit/proxy-health-egress-line.test.ts (sweep line, anonymous + opt-in),
tests/unit/proxy-egress-route-summary.test.ts (additive API summary, auth).
All green; lint clean.

Coverage Notes

The pure function and the formatter are covered directly. The sweep line is
proven by capturing console output of a real forced sweep. The route test
exercises the full auth path with a management key.

Reviewer Notes

The aggregate reuses analyzeEgressSharing — same rotation-group semantics as
the existing diagnostic, no new taxonomy. The rolling window is a fixed 24h.
The summary helper reads persisted proxy_logs (zero new SQL); a DB hiccup on
the sweep's summary is caught and logged without failing the sweep.

@maxmad64bis
maxmad64bis force-pushed the feat/10677-egress-sharing-summary branch from fce910d to 2b66a11 Compare August 20, 2026 17:20
@diegosouzapw
diegosouzapw merged commit e6801ba into diegosouzapw:release/v3.8.50 Aug 20, 2026
5 checks passed
@maxmad64bis
maxmad64bis deleted the feat/10677-egress-sharing-summary branch September 24, 2026 21:11
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…and the egress API (diegosouzapw#10876)

Obrigado — expõe onde o operador realmente olha (sweep periódico de saúde de proxy + resposta da API de egress) o sinal de compartilhamento anônimo de IP de egress entre contas de um mesmo rotation group, que já existia (analyzeEgressSharing) mas só era acessível via curl autenticado. Fecha diegosouzapw#10677. Respeita a decisão de redação do diegosouzapw#10348/diegosouzapw#10539: apenas contagens por padrão, nenhum IP/identidade de conta a menos que PROXY_LOG_INCLUDE_IPS=true.

Validação (worktree combinado a partir de origin/release/v3.8.50, 0 conflitos):
- typecheck:core limpo, complexity/cognitive-complexity dentro do baseline
- tests/unit/proxy-egress-route-summary.test.ts + proxy-egress-summary.test.ts + proxy-health-egress-line.test.ts — 23/23 passando (agregado, formatter, linha do sweep com output real capturado, rota completa com auth de management)
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.

feat(resilience): Surface anonymous egress-IP sharing in the proxy health sweep and the egress API

2 participants