Rules and checks
Your front end tells Inka what each block allows, and Inka applies those rules while people edit. Some rules stop a save. Others give advice and let the save go ahead. All of them are open source and work today.
Rules that work now
Rules live in the block schemas and regions your front end passes to initBridge. Here is one short example of each kind.
A value that cannot work: error
A field rule with error marks the field invalid and blocks the save until it is fixed.
fieldRules: {
image: {
when: { 'image_scales.image.0.content-type': { isNot: 'image/svg+xml' } },
error: 'A pictogram must be an SVG.',
},
},A value that may be wrong: warning
A field rule with warning shows advice beside the field. The page still saves.
fieldRules: {
image: {
when: { image: { regex: '\\.png$' } },
warning: 'A pictogram should be an SVG drawn to the 48×48 grid.',
},
},Which blocks go where: allowedBlocks
Each region lists the block types it accepts, and maxLength caps how many.
header: { widget: 'blocks_layout', allowedBlocks: ['slate', 'image'], maxLength: 3 },Which text styles: allowedStyles
A region can limit the text styles its rich text may use.
items: {
widget: 'blocks_layout',
allowedStyles: ['p', 'h2', 'h3', 'ul', 'ol', 'li', 'strong', 'em'],
},Parts nobody can change: locked template blocks
A template or layout marks blocks as fixed (can't be moved) and readOnly (can't be edited), and leaves named slots where editors add their own blocks. Offer templates with allowedTemplates, and force a layout with allowedLayouts.
"footer": { "@type": "slate", "fixed": true, "readOnly": true, "slotId": "footer" }Block fields also take the usual schema rules, such as required and maxLength, and those block the save too. Content that arrives some other way — an import, a migration, a fixture — is held to the same rules: plone-content schema --schemas <schemas.json> reports every block the editor would refuse or rewrite (a type its region does not allow, a region over its maxLength, an empty required field, a text style its region does not allow) and exits non-zero. For the full rule language see Schema enhancers, Container blocks and Templates.
Sign-off and the record: Inka Assure
Rules catch problems while a page is written. Some things need a person's judgement, and an organisation often needs proof of what was checked.
Inka Assure is PretaGov's governance record service for Inka. It is in development and planned for late 2026. It will be available licensed, to run yourself, or as a hosted service. It will:
- record which checks ran on each published version, and what they found;
- let people sign off exceptions, with who, when and why;
- support approval checklists at workflow steps;
- keep an inventory of where each block and template is used;
- offer optional AI-based rules, used only if you turn them on.
What is open source and what is licensed
- Open source (MIT): the Inka editor, the bridge script, the rules above, templates and layouts, the adapters, and the test suites.
- Licensed: Inka Assure, once it is released, either to run yourself or hosted by PretaGov.