Skip to content

Commit 6b5938b

Browse files
authored
Merge pull request #132 from QuantStrategyLab/codex/provision-api-reviewer-env
fix: load provider credentials for audit service
2 parents e142d37 + cdcd5f1 commit 6b5938b

3 files changed

Lines changed: 9 additions & 0 deletions

File tree

ops/codex-audit/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ Fully automatic monthly model tier maintenance:
1414
Repo secrets `OPENAI_API_KEY` / `ANTHROPIC_API_KEY` are written to
1515
`/etc/codex-audit-bridge/model-catalog.env` by the self-hosted workflow
1616
[Deploy Model Catalog Sync](../../.github/workflows/deploy_model_catalog_sync.yml).
17+
The same root-owned file is imported by `codex-audit-service`; no provider key
18+
is placed in repository code, workflow output, or an inline systemd setting.
1719

1820
- **auto**: push to `main` that touches catalog paths triggers deploy
1921
- **manual**: Actions → Deploy Model Catalog Sync → `deploy` / `inspect` / `sync-now`

scripts/deploy_codex_audit_service.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ ALLOWED_DIRECT_REPOSITORIES="${CODEX_AUDIT_SERVICE_ALLOWED_DIRECT_REPOSITORIES:-
2222
ALLOWED_SOURCE_REPOSITORIES="${CODEX_AUDIT_SERVICE_ALLOWED_SOURCE_REPOSITORIES:-QuantStrategyLab/AIAuditBridge,QuantStrategyLab/BinancePlatform,QuantStrategyLab/CharlesSchwabPlatform,QuantStrategyLab/CnEquitySnapshotPipelines,QuantStrategyLab/CnEquityStrategies,QuantStrategyLab/CryptoLivePoolPipelines,QuantStrategyLab/CryptoStrategies,QuantStrategyLab/FirstradePlatform,QuantStrategyLab/HkEquitySnapshotPipelines,QuantStrategyLab/HkEquityStrategies,QuantStrategyLab/IBKRGatewayManager,QuantStrategyLab/InteractiveBrokersPlatform,QuantStrategyLab/LongBridgePlatform,QuantStrategyLab/MarketSignalSources,QuantStrategyLab/PoliticalEventTrackingResearch,QuantStrategyLab/QmtPlatform,QuantStrategyLab/QuantAdvisorResearch,QuantStrategyLab/QuantPlatformKit,QuantStrategyLab/QuantRuntimeSettings,QuantStrategyLab/QuantStrategyPlugins,QuantStrategyLab/ResearchSignalContextPipelines,QuantStrategyLab/SchwabTokenAutoRefresher,QuantStrategyLab/UsEquitySnapshotPipelines,QuantStrategyLab/UsEquityStrategies}"
2323
JOB_DIR="${CODEX_AUDIT_SERVICE_JOB_DIR:-/var/lib/codex-audit-bridge/jobs}"
2424
ADMIN_ENV_FILE="${CODEX_AUDIT_SERVICE_ADMIN_ENV_FILE:-/etc/codex-audit-bridge/admin.env}"
25+
# The model-catalog deploy owns the provider-key file. Reuse that root-owned
26+
# file instead of duplicating API keys in a second deployment path.
27+
PROVIDER_ENV_FILE="${CODEX_AUDIT_SERVICE_PROVIDER_ENV_FILE:-/etc/codex-audit-bridge/model-catalog.env}"
2528
EXECUTION_POLICY_FILE="${CODEX_AUDIT_SERVICE_EXECUTION_POLICY_PATH:-/etc/codex-audit-bridge-policy/execution_policy.json}"
2629
AUDIT_MODEL="${CODEX_AUDIT_SERVICE_MODEL:-}"
2730
AUDIT_REASONING_EFFORT="${CODEX_AUDIT_SERVICE_REASONING_EFFORT:-}"
@@ -386,6 +389,7 @@ Environment=CODEX_AUDIT_SERVICE_OPENAI_USAGE_WINDOW_DAYS=${OPENAI_USAGE_WINDOW_D
386389
Environment=CODEX_AUDIT_SERVICE_ANTHROPIC_USAGE_WINDOW_DAYS=${ANTHROPIC_USAGE_WINDOW_DAYS}
387390
Environment=CODEX_AUDIT_SERVICE_SANDBOX=read-only
388391
EnvironmentFile=-${ADMIN_ENV_FILE}
392+
EnvironmentFile=-${PROVIDER_ENV_FILE}
389393
${audit_model_line}
390394
${audit_reasoning_effort_line}
391395
${audit_token_line}

tests/test_run_monthly_codex_audit.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2490,6 +2490,9 @@ def test_vps_deploy_adds_nginx_audit_route_without_router_service(self) -> None:
24902490
self.assertIn("ANTHROPIC_USAGE_WINDOW_DAYS=", deploy_script)
24912491
self.assertIn("CODEX_AUDIT_SERVICE_ADMIN_ENV_FILE", deploy_script)
24922492
self.assertIn("EnvironmentFile=-${ADMIN_ENV_FILE}", deploy_script)
2493+
self.assertIn("CODEX_AUDIT_SERVICE_PROVIDER_ENV_FILE", deploy_script)
2494+
self.assertIn("EnvironmentFile=-${PROVIDER_ENV_FILE}", deploy_script)
2495+
self.assertIn("/etc/codex-audit-bridge/model-catalog.env", deploy_script)
24932496
self.assertIn("sudo install -m 0600 -o root -g root", deploy_script)
24942497
self.assertIn('sudo rm -f "$ADMIN_ENV_FILE"', deploy_script)
24952498
self.assertNotIn("Environment=OPENAI_ADMIN_KEY=", deploy_script)

0 commit comments

Comments
 (0)