alien-core
Core types shared across all Alien crates. Defines the vocabulary of the platform.
Modules
stack/stack_state/stack_settings— Stack definitions, resource graph, frozen vs live lifecycledeployment/— Deployment types: status, config, state, release, compute, domain, environment variablesplatform— Platform enum (Aws, Gcp, Azure, Kubernetes, Local)resource/resources/— Resource types and per-resource configs (Worker, Container, Storage, KV, Queue, Vault, etc.)bindings//external_bindings— Binding type definitions and external (bring-your-own) bindingscommands_types— Remote command protocol types (CommandState, Envelope, BodySpec)permissions— Permission definitionsevents//app_events/— Platform events (storage, queue, cron) and application-level eventssync— Sync protocol types for pull-model deploymentsembedded_config— Embedded configuration for pre-configured / rebranded binariesimage_rewrite— OCI image URI rewriting for registry proxypresigned— Presigned URL typesdev_status—DevStatustype foralien devmachine interfaceclient_config—ClientConfigandImpersonationConfigfor cloud credential configurationbuild_targets— Binary target definitions (architecture, OS)load_balancer— Load balancer configuration typesinstance_catalog— Instance/machine type catalog
Type Generation
Types are exported to TypeScript for @alienplatform/core:
Rust types (alien-core)
→ schema_exporter.rs (utoipa)
→ OpenAPI JSON
→ Kubb (packages/core/kubb.config.ts)
→ Zod schemas + TypeScript types
Adding New Types
- Define with
#[derive(Serialize, Deserialize)]and#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] - Add to
schema_exporter.rsin#[openapi(components(schemas(...)))] - Run
pnpm generate && pnpm buildfrom workspace root - Export from
packages/core/src/index.ts