Skip to content
Talk to our solutions team

Included plugins

Every name a rule can call comes from either the engine itself or a plugin. Four plugins are always registered; one is requested per run. Nothing else needs installing.

PluginBindsRegistered
utilutil, num, strings, time, math, map, arrayAlways
loglogAlways
findingsfindingsAlways
deliverydeliveryAlways
bboxbboxWhen the run carries a document

out, audit and in are not plugins — the engine binds them directly on every execution.

These four are the batteries-included set. A rule can assume them without the caller configuring anything.

One plugin, seven namespaces. It contributes the whole helper surface in a single registration: util, num, strings, time, math, map and array.

Full signatures are on Functions.

Binds log, with Debug, Info, Warn and Error. Pass a single string — the variadic key/value tail is a host-side convenience the grammar cannot construct.

Binds findings, the severity-graded validation channel. Every parameter is a string; there is no struct to construct. See Findings.

Binds delivery, which turns collected results into the shape a particular wire format expects. One method:

CallEffect
delivery.ExplodeColumn(source, section, column, nameTemplate, count)Flattens one column of an extracted table into exactly count numbered output fields

It exists because a flat wire format cannot carry an array. A repeating group — ten alternate names, fourteen employers — has to become a fixed set of numbered scalar columns, and always exactly count of them so the receiving schema keeps a stable shape.

nameTemplate may contain a %d placeholder for the index; without one the index is appended:

TemplateFirst key produced
"Borrower 2 Name of Employer %d"Borrower 2 Name of Employer 1
"Alternate Name"Alternate Name 1
delivery.ExplodeColumn(
bbox.Doc().Rows("Employment", "Income").Col("Employer", "employer").Records(),
"employment", "employer", "Employer %d", 5);

The numbering is 1-based, and it writes straight to out — there is nothing to assign.

delivery.ExplodeColumn replaces the older out.UnwrapColumn and out.UnwrapColumnWithTemplate, which differed only in whether the name carried a %d.

Binds bbox, the spatial document surface. It is registered under the name bbox and loads the documents the run supplies, so it is present exactly when a document is.

SurfaceHow it arrives
kis CLI--bbox <name>=<path>
rules.svcA reserved bbox object on the POST /rule body

A rule that calls bbox.Doc() on a run that carried no document fails with non existent key bbox, and because a failed evaluation aborts unconditionally, the whole execution is discarded. Send document input on every call to a rule set that queries a document.

The surface itself is on Document, Values and Tables and forms.