dtwo Policy Store

Hipaa bundle

Included policies (42)

About this bundle

HIPAA governs how covered entities and their business associates use, disclose, and safeguard protected health information (PHI/ePHI) — the Privacy Rule (45 CFR Part 164, Subpart E) with its minimum-necessary standard, and the Security Rule (Subpart C) with its administrative and technical safeguards. This bundle is a starting posture for any organization that lets an AI agent reach PHI-bearing SaaS apps over the DTwo gateway. An agent that pulls broad context to answer a single question is in direct tension with minimum necessary, which applies per use and per disclosure — so the gateway is the natural place to scope each tool call, gate it by identity, and strip PHI on the way back out.

These policies support alignment with HIPAA (Privacy & Security Rules) on the MCP path only. They act on agent traffic that flows through the gateway; web-UI logins, native-API integrations, and in-app activity are outside their reach by design, and no policy or bundle makes an organization HIPAA compliant. Compliance is a property of your whole program.

What this bundle covers

42 policies across 18 apps, grouped below by the HIPAA control they support. Every policy is single-purpose and composes with the others on the same pipeline direction. Policy bodies live under apps/; this page only links to them — see the top-level README for the rationale.

The per-decision audit log that records every one of these calls — principal, action, resource, context, decision — is a property of the gateway beneath the bundle, not a policy in it. That record is what supports §164.312(b) audit controls, §164.308(a)(1)(ii)(D) activity review, and the §164.528 accounting of disclosures for the agent-mediated slice of traffic.

1. Minimum necessary — cap the blast radius of a read (§164.502(b), §164.514(d))

Clamp bulk reads, exports, and search fan-out so a single agent call can't harvest a mailbox, a table, or a directory. These caps hold agents to the narrowest surface that answers the question.

Policy App Direction Purpose
cap-bulk-export gmail ingress Cap batch content reads and clamp search maxResults to throttle mass mailbox harvesting.
cap-bulk-export google-drive ingress Clamp Drive search/listing page sizes to a ceiling (transform-only, never denies).
cap-bulk-export salesforce ingress Cap SOQL row limits and gate org-wide SOSL search by IdP group.
cap-bulk-export hubspot ingress Clamp bulk-read page sizes and batch-read arrays to 50 records.
cap-search-export glean ingress Clamp bulk-export params (result ceiling, strip exhaustive) on Glean search.
cap-contact-enumeration intercom ingress Deny bulk-enumeration query shapes on contact search and clamp page size.

2. De-identification support — redact PHI on the way out (§164.514(a)–(b), §164.530(c))

Egress redaction strips Safe-Harbor-class identifiers — names, contact info, SSNs, card and bank numbers — from responses before an agent carries them into its context or a downstream app. Transform-only where marked: they never deny, they clean.

Policy App Direction Purpose
redact-pii-egress ms365 egress Redact SSN, Luhn-validated PAN, IBAN, and US phone numbers from mail/Excel/SharePoint/transcript/Teams responses.
redact-pii-egress google-drive egress Redact email/SSN/national-ID/phone from Drive content responses.
redact-attendee-pii google-calendar egress Redact attendee PII/PHI and meeting join links from calendar reads.
redact-pii salesforce egress Redact contact PII fields and PAN/SSN/phone/email patterns in responses.
redact-pii hubspot egress Redact contact PII (phone/email/SSN) in tool responses.
redact-pii-egress box egress Redact SSN/PAN/bank/email/phone PII from Box content responses (group-exempt).
redact-pii-egress confluence egress Redact SSN/email/US-phone PII from Confluence page/comment/search reads (group-exempt).
redact-pii-egress notion egress Redact email/phone PII from Notion reads for non-HR/legal callers.
redact-pii-egress snowflake egress Mask SSN/email/phone in result sets (pii-cleared group exempt).
redact-pii-egress databricks egress Redact SSN/email/phone in response payloads outside the data-privacy group.
redact-pii-egress bigquery egress Redact SSN/PAN/email in query results and optionally cap result rows (group exempt).
redact-pii-egress glean egress Redact SSN/PAN/IBAN from Glean read responses before they reach agent context.
redact-conversation-pii intercom egress Redact SSN/national-ID/email/phone/credential shapes from conversation and contact reads.
redact-content-egress dropbox egress Mask card PANs and redact SSN/email/phone/secrets in file-content responses.
redact-pii-meeting-intelligence zoom egress Redact email/phone/SSN in Zoom meeting-intelligence responses (transcripts, summaries, docs).
redact-sensitive-info slack ingress Redact PII/secrets/card numbers from outbound Slack message args.

3. Access scoping — fence sensitive PHI to the roles that need it (§164.514(d)(2), §164.308(a)(4), §164.522(a))

Role-based limits on where an agent can look: HR, clinical, legal, and other regulated scopes are fenced to their owning IdP groups across reads, writes, and search. These are the agreed-to-restriction and least-privilege predicates that keep an agent out of a record class it has no business reaching.

Policy App Direction Purpose
fence-restricted-folders google-drive ingress Deny reads/writes/copies touching an admin denylist of restricted Drive IDs (HR, M&A, board, payroll).
fence-sensitive-folders box ingress Fence pinned sensitive Box folder/file IDs by IdP group (read/move/copy/search).
fence-sensitive-paths dropbox ingress Fence protected path prefixes (HR/Finance/Legal/Customers) to mapped IdP team groups.
fence-restricted-spaces confluence ingress Fence restricted spaces (HR/LEGAL/SEC) out of search, listing, and lookup unless the group grants access.
fence-sensitive-tables servicenow ingress Fence sys_user / HR / CMDB tables and user-directory reads behind owner IdP groups.
fence-sensitive-schemas snowflake ingress Group-gate PII/PHI/HR/FINANCE schema references and block SELECT * on fenced schemas.
fence-sensitive-schemas databricks ingress Deny SQL/metadata access to sensitive namespaces (hr/payroll/pii/phi/comp) outside the data-privacy group.
fence-sensitive-datasets bigquery ingress Fence regulated dataset prefixes (phi_/finance_/pii_) by IdP group across SQL and metadata.
fence-datasource-scope glean ingress Restrict which indexed datasource a Glean search may target by IdP group.
fence-contact-reads intercom ingress Role-gate the structured-PII contact/company read surface to support/CRM groups.
guard-transcripts-by-group zoom ingress Gate Zoom transcript/summary and recording-passcode retrieval by IdP group.
deny-read-search-summarize-sensitive-channels slack ingress Deny read/search/summarize of a configured set of sensitive channels.

4. Disclosure & export control — keep PHI from leaving the perimeter (§164.502(b), §164.502(e), §164.530(c))

The Privacy Rule's disclosure line, enforced on the agent channel: deny external sends and downgrade anonymous share links so an agent can't route PHI past the corporate boundary — including to apps or recipients with no BAA behind them.

Policy App Direction Purpose
guard-external-send ms365 ingress Deny agent email sends when any recipient is outside the corporate-domain allowlist.
guard-share-links ms365 ingress Downgrade anonymous share links to org scope, inject expiry, deny anonymous-edit and external invites.
guard-external-send gmail ingress Deny sends when any to/cc/bcc recipient is outside the corporate-domain allowlist; draft instead.
guard-external-send slack ingress Deny agent posts to externally shared Slack Connect channels.
guard-external-attendees google-calendar ingress Block calendar invites to attendees outside the corporate-domain allowlist.
guard-share-links-external box ingress Block external collaborations to non-corp domains and anonymous public share links.
guard-share-links-external dropbox ingress Deny public share links, download URLs, and file requests unless caller is in the dropbox-sharing group.
guard-external-chat-invites zoom ingress Block external contact invites and external history exposure in Zoom Team Chat channels.

How bundle membership works

Bundle membership is declared in each policy's policy.md frontmatter (the policy lists bundles: ["hipaa"]). This page is a human-readable landing page; the generated manifest.json is the machine-readable source of truth. There is intentionally no separate bundle.json artifact — one source of metadata avoids drift.

The policies compose by direction. The egress redaction policies (theme 2) attach to the response pipeline and are transform-only where marked, so they never deny and never collide with the ingress controls. The ingress policies are each single-purpose — a cap, a fence, a disclosure guard — so several attach to the same app on the same direction without interfering. Each policy is scoped to its own app, so cross-app members never collide.

What this bundle does NOT cover

These policies act only on agent traffic over MCP, and only some HIPAA requirements reduce to a gateway decision. Out of scope by design:


Compliance note. This bundle supports alignment with the cited framework controls on the MCP path only. No policy or bundle makes an organization compliant with any framework; web-UI, native-API, and in-app access are outside the gateway's reach by design. Validate against your own compliance program before relying on it.