Skip to content

Check declared credentials at launch, not at compile - #91

Merged
varunursekar merged 1 commit into
mainfrom
credential-check-at-run
Sep 13, 2026
Merged

varunursekar merged 1 commit into
mainfrom
credential-check-at-run

Conversation

@varunursekar

@varunursekar varunursekar commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

vero harbor build used to refuse to compile unless every credential a build declares was present in the environment, even though compiling writes only the variable names into task.toml and compose. Every compile-only use (preflight, CI, tests, docs) therefore carried VERO_SKIP_SECRET_CHECK=1, and CI exported placeholder keys to satisfy it.

  • The check moves to vero harbor run, after the env file is loaded and before anything is compiled or spent. Same message, same guard, at the one place the values are consumed.
  • VERO_SKIP_SECRET_CHECK is gone from the compiler, the docs (11 files) and the CI workflow's placeholder env.
  • New CLI test: a run with an unset declared credential exits non-zero, names the variable, and never reaches the compiler. The compiler test that expected the failure now asserts the opposite: compiling with the value unset succeeds and emits the placeholder.

Verification

tests/test_v05_harbor_build.py, tests/test_v05_cli.py, tests/test_v05_harbor_http.py and tests/test_v05_benchmark_configs.py pass with OPENAI_API_KEY and OPENAI_BASE_URL unset.

🤖 Generated with Claude Code

RetriggerConfidence Score: 5/5

The PR appears safe to merge; the credential check is placed at the supported launch boundary without changing generated credential routing.

Summary

  • Compile-only workflows can now emit tasks containing credential placeholders without requiring credential values.
  • Launch validation runs after env-file loading and before model preflight, compilation, or execution.
  • The new helper keeps ordinary task secrets and gateway upstream credential sources aligned with generated launch configuration.
  • Tests and benchmark documentation are updated for the new lifecycle contract.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    A[Load env file] --> B[Resolve build parameters]
    B --> C[Load and validate config]
    C --> D[Collect declared credential names]
    D --> E{All values present?}
    E -->|No| F[Fail before compilation or spend]
    E -->|Yes| G[Preflight models]
    G --> H[Compile temporary Harbor task]
    H --> I[Transform gateway environment]
    I --> J[Launch Harbor]
    K[Compile-only build] --> L[Emit placeholders without credential values]
Loading

Reviews (1) · Last reviewed commit: "Check declared credentials at launch, no..."

Compiling writes only the variable names into task.toml and compose, so the
compiler's insistence that every value be set forced VERO_SKIP_SECRET_CHECK
onto every compile-only use and placeholder keys onto CI. The check moves to
vero harbor run, after the env file is loaded and before anything is
compiled or spent. The flag is gone from the compiler, eleven documents and
the CI workflow.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@varunursekar
varunursekar merged commit c3c2055 into main Sep 13, 2026
7 checks passed
@varunursekar
varunursekar deleted the credential-check-at-run branch September 13, 2026 05:18
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