# PreviewFile

**Kind:** Interface

**Source:** [`atloria-monorepo/apps/api/src/change-request/preview.service.ts`](https://github.com/sherkety/atloria/blob/main/atloria-monorepo/apps/api/src/change-request/preview.service.ts#L22)

B2 — Preview deploys / PR preview links.

A change request (or freshness PR) carries its proposed page bodies inline as `previewFiles`
([{documentId, path, content}]) — captured by the worker at open/restage time when the content
is already in hand, so a preview NEVER has to read the worker's RWO PVC. This service renders an
ephemeral overlay of those proposals on top of the live published site, gated by a stateless
HMAC token (or an org-member session).

DECOUPLING: the fall-through to the live document is done through the `PublicDocResolver` the
CALLER passes in (ProjectService satisfies it structurally). PreviewService therefore needs no
ProjectModule dependency — it stays a leaf that only touches Prisma + Config, so no module cycle.

## Properties

| Property | Type |
|---|---|
| `documentId` | `string` |
| `path` | `string` |
| `content` | `string` |
