Content structure
The content structure screen displays a list of topic groups.
Content structure
Accessing the screen
Click [Content structure] in the left sidebar menu.

Field descriptions

| Field | Description |
|---|---|
| Search | You can search the contents in this list by applying different filters. |
| Display item settings button (gear icon) | You can add items that are not displayed in the list of Content structure by default in the initial display. |
| ID | Unique ID of the topic group. |
| Published | Publishing status of the topic group. :Unpublished :Published :Restricted |
| Title | Title of the topic group. |
| Edit | Navigates to the selected screen.
|
| API Request Restriction | Group(s) allowed to view the topic group content (if selected in the content structure editor). |
| Edit restriction | Group(s) allowed to edit the topic group content (if selected in the content structure editor). |
| Restrict edit permission to content authors only | Group(s) allowed to edit their own topic group content as authors (if selected in the content structure editor). |
| Count | Number of topics defined. |
| Sort | Set the sort number of the topic group. After entering the numbers, click [Re-order] to sort the entries in descending numerical order. |
| Updated on | Date and time of the last update to the topic group. |
| Description | Overview of the topic group. |
| Approval required group(s) | Group(s) that require approval (if selected in the content structure editor). |
| Approval required (unpublished/saved draft) | Group(s) that require approval for unpublished/saved drafts (if selected in the content structure editor). |
Advanced search
Click on the Advanced search button.

You can create filtering conditions.

Display item settings

| Item | Description |
|---|---|
| Display items | You can change the display position of items by dragging and dropping. |
| Add item | Select additional items to display from a list. |
| Cancel | Cancel the setting change. |
| Apply | Apply the setting changes. |
Batch actions

You can perform the following batch actions by selecting multiple topic groups using the checkboxes in the left-most column.
| Button | Description |
|---|---|
| Publish | Publish the selected entries. |
| Unpublish | The selected entries will not be displayed. |
| Delete | Delete the selected entries. All topics associated with the topic group will be deleted. |
| Update sorting | Re-sort the entries in descending order based on sort number. |
Content structure editor
Accessing the screen
Click [Content structure] in the left sidebar menu.

Click the title of the topic group you want to edit.

Field descriptions (basic)
General
General

| Field | Description |
|---|---|
| ID | Topic group ID (automatically assigned). |
| Name | Topic group name. |
| Description | Overview of the topic group. Exposed as the API schema description for this content definition in the OpenAPI spec and admin_api / MCP tools. |
| Not intended for publishingRelease version: βversion | When enabled, the "Published / Unpublished" labels in the content editor are replaced with "Use / Don't use". This is suitable for use cases where Kuroco is used as a foundation for authentication-required business applications (such as internal databases or knowledge management) rather than as a CMS for public websites. Note: When this setting is enabled, a viewing restriction (secure_level) must be configured. |
Publish settings

| Field | Description |
|---|---|
| Publish | Publish the current content. |
| Unpublish | The current content will not be displayed. |
| Scheduled publishing | Specify the start and end dates/times for publishing the current content. |
Field settings

| Field | Description |
|---|---|
| Field Name | Displays the name of the field. |
| Edit Button | Opens the field settings when clicked. |
| Field Settings | Displays the settings for the field. For more details, refer to the List of extension items available in the content structure. |
| Slug/ID | Displays the Slug/ID of the field. |
| Input Restriction | You can confirm the presence or absence of required settings. |
Advanced settings
| Field | Description |
|---|---|
| Sort(descending) | Sort number of the topic group. |
| Max number of contents | Sets the limit on the number of topics. (0 = no restrictions; 1 = do not generate list page) |
| Front-end preview path | Set the display page URL when previewing in the content editor. (See: Building a preview page with Kuroco and Nuxt.js for details.) |
| Do not store update history | Enable this option to stop storing the update history. Doing this can improve the admin panel performance. But note that the existing update history will also be cleared. |
| Number of categories that can be set for contents | Number of categories that can be set in the content editor. |
| Show categories tree | Set the category display in the content editor. |
| Category extended settings | See example on modifying entry fields to edit topic categories. |
| Default display fields | Set the default items to display in the content list. If a user has individually configured the display items in the content list screen, their settings will take priority. |
| Display tags in a select box | Set the tag display in the content editor. |
| Allow private tags to be set | When enabled, you will be able to set unpublish tags in the content editing screen. |
| Enable drag & drop sorting for extended fields | When enabled, you can change the order of items with repeat settings by dragging and dropping them. |
| Custom CSS | When you set a CSS URL, the specified CSS will be loaded in all editors within the content. |
| Notes | Use this field for any notes/memos on the topic group. |
| CSS | Sets CSS for the content editor. (Note: Smarty is enabled. To display curly braces "{}", enclose them between {literal} {/literal} tags.) |
| JavaScript | Sets JS for the content editor. |
Authorization settings

| Field | Description |
|---|---|
| API Request Restriction | Selects group(s) allowed to view the current topic group content. |
| Edit restriction | Selects group(s) allowed to edit the current topic group content. |
| Edit as authors only restrictions | Selects group(s) allowed to edit their own content in this topic group as authors only. |
| Restrict edit permission to content authors only | Group(s) allowed to edit their own topic group content as authors (if selected in the content structure editor). |
| Approval required group(s) | Selects group(s) that require approval to edit the current topic group content. (Note: Administrators do not require approval even if selected.) |
| Approval required (unpublished/saved draft) | Only for sites with multi-lingual settings. To post content in a secondary language, users must first create the content in the main language.
|
Batch settings

| Field | Description |
|---|---|
| Choose file | Upload selected JSON file to batch update extended item settings. |
| JSON | Download the current extended item settings in JSON format. |
Search setting

| Field | Description |
|---|---|
| Use template for keyword search | Checking this option will allow you to search this template in full_text_search, improving search flexibility and performance. |
| Keyword template | Register the string to be used for full-text search. Use Smarty to output the content of the required content. For more details, refer to Preparing a String for Keyword Search. |
| Convert to vector data | Checking this option will register the content for use in API chat responses and enable it for vector search. |
| Optimization of vector data by AI | When creating vector data, AI performs optimization and data expansion. |
| Embedding model | Select the embedding model. |
| Keyword template(AI/Vector) | Register the data you want to reference with OpenAI as space-separated keywords. Use Smarty to output the content of the required content. The line breaks will be automatically replaced with spaces. |
| AI Dictionary for Keyword Templates (AI/Vector) | When configured, the AI dictionary will be applied to the keyword template. |
Field descriptions (extensions)Release version: βversion
Additional features shown in the Extensions section of the left sidebar in the content structure editor.
AI Processing

| Field | Description |
|---|---|
| Use AI post-processing | When enabled, automatically runs AI post-processing rules when content is added or updated. |
| Rules | Configure post-processing rules. Each rule allows you to set a prompt, execution timing (on insert only / on insert and update / on update only), and content creation status (published / unpublished / draft). |
| Use AI validation | When enabled, runs AI validation when saving content. See AI validation below for details. |
AI validation
AI validation asks an LLM to judge each submission against rules you define at save time. Unlike AI post-processing—which runs asynchronously after a save to transform or generate content (e.g. translation)—AI validation runs synchronously while the content is being saved and can block the save.
When [Use AI validation] is enabled, each validation rule sends the submitted field values to the model along with your judging instructions. The model returns a verdict for that rule:
- Accepted – the save proceeds.
- Rejected – the rule's reason is surfaced as a validation error and the save fails, so the editor (or the API caller) sees the AI's explanation and can fix the content.
Additional behavior to be aware of:
- Rules are evaluated independently. There is no chain or short-circuit—every rule that rejects the submission contributes its own error, so the editor sees all failing reasons in a single save attempt.
- Validation runs last. It is only invoked when all other (non-AI) validations already pass, so tokens are not spent on a record that is already known to be invalid.
- Fail-closed. If the AI request itself fails (network/parse error), the save is blocked with a generic validation error rather than allowing an unverified record through.
- Rejection reasons follow the editing language, so the editor sees the explanation in the language they are working in.
- Each verdict—including approvals—is written to the application log so administrators can audit why a record was accepted or rejected.
Each validation rule has the following settings:
| Field | Description |
|---|---|
| Prompt | (Required) Free-form judging instructions that tell the AI what makes a submission acceptable or unacceptable. The AI rejects conservatively—only when the submission clearly violates the rule. |
| Run on | When the rule fires: On insert only (new content), On insert and update, or On update only. |
| Input fields | The fields fed to the AI for this rule. Leave empty to send all available fields (subject, contents, and every extended field configured on the content structure). Selecting specific fields narrows what the AI sees. |
| Model | The chat model used to judge the rule. Choose Auto to use the system default model, or pick a specific model. |
Email Reception
Settings for receiving and sending emails. When [Enable email reception] is turned on, the required extension fields (sender, recipient, body, etc.) are automatically added to the content structure.

Received mail
| Field | Description |
|---|---|
| Enable email reception | When enabled, emails sent to the configured receive address are automatically registered as content. |
| Allow replying to received emails | When enabled, enables the reply feature for received emails. |
| Email address type | Select the email address type.
|
| Recipient email address | Enter the local part (before the @) of the email address to receive emails at. Only alphanumeric characters and hyphens (-) are allowed. |
| Reject on SPF failure | When enabled, rejects incoming emails that fail SPF authentication. |
| Reject on DKIM failure | When enabled, rejects incoming emails that fail DKIM authentication. |
| Authorized domain/e-mail address | Enter email addresses or domains to allow, one per line. |
| Linked Member Group | Member group used to scope related-member lookups for incoming emails. Select "None" to allow all members. |
Crawling
When [Enable webpage integration] is turned on, the required extension fields (URL, content, language, etc.) are automatically added to the content structure.

| Field | Description |
|---|---|
| Enable webpage integration | When enabled, crawls web pages based on the selected spider settings and automatically registers them as content. |
| Spider settings | Select the spider settings that define the crawl source URL and configuration. For more details, see Spider list. |
Slack
When [Enable Slack message history] is turned on, the required extension fields (channel ID, message ID, body text, etc.) are automatically added to the content structure.

| Field | Description |
|---|---|
| Enable Slack message history | When enabled, inbound Slack webhook events and outbound API messages are stored as one record per message. |
| Slack channel | Specify the Slack channel ID (e.g., C0123456ABC) whose messages are stored in this content structure. A channel ID can only be assigned to one content structure site-wide. Leave blank to use this as the catch-all default for messages that do not match any other content structure (only one content structure can serve as the default site-wide). |
Other actions

| Button/Field | Description |
|---|---|
| Update | Apply any changes made in this editor. |
| Delete | Delete the current content structure. |
| Update comment | Comment field for any changes made to the content structure. |
Changelog
Click the [More] in the upper right corner of the Content structure editor screen, then click [Changelog] to see a list of the history of editing the content structure.

Content structure changelog

| Item | Description |
|---|---|
| Version | Displays the version. You can see the target version after clicking the version link. |
| Updated on | Displays the date and time the content was updated. |
| Updated by | Displays the name of the member who updated the content. |
| Action | Displays the type of processing performed. There are six types of statuses as follows
|
| Comment | Displays the comments at the time of update. |
| Content | Displays the updated contents. |
Sorting and Grouping Field
Additional field can be sorted and grouped by drag and drop.
Sorting

Grouping

Related documents
- Creating topic group(s)
- How to use CKEditor Placeholder feature with API and Custom Function
- Using Category ext configuration
- Changing the display of the content editor screen
- List of extension items available in the content structure
- The WYSIWYG editor
- WYSIWYG custom color settings
- Cloud storage integration with Firebase
- Integrating and storing files with Amazon S3
- Vimeo integration and video uploads
- Adding Vue components to the admin panel using plugins
- Prepare a keyword search string
- Can I attach files from other content structure via File Manager?
- How can I use custom templates?
- Can I modify the display of the content editor screen?
Support
If you have any other questions, please contact us or check out Our Slack Community.
:Unpublished
:Published
:Restricted