Add risk assessment boundary model

Introduce RiskAssessmentBoundary as a first-class, self-nesting entity that
groups nodes within a risk assessment scope, and thread it through every
surface.

- coredata: new risk_assessment_boundaries table + migration, boundary_id on
  nodes, self-referential parent_boundary_id, entity type registration
- riskmanagement: boundary CRUD service methods, boundary_id wiring on node
  create/update, scope-membership and self-parent validation, nested-subgraph
  Mermaid rendering
- IAM: core:risk-assessment-boundary:{get,list,create,update,delete} actions
  and viewer/auditor read policies
- console GraphQL: RiskAssessmentBoundary type, connection, order enum, CRUD
  mutations, boundaries field on scope, boundaryId on nodes
- CLI: risk-assessment boundary command group and --boundary-id on nodes
- MCP: boundary tools and boundary_id on node tools
- n8n: boundary operations and boundary fields on node operations
- console UI: boundary list/create/edit, boundary selector on nodes, diagram
  refetch on boundary changes

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2026-06-08 15:37:56 +02:00
parent b643c8eb6d
commit dbf915047d
44 changed files with 3620 additions and 79 deletions

View File

@@ -29,6 +29,11 @@ import * as getNodeOp from './getNode.operation';
import * as getAllNodesOp from './getAllNodes.operation';
import * as updateNodeOp from './updateNode.operation';
import * as deleteNodeOp from './deleteNode.operation';
import * as createBoundaryOp from './createBoundary.operation';
import * as getBoundaryOp from './getBoundary.operation';
import * as getAllBoundariesOp from './getAllBoundaries.operation';
import * as updateBoundaryOp from './updateBoundary.operation';
import * as deleteBoundaryOp from './deleteBoundary.operation';
import * as createProcessOp from './createProcess.operation';
import * as getProcessOp from './getProcess.operation';
import * as getAllProcessesOp from './getAllProcesses.operation';
@@ -67,6 +72,12 @@ export const description: INodeProperties[] = [
description: 'Create a risk assessment',
action: 'Create a risk assessment',
},
{
name: 'Create Boundary',
value: 'createBoundary',
description: 'Create a boundary in a scope',
action: 'Create a boundary',
},
{
name: 'Create Node',
value: 'createNode',
@@ -103,6 +114,12 @@ export const description: INodeProperties[] = [
description: 'Delete a risk assessment',
action: 'Delete a risk assessment',
},
{
name: 'Delete Boundary',
value: 'deleteBoundary',
description: 'Delete a boundary',
action: 'Delete a boundary',
},
{
name: 'Delete Node',
value: 'deleteNode',
@@ -139,12 +156,23 @@ export const description: INodeProperties[] = [
description: 'Get a risk assessment',
action: 'Get a risk assessment',
},
{
name: 'Get Boundary',
value: 'getBoundary',
description: 'Get a boundary',
action: 'Get a boundary',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many risk assessments',
action: 'Get many risk assessments',
},
{
name: 'Get Many Boundaries',
value: 'getAllBoundaries',
action: 'Get many boundaries',
},
{
name: 'Get Many Nodes',
value: 'getAllNodes',
@@ -236,6 +264,12 @@ export const description: INodeProperties[] = [
description: 'Update a risk assessment',
action: 'Update a risk assessment',
},
{
name: 'Update Boundary',
value: 'updateBoundary',
description: 'Update a boundary',
action: 'Update a boundary',
},
{
name: 'Update Node',
value: 'updateNode',
@@ -285,6 +319,11 @@ export const description: INodeProperties[] = [
...getAllNodesOp.description,
...updateNodeOp.description,
...deleteNodeOp.description,
...createBoundaryOp.description,
...getBoundaryOp.description,
...getAllBoundariesOp.description,
...updateBoundaryOp.description,
...deleteBoundaryOp.description,
...createProcessOp.description,
...getProcessOp.description,
...getAllProcessesOp.description,
@@ -323,6 +362,11 @@ export {
getAllNodesOp as getAllNodes,
updateNodeOp as updateNode,
deleteNodeOp as deleteNode,
createBoundaryOp as createBoundary,
getBoundaryOp as getBoundary,
getAllBoundariesOp as getAllBoundaries,
updateBoundaryOp as updateBoundary,
deleteBoundaryOp as deleteBoundary,
createProcessOp as createProcess,
getProcessOp as getProcess,
getAllProcessesOp as getAllProcesses,