Add CMMI maturity level to compliance controls

Adds an optional CMMI 0-5 maturity level field to Control to support
ISO 27001 clause 9.1 effectiveness measurement and HITRUST CSF maturity
requirements. The field is nullable, framework-agnostic, and exposed
across all four API surfaces (GraphQL, MCP, CLI, n8n) plus the
generated SoA document.

Signed-off-by: Alejandro Juan <alejandrojuan@alejandrojuan.com>
This commit is contained in:
Alejandro Juan
2026-04-20 13:26:19 +02:00
committed by Sacha Al Himdani
parent 98487953b9
commit da91afc2a7
31 changed files with 919 additions and 25 deletions

View File

@@ -71,6 +71,28 @@ export const description: INodeProperties[] = [
default: '',
description: 'The description of the control',
},
{
displayName: 'Maturity Level',
name: 'maturityLevel',
type: 'options',
displayOptions: {
show: {
resource: ['control'],
operation: ['create'],
},
},
options: [
{ name: '0 - None', value: 'NONE' },
{ name: '1 - Initial', value: 'INITIAL' },
{ name: '2 - Managed', value: 'MANAGED' },
{ name: '3 - Defined', value: 'DEFINED' },
{ name: '4 - Quantitatively Managed', value: 'QUANTITATIVELY_MANAGED' },
{ name: '5 - Optimizing', value: 'OPTIMIZING' },
{ name: 'Not Set', value: '' },
],
default: '',
description: 'CMMI 0-5 maturity level (optional)',
},
];
export async function execute(
@@ -81,6 +103,7 @@ export async function execute(
const sectionTitle = this.getNodeParameter('sectionTitle', itemIndex) as string;
const name = this.getNodeParameter('name', itemIndex) as string;
const description = this.getNodeParameter('description', itemIndex, '') as string;
const maturityLevel = this.getNodeParameter('maturityLevel', itemIndex, '') as string;
const query = `
mutation CreateControl($input: CreateControlInput!) {
@@ -91,6 +114,7 @@ export async function execute(
sectionTitle
name
description
maturityLevel
createdAt
updatedAt
}
@@ -106,6 +130,7 @@ export async function execute(
name,
bestPractice: true,
...(description && { description }),
...(maturityLevel && { maturityLevel }),
},
};