Changelog
ChangelogSDK

Deployment inputs

When your software runs inside your customer's cloud, it needs real values to start: endpoints, connection strings, API keys. Some of them are yours. Some only the customer's admin has.

Deployment inputs let you declare every one of them in alien.ts. Each input says what it is, how it's validated, and who provides it.

const inputs = alien.inputs({
  databaseUrl: alien.string({
    providedBy: "deployer",
    required: true,
    label: "Database URL",
    description: "Postgres connection string inside the customer's network.",
    pattern: "^postgres://",
    env: "DATABASE_URL",
  }),
  controlPlaneApiKey: alien.secret({
    providedBy: "developer",
    required: true,
    label: "Control plane API key",
    description: "Authorizes this deployment with your control plane.",
    env: "CONTROL_PLANE_API_KEY",
  }),
})

The important part is providedBy, which decides who gets asked:

  • developer values are collected on your side, and the customer never sees them.
  • deployer values are asked of the customer's admin at install time, because they're specific to their own environment.

From that one declaration, Alien validates each value and collects it everywhere setup happens: the dashboard, deployment portal, CLI, CloudFormation, Terraform, and Helm. Types cover strings, secrets, numbers, integers, booleans, enums, and lists, and secrets stay masked, encrypted at rest, and out of generated IaC and logs.

Read the docs →

Alon GubkinYonatan Shkolnik
Alon & Yonatan