Octavia AI CMS – Product Overview
What AI CMS does and how it fits into your stack
The dependency graph
Most content hangs off an article, and an article needs three things to exist before it: a language, an author, and a category. A subcategory belongs to a category, so it comes just after. Read it as: language, author and category are the three leaves every article depends on. Subcategory hangs off category, tags hang off nothing, and forms are a separate tree that submissions hang from.The order to create things in
Follow this sequence the first time you populate a tenant. Each step lists the minimum fields the API actually requires.1
1. Create a language
Languages are referenced by a two-letter code and are unique per tenant. An article
can only be written in a language that exists.Required:
code, nameThe
language field on an article only accepts codes that exist here.
Creating the language first is what makes that field work.2
2. Create an author
An author is a public profile attached to articles. The email is used for
attribution and must be unique.Required:
name, slug, email3
3. Create a category
Categories are the top level of the content tree. Slugs are URL-facing and must be
unique.Required:
name, slug4
4. Create a subcategory
A subcategory always belongs to a category, so this step needs the category ID from
step 3.Required:
name, categoryIdA subcategory is optional. An article can be filed under a category alone — set
subCategory to an empty array or omit it.5
5. Create your tags
Tags are free-form and depend on nothing. Create them up front so you can attach
them to every article as you go.
6
6. Create an article
Now the dependencies are satisfied. An article takes an array of category IDs and,
optionally, an array of subcategory IDs.Required:
mainTitle, content, categoryReference: fields on each resource
Use this as a quick check when you are unsure which field is mandatory. Only required fields block a request.category and subCategory on an article are arrays of IDs, not single strings.
author is a single ID, or omit it to fall back to the authenticated user.Forms live in their own tree
Forms do not depend on articles, categories or authors. They have their own section-based schema, and submissions hang off a form. Because that is a separate model, forms are documented under their own group.Forms
The form model, submissions, and captcha
Tags are a flat namespace
Tags have no hierarchy and no parent. One endpoint creates them by name, and they are referenced by name rather than ID when attached to an article:Tags
Create and search tags
Where to go next
Articles
Read, search, and manage articles.
Content flow
A runnable end-to-end example that builds the whole graph.

