Skip to content

feat: harden BYOC deployment workflows - #419

Open
alongubkin wants to merge 1 commit into
mainfrom
alon/alien-322-harden-byoc-deployment-workflows
Open

feat: harden BYOC deployment workflows#419
alongubkin wants to merge 1 commit into
mainfrom
alon/alien-322-harden-byoc-deployment-workflows

Conversation

@alongubkin

Copy link
Copy Markdown
Member

Summary

  • Make deployment cleanup idempotent when late manager operations return not found.
  • Add package list, inspect, and verified download commands to the vendor CLI.
  • Apply embedded branding consistently across generated deployment CLIs and improve effective compute and config-path feedback.
  • Expose compute-pool failure-domain spread and select nested-virtualization-capable machines across AWS, GCP, and Azure.

Validation

  • Vendor CLI library suite: 173 passed.
  • Deployment CLI library suite: 116 passed.
  • Compute selection, package download, branding, config-path, and manager transport tests pass.
  • TypeScript core SDK: 83 tests and full typecheck pass.

@greptile-apps

greptile-apps Bot commented Aug 15, 2026

Copy link
Copy Markdown

Greptile Summary

The 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.

  • Adds platform package list, get, and checksum-aware download commands.
  • Treats missing deployments as successful terminal cleanup during final reconciliation and lock release.
  • Applies embedded branding throughout deploy CLI help and status output.
  • Adds compute-pool failure-domain spread and extends nested-virtualization-aware machine selection to GCP and Azure.

Confidence Score: 4/5

The 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

Important Files Changed

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
Loading

Fix all with Greploop

Fix All in Codex

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(),
},
)?;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 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.

Fix in Codex

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