AWS sandbox connector documents and gateway network boundaries:
the operator role Lambda assumes to place the connector’s network interfaces, and the
AWS::Lambda::NetworkConnector those interfaces belong to.
The facts an AWS sandbox’s setup renders its scaffolding from. Setup applies them and the
runtime never re-reads them, so a change to any of them needs setup to run again.
Represents an artifact registry for storing container images and other build artifacts.
This is a high-level wrapper resource that provides a cloud-agnostic interface over
AWS ECR, GCP Artifact Registry, and Azure Container Registry.
The flow log on a VPC that Alien creates on AWS. The CloudFormation and Terraform network
emitters and the direct-setup network controller all build their flow log from this one
definition, and a parity test compares the rendered templates with it.
Represents a build resource that executes bash scripts to build code.
Builds are designed to be stateless and can be triggered on-demand to compile,
test, or package application code.
A waiting release whose setup change a Helm chart upgrade cannot carry. The
manager works this out from the release and the installed setup, so every
place that offers an upgrade agrees with the manager’s report handling.
Email infrastructure for sending and receiving mail on customer-owned
domains. On AWS this is backed by SES: a shared configuration set, optional
inbound/event wiring, and one email identity (Easy DKIM) per seed domain.
A Gemini Agent Platform reasoning engine: the durable parent that sandbox
environment templates and sandboxes hang under. One per sandbox, provisioned
once and addressed by the server-assigned id its controller records.
Represents a key-value storage resource that provides a minimal, platform-agnostic API
compatible across DynamoDB, Firestore, Redis, and Azure Table Storage.
A managed PostgreSQL database. The target platform decides the backend
(AWS Aurora Serverless v2, GCP Cloud SQL, Azure Flexible Server, or an
embedded native process on Local); the database is never publicly reachable.
Opt-in queue batching. Counts and windows are upper bounds, not guarantees.
Providers may deliver smaller batches. Delivery remains at least once and unordered.
Configuration for HTTP-based readiness probe.
This probe is executed after worker provisioning/update to verify the worker is ready to serve traffic.
Only works with workers that have Public ingress.
A managed, Redis-compatible in-memory store on a private network. The target
platform decides the backend (AWS ElastiCache for Valkey, GCP Memorystore for
Valkey, Azure Managed Redis, or the official Valkey image in Docker on Local). It is
never publicly reachable, and it is a single endpoint (not cluster mode), so
plain clients and multi-key scripts work.
Represents cross-account management access configuration for a stack deployed
on AWS, GCP, or Azure platforms. This resource sets up the necessary IAM/RBAC
configuration to allow another cloud account to manage the stack.
Represents a service activation that can be enabled on cloud platforms.
For GCP: enables project services (e.g., iam.googleapis.com, compute.googleapis.com).
For Azure: registers resource providers (e.g., Microsoft.DocumentDB, Microsoft.Storage).
Delivers matching object events to a queue in the same stack.
Rules on one Storage must not overlap: no object key may match two of them.
Delivery is at least once, so consumers must tolerate duplicates.
Per-lifecycle gateability of one resource type, derived from the ownership
table and the gate refusals. Serialized into the generated manifest the
TypeScript SDK’s surface test consumes.
Represents a serverless worker that executes code in response to triggers or direct invocations.
Workers are the primary compute resource in serverless applications, designed to be stateless and ephemeral.
Outbound network restriction enforced outside the container.
Internet access also permits this container’s own replicas on declared TCP ports,
own-service discovery, and the credential proxy for its own identity.
Absence preserves the runtime’s existing full-network behavior.
Cloud backend for a Postgres resource. Only Aurora Serverless v2 ships in v1;
the enum reserves the slot so provisioned RDS is an additive variant later.
Resource-attribute key marking OTLP telemetry as Alien system-component
output (infrastructure daemons and internal runtimes) rather than user
workload. Log consumers — the CLI log viewer and the dashboard — hide
telemetry carrying this attribute by default. The value is the string
"true".
Recommended cluster parameter group values for Aurora PostgreSQL, for any setup template
or controller that creates or updates the group. Connections must use TLS, and pgaudit
logs schema (ddl) and permission (role) changes. shared_preload_libraries keeps
Aurora’s default pg_stat_statements for families 14 to 18. It is a static parameter, so
a running writer loads pgaudit at its next restart or its next resume from auto-pause.
log_min_error_statement = panic keeps the text of failing statements, which can hold a
password, out of the logs; the error message itself is still logged. It is dynamic and
applies to a running writer without a restart.
Days after which S3 aborts a multipart upload that was started and never completed. Every
S3 bucket Alien creates, whether setup (CloudFormation, Terraform) or the storage controller
creates it, carries this rule next to the app’s own lifecycle rules. It gives each bucket the
lifecycle configuration that compliance checks require and never expires a stored object.
Most lifecycle rules S3 accepts on one bucket. The incomplete-upload rule is added only while
a bucket has room for it: a bucket at the limit already has a lifecycle configuration.
Days that every CloudWatch log group Alien creates keeps its events, whether setup
(CloudFormation, Terraform) or a runtime controller creates it. A year covers compliance
requirements to retain logs for twelve months. CloudWatch accepts only a fixed list of
values, and 365 is one of them.
Request headers an S3 CORS rule lets a browser send with a signed upload (PUT to a
presigned URL): the content headers a signer may bind, and x-amz-*, which covers the
checksums AWS SDKs add and x-amz-meta-*. S3 allows one * per header.
Azure Managed Redis Balanced SKUs in ascending order with their published memory in GB.
B0 is left out: the pricing page says B0 and B1 may lack some features, and B0 is half the
size of the smallest production tier. NoCluster caps a database at 25 GB, so B20 is the
largest. Sizes are the published figures; the live check of maxmemory is recorded in the
design notes.
Request headers an Azure Blob CORS rule lets a browser send with a signed upload (PUT
to a SAS URL). x-ms-* covers x-ms-blob-type, which Put Blob requires, the
x-ms-blob-content-* and x-ms-meta-* headers, and the x-ms-version and
x-ms-client-request-id headers the Azure SDK sends.
Deployment protocol written by actors with resumable protection, CORS and
database update states and retained deletion. Older readers must be fenced
before these states exist.
ElastiCache node types in ascending order with their published node memory in GiB.
One table for the controller, the CloudFormation emitter and the Terraform emitter.
Env var that carries a natively projected workload’s
DeployerSecretEnv list to its hosting controller, which resolves each
entry before the process starts (a secretKeyRef on Kubernetes, a vault
read on the local platform). It holds names only, never values.
Headers a GCS CORS rule lists for a signed upload. GCS uses one list (responseHeader)
for both the request headers a browser may send and the response headers it may read,
and matches each name exactly, so x-goog-meta-* headers can’t be listed.
CloudFormation AllowedPattern for the setup parameter. Empty keeps the
role trust unchanged, so stacks created before the parameter existed can be
updated without one.
CloudFormation AllowedPattern for the setup parameter when a template
requires it: empty is refused, so every install and update sets the trust
condition.
Most availability zones a created network can span. The AWS network gives each zone a
/20 public subnet from x.x.0.0 and a /20 private subnet from x.x.128.0 of the /16, so a
ninth zone would overlap the private range.
Memorystore for Valkey node types in ascending order with their default usable memory in
GB (decimal), from the published node specification. The CUSTOM_* types are left out: they
exist only for cluster-disabled instances and have not been exercised against a real project.
The fixed inner database name for cloud Postgres backends.
AWS rejects hyphens in DatabaseName, and the cluster/instance/server name already
carries the resource id, so the inner database is a fixed label rather than the id.
Every cloud emitter and controller derives its database name from this single constant
so a frozen import always binds to a database that exists. (Local names its database
after the resource id and does not use this.)
Most snapshots a volume may hold at once. Azure Disk Backup keeps at most 450
scheduled snapshots per disk; the same limit applies everywhere so a stack is
portable across clouds.
Trait that defines the interface for all resource types in the Alien system.
This trait enables extensibility by allowing new resource types to be registered
and managed alongside built-in resources.
Trait that defines the interface for all resource output types in the Alien system.
This trait enables extensibility by allowing new resource output types to be registered
and managed alongside built-in resource outputs.
Resource observations may gain fields as providers and servers are upgraded.
Implementations should accept unknown output fields so older readers remain compatible;
user-authored resource configuration is validated separately.
Accept unchanged reports or the explicit upgrade to this writer protocol.
Never permit downgrade or unknown protocols. Provider setup prerequisites
remain separate from this checkpoint compatibility check.
Classifies a declared code.image for Azure, or None when it is neither kind. A bare
[A-Za-z0-9._-]+ is checked first and always a catalog name; anything else must carry /,
: or @ and parse as an OCI reference.
Automatic packages install access and secret storage, then let the runtime
create application infrastructure. Cloud API activation and Azure’s containing
resource group must exist before their management identity can be installed.
Azure also installs application identities so management can name their
principals in the role-assignment conditions.
Finds the boolean deployer input a gate references, for render-time
re-validation. The compile-time preflight enforces the same two rules;
generators repeat them so a caller that renders without preflights cannot
ship a template whose gate variable is undeclared or non-boolean.
Whether a resource may carry an .enabled() gate at all. None means
gateable. Lifecycle legality is not decided here — a lifecycle the type
does not allow is refused by the lifecycle rules regardless of gating.
Inputs scoped away from the platform always resolve false, even with a provided value.
The deployer’s answer for a live gate: the provided value, else the
input’s declared boolean default. The error is the reason, for the caller to wrap.
A gate value from the wire: JSON booleans stay booleans, and the
CloudFormation parameter strings “true”/“false” coerce — CloudFormation
has no boolean parameter type, so its registration payloads deliver gate
answers as strings. Anything else is None, refused loudly by callers.
Resources whose state is replaced by an automatic setup package import.
Application resources are managed through the installed identity and must
retain their controller state when that package is reimported.
Architecture shared by source images built for this Kubernetes stack.
Unspecified pools and Workers inherit this build constraint, so their Pods
cannot land on incompatible nodes in a cluster with mixed architectures.
Match Pod placement to the architecture used by the stack’s source images.
This does not associate Workers with a compute pool or reserve node capacity.
The gate input of a runtime-created gated resource, None for anything
else. The mirror of frozen_gate_of — which side of the setup boundary a
gated resource falls on is decided in exactly these two places.
A live gate’s answer: the provided value, else the answer recorded when
the deployment was created (frozen dominance — a live resource sharing a
frozen-gating input follows the fixed answer, not the declared default),
else the declared default.
Remove mutable Live declines after mutations, retaining setup-owned node grants just as
derived service-account grants are retained. Later updates compare those Frozen configs
with the accepted render before applying Live declines. The setup digest uses this strip too.
Remove declined resources before mutations, including node grants that must name concrete
resources when the ComputeCluster mutation derives setup-owned node permissions.
Remove resources whose gate input is unavailable on this platform, including their links
and grants, plus any supplied container allocations. Unlike a mutable live decline,
these resources can never be enabled here.
Resolve defaults and validate only inputs that apply. Values for inactive
inputs are ignored, even when they would fail validation. Vault-native
secrets are checked in the deployer’s secret store instead.
The tags the template setups put on what they create for a resource, with the stack name
replaced by the resource prefix. A direct setup creating the same objects uses these.
The prefix a rebuild’s new key still sits under: everything above the file name and the
version segment beneath it. None when nothing sits there, meaning no prefix can be granted
without also granting objects a rebuild never reads. Shared so both emitters agree on it.
Frozen-gate answers read off a stack whose Frozen declines were already stripped: a surviving
gated setup-created resource reads as yes, even when its gate was never answered. So a strip
built on it never drops what the real strip keeps: a digest can miss a match, never fake one.
Whether an environment variable with these target_resources reaches
resource_id: every resource when unset, else an exact id or a prefix*
pattern. Env delivery and the permissions that follow from it (such as
reading a deployer secret) share this one rule.
Refuse resources whose setup-owned scaffolding cannot yet be created by runtime.
Check both package generation and deployment planning, including later additions.