-
Notifications
You must be signed in to change notification settings - Fork 2
Specs M3 Compliance Framework
compliance.models.framework.Framework
Normative, legal, regulatory, contractual or internal framework with which the organization must or chooses to comply.
Represents a normative, legal, regulatory, contractual or internal framework with which the organization must or chooses to comply.
| Field | Type | Constraints | Description |
|---|---|---|---|
id |
UUID | PK, auto-generated | Unique identifier |
scope_id |
relation | FK → Scope, required | Attached scope |
reference |
string | required, unique | Reference code (e.g. REF-001) |
name |
string | required, max 255 | Name of the framework (e.g. "ISO 27001:2022") |
short_name |
string | optional, max 50 | Abbreviation (e.g. "ISO 27001") |
description |
text | optional | Description of the framework |
type |
enum | required |
standard, law, regulation, contract, internal_policy, industry_framework, other
|
category |
enum | required | See list below |
version |
string | optional | Version of the framework (e.g. "2022") |
publication_date |
date | optional | Official publication date |
effective_date |
date | optional | Date of entry into force |
expiry_date |
date | optional | Expiry or repeal date |
issuing_body |
string | optional | Issuing body (e.g. "ISO", "European Parliament") |
jurisdiction |
string | optional | Applicable jurisdiction (e.g. "France", "European Union", "International") |
url |
string | optional, URL format | Link to the official text |
is_mandatory |
boolean | required, default false | Mandatory framework (legal/regulatory constraint) |
is_applicable |
boolean | required, default true | Applicable to the scope |
applicability_justification |
text | optional | Justification of applicability or non-applicability |
applicability_managed_by_risks |
boolean | required, default false | Risk-driven applicability (see below) |
owner_id |
relation | FK → User, required | Owner of compliance tracking for this framework |
related_stakeholders |
relation | M2M → Stakeholder | Stakeholders behind this framework |
compliance_level |
decimal | calculated, 0-100 | Calculated overall compliance level (%) |
last_assessment_date |
date | calculated | Date of the last assessment |
status |
enum | required |
draft, active, under_review, deprecated, archived
|
review_date |
date | optional | Next review date |
created_by |
relation | FK → User | Creator |
created_at |
datetime | auto | Creation date |
updated_at |
datetime | auto | Last modification date |
Framework categories (values of category):
-
information_security(Information security: ISO 27001, ISO 27002, etc.) -
privacy(Data protection: GDPR, CCPA, etc.) -
risk_management(Risk management: ISO 27005, ISO 31000, etc.) -
business_continuity(Business continuity: ISO 22301, etc.) -
cloud_security(Cloud security: ISO 27017, ISO 27018, SecNumCloud, etc.) -
sector_specific(Sector-specific regulations: NIS 2, DORA, HDS, PCI DSS, etc.) -
it_governance(IT governance: COBIT, ITIL, etc.) -
quality(Quality: ISO 9001, etc.) -
contractual(Contractual requirements) -
internal(Internal policies and procedures) other
Note: Categories and types must be configurable by the administrator.
When the applicability_managed_by_risks option is enabled on a framework,
the applicability of each of its requirements (Requirement.is_applicable) is
no longer entered manually but derived automatically from the associated risks:
- a requirement is applicable as soon as at least one of its associated risks is
in a lifecycle state counted in reports (active risk,
see
core.workflow.reportable); for the risk workflow, only the initialidentifiedstate is not counted; - a requirement with no associated active risk is not applicable.
Consequences:
- The
is_applicableandapplicability_justificationfields of the framework's requirements become read-only (UI, API, MCP): any value provided is ignored and the justification is filled in automatically. - The recalculation is triggered on each association/dissociation of a risk, on each state change of an associated risk, on the deletion of a risk, and when the option is enabled (recalculation of all requirements). The compliance levels of the section and the framework are refreshed accordingly.
- Disabling the option freezes the calculated values (manual editing becomes possible again). When the option is disabled, the behavior is unchanged.
The Statement of Applicability (SoA) reflects these values directly, since
is_applicable remains a stored field.
Built from docs/ at v0.36.0. Edits made here are overwritten by the next release : open a pull request against the source instead.
- Administration
- Ask Cairn
- Assets and suppliers
- Compliance
- The dashboard
- Finding your way
- Getting started
- Incidents
- How records move
- Organisational context
- Reports and management review
- Risks
- Trust Center
- Architecture
- Configuration
- Contributing
- The documentation system
- Installation
- Internationalisation
- Operations
- Release process
- Security
- Testing
- Adding an assistant provider
- Adding a dashboard widget
- Adding a domain entity
- Declaring a lifecycle
- Adding an MCP tool
- Adding a REST endpoint
- Adding a report
- Interface conventions
- Dashboard widgets
- Lifecycles
- MCP tools
- MCP tool parameters : Assets
- MCP tool parameters : Compliance
- MCP tool parameters : Governance and context
- MCP tool parameters : General
- MCP tool parameters : Incidents
- MCP tool parameters : Reports and management review
- MCP tool parameters : Risks
- MCP tool parameters : System and administration
- MCP tool parameters : Trust Center
- Management commands
- Models
- Permissions
- REST endpoints
- Environment variables
- MCP server
- REST API
- Assistant module (Ask Cairn)
- Module 0: User Management and Access Control
- Module 1: Context and Organization
- Module 2: Asset Management
- Module 3: Compliance
- Module 4: Risk Management
- Module 4 bis - EBIOS Risk Manager
- Module 5 : Trust Center
- Module 6 : Security Incident Management
- Management review : ISO 27001:2022 compliance (clause 9.3)