diff --git a/docs.json b/docs.json index d67a0f4..31f6fcf 100644 --- a/docs.json +++ b/docs.json @@ -143,6 +143,7 @@ "pages": [ "module-definitions/definition-schema/module", "module-definitions/definition-schema/inputs", + "module-definitions/definition-schema/input-types", "module-definitions/definition-schema/stack", "module-definitions/definition-schema/build", "module-definitions/definition-schema/deploy", diff --git a/module-definitions/definition-schema/input-types.mdx b/module-definitions/definition-schema/input-types.mdx new file mode 100644 index 0000000..7bca501 --- /dev/null +++ b/module-definitions/definition-schema/input-types.mdx @@ -0,0 +1,21 @@ +--- +title: "Module definition schema: Input types" +sidebarTitle: "Input types" +description: "Reference every module input type — string, number, boolean, object, array, map, compound, section, git repo, and ref — with its fields and options." +boost: 0.5 +"og:image": "https://www.ravion.com/og/docs/module-definitions/definition-schema/input-types.png" +"twitter:image": "https://www.ravion.com/og/docs/module-definitions/definition-schema/input-types.png" +--- + +{/* Generated by scripts/sync-schema-reference.mjs from ../flightcontrol/packages/schemas/schema_reference/docs/module.md. Do not edit by hand. */} + +import SchemaReferencePart from "/snippets/schema-reference/module/input-types.mdx"; + + + > The full rendered schema reference is omitted from this Markdown view to save tokens. + > Fetch [https://api.ravion.com/module-definitions/schema.md](https://api.ravion.com/module-definitions/schema.md) for the complete module definition schema in a compact, machine-readable format. + + + + + diff --git a/module-definitions/definition-schema/inputs.mdx b/module-definitions/definition-schema/inputs.mdx index 7139006..18418fe 100644 --- a/module-definitions/definition-schema/inputs.mdx +++ b/module-definitions/definition-schema/inputs.mdx @@ -1,7 +1,7 @@ --- title: "Module definition schema: Inputs" sidebarTitle: "Inputs" -description: "Reference module input fields, types, defaults, validation rules, visibility, and conditional behavior used to configure module instances safely." +description: "Reference module input defaults, validation rules, visibility conditions, and dynamic value references used to configure module instances safely." boost: 0.5 "og:image": "https://www.ravion.com/og/docs/module-definitions/definition-schema/inputs.png" "twitter:image": "https://www.ravion.com/og/docs/module-definitions/definition-schema/inputs.png" diff --git a/scripts/sync-schema-reference.mjs b/scripts/sync-schema-reference.mjs index be64cdf..c7dc7b4 100644 --- a/scripts/sync-schema-reference.mjs +++ b/scripts/sync-schema-reference.mjs @@ -38,6 +38,10 @@ const splitDocs = [ }, {title: "ECS task definitions", match: /^Ecs/}, ], + Inputs: [ + {title: "Inputs"}, + {title: "Input types", match: /InputProperty$/}, + ], }, standaloneSections: ["Template expressions"], titleOverrides: {ui: "UI"}, @@ -70,7 +74,13 @@ const splitDocs = [ title: "Module definition schema: Inputs", sidebarTitle: "Inputs", description: - "Reference module input fields, types, defaults, validation rules, visibility, and conditional behavior used to configure module instances safely.", + "Reference module input defaults, validation rules, visibility conditions, and dynamic value references used to configure module instances safely.", + }, + "input-types": { + title: "Module definition schema: Input types", + sidebarTitle: "Input types", + description: + "Reference every module input type — string, number, boolean, object, array, map, compound, section, git repo, and ref — with its fields and options.", }, module: { title: "Module definition schema: Module", diff --git a/snippets/schema-reference/module-index.mdx b/snippets/schema-reference/module-index.mdx index 252ef50..2ee9450 100644 --- a/snippets/schema-reference/module-index.mdx +++ b/snippets/schema-reference/module-index.mdx @@ -2,6 +2,7 @@ - [Module](/module-definitions/definition-schema/module) - [Inputs](/module-definitions/definition-schema/inputs) +- [Input types](/module-definitions/definition-schema/input-types) - [Stack](/module-definitions/definition-schema/stack) - [Build](/module-definitions/definition-schema/build) - [Deploy](/module-definitions/definition-schema/deploy) diff --git a/snippets/schema-reference/module/build.mdx b/snippets/schema-reference/module/build.mdx index 50b0e5f..7aa11ed 100644 --- a/snippets/schema-reference/module/build.mdx +++ b/snippets/schema-reference/module/build.mdx @@ -59,7 +59,7 @@ Image build configuration for a module. Build-specific inputs shown when running a module build. Same types as module inputs — reuses the InputProperty union. - See: [InputProperty](/module-definitions/definition-schema/inputs#inputproperty) + See: [InputProperty](/module-definitions/definition-schema/input-types#inputproperty) @@ -136,7 +136,7 @@ step. Build-specific inputs shown when running a module build. Same types as module inputs — reuses the InputProperty union. - See: [InputProperty](/module-definitions/definition-schema/inputs#inputproperty) + See: [InputProperty](/module-definitions/definition-schema/input-types#inputproperty) @@ -212,7 +212,7 @@ Static build configuration for a module. Build-specific inputs shown when running a module build. Same types as module inputs — reuses the InputProperty union. - See: [InputProperty](/module-definitions/definition-schema/inputs#inputproperty) + See: [InputProperty](/module-definitions/definition-schema/input-types#inputproperty) diff --git a/snippets/schema-reference/module/deploy.mdx b/snippets/schema-reference/module/deploy.mdx index 9c11632..475bfd0 100644 --- a/snippets/schema-reference/module/deploy.mdx +++ b/snippets/schema-reference/module/deploy.mdx @@ -58,7 +58,7 @@ AWS static site deployment configuration Deployment-specific inputs shown in the deploy modal. Same types as module inputs — reuses the InputProperty union. - See: [InputProperty](/module-definitions/definition-schema/inputs#inputproperty) + See: [InputProperty](/module-definitions/definition-schema/input-types#inputproperty) @@ -127,7 +127,7 @@ only supported deployment strategy. Deployment-specific inputs shown in the deploy modal. Same types as module inputs — reuses the InputProperty union. - See: [InputProperty](/module-definitions/definition-schema/inputs#inputproperty) + See: [InputProperty](/module-definitions/definition-schema/input-types#inputproperty) @@ -171,7 +171,7 @@ routing alias shifts are deliberately out of scope for v1. Deployment-specific inputs shown in the deploy modal. Same types as module inputs — reuses the InputProperty union. - See: [InputProperty](/module-definitions/definition-schema/inputs#inputproperty) + See: [InputProperty](/module-definitions/definition-schema/input-types#inputproperty) diff --git a/snippets/schema-reference/module/ecs-deployments.mdx b/snippets/schema-reference/module/ecs-deployments.mdx index b9f4be3..bb4aab7 100644 --- a/snippets/schema-reference/module/ecs-deployments.mdx +++ b/snippets/schema-reference/module/ecs-deployments.mdx @@ -59,7 +59,7 @@ AWS ECS deployment configuration Deployment-specific inputs shown in the deploy modal Same types as module inputs — reuses the InputProperty union - See: [InputProperty](/module-definitions/definition-schema/inputs#inputproperty) + See: [InputProperty](/module-definitions/definition-schema/input-types#inputproperty) diff --git a/snippets/schema-reference/module/input-types.mdx b/snippets/schema-reference/module/input-types.mdx new file mode 100644 index 0000000..69fa8da --- /dev/null +++ b/snippets/schema-reference/module/input-types.mdx @@ -0,0 +1,1241 @@ +{/* Generated by scripts/sync-schema-reference.mjs from ../flightcontrol/packages/schemas/schema_reference/docs/module.md. Do not edit by hand. */} + +## Legend + +| Notation | Meaning | +| --------------- | ---------------------------------------------- | +| `T[]` | Array of `T` | +| `map` | Object keyed by strings with `T` values | +| `enum[a,b]` | One of the listed values | +| `A \| B` | One of several types | +| ~template | Field accepts `<< ... >>` template expressions | + +### InputProperty + +Union of all input property types. +Discriminated by the `type` field on each property model. +Each variant has a literal `type` property for TypeScript narrowing. + +One of: [StringInputProperty](#stringinputproperty), [TextInputProperty](#textinputproperty), [ObjectInputProperty](#objectinputproperty), [ObjectMapInputProperty](#objectmapinputproperty), [ObjectArrayInputProperty](#objectarrayinputproperty), [ArrayInputProperty](#arrayinputproperty), [ArrayStringInputProperty](#arraystringinputproperty), [NumberInputProperty](#numberinputproperty), [BooleanInputProperty](#booleaninputproperty), [SectionInputProperty](#sectioninputproperty), [CompoundInputProperty](#compoundinputproperty), [RefInputProperty](#refinputproperty), [GitRepoInputProperty](#gitrepoinputproperty), [KeyValueInputProperty](#keyvalueinputproperty). + +### ArrayInputProperty + +Array editor input property. +Allows users to enter an arbitrary JSON array with syntax highlighting and validation. +Supports both YAML and JSON formats in the UI. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for array editor fields + + Allowed values: `array` + + + + Default array value for the field + + _(templateable)_ + + + + Placeholder text when the field is empty + + + + Whether the field must be filled in + + +### ArrayStringInputProperty + +Array of strings input property. +Allows users to add/remove multiple string values. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for dynamic string arrays + + Allowed values: `string_array` + + + + Default array of values + + _(templateable)_ + + + + Placeholder text for each input field in the array + + + + Label for the "Add" button below the list + + + + Allowed values — static array of options or dynamic reference for a multi-select dropdown + + See: [StringValues](/module-definitions/definition-schema/inputs#stringvalues) + + + + Whether at least one item is required + + + + Regex patterns to validate each array item against + + See: [ValidationPattern](/module-definitions/definition-schema/inputs#validationpattern) + + + + Maximum number of items in the list. Enforces an upper bound at + form-validation time and on submit. Used by cert-group domains + fields (capped at 10 to match ACM's default SAN limit). + Optional. + + _(format:int32)_ + + +### BooleanInputProperty + +Boolean toggle/checkbox input property. +Renders as a toggle switch or checkbox in the UI. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for boolean toggle fields + + Allowed values: `boolean` + + + + Default boolean value + + _(templateable)_ + + +### CompoundInputProperty + +Compound select input property. +Allows selecting from options where each option contains multiple fields. +The `fields` array specifies which fields from the selected value to expose. + +Note: CEL validation ensures values is always provided for compound inputs. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for compound select dropdowns + + Allowed values: `compound` + + + + List of field names to expose from the selected compound value + + _(minItems:1)_ + + + + Default value — a record with the field values + + _(templateable)_ + + + + Whether the field must be filled in + + + + Allowed values — static array of options or dynamic reference (required for compound) + + See: [CompoundValues](/module-definitions/definition-schema/inputs#compoundvalues) + + + + Message shown when the dropdown has no available options + + + + Use the current deployed value as the minimum allowed value + + +### GitRepoInputProperty + +Git repository input property. +Renders a repository selector that stores the full repo URL. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for git repository selector + + Allowed values: `gitrepo` + + + + Default repository URL + + + + Placeholder text when the field is empty + + + + Whether the field must be filled in + + +### KeyValueInputProperty + +Key-value pairs input property. +Allows users to enter a flat map of string keys to string values. +Renders a dynamic key-value editor with add/remove buttons. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for key-value editor fields + + Allowed values: `keyvalue` + + + + Default key-value pairs for the field + + _(templateable)_ + + + + Whether the field must have at least one key-value pair + + +### NumberInputProperty + +Numeric input property. +Can be a free-form number field or a dropdown/select when values are provided. + +Note: CEL validation ensures min <= max when both are specified. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for numeric fields + + Allowed values: `number` + + + + Default numeric value + + _(templateable)_ + + + + Placeholder text when the field is empty + + + + Whether the field must be filled in + + + + Allowed values — static array of options or dynamic reference for a dropdown + + See: [NumberValues](/module-definitions/definition-schema/inputs#numbervalues) + + + + Message shown when the dropdown has no available options + + + + Minimum allowed value + + _(format:int32)_ + + + + Maximum allowed value + + _(format:int32)_ + + + + Use the current deployed value as the minimum allowed value + + +### ObjectArrayInputProperty + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for structured object arrays + + Allowed values: `object_array` + + + + Default array value for the field + + See: [ObjectArrayDefaultItem](/module-definitions/definition-schema/inputs#objectarraydefaultitem) + + _(templateable)_ + + + + Whether the field must contain at least one item + + + + Label for each array item, used in add buttons and editor headers + + + + User-facing title template for each array item. + + See: [ObjectCollectionItemTitleConfig](/module-definitions/definition-schema/inputs#objectcollectionitemtitleconfig) + + + + User-facing description template shown as a secondary line for each array item. + Supports placeholders like {field_id}. + + _(templateable)_ + + + + Input definitions for each object value in the array. + + See: [InputProperty](#inputproperty) + + _(minItems:1)_ + + +### ObjectInputProperty + +Object editor input property. +Allows users to enter arbitrary object data with syntax highlighting and validation. +Supports both YAML and JSON formats in the UI. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for object editor fields + + Allowed values: `object` + + + + Default object value for the field + + _(templateable)_ + + + + Placeholder text when the field is empty + + + + Whether the field must be filled in + + +### ObjectMapInputProperty + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for structured object maps + + Allowed values: `object_map` + + + + Default map value for the field + + _(templateable)_ + + + + Whether the field must contain at least one entry + + + + Metadata for the map entry key field. + + See: [MapKeyConfig](/module-definitions/definition-schema/inputs#mapkeyconfig) + + + + User-facing title template for each map item. + + See: [ObjectCollectionItemTitleConfig](/module-definitions/definition-schema/inputs#objectcollectionitemtitleconfig) + + + + Label for each map item, used in add buttons and editor headers + + + + Input definitions for each object value in the map. + + See: [InputProperty](#inputproperty) + + _(minItems:1)_ + + +### RefInputProperty + +Module reference input property. +Allows selecting another module instance or manually entering fallback inputs. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Reference to another module type — format is "$ref:<module-type>" + + + + Input definitions that copy values from the selected referenced module into + this module's input values. Each mapped input is saved as a normal input on + the current module. When users do not select a module instance, these same + fields are shown for manual entry. + Nested module references are not allowed in mapped inputs. + + See: [RefFallbackInputProperty](#reffallbackinputproperty) + + + + Whether the module reference is required + + +### SectionInputProperty + +Visual section separator property. +Used to separate sections in the module form. +Does not produce any input value - purely for visual organization. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Input type for visual section separators — produces no value + + Allowed values: `section` + + +### StringInputProperty + +Single-line text input property. +Can be a free-form text field or a dropdown/select when values are provided. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for single-line text fields + + Allowed values: `string` + + + + Default value for the field + + _(templateable)_ + + + + Placeholder text when the field is empty + + + + Static, non-editable text shown as an adornment before the input (left + side). Use to frame the value, e.g. a wildcard prefix. May contain a + << ... >> template resolved against the form context. + + + + Static, non-editable text shown as an adornment after the input (right + side). May contain a << ... >> template resolved against the form context + (e.g. the platform domain apex). An unresolved/empty template renders no + suffix. + + + + Whether the field must be filled in + + + + Allowed values — static array of options or dynamic reference for a dropdown + + See: [StringValues](/module-definitions/definition-schema/inputs#stringvalues) + + + + Message shown when the dropdown has no available options + + + + Regex patterns to validate against + + See: [ValidationPattern](/module-definitions/definition-schema/inputs#validationpattern) + + + + Use the current deployed value as the minimum allowed value + + +### TextInputProperty + +Multi-line text area input property. +Used for longer text content like descriptions, commands, or configuration. + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for multi-line text areas + + Allowed values: `text` + + + + Default value for the field + + _(templateable)_ + + + + Placeholder text when the field is empty + + + + Whether the field must be filled in + + + + Regex patterns to validate against + + See: [ValidationPattern](/module-definitions/definition-schema/inputs#validationpattern) + + +### RefFallbackInputProperty + +Input properties allowed inside module reference fallback inputs. +Nested module references are intentionally excluded to prevent references from +recursively declaring more references through their mapped inputs. +Keep this union in sync with InputProperty except for the ref member and the +collection variants, which recursively use this fallback union. + +Discriminated union. The `type` field selects which schema applies. + +| `type` value | Schema | +| -------------- | --------------------------------------------------------------------------- | +| `array` | [ArrayInputProperty](#arrayinputproperty) | +| `boolean` | [BooleanInputProperty](#booleaninputproperty) | +| `compound` | [CompoundInputProperty](#compoundinputproperty) | +| `gitrepo` | [GitRepoInputProperty](#gitrepoinputproperty) | +| `keyvalue` | [KeyValueInputProperty](#keyvalueinputproperty) | +| `number` | [NumberInputProperty](#numberinputproperty) | +| `object` | [ObjectInputProperty](#objectinputproperty) | +| `object_array` | [RefFallbackObjectArrayInputProperty](#reffallbackobjectarrayinputproperty) | +| `object_map` | [RefFallbackObjectMapInputProperty](#reffallbackobjectmapinputproperty) | +| `section` | [SectionInputProperty](#sectioninputproperty) | +| `string` | [StringInputProperty](#stringinputproperty) | +| `string_array` | [ArrayStringInputProperty](#arraystringinputproperty) | +| `text` | [TextInputProperty](#textinputproperty) | + +### RefFallbackObjectArrayInputProperty + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for structured object arrays + + Allowed values: `object_array` + + + + Default array value for the field + + See: [ObjectArrayDefaultItem](/module-definitions/definition-schema/inputs#objectarraydefaultitem) + + _(templateable)_ + + + + Whether the field must contain at least one item + + + + Label for each array item, used in add buttons and editor headers + + + + User-facing title template for each array item. + + See: [ObjectCollectionItemTitleConfig](/module-definitions/definition-schema/inputs#objectcollectionitemtitleconfig) + + + + User-facing description template shown as a secondary line for each array item. + Supports placeholders like {field_id}. + + _(templateable)_ + + + + Input definitions allowed inside a module reference's mapped inputs. + + See: [RefFallbackInputProperty](#reffallbackinputproperty) + + _(minItems:1)_ + + +### RefFallbackObjectMapInputProperty + + + Unique identifier for this input. + + _(minLen:1)_ + + + + Text shown above the form field + + _(minLen:1)_ + + + + Help text shown below the label + + + + Only show this field when another field has a specific value + + See: [ShowWhen](/module-definitions/definition-schema/inputs#showwhen) + + + + Lock this field after first deploy — prevents changes to destructive settings + + + + Input IDs from earlier module versions whose values this input now holds. + Upgrading an existing instance to this version does not trip the immutable + input check for the listed inputs or for this one, so a module version can + rename or merge immutable inputs without forcing a destroy and recreate. + + + + Render this field as collapsible (tag when collapsed, full field when expanded) + + Supported for all value-producing input types. + Consecutive collapsible fields are automatically grouped together. + Divider inputs break collapsible groups. + + + + Input type for structured object maps + + Allowed values: `object_map` + + + + Default map value for the field + + _(templateable)_ + + + + Whether the field must contain at least one entry + + + + Metadata for the map entry key field. + + See: [MapKeyConfig](/module-definitions/definition-schema/inputs#mapkeyconfig) + + + + User-facing title template for each map item. + + See: [ObjectCollectionItemTitleConfig](/module-definitions/definition-schema/inputs#objectcollectionitemtitleconfig) + + + + Label for each map item, used in add buttons and editor headers + + + + Input definitions allowed inside a module reference's mapped inputs. + + See: [RefFallbackInputProperty](#reffallbackinputproperty) + + _(minItems:1)_ + diff --git a/snippets/schema-reference/module/inputs.mdx b/snippets/schema-reference/module/inputs.mdx index 1a58273..61dc40d 100644 --- a/snippets/schema-reference/module/inputs.mdx +++ b/snippets/schema-reference/module/inputs.mdx @@ -14,1019 +14,6 @@ Input configuration defining the module's form fields -### InputProperty - -Union of all input property types. -Discriminated by the `type` field on each property model. -Each variant has a literal `type` property for TypeScript narrowing. - -One of: [StringInputProperty](#stringinputproperty), [TextInputProperty](#textinputproperty), [ObjectInputProperty](#objectinputproperty), [ObjectMapInputProperty](#objectmapinputproperty), [ObjectArrayInputProperty](#objectarrayinputproperty), [ArrayInputProperty](#arrayinputproperty), [ArrayStringInputProperty](#arraystringinputproperty), [NumberInputProperty](#numberinputproperty), [BooleanInputProperty](#booleaninputproperty), [SectionInputProperty](#sectioninputproperty), [CompoundInputProperty](#compoundinputproperty), [RefInputProperty](#refinputproperty), [GitRepoInputProperty](#gitrepoinputproperty), [KeyValueInputProperty](#keyvalueinputproperty). - -### ArrayInputProperty - -Array editor input property. -Allows users to enter an arbitrary JSON array with syntax highlighting and validation. -Supports both YAML and JSON formats in the UI. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for array editor fields - - Allowed values: `array` - - - - Default array value for the field - - _(templateable)_ - - - - Placeholder text when the field is empty - - - - Whether the field must be filled in - - -### ArrayStringInputProperty - -Array of strings input property. -Allows users to add/remove multiple string values. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for dynamic string arrays - - Allowed values: `string_array` - - - - Default array of values - - _(templateable)_ - - - - Placeholder text for each input field in the array - - - - Label for the "Add" button below the list - - - - Allowed values — static array of options or dynamic reference for a multi-select dropdown - - See: [StringValues](#stringvalues) - - - - Whether at least one item is required - - - - Regex patterns to validate each array item against - - See: [ValidationPattern](#validationpattern) - - -### BooleanInputProperty - -Boolean toggle/checkbox input property. -Renders as a toggle switch or checkbox in the UI. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for boolean toggle fields - - Allowed values: `boolean` - - - - Default boolean value - - _(templateable)_ - - -### CompoundInputProperty - -Compound select input property. -Allows selecting from options where each option contains multiple fields. -The `fields` array specifies which fields from the selected value to expose. - -Note: CEL validation ensures values is always provided for compound inputs. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for compound select dropdowns - - Allowed values: `compound` - - - - List of field names to expose from the selected compound value - - _(minItems:1)_ - - - - Default value — a record with the field values - - _(templateable)_ - - - - Whether the field must be filled in - - - - Allowed values — static array of options or dynamic reference (required for compound) - - See: [CompoundValues](#compoundvalues) - - - - Message shown when the dropdown has no available options - - - - Use the current deployed value as the minimum allowed value - - -### GitRepoInputProperty - -Git repository input property. -Renders a repository selector that stores the full repo URL. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for git repository selector - - Allowed values: `gitrepo` - - - - Default repository URL - - - - Placeholder text when the field is empty - - - - Whether the field must be filled in - - -### KeyValueInputProperty - -Key-value pairs input property. -Allows users to enter a flat map of string keys to string values. -Renders a dynamic key-value editor with add/remove buttons. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for key-value editor fields - - Allowed values: `keyvalue` - - - - Default key-value pairs for the field - - _(templateable)_ - - - - Whether the field must have at least one key-value pair - - -### NumberInputProperty - -Numeric input property. -Can be a free-form number field or a dropdown/select when values are provided. - -Note: CEL validation ensures min <= max when both are specified. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for numeric fields - - Allowed values: `number` - - - - Default numeric value - - _(templateable)_ - - - - Placeholder text when the field is empty - - - - Whether the field must be filled in - - - - Allowed values — static array of options or dynamic reference for a dropdown - - See: [NumberValues](#numbervalues) - - - - Message shown when the dropdown has no available options - - - - Minimum allowed value - - _(format:int32)_ - - - - Maximum allowed value - - _(format:int32)_ - - - - Use the current deployed value as the minimum allowed value - - -### ObjectArrayInputProperty - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for structured object arrays - - Allowed values: `object_array` - - - - Default array value for the field - - See: [ObjectArrayDefaultItem](#objectarraydefaultitem) - - _(templateable)_ - - - - Whether the field must contain at least one item - - - - Label for each array item, used in add buttons and editor headers - - - - User-facing title template for each array item. - - See: [ObjectCollectionItemTitleConfig](#objectcollectionitemtitleconfig) - - - - User-facing description template shown as a secondary line for each array item. - Supports placeholders like {field_id}. - - _(templateable)_ - - - - Input definitions for each object value in the array. - - See: [InputProperty](#inputproperty) - - _(minItems:1)_ - - -### ObjectInputProperty - -Object editor input property. -Allows users to enter arbitrary object data with syntax highlighting and validation. -Supports both YAML and JSON formats in the UI. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for object editor fields - - Allowed values: `object` - - - - Default object value for the field - - _(templateable)_ - - - - Placeholder text when the field is empty - - - - Whether the field must be filled in - - -### ObjectMapInputProperty - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for structured object maps - - Allowed values: `object_map` - - - - Default map value for the field - - _(templateable)_ - - - - Whether the field must contain at least one entry - - - - Metadata for the map entry key field. - - See: [MapKeyConfig](#mapkeyconfig) - - - - User-facing title template for each map item. - - See: [ObjectCollectionItemTitleConfig](#objectcollectionitemtitleconfig) - - - - Label for each map item, used in add buttons and editor headers - - - - Input definitions for each object value in the map. - - See: [InputProperty](#inputproperty) - - _(minItems:1)_ - - -### RefInputProperty - -Module reference input property. -Allows selecting another module instance or manually entering fallback inputs. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Reference to another module type — format is "$ref:<module-type>" - - - - Input definitions that copy values from the selected referenced module into - this module's input values. Each mapped input is saved as a normal input on - the current module. When users do not select a module instance, these same - fields are shown for manual entry. - Nested module references are not allowed in mapped inputs. - - See: [RefFallbackInputProperty](#reffallbackinputproperty) - - - - Whether the module reference is required - - -### SectionInputProperty - -Visual section separator property. -Used to separate sections in the module form. -Does not produce any input value - purely for visual organization. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Input type for visual section separators — produces no value - - Allowed values: `section` - - -### StringInputProperty - -Single-line text input property. -Can be a free-form text field or a dropdown/select when values are provided. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for single-line text fields - - Allowed values: `string` - - - - Default value for the field - - _(templateable)_ - - - - Placeholder text when the field is empty - - - - Whether the field must be filled in - - - - Allowed values — static array of options or dynamic reference for a dropdown - - See: [StringValues](#stringvalues) - - - - Message shown when the dropdown has no available options - - - - Regex patterns to validate against - - See: [ValidationPattern](#validationpattern) - - - - Use the current deployed value as the minimum allowed value - - -### TextInputProperty - -Multi-line text area input property. -Used for longer text content like descriptions, commands, or configuration. - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for multi-line text areas - - Allowed values: `text` - - - - Default value for the field - - _(templateable)_ - - - - Placeholder text when the field is empty - - - - Whether the field must be filled in - - - - Regex patterns to validate against - - See: [ValidationPattern](#validationpattern) - - ### ShowWhen Conditional visibility mapping; array source values support contains and contains-all matching. @@ -1137,32 +124,6 @@ Configuration for the string key of an object_map entry. String used to join computed key field values. Defaults to "-". -### RefFallbackInputProperty - -Input properties allowed inside module reference fallback inputs. -Nested module references are intentionally excluded to prevent references from -recursively declaring more references through their mapped inputs. -Keep this union in sync with InputProperty except for the ref member and the -collection variants, which recursively use this fallback union. - -Discriminated union. The `type` field selects which schema applies. - -| `type` value | Schema | -| -------------- | --------------------------------------------------------------------------- | -| `array` | [ArrayInputProperty](#arrayinputproperty) | -| `boolean` | [BooleanInputProperty](#booleaninputproperty) | -| `compound` | [CompoundInputProperty](#compoundinputproperty) | -| `gitrepo` | [GitRepoInputProperty](#gitrepoinputproperty) | -| `keyvalue` | [KeyValueInputProperty](#keyvalueinputproperty) | -| `number` | [NumberInputProperty](#numberinputproperty) | -| `object` | [ObjectInputProperty](#objectinputproperty) | -| `object_array` | [RefFallbackObjectArrayInputProperty](#reffallbackobjectarrayinputproperty) | -| `object_map` | [RefFallbackObjectMapInputProperty](#reffallbackobjectmapinputproperty) | -| `section` | [SectionInputProperty](#sectioninputproperty) | -| `string` | [StringInputProperty](#stringinputproperty) | -| `string_array` | [ArrayStringInputProperty](#arraystringinputproperty) | -| `text` | [TextInputProperty](#textinputproperty) | - ### RefTypeDiscriminator Type discriminator for module references. @@ -1262,175 +223,6 @@ Used in number input validation.values arrays. See: [ShowWhen](#showwhen) -### RefFallbackObjectArrayInputProperty - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for structured object arrays - - Allowed values: `object_array` - - - - Default array value for the field - - See: [ObjectArrayDefaultItem](#objectarraydefaultitem) - - _(templateable)_ - - - - Whether the field must contain at least one item - - - - Label for each array item, used in add buttons and editor headers - - - - User-facing title template for each array item. - - See: [ObjectCollectionItemTitleConfig](#objectcollectionitemtitleconfig) - - - - User-facing description template shown as a secondary line for each array item. - Supports placeholders like {field_id}. - - _(templateable)_ - - - - Input definitions allowed inside a module reference's mapped inputs. - - See: [RefFallbackInputProperty](#reffallbackinputproperty) - - _(minItems:1)_ - - -### RefFallbackObjectMapInputProperty - - - Unique identifier for this input. - - _(minLen:1)_ - - - - Text shown above the form field - - _(minLen:1)_ - - - - Help text shown below the label - - - - Only show this field when another field has a specific value - - See: [ShowWhen](#showwhen) - - - - Lock this field after first deploy — prevents changes to destructive settings - - - - Input IDs from earlier module versions whose values this input now holds. - Upgrading an existing instance to this version does not trip the immutable - input check for the listed inputs or for this one, so a module version can - rename or merge immutable inputs without forcing a destroy and recreate. - - - - Render this field as collapsible (tag when collapsed, full field when expanded) - - Supported for all value-producing input types. - Consecutive collapsible fields are automatically grouped together. - Divider inputs break collapsible groups. - - - - Input type for structured object maps - - Allowed values: `object_map` - - - - Default map value for the field - - _(templateable)_ - - - - Whether the field must contain at least one entry - - - - Metadata for the map entry key field. - - See: [MapKeyConfig](#mapkeyconfig) - - - - User-facing title template for each map item. - - See: [ObjectCollectionItemTitleConfig](#objectcollectionitemtitleconfig) - - - - Label for each map item, used in add buttons and editor headers - - - - Input definitions allowed inside a module reference's mapped inputs. - - See: [RefFallbackInputProperty](#reffallbackinputproperty) - - _(minItems:1)_ - - ### ShowWhenComparableValue Value or values to compare against in a show_when condition; arrays mean membership for scalar sources and contains-all for array sources. diff --git a/snippets/schema-reference/module/module.mdx b/snippets/schema-reference/module/module.mdx index f6d840d..12512a8 100644 --- a/snippets/schema-reference/module/module.mdx +++ b/snippets/schema-reference/module/module.mdx @@ -18,7 +18,7 @@ Defines the module input form configuration and related metadata. Input configuration defining the module's form fields - See: [InputProperty](/module-definitions/definition-schema/inputs#inputproperty) + See: [InputProperty](/module-definitions/definition-schema/input-types#inputproperty) diff --git a/snippets/schema-reference/module/stack.mdx b/snippets/schema-reference/module/stack.mdx index d1fb4ee..51f949b 100644 --- a/snippets/schema-reference/module/stack.mdx +++ b/snippets/schema-reference/module/stack.mdx @@ -335,16 +335,29 @@ Concurrency configuration for controlling parallel execution Behavior when the concurrency limit is reached + "queue" waits for a slot; "cancel-in-progress" cancels older contenders; + "cancel-intermediate" preserves the oldest contender and newest + contenders while cancelling the oldest intermediates; "skip" denies the new contender and + ends the run as skipped. + This controls trigger/step/block admission only and never relaxes the + separate deployment-manager serialization used by deploy steps. Default: "queue" - Allowed values: `queue` | `cancel-in-progress` | `skip` + Allowed values: `queue` | `cancel-in-progress` | `cancel-intermediate` | `skip` - Maximum queue size when behavior is "queue" - Only applies when behavior is "queue" - Unset means unlimited queue depth - 0 disables queueing when behavior is "queue" + Maximum queue size for "queue"; for cancelling behaviors, widens the + survivor window. Unset means unlimited queue capacity; 0 means no queue + and immediate denial. With "queue", immediate denial is reported as + QUEUEING_DISABLED and the pipeline run ends as cancelled with "the trigger + concurrency queue was full"; "skip" also denies immediately but ends the + run as skipped. For "cancel-in-progress" and "cancel-intermediate", the + survivor window is value + queue_size (plus the oldest contender for + "cancel-intermediate"); contenders outside it are cancelled or evicted at + admission even when queue_size is unset, so unset does not mean unlimited + retention. For "cancel-intermediate", the survivors are the oldest + contender plus the newest value + queue_size - 1 contenders. _(format:int32,min:0)_ @@ -447,6 +460,7 @@ Allowed values: - `queue` - `cancel-in-progress` +- `cancel-intermediate` - `skip` ### Pipeline.ConcurrencyScope diff --git a/snippets/schema-reference/pipeline.mdx b/snippets/schema-reference/pipeline.mdx index e248c17..13037f1 100644 --- a/snippets/schema-reference/pipeline.mdx +++ b/snippets/schema-reference/pipeline.mdx @@ -30,6 +30,8 @@ Pipeline configuration - the top-level schema Deployment variants such as production, staging, or dev — each variant can lock specific input values See: [VariantDefinition](#variantdefinition) + + _(minItems:1)_ @@ -291,16 +293,29 @@ Concurrency configuration for controlling parallel execution Behavior when the concurrency limit is reached + "queue" waits for a slot; "cancel-in-progress" cancels older contenders; + "cancel-intermediate" preserves the oldest contender and newest + contenders while cancelling the oldest intermediates; "skip" denies the new contender and + ends the run as skipped. + This controls trigger/step/block admission only and never relaxes the + separate deployment-manager serialization used by deploy steps. Default: "queue" - Allowed values: `queue` | `cancel-in-progress` | `skip` + Allowed values: `queue` | `cancel-in-progress` | `cancel-intermediate` | `skip` - Maximum queue size when behavior is "queue" - Only applies when behavior is "queue" - Unset means unlimited queue depth - 0 disables queueing when behavior is "queue" + Maximum queue size for "queue"; for cancelling behaviors, widens the + survivor window. Unset means unlimited queue capacity; 0 means no queue + and immediate denial. With "queue", immediate denial is reported as + QUEUEING_DISABLED and the pipeline run ends as cancelled with "the trigger + concurrency queue was full"; "skip" also denies immediately but ends the + run as skipped. For "cancel-in-progress" and "cancel-intermediate", the + survivor window is value + queue_size (plus the oldest contender for + "cancel-intermediate"); contenders outside it are cancelled or evicted at + admission even when queue_size is unset, so unset does not mean unlimited + retention. For "cancel-intermediate", the survivors are the oldest + contender plus the newest value + queue_size - 1 contenders. _(format:int32,min:0)_ @@ -403,6 +418,7 @@ Allowed values: - `queue` - `cancel-in-progress` +- `cancel-intermediate` - `skip` ### ConcurrencyScope @@ -922,9 +938,9 @@ Parallel step - executes children concurrently See: [ConcurrencyConfig](#concurrencyconfig) - + How to handle failures while branches in this parallel block are running - Default: "cancel-all" + Default: "finish-all" Allowed values: `cancel-all` | `finish-running` | `finish-all` @@ -1281,7 +1297,22 @@ Custom command CI action step ### DeployStep -General-purpose deploy action step — triggers a deployment based on the module's deployment config. +General-purpose deploy action step — triggers a deployment based on the +module's deployment config. + +Deploy steps also acquire a separate deployment-manager lock scoped to the +organization and module instance, so deployments of the same module +instance serialize across pipelines and other deployment entry points. +The effective defaults are max_concurrent=1, queue_size=1, and +queue_overflow=oldest; module-level `deployment.concurrency` may override +queue_size and queue_overflow. An entirely zero-valued deployment +concurrency object receives queue_size=1, while an explicit queue_size=0 +(with the module resolver's explicit overflow value) disables queuing. +When the queue is full and overflow is `oldest`, the queued deployment is +evicted and its workflow is denied with reason `queue_rejected`, resulting +in a deployment failure rather than a pipeline concurrency cancellation. +This serialization is independent of trigger/step/block concurrency: +`cancel-intermediate` and other pipeline behaviors do not relax it. Unique step identifier, used for referencing in logs and dependencies diff --git a/snippets/schema-reference/project-config.mdx b/snippets/schema-reference/project-config.mdx index 63b4087..0626dfc 100644 --- a/snippets/schema-reference/project-config.mdx +++ b/snippets/schema-reference/project-config.mdx @@ -36,6 +36,8 @@ Writable project metadata accepted by project config apply. User-provided project identifier. When provided, it must match the project in the route. + When the route identifier does not resolve to an existing project, `givenId` is required and + must equal it, which confirms the config intends to create that project.