Security, privacy and permissions
Secrets and rotation
Secrets and credential rotation
Permissions and least privilege
Permissions and least privilege
- A Read-Only Database Role for Agent Tools: Grants and Limits
- Giving an Agent a Read Tool: Column Allowlists and Row Filters
- Least-Privilege Scopes for Model Context
- A Permission Table for Agent Tool Calls
- A Permission Table That Maps Agent Tools to Scopes
- A Postgres Permission Table Mapping Tools to Roles and Columns
- A Table and Column Allowlist for Agent Read Tools
- Deciding What Data an Edge Function May Touch
- All of Permissions and least privilege
Tenant isolation
Multi-tenant isolation
- A Row Filter the Model Cannot Leak: Tenant Scope per Query
- Cache Keys That Do Not Leak Tenancy: Scope in a Retrieved Result
- Normalizing Tenant Identifiers Before They Reach a Key
- Permission Matrices for Staging Access: Who Sees Which Rows
- Testing an MCP Server Against Multiple Tenants
- Testing Multi-Tenant Isolation with Permission Matrices
- Testing Tenant Isolation in a Shared Vector Index
- When an Edge Cache Serves Another Tenant's Data
PII and data retention
PII, logging and retention
Residency and egress
Data residency and egress
- A Residency Rule Inside a Model Gateway: Schema and Cache
- Routing Model Calls Across Regions Without Splitting Your Data
- Whose Content Is Loaded: A Source Allowlist for Fetched Text
- A Data Residency Map for Model Vendors
- A Source Allowlist for Fetched Text: Domains, Paths and Expiry
- An Allowlist for Model Outputs: Blocking Domains
- Building a Vendor Residency Table from Their Docs
- Logging Egress Decisions: What to Record When a Fetch Is Denied
- All of Residency and egress
Injection defenses
Injection defenses and tests
- Signed but Unsafe: Injection Through Webhook Payloads
- Asserting a Tool Was Not Called: Negative Fixtures for Injections
- Fixtures That Reproduce a Real Injection Without Customer Data
- Sanitizing Model Inputs at the Gateway
- Two Channels for Instructions and Data in a Chat Template
- When a Retrieved Document Tells the Agent to Email Someone
- Where the Prompt Boundary Meets Your Gateway