memory engine is a complete connector with no database behind it. It exists for three jobs:
- Demos and tests that need a governed connection in one command, with no server to install.
- The worked example a new connector is written against.
- A home for the certification corpus: 124 cases, strict, including around eighty adversarial ones.
Configuring one
The command grammar
This engine is command-shaped rather than string-shaped, which is the point: it proves the IR is not secretly SQL-flavoured.find, insert, update, delete, create, drop, eval. Filters take scalars or one operator each (eq, in, ne, gt, gte, lt, lte, exists). "$0" references a bound parameter.
The parser refuses rather than guesses:
- A key the verb does not use — a
findcarryingset— is refused, not ignored. Ignoring it is how a write gets reviewed as a harmless read. - A filter on a field the resource does not have is refused, because it would otherwise read as a precise lookup while matching nothing.
- A malformed parameter token (
$x,$-1) is refused rather than treated as a literal string. - An operator it cannot normalise becomes an unknown predicate carrying a hazard, which makes the operation unbounded — the honest representation of “well-formed, and I cannot reason about it”.
What it certifies
go run ./cmd/wardencert -engine memory -strict runs every category against it: contract, parse, classification, adversarial, scope, governance, limits, dry run, and fence. It is the suite that runs on every commit in CI, and the corpus a new connector inherits.
Guarantees are labelled honestly here too. The engine has no transactions, so a DDL preview reports
static fidelity rather than pretending to be exact — the same rule that governs every other connector.