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.

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.