# Private Templates — Multi-Tenant — PostFrame — EternalEngine

Templates, variables, and email content are private to each tenant. No template leakage between organizations — full content isolation by design.

[Back to Multi-Tenant](https://eternalengineos.io/features/postframe/multi-tenant/)

Enterprise Architecture

# Private Templates

Templates, their variables and their version numbers are rows in your workspace behind Postgres row-level security. Another workspace's API cannot list, render or even see that they exist.

[Start free](https://app.eternalengineos.io/signup?plan=free&interval=annual)[Multi-tenant overview](https://eternalengineos.io/features/postframe/multi-tenant/)

## Template Content Isolation

Tenant-scoped storage

All templates are stored with tenant_id scoping — database queries enforce isolation at the row level

No cross-tenant access

Template API endpoints verify tenant ownership on every request — unauthorized access returns 404 not 403

Private variables

Template variables and test data are stored per-tenant and never visible to other organizations

Version numbers per workspace

Every save bumps the template's version inside your workspace only

Template Security

Row-level security on all queries

Every database query filters by tenant_id automatically

Tenant verification on every API call

Ownership checked before any template operation

Variables stored per-tenant

Test data and merge variables scoped to organization

Duplicate stays home

Duplicating a template creates the copy in the same workspace

## Keep exploring PostFrame

[### Template engine Handlebars, live preview, test sends and the gallery. Open Template engine →](https://eternalengineos.io/features/postframe/templates/)[### API key isolation Scoped keys under row-level security. Open API key isolation →](https://eternalengineos.io/features/postframe/multi-tenant/api-key-isolation/)[### Template library Eight starting points you can duplicate and rebrand. Open Template library →](https://eternalengineos.io/features/postframe/templates/template-library/)

Questions

## Common questions, straight answers.

What happens if another workspace requests my template by ID?

Nothing comes back. Row-level security hides the row entirely, so the request is answered as if the template did not exist — a 404, not a 403 that would confirm it does.

Are my template variables private too?

Yes. Variables are stored on the template row and rendered server-side inside your workspace's transaction; they are never visible to another workspace.

Can a template be shared between two workspaces?

Not directly. Export the HTML and create it in the other workspace, or duplicate it inside the workspace that owns it.

## Run your business from one place.

Five plans, seventeen launch apps, one dashboard. Set up in under 5 minutes — change tiers any time.

[Start free$0 forever &bull; No card &bull; Upgrade any time](https://app.eternalengineos.io/signup?plan=free&interval=annual)[Talk to Sales](https://eternalengineos.io/contact/)

From $0 · Basic $9.95/mo · Save 20% on annual billing · Upgrade or downgrade any time
