Idea: Trusted-Database Input Filtering GitHub issue

vibecode
{"vibecode": {
    "doc": "trusted-database-filtering",
    "role": "speculative engine feature to close the laundering attack vector where untrusted data written into a trusted database emerges as trusted on read; per-column policies under role model",
    "key_concepts": ["trusted_db_write_filter", "laundering_attack_vector",
        "per_column_trust_policy", "chain_trust_override"],
    "status": "brainstorm"
}}

Not implemented. Worth recording so future decisions can build on it.

The Idea GitHub issue

Under the role model (roles.md), a database faucet has its own role, and values pulled through it are owned by that role. If that role is trusted by the caller's role, the values can flow freely.

This opens a laundering attack vector: if untrusted data is written into a trusted database, later reads pull the same data back out as a trusted object. The trust check at the read sink is satisfied, but the content came from an untrusted source.

To close this gap, the engine should provide tools for filtering what goes into a trusted database — blocking untrusted strings (and other untrusted values) from being written. A trusted database remains trusted because nothing untrusted ever lands in it.

Likely Shape GitHub issue

Relationship to Database Firewalls GitHub issue

The existing firewall rule mechanism — already part of every engine's base spec — is a natural place to enforce these checks. A firewall rule attached to a trusted database engine can inspect writes and reject any carrying untrusted values, without requiring database- specific machinery. Defense in depth: the rule applies at any point in the chain.

Two specific filter shapes worth noting for future design (not designed yet, just placeholders):

Both are forward-looking ideas; neither is designed.

Why It's Deferred GitHub issue

When to Revisit GitHub issue


© 2026 Puck.uno