Skip to content

feat: configure externally managed machine endpoints - #460

Merged
alongubkin merged 3 commits into
mainfrom
alon/alien-555-machine-public-endpoints
Aug 21, 2026
Merged

feat: configure externally managed machine endpoints#460
alongubkin merged 3 commits into
mainfrom
alon/alien-555-machine-public-endpoints

Conversation

@alongubkin

@alongubkin alongubkin commented Aug 20, 2026

Copy link
Copy Markdown
Member

Background

Adopted Machines deployments can already have stable customer-owned DNS names and certificates. Treating those deployments as if Alien owns their public hostname produces a second, incorrect URL and can make the control plane manage infrastructure it does not own.

Changes

  • add StackSettings.publicEndpoints using the existing nested resource/endpoint URL map
  • preserve every configured URL exactly; do not derive hostnames or synthesize wildcard URLs
  • document the field as the ownership boundary for adopted Machines endpoints
  • regenerate the public core schema and Manager OpenAPI/Rust SDK so the map survives deploy CLI → Manager conversion
  • initialize exhaustive StackSettings constructors so all Rust test targets continue to compile

Platform PR #431 consumes this field only for Machines deployments, validates complete endpoint ownership against the enabled stack before DNS writes, and excludes those resources from managed DNS/certificate planning.

Linear: ALIEN-553

Validation

  • cargo test -p alien-core machine_public_endpoints_round_trip_without_rewriting_urls --features openapi
  • cargo test -p alien-operator --no-run
  • cargo test -p alien-deploy-cli sdk_stack_settings_preserves_public_endpoints --lib
  • pnpm run generate:manager-rust-sdk
  • pnpm -C packages/core generate
  • pnpm -C packages/core build

@greptile-apps

greptile-apps Bot commented Aug 20, 2026

Copy link
Copy Markdown

Greptile Summary

The PR adds externally managed endpoint URLs to StackSettings and propagates the nested URL map through the manager API contract without rewriting values.

  • Adds the optional publicEndpoints shared setting and a serialization round-trip test.
  • Regenerates manager OpenAPI artifacts so generated SDK conversion preserves the setting.
  • Updates exhaustive operator test fixtures for the expanded shared struct.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
crates/alien-core/src/stack_settings.rs Adds optional externally managed endpoint URLs with camelCase serialization and verifies exact URL round-tripping.
crates/alien-deploy-cli/src/commands/up.rs Adds coverage proving the generated manager SDK conversion retains nested public endpoint URLs.
crates/alien-operator/src/config.rs Updates exhaustive test-only StackSettings literals for the new optional field.
client-sdks/manager/openapi.json Exposes publicEndpoints as an optional nested string map in the manager API schema.
client-sdks/manager/rust/openapi-3.0.json Updates the Rust SDK generator input with the compatible nullable nested-map property.

Sequence Diagram

sequenceDiagram
  participant Config as Deployment config
  participant Core as alien_core::StackSettings
  participant SDK as Manager SDK StackSettings
  participant Manager as alien-manager
  Config->>Core: Deserialize publicEndpoints
  Core->>SDK: JSON conversion preserving nested URLs
  SDK->>Manager: Send StackSettings
Loading

Reviews (3): Last reviewed commit: "fix: preserve adopted public endpoints t..." | Re-trigger Greptile

Comment thread crates/alien-core/src/stack_settings.rs
Comment thread crates/alien-core/src/stack_settings.rs
@alongubkin
alongubkin force-pushed the alon/alien-555-machine-public-endpoints branch from 252cbd7 to 1506cc1 Compare August 21, 2026 00:04
@alongubkin
alongubkin changed the base branch from main to alon/alien-559-regenerate-worker-runtime-typescript-client-for-locked-ts August 21, 2026 00:04
Base automatically changed from alon/alien-559-regenerate-worker-runtime-typescript-client-for-locked-ts to main August 21, 2026 01:39
@alongubkin
alongubkin merged commit 36c9f48 into main Aug 21, 2026
31 checks passed
@alongubkin
alongubkin deleted the alon/alien-555-machine-public-endpoints branch August 21, 2026 01:40
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