Runtime consistency checks

While it works, DataMind Oda runs built-in checks on its own parts so that each part's saved data and its live state stay consistent. This page covers what the checks watch, the failure they raise, and how the set of checks is selected.

What a check is

Which parts carry a check

The core stateful parts are covered today:

The list is not exhaustive, and not every part carries a check: a part that carries none has its own reason for the gap.

When a check fails

Selecting which checks run

When a check fails to install

Boundaries worth knowing

Questions, answered

Can two checks claim the same part?

No. A check installs under the name of the part that owns it, and the name stays held while the check runs; a second check for the same part is refused.

What happens when a check fails to install?

The install is rolled back: Oda disposes the check and releases the name, so nothing half-installed stays behind, and the part can try again.

I expected a part to be checked, but it is not. Why?

Three reasons are possible: the part carries no check of its own; the selection lists leave the part out; or the operations you have in mind happened before a reload of that part, which the running check did not see.

Why is an operation from before a reload not checked?

The checks follow the parts while they run. A part that reloads starts checking from that point on; operations from before the reload are outside what the running check saw.

Are all of Oda's model calls covered?

The check on rebuilt requests covers the requests the agent loop builds. A one-off model call made outside the loop is not covered that way.

How do the two lists choose which parts are checked?

An allow list keeps only the parts it names; a block list leaves out the parts it names. A part that matches both is not checked, because the block list wins. Entries are case-sensitive patterns.

What happens if a list entry is blank or unusable?

Oda refuses to start: a blank entry, a repeated entry or a pattern it cannot read stops the start, and the message names the list and the entry. Correct the entry, then start Oda again. This applies to whoever starts and configures Oda.

Do the checks change what Oda sends to a model?

No. The checks read assembled requests and saved state; they never rewrite request content, so nothing Oda sends to a model changes because of a check.