Skip to content

[FormIntake] document the feature (#13731)#14713

Open
nino-filigran wants to merge 5 commits intomasterfrom
FormIntake/documentFeature-13731
Open

[FormIntake] document the feature (#13731)#14713
nino-filigran wants to merge 5 commits intomasterfrom
FormIntake/documentFeature-13731

Conversation

@nino-filigran
Copy link
Contributor

@nino-filigran nino-filigran commented Mar 2, 2026

Proposed changes

  • Add full documentation for form intake
  • Add Form intake in YML

Related issues

Checklist

  • I consider the submitted work as finished
  • I tested the code for its functionality
  • I wrote test cases for the relevant uses case (coverage and e2e)
  • I added/update the relevant documentation (either on github or on notion)
  • Where necessary I refactored code to improve the overall quality

Further comments

@nino-filigran nino-filigran linked an issue Mar 2, 2026 that may be closed by this pull request
@nino-filigran nino-filigran changed the title Form intake: document the feature (#13731) [Form intake] document the feature (#13731) Mar 2, 2026
@nino-filigran nino-filigran changed the title [Form intake] document the feature (#13731) [FormIntake] document the feature (#13731) Mar 2, 2026
# Create knowledge via Form Intake


It allows administrators to design structured forms that analysts fill out to quickly create STIX entities, relationships, and observables — without navigating complex creation dialogs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It allows administrators to design structured forms that analysts fill out to quickly create STIX entities, relationships, and observables — without navigating complex creation dialogs.
The Form Intake allows administrators to design structured forms that analysts fill out to quickly create STIX entities, relationships, and observables ready for knowledge ingestion — without navigating complex creation dialogs.


It allows administrators to design structured forms that analysts fill out to quickly create STIX entities, relationships, and observables — without navigating complex creation dialogs.

## Key capabilities
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Key capabilities
## Key features


## Key capabilities

- Visual form designer with field configuration and reordering 16 supported field types (text, date, select, toggle, lookup, vocabulary, etc.)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Visual form designer with field configuration and reordering 16 supported field types (text, date, select, toggle, lookup, vocabulary, etc.)
- Visual form designer with field configuration and reordering of 16 supported field types (text, date, select, toggle, lookup, vocabulary, etc.)

- Visual form designer with field configuration and reordering 16 supported field types (text, date, select, toggle, lookup, vocabulary, etc.)
- Field width control (full, half, third)
- 4 entity creation modes: Single, Multiple, Parsed, and Lookup
- Additional entities and relationships in a single form
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do we mean by Additional, do these have a special meaning -e.g. non-required/optional

- Field width control (full, half, third)
- 4 entity creation modes: Single, Multiple, Parsed, and Lookup
- Additional entities and relationships in a single form
- STIX bundle generation from submissions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- STIX bundle generation from submissions
- Generate STIX bundle from submissions

- Visual form designer with field configuration and reordering 16 supported field types (text, date, select, toggle, lookup, vocabulary, etc.)
- Field width control (full, half, third)
- 4 entity creation modes: Single, Multiple, Parsed, and Lookup
- Additional entities and relationships in a single form
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Additional entities and relationships in a single form
- Add additional entities and relationships in a single form

## Prerequisites & Permissions
More details on our [Role-Based access control here](../administration/users.md)

|Action |Details |Required Capability| Override of capabilities in draft (EE) |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once the other PR is changed the 'Override of capabilities in draft' will be changed to 'Control of capabilities in Draft mode'

|View form intakes list| |Manage ingestion or Create / Update knowledge|Create / Update knowledge (creation forced to draft)|


When draft creation is enforced, form submissions create entities in a draft workspace for review before publication.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When draft creation is enforced, form submissions create entities in a draft workspace for review before publication.
When draft creation is enforced, form submissions create entities in a draft workspace for review before publication to knowledge.



When draft creation is enforced, form submissions create entities in a draft workspace for review before publication.
Administrators can optionally allow users to override draft mode per submission.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Administrators can optionally allow users to override draft mode per submission.
Administrators can optionally allow users to skip draft mode per submission.


When draft creation is enforced, form submissions create entities in a draft workspace for review before publication.
Administrators can optionally allow users to override draft mode per submission.
The form intake button is hidden when the user lacks Authorized Members update rights in draft context. See Enterprise Edition for details on capability overrides in draft.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The form intake button is hidden when the user lacks Authorized Members update rights in draft context. See Enterprise Edition for details on capability overrides in draft.
The form intake button is hidden when the user does not have 'Authorized Members update' rights in draft context. See Enterprise Edition for details on controlling users capabilities in draft mode.



## Defining a Form Intake
To create a form intake, go in the Ingestion menu, Form intake menu and click on Create.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To create a form intake, go in the Ingestion menu, Form intake menu and click on Create.
To create a form intake, navigate to the Ingestion menu, Form intake menu and click Create.

## Defining a Form Intake
To create a form intake, go in the Ingestion menu, Form intake menu and click on Create.

Multiple fields are offered to you:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Multiple fields are offered to you:
You can set core detail fields:

Multiple fields are offered to you:
- Name of your form intake
- Description of the form intake
- Active (toggle on/off, default to on): when activated, your form will be present in the list.
Copy link
Member

@tobybutler405 tobybutler405 Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Active (toggle on/off, default to on): when activated, your form will be present in the list.
- Active (toggle on/off, default to on): when activate, your form will be present in the form intake list.

- Active (toggle on/off, default to on): when activated, your form will be present in the list.

## Main entity definition
Defining a main entity has two goals:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Defining a main entity has two goals:
Defining a main entity sets two variables:

@codecov
Copy link

codecov bot commented Mar 2, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 32.48%. Comparing base (75ae528) to head (f3e6090).
⚠️ Report is 39 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #14713      +/-   ##
==========================================
+ Coverage   32.36%   32.48%   +0.12%     
==========================================
  Files        3096     3101       +5     
  Lines      210896   214327    +3431     
  Branches    38196    39069     +873     
==========================================
+ Hits        68262    69631    +1369     
- Misses     142634   144696    +2062     
Flag Coverage Δ
opencti-client-python 42.37% <ø> (-3.14%) ⬇️
opencti-front 2.87% <ø> (+0.04%) ⬆️
opencti-graphql 68.11% <ø> (+0.37%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.


## Main entity definition
Defining a main entity has two goals:
- Be able to define in which screen, in addition to the import menu, you will see your form intake (ex: if your main entity is a Report, on the Report List view, you will see your form intake)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Be able to define in which screen, in addition to the import menu, you will see your form intake (ex: if your main entity is a Report, on the Report List view, you will see your form intake)
- The entity view where the form intake will be available, this is in addition to the import menu. E.g. if your main entity is a Report, you will see your form intake in the Report List view.

## Main entity definition
Defining a main entity has two goals:
- Be able to define in which screen, in addition to the import menu, you will see your form intake (ex: if your main entity is a Report, on the Report List view, you will see your form intake)
- Be able to specify which entity you want to create first (especially useful if it's a container.)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Be able to specify which entity you want to create first (especially useful if it's a container.)
- Which entity you want to create first, this is especially useful for a container entity.

- Be able to define in which screen, in addition to the import menu, you will see your form intake (ex: if your main entity is a Report, on the Report List view, you will see your form intake)
- Be able to specify which entity you want to create first (especially useful if it's a container.)

By default, main entity selected is a **Report**.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
By default, main entity selected is a **Report**.
By default, the main entity selected is a **Report**.

### Common fields

For each main entity, you can configure multiple fields:
- **Entity Lookup** (disabled by default): if enabled, users will not be able to create any new entity, but will be forced to choose among existing entities. Another field will appear if you enable this field: **Disable on-the-fly entity creation**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Entity Lookup** (disabled by default): if enabled, users will not be able to create any new entity, but will be forced to choose among existing entities. Another field will appear if you enable this field: **Disable on-the-fly entity creation**
- **Entity Lookup** (disabled by default): if enabled, users will will be forced to choose from existing entities. Another field will appear when you enable this field: **Disable on-the-fly entity creation**


For each main entity, you can configure multiple fields:
- **Entity Lookup** (disabled by default): if enabled, users will not be able to create any new entity, but will be forced to choose among existing entities. Another field will appear if you enable this field: **Disable on-the-fly entity creation**
- **Disable on-the-fly entity creation** (disabled by default): if you want your users to select some entities among existing ones, you may face an issue, if the entity they want to create does not exist. Enable this option to prevent from being able to create entity on the fly, to ensure strict entity lookup.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Disable on-the-fly entity creation** (disabled by default): if you want your users to select some entities among existing ones, you may face an issue, if the entity they want to create does not exist. Enable this option to prevent from being able to create entity on the fly, to ensure strict entity lookup.
- **Disable on-the-fly entity creation** (disabled by default): Enable this If you want your users to only select an existing entity.

For each main entity, you can configure multiple fields:
- **Entity Lookup** (disabled by default): if enabled, users will not be able to create any new entity, but will be forced to choose among existing entities. Another field will appear if you enable this field: **Disable on-the-fly entity creation**
- **Disable on-the-fly entity creation** (disabled by default): if you want your users to select some entities among existing ones, you may face an issue, if the entity they want to create does not exist. Enable this option to prevent from being able to create entity on the fly, to ensure strict entity lookup.
- **Allow multiple instances of main entity** (disabled by default): if you want to allow your users multiple times the same entity. If you enable this field, another field will appear **Multiple Mode**.
Copy link
Member

@tobybutler405 tobybutler405 Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Allow multiple instances of main entity** (disabled by default): if you want to allow your users multiple times the same entity. If you enable this field, another field will appear **Multiple Mode**.
- **Allow multiple instances of main entity** (disabled by default): Enable this if you want to allow your users to be able to enter the same entity multiple times. When enabled **Multiple instances mode** will appear.

- **Disable on-the-fly entity creation** (disabled by default): if you want your users to select some entities among existing ones, you may face an issue, if the entity they want to create does not exist. Enable this option to prevent from being able to create entity on the fly, to ensure strict entity lookup.
- **Allow multiple instances of main entity** (disabled by default): if you want to allow your users multiple times the same entity. If you enable this field, another field will appear **Multiple Mode**.

#### Create multiple instances
Copy link
Member

@tobybutler405 tobybutler405 Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#### Create multiple instances
#### Multiple Mode for Main Entity

- **Allow multiple instances of main entity** (disabled by default): if you want to allow your users multiple times the same entity. If you enable this field, another field will appear **Multiple Mode**.

#### Create multiple instances
Create multiple instances of the same entity type is possible by enabling the above options.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Create multiple instances of the same entity type is possible by enabling the above options.
When enabled multiple instances of the same entity type can be created.

When you add a relation, you need to choose:
- the Source entity (identified in the form by its label)
- the Target entity (identified in the form by its label)
- the relationship type (enabled as soon as Source & Target are provided)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- the relationship type (enabled as soon as Source & Target are provided)
- the relationship type (select as soon as Source & Target are provided)


## Finalizing the submission: draft or not

You have the option, within the main entity, to enable an option **Create as draft by default**. If this option is enabled, another will be offered to your users: **Allow users to uncheck draft mode**.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You have the option, within the main entity, to enable an option **Create as draft by default**. If this option is enabled, another will be offered to your users: **Allow users to uncheck draft mode**.
You have the option, within the main entity, to enable an option **Create as draft by default**. If this option is enabled, you can then choose to **Allow users to uncheck draft mode**.


You have the option, within the main entity, to enable an option **Create as draft by default**. If this option is enabled, another will be offered to your users: **Allow users to uncheck draft mode**.

This has been built to offer the advanced users the option to directly submit their input to the main database instead of a draft.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This has been built to offer the advanced users the option to directly submit their input to the main database instead of a draft.
This has been built to offer advanced users the option to directly submit their input to the main database instead of a draft.


This has been built to offer the advanced users the option to directly submit their input to the main database instead of a draft.

However, if your user is only able to create data via draft, due to the [capability specific to draft (entreprise edition)](../administration/users.md) whatever you selected, the user will not able to untick the box.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
However, if your user is only able to create data via draft, due to the [capability specific to draft (entreprise edition)](../administration/users.md) whatever you selected, the user will not able to untick the box.
However, if your user is only able to create data via draft, due to the [user's specific draft capabilities (entreprise edition)](../administration/users.md) then the user will not able to untick the box.

- Import dialog — Select "Import using a Form" in the import file dialog (displays full-width).
- Ingestion/form intake: when you click directly on the form intake you created, the form is prompted to you.

Note: The form intake button is hidden if the user lacks Create/update capability.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Note: The form intake button is hidden if the user lacks Create/update capability.
Note: The form intake button is hidden if the user does not have Create/update capabilities.

7 Import bundle Imports into OpenCTI directly, or into a draft workspace if draft mode is enabled

## Export
Export a form definition as a JSON file via the kebab menu → Export.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Export a form definition as a JSON file via the kebab menu → Export.
Export a form definition as a JSON file via the options (kebab) menu → Export.

Does not export previously submitted data.

## Import
Import a form definition from a JSON file via the Form Intakes list page.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Import a form definition from a JSON file via the Form Intakes list page.
Import a form definition from a JSON file via the Form Intake list page.

Note: Verify version compatibility when importing across different OpenCTI versions.

## Delete
Delete via the kebab menu → Delete. Deletion is permanent and cannot be undone.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Delete via the kebab menu → Delete. Deletion is permanent and cannot be undone.
Delete via the options (kebab) menu → Delete. Deletion is permanent and cannot be undone.

- Start simple: Begin with essential fields and iterate based on analyst feedback.
- Use Parsed mode for bulk IOCs: Comma or line-separated input is the fastest approach for high-volume observable ingestion.
- Set field widths strategically: Use third for short fields (dates, scores, markings), full for text areas.
- Mark only truly essential fields as required: Reduce friction for analysts while maintaining data quality.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Mark only truly essential fields as required: Reduce friction for analysts while maintaining data quality.
- Mark only truly essential fields as required - reduces friction for analysts while maintaining data quality.

Copy link
Member

@tobybutler405 tobybutler405 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Nino, I've made suggested changes to improve readability and keep it in line with the draft style guide. See what you think.

nino-filigran and others added 4 commits March 3, 2026 10:45
Co-authored-by: tobybutler405 <10601168+tobybutler405@users.noreply.github.com>
Co-authored-by: tobybutler405 <10601168+tobybutler405@users.noreply.github.com>
Co-authored-by: tobybutler405 <10601168+tobybutler405@users.noreply.github.com>
Clarified instructions on defining relationships in the form, including the required switch for automatic relation creation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Form Intake

2 participants