Inputs
Inputs are defined in aninputs.toml file in the root of your app config directory:
inputs.toml
sandbox.toml
Customer-Facing Inputs
By default, inputs are vendor-facing and set through the dashboard. To allow customers to set an input directly through the install stack (CloudFormation, Azure Resource Manager (Bicep), Terraform), mark it asuser_configurable:
inputs.toml
AWS Cloud-Connection Stack Parameters
For AWS installs provisioned through a cloud connection, configure root and nested CloudFormation parameters directly in the Git install config. Nuon input declarations are not required:"{{ .nuon.inputs.inputs.instance_class }}".
Root parameters are passed on stack creation and update, not embedded as defaults. Nested parameters are merged into the
generated nested-stack resource and take precedence over app-configured values and automatic root/output wiring.
Nested targets use the app’s custom_nested_stacks names from stack.toml, not AWS-generated physical stack names.
VPC and RunnerAutoScalingGroup are reserved built-in targets. A parameter-only change retains the nested stack’s
template URL, index, and other app-configured parameter values. Unknown targets and undeclared parameter names fail
generation rather than being silently ignored.
The cloudformation block requires an AWS cloud_connection in the install config. The connection must already exist
in the organization and be verified; reference it by name or ID. This block does not configure Azure or GCP deployments.
It is supported only by Git-backed install config sync. nuon installs sync rejects configs containing this block before
applying any installs; commit the config to its app branch instead.
Approving a new Git install config creates the install and automatically queues stack-only provisioning. Changes to an
existing cloud-connected install config automatically queue stack reprovisioning. Nuon applies the managed stack; these
workflows do not provision the sandbox or deploy app components. Unchanged configs do not queue another stack workflow,
and retries reuse the same workflow.
Omitting cloudformation.root.parameters preserves saved root overrides; an empty table clears them. Omitting
cloudformation.nested_stacks preserves saved nested overrides; providing it replaces the saved nested override set,
and an empty table clears that set. These are overrides over the app defaults, not replacements for app stack entries.
Explicit literal empty-string values are passed through, rather than treated as missing. A template referencing an empty
install input still follows normal input-default resolution; use a literal "" when you need to clear a parameter value.
Literal credentials are plaintext config data, even when CloudFormation masks them with NoEcho. Prefer secret ARNs
to literal credentials in Git. Passing an ARN does not import the secret automatically: the template or runtime still
needs to read it, with the appropriate Secrets Manager and KMS permissions.
Input Groups
Inputs can be organized into groups to control how they are displayed in the dashboard during install creation:inputs.toml
Variables
Variables are managed through the CLI:{{ .nuon.app.variables.<variable-name> }}.
If you add or update a variable after an install has been created, the install’s state must be refreshed before the
new value is available. Running a deploy or sandbox provision triggers a state update.
Secrets
Secret metadata is defined in asecrets.toml file. The actual values are entered by the customer when deploying the
install stack:
secrets.toml
[[secret.kubernetes_sync_targets]] syncs the secret as a Kubernetes Secret object after sandbox provisioning, using
the details provided. This approach allows for easy definition of secrets in whatever shape is desired and enables
reflection of secrets across different namespaces. We support multiple [[secret.kubernetes_sync_targets]] entries.
We also support the following method which is less flexible:
secrets.toml
value key.
Using Secrets in Components
Secrets are referenced as outputs from the install stack:components/database.toml
deployment.yaml