Ovok CMS
Ovok CMS stores published app content that does not belong in a FHIR resource, such as legal pages, interface translations, release notes, and content types defined in the Ovok Console. Authors manage content in the Console; applications read published content through the CMS API.
Use getCmsDocument() to fetch one document, listCmsDocuments() to list a collection, and the focused helpers getLegalPage(), listReleaseNotes(), and getTranslations() for common content. React applications can use the matching hooks, including useTranslations(); see Use Ovok CMS with i18next.
Before reading content
- Enable CMS for the project in the Ovok Console.
- Get the project's tenant code.
- Publish the content in the same environment the app reads:
dev,staging, orprod.
Each environment has separate content. The sandbox API defaults to staging; specify environment explicitly when the app needs dev or prod content. See tenants and environments.
Available content
| Content | Use |
|---|---|
legal-pages | Localized terms, privacy notices, and similar pages. |
translations | UI strings grouped by feature or screen. See Use Ovok CMS with i18next. |
release-notes | Published release notes with tags and a publication date. |
| Custom content types | Structured items defined for the project in the Console. |
legal-pages and translations are open to public reads by default. An operator can change which collections are open. Release notes and custom content types require a signed-in user for the same tenant or a CMS API key. A CMS API key can read any tenant's published content, so keep it on a trusted server and never include it in a browser bundle.
Read routes
Use the route that matches the content you need:
- List items from a collection, such as legal pages or release notes.
- Get one collection item by slug, such as a terms page.
- Display legal pages, including localized terms and privacy content.
- Display release notes with tags and publication dates.
- List items from a custom content type, such as FAQs or store locations.
- Load translations into i18next in a React app.
The CMS routes return published documents only. A draft and a missing document can both appear as not found. Rich-text fields are returned as the editor's JSON structure, not as rendered HTML; render them with an appropriate rich-text renderer.
Delivery behavior
Tenant-named reads are cached for about 60 seconds, with up to about five additional minutes behind a CDN. A newly published edit may not appear immediately. See the platform's CMS caching guide.