Repository navigation
feat: validate deploy configs without side effects - #661
Merged
Merged
Conversation
Member
Author
|
@greptileai review |
|
Member
Author
|
@greptileai review |
Member
Author
|
@greptileai please re-review the latest head, focusing on whether public --validate-only is fully offline before execution-context/auth resolution. |
…-config-validation # Conflicts: # crates/alien-cli/src/commands/deploy.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
Deploy TOML deliberately uses camelCase outer fields, kebab-case network variant tags, and snake_case provider fields. Users and agents previously had to enter the real deployment path—often after publishing and downloading an installer—just to discover a typo or cross-provider mismatch.
Closes ALIEN-886.
Reproduce
This config uses the wrong provider-field casing:
There was no explicit no-side-effect validation flow. In the public CLI, even the first
--validate-onlyimplementation still constructed an execution context first: an inheritedALIEN_MANAGER_URLwithoutALIEN_API_KEYfailed authentication before reading the file.Fix
Both CLI surfaces support:
The public CLI dispatches validation before manager/platform execution-context construction. The path uses the production serde parser and validates unknown fields, effective platform (including Kubernetes base platform), required non-local name, provider-specific networks, and compute bounds before token resolution, tracker access, or API calls.
Using the executable production parser is the contract here; this PR does not claim to generate a second schema artifact.
Verification
ALIEN_MANAGER_URL, removesALIEN_API_KEY, invokes the realalienbinary, and proves validation succeeds offline.--configenforcement.a4b23c994: Rust, TypeScript, qualification, conventions, and automated review all pass; Greptile re-review is running.