
The Tenant Boundary: Isolation for Shared AI Systems
A field guide to deciding what may be pooled, what must be siloed, and how to keep retrieval, memory, caches, tools, logs, and evaluations inside the right customer boundary.
Read MoreZharfAI Team

An analyst is allowed to read internal contract prices. Their AI assistant is therefore allowed to retrieve those prices while preparing a negotiation brief. The analyst then asks the assistant to email a summary to a supplier. Nothing in the original read permission proves that the supplier may receive competitors' prices, a derived ranking, a hidden attachment, or even the recipient list. Yet many AI systems treat generation as the last security step and delivery as plumbing.
The reader decision is: for each AI-produced message, file, tool argument, or export, should the system release it unchanged, minimize and transform it, require a human decision, or block it? The answer must bind the content to its provenance, requester, purpose, exact destination, amount, time, and governing policy.
The central rule is: permission to use information inside a task is not permission to disclose the result outside that task's trust boundary. Put a deterministic release gateway between AI execution and every outbound connector. The model may propose a payload; it must not grant itself authority to send one.
Ordinary access control answers whether a subject may use a resource. Release control answers a different question: whether a particular information object may travel from this source context to that destination under these conditions.
The distinction matters because generation changes the object. A response may quote source records, compress many records into an aggregate, infer a sensitive fact, combine two harmless fields into an identifying pair, or embed content inside a spreadsheet, image, archive, URL, or tool parameter. A user who can inspect ten customer cases separately may not be entitled to export all ten. A support agent may see a customer's address but may not send it to an unverified chat identity. A cross-tenant summary can leak even when every individual retrieval passed its own check.
This is why the tenant-boundary design must propagate tenant and source labels into generated artifacts. Dropping provenance at the model boundary converts a known policy problem into guesswork over prose.
The underlying control model is established security practice. NIST SP 800-53 Rev. 5 AC-4 Information Flow Enforcement distinguishes information flow from later access. Its enhancements describe decisions based on information, source, and destination attributes; filters that block, strip, modify, or quarantine; and human review when automated decisions are not possible.
CISA's April 2023 Zero Trust Maturity Model v2 tells agencies to inventory, categorize, and label data and to deploy mechanisms that detect and stop exfiltration. Its optimal maturity example dynamically blocks suspected data exfiltration. The international Guidelines for Secure AI System Development, reviewed by the UK NCSC in November 2023, add AI-specific obligations: measure system outputs and behavior, log inputs consistently with privacy requirements, protect exposed interfaces, and plan incident response.
The AI failure evidence is equally direct. OWASP's Prompt Injection guidance says RAG and fine-tuning do not fully remove injection risk and lists sensitive disclosure and unauthorized actions among the outcomes. Its Sensitive Information Disclosure guidance warns that restrictions written in a system prompt may not be honored and can be bypassed.
Those sources do not prescribe the exact gateway, release tuple, receipt, or metrics below. Those are ZharfAI analysis: a vendor-neutral operating design derived from information-flow controls, AI threat evidence, and production failure modes.
A release request is not just a string. Represent it as a versioned tuple:
| Decision input | Questions the gateway must answer |
|---|---|
| Information | Which source objects contributed? What labels, owners, tenants, jurisdictions, retention rules, and consent constraints apply? |
| Requester | Which authenticated human or workload requested release? Was authority delegated, and is the session still valid? |
| Task purpose | What approved job is being completed? Does secondary use or aggregation exceed it? |
| Destination | Which exact recipient, account, hostname, bucket, channel, or tool will receive the bytes? What is its trust class? |
| Transformation | Is the payload unchanged, summarized, redacted, tokenized, aggregated, translated, or converted to another file type? |
| Magnitude | How many subjects, records, fields, bytes, and releases are involved, including recent cumulative activity? |
| Time and evidence | Which policy version applies? Are labels fresh? Has approval expired? Can the decision be reproduced without storing the secret payload in a log? |
The safe invariant is explicit allow, not absence of a detector hit. Unknown provenance, an unresolved recipient, a stale label, an unsupported file type, or a policy-engine error must not quietly become permission.
{
"release_id": "rel_7f2c",
"requester": "workload:sourcing-assistant@tenant-42",
"purpose": "supplier-negotiation-brief",
"source_labels": ["tenant:42", "commercial-confidential", "rival-pricing"],
"destination": "mailbox:supplier-a@example.org",
"destination_class": "external-counterparty",
"payload_hash": "sha256:...",
"records": 18,
"policy_version": "release-2026-08-4",
"proposed_action": "send_email"
}
Keep labels bound to source spans through retrieval, generation, and serialization. Content inspection can supplement that evidence, but it cannot reconstruct a source label that was discarded.
The model and its working process should have no unrestricted outbound credentials or network path. Connectors receive only short-lived release capabilities minted after policy evaluation and bound to the destination, payload hash, action, tenant, and expiry.
A practical path is:
Network containment remains necessary, but it operates at a different layer. Kubernetes documents NetworkPolicy as IP- and port-level control and explicitly notes that its API cannot force traffic through a common gateway, handle TLS policy, or target services by name. A network allow-list cannot decide that one paragraph may go to an approved supplier while a rival's price must not. The release service needs application identity and message semantics, while the network ensures the model cannot bypass it.
The destination binding extends the browser-agent security pattern: authorize the final resolved recipient and action, not a model-written URL that can redirect after approval.
Detectors can find known patterns; transforms can reduce exposure. Google Cloud's Sensitive Data Protection documentation shows concrete mechanisms including masking, token replacement, encryption, deletion, field transformation, and record suppression. It also makes the dependency clear: info-type transformations apply to content identified by the configured inspection criteria.
That is useful machinery, not a proof of safe release. A detector can miss a project codename, Persian free text, a novel identifier, a value split across cells, or an inference such as “the only employee in this small branch.” It can also over-redact harmless material. Source labels and structured fields should therefore carry most of the policy load; content detection is defense in depth.
Treat each transform as a new artifact:
For some flows the right minimization is not redaction. It may be a fixed aggregate, a yes/no answer, a reference to an internal portal, or no release at all.
| Outcome | Appropriate when | Required behavior |
|---|---|---|
| Allow | Provenance is complete; recipient and purpose are approved; content and cumulative volume fit policy | Mint a one-time capability bound to exact bytes and destination |
| Transform, then allow | A defined minimization can satisfy policy without changing the task's meaning | Apply a versioned transform, rescan, reevaluate, and release only the new hash |
| Review | Policy permits judgment, material uncertainty is legible, and a qualified reviewer can decide | Show provenance, differences, destination, reason, expiry, and alternatives |
| Deny | Flow is prohibited, provenance is unknown, controls failed, destination is unresolved, or risk cannot be reduced | Block closed, preserve evidence, and offer a safe next action where possible |
Review is not a fallback for every inconvenient case. Some flows—cross-tenant secrets, credential material, export-controlled data to an ineligible destination—should remain structurally impossible. Conversely, routing every low-risk release to a queue produces delay and approval fatigue.
Consider a hypothetical bilingual procurement assistant. It can read tenant 42's contracts, quotes, delivery history, and negotiation notes. An authorized buyer asks: “Summarize our position in Persian and email it to Supplier A.” The draft is fluent and its visible body contains no account number. A naive DLP scan returns clean.
The provenance envelope tells a different story. Eighteen records contributed, including two rivals' quotes labeled commercial-confidential and a legal note restricted to internal counsel. The requested external mailbox is known, but the purpose policy permits Supplier A to receive only its own performance data and category aggregates above a minimum group size.
The gateway chooses transform, then review. A deterministic template removes rival-level prices, computes an allowed band from a sufficiently large group, replaces the legal note with an internal follow-up, and produces a source-to-output manifest. The transformed message is rescanned and assigned a new hash. The reviewer sees the destination, policy reason, removed fields, aggregate method, and final bytes—not a vague “AI thinks this is safe” badge.
Approval mints a capability valid for one email, one mailbox, one payload hash, and ten minutes. If the buyer adds an attachment, changes the address, or edits the body, the connector rejects it and starts a new decision. The numbers and policy are illustrative; this is not a claimed ZharfAI deployment.
A useful review package lets a person answer the unresolved policy question. It should expose:
Apply the capacity and independence tests from the human-approval design guide. A reviewer who lacks context, time, authority, or a readable diff is not a control. High-consequence exceptions may require a second role or data owner; ordinary approved flows should remain automated.
| Healthy-looking signal | Hidden failure | Control that exposes it |
|---|---|---|
| The user could read every source | Recipient, purpose, aggregation, or tenant crossing was never authorized | Separate release policy over source and destination attributes |
| DLP found no sensitive pattern | Source labels were lost or the disclosure is contextual | Provenance binding plus structured policy |
| Email domain is allow-listed | Wrong mailbox, redirected URL, public channel, or compromised account | Resolve and bind the exact destination |
| Human clicked approve | Reviewer saw no diff, lineage, or cumulative volume | Decision-complete review package |
| Payload passed before sending | Connector changed encoding, expanded a template, or added metadata | Canonicalize first; bind authorization to final bytes |
| Each release is small | Repeated requests reconstruct a dataset | Per-subject and per-destination cumulative budgets |
| Denied content is absent from app logs | Full prompts or payloads leaked into telemetry and review tools | Data-minimized evidence schema and log access policy |
| Policy engine was unavailable | Client retried through a direct SDK or permissive fallback | Network isolation and fail-closed connector credentials |
Test bypasses, not only the happy path: alternate connectors, redirects, shared links, copy-to-clipboard, screenshots, encoded archives, multimodal payloads, streaming output, retries, queued jobs, and administrator overrides.
Each attempt needs a receipt that can answer who requested what kind of flow, from which sources, to which resolved destination, under which policy, with what decision. It rarely needs the full secret payload.
release_id, task_id, requester_id, tenant_id
source_object_ids, source_label_digest, provenance_coverage
destination_id, destination_class, connector_id
original_hash, transformed_hash, transform_manifest_id
policy_version, matched_rule_ids, detector_versions
decision, reviewer_id, approval_expiry, capability_id
attempted_at, delivered_at, connector_receipt, incident_link
Protect the ledger, separate reviewer access from general observability, and define retention. Join it to the broader AI audit-evidence architecture so an investigator can reproduce the decision without searching scattered model traces and mail logs.
Before enforcement, run policy in shadow mode against representative historical and live flows; record proposed outcomes without releasing anything new. Compare with known incidents, data-owner judgments, and existing business processes. Then canary by connector, data class, tenant, and destination class—not with one global switch.
Monitor:
Revisit policy when data ownership, destination contracts, jurisdiction, model behavior, connectors, or transformations change. Exercise a release freeze and connector revocation before an incident. Sample allowed flows for false negatives and denied flows for unnecessary friction; optimizing only the deny rate will either hide leaks or stop useful work.
The durable design is simple to state and demanding to operate: carry provenance forward, bind permission to final bytes and an exact destination, minimize deterministically, review only genuine judgment, and make every uncontrolled path incapable of sending.

A field guide to deciding what may be pooled, what must be siloed, and how to keep retrieval, memory, caches, tools, logs, and evaluations inside the right customer boundary.
Read More
Install and secure OpenClaw, configure its Gateway, models, workspaces, channels, memory, skills, plugins, browser tools, subagents, tasks, and automations.
Read More
A field guide to atomic reservations, concurrent spend, approval binding, reconciliation, and hard economic limits for tool-using AI agents.
Read MoreIf this note maps to a real system in your organisation, start with the services page or a shipped case study.