Skip to content

Configuard

Builds a nested, typed configuration object from a flat list of config items, with templating and accessor-based (ABAC) filtering. Built on notation.
const cfg = new Configuard(rows, { accessor: AccessorType.SYSTEM });
cfg.get<number>('device.port'); // 8080 — typed & nested, built from flat config rows
cfg.has('device.ui.accent'); // true

Flat → Nested & Typed

Turn a tall key / value config table into a nested object, each value cast to its declared type.

Templating

${...} references resolve recursively; circular and missing references are caught, not ignored.

ABAC Filtering

Each row declares an accessor; clients see only what their accessor and bitwise app level allow.

Immutable & Fail-Loud

The built object is deep-frozen by default, and a corrupt row throws at construction — never a silent partial build.

Admin Round-Trip

parseFlat() renders rows as editable fields; serializeFlat() validates edits back into a DB-ready diff.

Encryption-Aware

Bring your own crypto: a decrypt/encrypt hook handles encrypt: true values at rest.

The NestJS integration — wires a DB‑backed, typed, ABAC‑filtered config object into Nest’s DI, with live reload and TTL auto‑refresh. See the guide.

Read, modify, and filter JavaScript objects and arrays with notation strings or glob patterns. Configuard is built on it.

Role- and attribute-based access control (RBAC/ABAC) for Node.js — pairs with Configuard’s row-level filtering.