Operations
Pre-authorised access
Section titled “Pre-authorised access”GET /preauth/Pre-authorised routes serve content to callers that cannot hold a normal credential — a public marketing site, a preview link shared with a reviewer.
Storage
Section titled “Storage”Asset stores grow monotonically in practice. Uploads are frequent, deletions are rare, and nobody notices until the bill or the backup window does.
Because stores are separate from content apps, retention is a storage decision you can make independently of content — which is the point of the separation, but only if someone actually makes it.
GraphQL cost
Section titled “GraphQL cost”A GraphQL endpoint derived from a rich content model permits deep nested queries, and depth is where cost lives. A query that walks four levels of references is doing four levels of resolution per result.
Watch query depth and shape rather than request count. One expensive query pattern from one page template will dominate a large volume of cheap ones.
Validation
Section titled “Validation”Entry validation failures at write time are usually a signal about the type, not the entry. A content type that editors keep failing has drifted from how they actually work, and the fix is normally the model rather than the training.
What to watch
Section titled “What to watch”| Signal | Why it matters |
|---|---|
| Entry validation failures | A content type that has drifted from real editorial practice |
| Asset store growth | Uploads are rarely deleted; storage is the cost that creeps |
| GraphQL query depth | Deep nested queries on a rich model get expensive fast |
| Pre-auth traffic and paths | Verify it is serving what you intended to make public |
| Publish-to-visible latency | Editors lose trust in a CMS that feels slow to update |