@nimba/config
v0.17.0
Published
Nimba task/flow library and layered nimba.yml config system (a compatible superset of cumulusci.yml).
Readme
@nimba/config
The Nimba task/flow library and config system — ships the built-in universal.nimba.yml (32 flows, the standard task definitions) and the loader, schema, and layering that turn nimba.yml files into a resolved project config.
Part of Nimba, modern Salesforce DevOps orchestration in TypeScript. Most users want
@nimba/cli, not this package directly.
Install
npm install @nimba/configWhat it is
- The universal library (
universal.nimba.yml) — Nimba's built-in tasks and flows (dev_org,ci_feature,ci_master,install_prod, the 2GP/unlocked release chains, and more), shipped with the package. - Config loader + schema — parses and validates
nimba.yml, a compatible superset ofcumulusci.yml, into a typed config. - Layering — merges config lowest-to-highest precedence: built-in universal library → machine-wide override (
~/.nimba/nimba.yml) → project./nimba.yml→ project-local override. - Condition evaluation — the
when:step conditions overproject_config.*/org_config.*. - Named workflow graphs — optional
start, named steps, conditionaltransitions, bounded cycles with explicit exhaustion targets, per-node JSON output schemas, and typedterminals. Existing numbered sequential flows remain unchanged.
Named graph example
flows:
review:
start: inspect
steps:
inspect:
task: inspect_change
output_schema:
type: object
required: [outcome]
transitions:
- to: inspect
when: { path: result.data.outcome, equals: retry }
maxTransitions: 3
exhausted: retry_exhausted
- to: approved
when: { path: result.data.outcome, equals: approved }
terminals:
approved: { status: completed }
retry_exhausted: { status: loop-exhausted }Named graph limits
- A
flow:node runs its target on the sequential runner, so a named graph cannot nest another named graph. Nest a numbered sequential flow, or inline the child's nodes into the parent. Config that nests one is rejected at load, including across asources:boundary. - Unlike tasks and flows a source ships that Nimba's schema doesn't model — which are skipped with a warning — an invalid named graph from a source fails the load. A graph that silently disappears resurfaces later as
unknown flow, far from its cause.
Requirements
- Node.js >= 20
