rototo
Reference

Workspace Manifest Reference

The workspace manifest defines the workspace boundary. It lives at the workspace root and is always named:

rototo-workspace.toml

The manifest declares the workspace schema version, the allowed environments, and optionally the runtime context schema.

Minimal Shape

schema_version = 1

[environments]
values = ["dev", "stage", "prod"]

schema_version

Required. Must be:

schema_version = 1

Unsupported or missing schema versions fail workspace inspection and lint.

[environments]

Required. Declares the named environments that variables may reference.

[environments]
values = ["dev", "stage", "prod"]

Rules:

Variables may define blocks such as [variable.env.prod] only for environments declared here. A variable must also define [variable.env._], but _ is not a workspace environment.

[context]

Optional. Declares the JSON Schema used to validate runtime context before qualifiers and variables are resolved.

[context]
schema = "schemas/context.schema.json"

The schema path must be a relative path inside the workspace. Absolute paths and paths containing .. are rejected.

When a context schema is present:

Context schema validation prevents malformed runtime context from silently falling through to a default value or selecting a value for the wrong reason.

Discovery

rototo discovers workspace files from conventional directories:

qualifiers/*.toml
variables/*.toml
schemas/*.json

Only direct .toml files in qualifiers/ and variables/ define qualifier and variable ids. The file stem is the id.

External variable value files live next to a variable in variables/<variable-id>-values/*.toml; see variable-reference.

Complete Example

schema_version = 1

[environments]
values = ["dev", "stage", "prod"]

[context]
schema = "schemas/context.schema.json"

Validation

Workspace manifest lint checks: