feat: harden BYOC deployment workflows - #419
Conversation
Greptile SummaryThe PR hardens deployment cleanup and expands BYOC deployment tooling, including package inspection/download commands, embedded CLI branding, compute feedback, failure-domain spread configuration, and multi-cloud nested-virtualization selection.
Confidence Score: 4/5The PR should not merge until package endpoints preserve path-prefixed platform base URLs used by proxied or self-hosted installations. The new package commands replace the configured base URL path, causing all package operations to target the wrong route whenever the platform API is hosted beneath a URL prefix. Files Needing Attention: crates/alien-cli/src/commands/packages.rs
|
| Filename | Overview |
|---|---|
| crates/alien-cli/src/commands/packages.rs | Adds package listing, inspection, artifact selection, download, and checksum verification; endpoint construction incorrectly discards configured base-URL path prefixes. |
| crates/alien-cli/src/lib.rs | Registers and dispatches the platform-only packages command while correctly including its JSON-output mode. |
| crates/alien-core/src/instance_catalog.rs | Extends nested-virtualization capability classification and selection to supported GCP and Azure machine families. |
| crates/alien-deployment/src/manager_api_transport.rs | Makes terminal deletion reconciliation and release idempotent when the manager confirms that the deployment no longer exists. |
| crates/alien-deploy-cli/src/lib.rs | Parses clap commands through embedded branding and recursively rewrites command help text. |
| packages/core/src/compute-cluster.ts | Adds bounded per-pool failure-domain spread validation and serializes the values into compute configuration. |
| crates/alien-gcp-clients/src/gcp/compute.rs | Adds the GCP advanced-machine-features request model and serialization coverage for nested virtualization. |
Sequence Diagram
sequenceDiagram
participant User
participant CLI as alien packages
participant API as Platform API
participant Store as Artifact storage
User->>CLI: packages list/get/download
CLI->>API: Resolve project-scoped package metadata
API-->>CLI: Package outputs and artifact URL
CLI->>Store: Download without platform bearer token
Store-->>CLI: Artifact bytes
CLI->>CLI: Verify SHA-256 when supplied
CLI-->>User: Write destination and report result
Prompt To Fix All With AI
### Issue 1
crates/alien-cli/src/commands/packages.rs:282
**Package URLs discard base paths**
If the configured platform base URL includes a path prefix, `set_path` replaces that prefix with `/v1/packages`, causing list, get, and download requests to reach the wrong route and fail with responses such as 404.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (1): Last reviewed commit: "feat: harden BYOC deployment workflows" | Re-trigger Greptile
| ErrorData::ConfigurationError { | ||
| message: "platform base URL is invalid".to_string(), | ||
| }, | ||
| )?; |
There was a problem hiding this comment.
Package URLs discard base paths
If the configured platform base URL includes a path prefix, set_path replaces that prefix with /v1/packages, causing list, get, and download requests to reach the wrong route and fail with responses such as 404.
Knowledge Base Used: Developer CLI and Deploy CLI
Prompt To Fix With AI
This is a comment left during a code review.
Path: crates/alien-cli/src/commands/packages.rs
Line: 282
Comment:
**Package URLs discard base paths**
If the configured platform base URL includes a path prefix, `set_path` replaces that prefix with `/v1/packages`, causing list, get, and download requests to reach the wrong route and fail with responses such as 404.
**Knowledge Base Used:** [Developer CLI and Deploy CLI](https://app.greptile.com/alien/-/custom-context/knowledge-base/alienplatform/alien/-/docs/developer-cli.md)
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Summary
Validation