|
No credential is ever written unencrypted
|
Envelope encryption with a per-tenant data key. If the key
encryption key cannot be loaded, the service does not start;
there is no fallback or development bypass.
|
|
No secret enters an mklang blackboard
|
A step never receives a credential. The connector runtime
resolves it at call time, and platform checkpoints are
sealed before they reach the database.
|
|
An unverified webhook starts nothing
|
HMAC covers the raw body and timestamp. Missing, wrong,
expired and unknown signatures receive the same answer.
|
|
An absent credential is a denial
|
No configuration makes authentication optional. A route test
walks the registered surface so a new endpoint cannot be
unprotected by omission.
|
|
Cross-tenant reads require two independent failures
|
Application scoping and forced Postgres row-level security
both protect tenant data.
|
|
Every connector response is external data
|
It is marked before it can reach a judgement, so provenance
and control-flow taint can act on it.
|
|
Logging is allowlist-based
|
A field a vendor adds tomorrow is redacted by default rather
than logged by default.
|
|
A data-plane credential is reduced to what that plane can
use
|
The control plane renews credentials; a runner makes vendor
calls. Refresh tokens and client material used only to
obtain the next token stay behind the broker.
|
|
An external effect is claimed before the call and confirmed
after
|
An ambiguous claim stops the run. Durable execution is
at-least-once, so this is what stands between a retry and a
second email.
|