Forms Engine
Categories and Publication Lifecycle
Category semantics, revision transitions, and publishability rules.
Categories
- category
keyis UUID - category
slugis stable and generated or maintained - categories can be
is_system - form category assignment accepts UUID key or slug
Forbidden category names
Use formforge.categories.forbidden_names to block reserved category names in management operations.
Name matching is normalized before validation: comparison is case-insensitive and ignores leading/trailing spaces.
The rule is enforced on both category creation and category update.
'categories' => [
'forbidden_names' => ['Internal', 'System'],
],
If a forbidden name is sent to POST /api/formforge/v1/categories or PATCH /api/formforge/v1/categories/{categoryKey}, the API returns 422 Unprocessable Entity.
Validation includes an error on category.
Revision lifecycle
createcreates revision 1patchcreates a new draft revisionpublishcreates a new published revisionunpublishcreates a new draft revisiondeletesoft-deletes revisions
Publishability
A form can be published only when:
- title is non-empty
- at least one page exists
- at least one field exists