refactor(backend/isms): split isms_assessment_service.py to stay under 500 LOC
The previous commit (32e121f) left isms_assessment_service.py at 639 LOC,
exceeding the 500-line hard cap. This follow-up extracts ReadinessCheckService
and OverviewService into a new isms_readiness_service.py (400 LOC), leaving
isms_assessment_service.py at 257 LOC (Management Reviews, Internal Audits,
Audit Trail only).
Updated isms_routes.py imports to reference the new service file.
File sizes after split:
- isms_routes.py: 446 LOC (thin handlers)
- isms_governance_service.py: 416 LOC (scope, context, policy, objectives, SoA)
- isms_findings_service.py: 276 LOC (findings, CAPA)
- isms_assessment_service.py: 257 LOC (mgmt reviews, internal audits, audit trail)
- isms_readiness_service.py: 400 LOC (readiness check, ISO 27001 overview)
All 58 integration tests + 173 unit/contract tests pass.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19510,280 +19510,6 @@
|
||||
"title": "ConsentCreate",
|
||||
"type": "object"
|
||||
},
|
||||
"compliance__api__notfallplan_routes__IncidentCreate": {
|
||||
"properties": {
|
||||
"affected_data_categories": {
|
||||
"default": [],
|
||||
"items": {},
|
||||
"title": "Affected Data Categories",
|
||||
"type": "array"
|
||||
},
|
||||
"art34_justification": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Art34 Justification"
|
||||
},
|
||||
"art34_required": {
|
||||
"default": false,
|
||||
"title": "Art34 Required",
|
||||
"type": "boolean"
|
||||
},
|
||||
"description": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Description"
|
||||
},
|
||||
"detected_by": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Detected By"
|
||||
},
|
||||
"estimated_affected_persons": {
|
||||
"default": 0,
|
||||
"title": "Estimated Affected Persons",
|
||||
"type": "integer"
|
||||
},
|
||||
"measures": {
|
||||
"default": [],
|
||||
"items": {},
|
||||
"title": "Measures",
|
||||
"type": "array"
|
||||
},
|
||||
"severity": {
|
||||
"default": "medium",
|
||||
"title": "Severity",
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"default": "detected",
|
||||
"title": "Status",
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"title": "Title",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"title"
|
||||
],
|
||||
"title": "IncidentCreate",
|
||||
"type": "object"
|
||||
},
|
||||
"compliance__api__notfallplan_routes__IncidentUpdate": {
|
||||
"properties": {
|
||||
"affected_data_categories": {
|
||||
"anyOf": [
|
||||
{
|
||||
"items": {},
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Affected Data Categories"
|
||||
},
|
||||
"art34_justification": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Art34 Justification"
|
||||
},
|
||||
"art34_required": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Art34 Required"
|
||||
},
|
||||
"closed_at": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Closed At"
|
||||
},
|
||||
"closed_by": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Closed By"
|
||||
},
|
||||
"description": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Description"
|
||||
},
|
||||
"detected_by": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Detected By"
|
||||
},
|
||||
"estimated_affected_persons": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Estimated Affected Persons"
|
||||
},
|
||||
"lessons_learned": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Lessons Learned"
|
||||
},
|
||||
"measures": {
|
||||
"anyOf": [
|
||||
{
|
||||
"items": {},
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Measures"
|
||||
},
|
||||
"notified_affected_at": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Notified Affected At"
|
||||
},
|
||||
"reported_to_authority_at": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Reported To Authority At"
|
||||
},
|
||||
"severity": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Severity"
|
||||
},
|
||||
"status": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Status"
|
||||
},
|
||||
"title": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Title"
|
||||
}
|
||||
},
|
||||
"title": "IncidentUpdate",
|
||||
"type": "object"
|
||||
},
|
||||
"compliance__api__notfallplan_routes__TemplateCreate": {
|
||||
"properties": {
|
||||
"content": {
|
||||
"title": "Content",
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"title": "Title",
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"default": "art33",
|
||||
"title": "Type",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"title",
|
||||
"content"
|
||||
],
|
||||
"title": "TemplateCreate",
|
||||
"type": "object"
|
||||
},
|
||||
"compliance__schemas__banner__ConsentCreate": {
|
||||
"description": "Request body for recording a device consent.",
|
||||
"properties": {
|
||||
@@ -20308,6 +20034,280 @@
|
||||
},
|
||||
"title": "VersionUpdate",
|
||||
"type": "object"
|
||||
},
|
||||
"compliance__schemas__notfallplan__IncidentCreate": {
|
||||
"properties": {
|
||||
"affected_data_categories": {
|
||||
"default": [],
|
||||
"items": {},
|
||||
"title": "Affected Data Categories",
|
||||
"type": "array"
|
||||
},
|
||||
"art34_justification": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Art34 Justification"
|
||||
},
|
||||
"art34_required": {
|
||||
"default": false,
|
||||
"title": "Art34 Required",
|
||||
"type": "boolean"
|
||||
},
|
||||
"description": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Description"
|
||||
},
|
||||
"detected_by": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Detected By"
|
||||
},
|
||||
"estimated_affected_persons": {
|
||||
"default": 0,
|
||||
"title": "Estimated Affected Persons",
|
||||
"type": "integer"
|
||||
},
|
||||
"measures": {
|
||||
"default": [],
|
||||
"items": {},
|
||||
"title": "Measures",
|
||||
"type": "array"
|
||||
},
|
||||
"severity": {
|
||||
"default": "medium",
|
||||
"title": "Severity",
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"default": "detected",
|
||||
"title": "Status",
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"title": "Title",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"title"
|
||||
],
|
||||
"title": "IncidentCreate",
|
||||
"type": "object"
|
||||
},
|
||||
"compliance__schemas__notfallplan__IncidentUpdate": {
|
||||
"properties": {
|
||||
"affected_data_categories": {
|
||||
"anyOf": [
|
||||
{
|
||||
"items": {},
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Affected Data Categories"
|
||||
},
|
||||
"art34_justification": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Art34 Justification"
|
||||
},
|
||||
"art34_required": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Art34 Required"
|
||||
},
|
||||
"closed_at": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Closed At"
|
||||
},
|
||||
"closed_by": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Closed By"
|
||||
},
|
||||
"description": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Description"
|
||||
},
|
||||
"detected_by": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Detected By"
|
||||
},
|
||||
"estimated_affected_persons": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Estimated Affected Persons"
|
||||
},
|
||||
"lessons_learned": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Lessons Learned"
|
||||
},
|
||||
"measures": {
|
||||
"anyOf": [
|
||||
{
|
||||
"items": {},
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Measures"
|
||||
},
|
||||
"notified_affected_at": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Notified Affected At"
|
||||
},
|
||||
"reported_to_authority_at": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Reported To Authority At"
|
||||
},
|
||||
"severity": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Severity"
|
||||
},
|
||||
"status": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Status"
|
||||
},
|
||||
"title": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Title"
|
||||
}
|
||||
},
|
||||
"title": "IncidentUpdate",
|
||||
"type": "object"
|
||||
},
|
||||
"compliance__schemas__notfallplan__TemplateCreate": {
|
||||
"properties": {
|
||||
"content": {
|
||||
"title": "Content",
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"title": "Title",
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"default": "art33",
|
||||
"title": "Type",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"title",
|
||||
"content"
|
||||
],
|
||||
"title": "TemplateCreate",
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -24901,7 +24901,6 @@
|
||||
},
|
||||
"/api/compliance/dsr": {
|
||||
"get": {
|
||||
"description": "Liste aller DSRs mit Filtern.",
|
||||
"operationId": "list_dsrs_api_compliance_dsr_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25093,7 +25092,6 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Erstellt eine neue Betroffenenanfrage.",
|
||||
"operationId": "create_dsr_api_compliance_dsr_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25152,7 +25150,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/deadlines/process": {
|
||||
"post": {
|
||||
"description": "Verarbeitet Fristen und markiert ueberfaellige DSRs.",
|
||||
"operationId": "process_deadlines_api_compliance_dsr_deadlines_process_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25201,7 +25198,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/export": {
|
||||
"get": {
|
||||
"description": "Exportiert alle DSRs als CSV oder JSON.",
|
||||
"operationId": "export_dsrs_api_compliance_dsr_export_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25261,7 +25257,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/stats": {
|
||||
"get": {
|
||||
"description": "Dashboard-Statistiken fuer DSRs.",
|
||||
"operationId": "get_dsr_stats_api_compliance_dsr_stats_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25310,7 +25305,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/template-versions/{version_id}/publish": {
|
||||
"put": {
|
||||
"description": "Veroeffentlicht eine Vorlagen-Version.",
|
||||
"operationId": "publish_template_version_api_compliance_dsr_template_versions__version_id__publish_put",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25368,7 +25362,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/templates": {
|
||||
"get": {
|
||||
"description": "Gibt alle DSR-Vorlagen zurueck.",
|
||||
"operationId": "get_templates_api_compliance_dsr_templates_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25417,7 +25410,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/templates/published": {
|
||||
"get": {
|
||||
"description": "Gibt publizierte Vorlagen zurueck.",
|
||||
"operationId": "get_published_templates_api_compliance_dsr_templates_published_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25492,7 +25484,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/templates/{template_id}/versions": {
|
||||
"get": {
|
||||
"description": "Gibt alle Versionen einer Vorlage zurueck.",
|
||||
"operationId": "get_template_versions_api_compliance_dsr_templates__template_id__versions_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25548,7 +25539,6 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Erstellt eine neue Version einer Vorlage.",
|
||||
"operationId": "create_template_version_api_compliance_dsr_templates__template_id__versions_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25616,7 +25606,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}": {
|
||||
"delete": {
|
||||
"description": "Storniert eine DSR (Soft Delete \u2192 Status cancelled).",
|
||||
"operationId": "delete_dsr_api_compliance_dsr__dsr_id__delete",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25672,7 +25661,6 @@
|
||||
]
|
||||
},
|
||||
"get": {
|
||||
"description": "Detail einer Betroffenenanfrage.",
|
||||
"operationId": "get_dsr_api_compliance_dsr__dsr_id__get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25728,7 +25716,6 @@
|
||||
]
|
||||
},
|
||||
"put": {
|
||||
"description": "Aktualisiert eine Betroffenenanfrage.",
|
||||
"operationId": "update_dsr_api_compliance_dsr__dsr_id__put",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25796,7 +25783,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/assign": {
|
||||
"post": {
|
||||
"description": "Weist eine DSR einem Bearbeiter zu.",
|
||||
"operationId": "assign_dsr_api_compliance_dsr__dsr_id__assign_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25864,7 +25850,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/communicate": {
|
||||
"post": {
|
||||
"description": "Sendet eine Kommunikation.",
|
||||
"operationId": "send_communication_api_compliance_dsr__dsr_id__communicate_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25932,7 +25917,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/communications": {
|
||||
"get": {
|
||||
"description": "Gibt die Kommunikationshistorie zurueck.",
|
||||
"operationId": "get_communications_api_compliance_dsr__dsr_id__communications_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -25990,7 +25974,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/complete": {
|
||||
"post": {
|
||||
"description": "Schliesst eine DSR erfolgreich ab.",
|
||||
"operationId": "complete_dsr_api_compliance_dsr__dsr_id__complete_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -26058,7 +26041,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/exception-checks": {
|
||||
"get": {
|
||||
"description": "Gibt die Art. 17(3) Ausnahmepruefungen zurueck.",
|
||||
"operationId": "get_exception_checks_api_compliance_dsr__dsr_id__exception_checks_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -26116,7 +26098,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/exception-checks/init": {
|
||||
"post": {
|
||||
"description": "Initialisiert die Art. 17(3) Ausnahmepruefungen fuer eine Loeschanfrage.",
|
||||
"operationId": "init_exception_checks_api_compliance_dsr__dsr_id__exception_checks_init_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -26174,7 +26155,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/exception-checks/{check_id}": {
|
||||
"put": {
|
||||
"description": "Aktualisiert eine einzelne Ausnahmepruefung.",
|
||||
"operationId": "update_exception_check_api_compliance_dsr__dsr_id__exception_checks__check_id__put",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -26251,7 +26231,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/extend": {
|
||||
"post": {
|
||||
"description": "Verlaengert die Bearbeitungsfrist (Art. 12 Abs. 3 DSGVO).",
|
||||
"operationId": "extend_deadline_api_compliance_dsr__dsr_id__extend_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -26319,7 +26298,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/history": {
|
||||
"get": {
|
||||
"description": "Gibt die Status-Historie zurueck.",
|
||||
"operationId": "get_history_api_compliance_dsr__dsr_id__history_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -26377,7 +26355,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/reject": {
|
||||
"post": {
|
||||
"description": "Lehnt eine DSR mit Rechtsgrundlage ab.",
|
||||
"operationId": "reject_dsr_api_compliance_dsr__dsr_id__reject_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -26445,7 +26422,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/status": {
|
||||
"post": {
|
||||
"description": "Aendert den Status einer DSR.",
|
||||
"operationId": "change_status_api_compliance_dsr__dsr_id__status_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -26513,7 +26489,6 @@
|
||||
},
|
||||
"/api/compliance/dsr/{dsr_id}/verify-identity": {
|
||||
"post": {
|
||||
"description": "Verifiziert die Identitaet des Antragstellers.",
|
||||
"operationId": "verify_identity_api_compliance_dsr__dsr_id__verify_identity_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -31558,7 +31533,7 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Create a new audit finding.\n\nFinding types:\n- major: Blocks certification, requires immediate CAPA\n- minor: Requires CAPA within deadline\n- ofi: Opportunity for improvement (no mandatory action)\n- positive: Good practice observation",
|
||||
"description": "Create a new audit finding.",
|
||||
"operationId": "create_finding_api_compliance_isms_findings_post",
|
||||
"requestBody": {
|
||||
"content": {
|
||||
@@ -31664,7 +31639,7 @@
|
||||
},
|
||||
"/api/compliance/isms/findings/{finding_id}/close": {
|
||||
"post": {
|
||||
"description": "Close an audit finding after verification.\n\nRequires:\n- All CAPAs to be completed and verified\n- Verification evidence documenting the fix",
|
||||
"description": "Close an audit finding after verification.",
|
||||
"operationId": "close_finding_api_compliance_isms_findings__finding_id__close_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -32407,7 +32382,7 @@
|
||||
},
|
||||
"/api/compliance/isms/overview": {
|
||||
"get": {
|
||||
"description": "Get complete ISO 27001 compliance overview.\n\nShows status of all chapters, key metrics, and readiness for certification.",
|
||||
"description": "Get complete ISO 27001 compliance overview.",
|
||||
"operationId": "get_iso27001_overview_api_compliance_isms_overview_get",
|
||||
"responses": {
|
||||
"200": {
|
||||
@@ -32697,7 +32672,7 @@
|
||||
},
|
||||
"/api/compliance/isms/readiness-check": {
|
||||
"post": {
|
||||
"description": "Run ISMS readiness check.\n\nIdentifies potential Major/Minor findings BEFORE external audit.\nThis helps achieve ISO 27001 certification on the first attempt.",
|
||||
"description": "Run ISMS readiness check before external audit.",
|
||||
"operationId": "run_readiness_check_api_compliance_isms_readiness_check_post",
|
||||
"requestBody": {
|
||||
"content": {
|
||||
@@ -32763,7 +32738,7 @@
|
||||
},
|
||||
"/api/compliance/isms/scope": {
|
||||
"get": {
|
||||
"description": "Get the current ISMS scope.\n\nThe scope defines the boundaries and applicability of the ISMS.\nOnly one active scope should exist at a time.",
|
||||
"description": "Get the current ISMS scope.",
|
||||
"operationId": "get_isms_scope_api_compliance_isms_scope_get",
|
||||
"responses": {
|
||||
"200": {
|
||||
@@ -32784,7 +32759,7 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Create a new ISMS scope definition.\n\nSupersedes any existing scope.",
|
||||
"description": "Create a new ISMS scope definition. Supersedes any existing scope.",
|
||||
"operationId": "create_isms_scope_api_compliance_isms_scope_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -32905,7 +32880,7 @@
|
||||
},
|
||||
"/api/compliance/isms/scope/{scope_id}/approve": {
|
||||
"post": {
|
||||
"description": "Approve the ISMS scope.\n\nThis is a MANDATORY step for ISO 27001 certification.\nMust be approved by top management.",
|
||||
"description": "Approve the ISMS scope. Must be approved by top management.",
|
||||
"operationId": "approve_isms_scope_api_compliance_isms_scope__scope_id__approve_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36325,7 +36300,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/checklists": {
|
||||
"get": {
|
||||
"description": "List checklist items, optionally filtered by scenario_id.",
|
||||
"operationId": "list_checklists_api_compliance_notfallplan_checklists_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36388,7 +36362,6 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Create a new checklist item.",
|
||||
"operationId": "create_checklist_api_compliance_notfallplan_checklists_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36447,7 +36420,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/checklists/{checklist_id}": {
|
||||
"delete": {
|
||||
"description": "Delete a checklist item.",
|
||||
"operationId": "delete_checklist_api_compliance_notfallplan_checklists__checklist_id__delete",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36503,7 +36475,6 @@
|
||||
]
|
||||
},
|
||||
"put": {
|
||||
"description": "Update a checklist item.",
|
||||
"operationId": "update_checklist_api_compliance_notfallplan_checklists__checklist_id__put",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36571,7 +36542,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/contacts": {
|
||||
"get": {
|
||||
"description": "List all emergency contacts for a tenant.",
|
||||
"operationId": "list_contacts_api_compliance_notfallplan_contacts_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36618,7 +36588,6 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Create a new emergency contact.",
|
||||
"operationId": "create_contact_api_compliance_notfallplan_contacts_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36677,7 +36646,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/contacts/{contact_id}": {
|
||||
"delete": {
|
||||
"description": "Delete an emergency contact.",
|
||||
"operationId": "delete_contact_api_compliance_notfallplan_contacts__contact_id__delete",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36733,7 +36701,6 @@
|
||||
]
|
||||
},
|
||||
"put": {
|
||||
"description": "Update an existing emergency contact.",
|
||||
"operationId": "update_contact_api_compliance_notfallplan_contacts__contact_id__put",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36801,7 +36768,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/exercises": {
|
||||
"get": {
|
||||
"description": "List all exercises for a tenant.",
|
||||
"operationId": "list_exercises_api_compliance_notfallplan_exercises_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36848,7 +36814,6 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Create a new exercise.",
|
||||
"operationId": "create_exercise_api_compliance_notfallplan_exercises_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36907,7 +36872,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/incidents": {
|
||||
"get": {
|
||||
"description": "List all incidents for a tenant.",
|
||||
"operationId": "list_incidents_api_compliance_notfallplan_incidents_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -36986,7 +36950,6 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Create a new incident.",
|
||||
"operationId": "create_incident_api_compliance_notfallplan_incidents_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37010,7 +36973,7 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/compliance__api__notfallplan_routes__IncidentCreate"
|
||||
"$ref": "#/components/schemas/compliance__schemas__notfallplan__IncidentCreate"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -37045,7 +37008,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/incidents/{incident_id}": {
|
||||
"delete": {
|
||||
"description": "Delete an incident.",
|
||||
"operationId": "delete_incident_api_compliance_notfallplan_incidents__incident_id__delete",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37096,7 +37058,6 @@
|
||||
]
|
||||
},
|
||||
"put": {
|
||||
"description": "Update an incident (including status transitions).",
|
||||
"operationId": "update_incident_api_compliance_notfallplan_incidents__incident_id__put",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37129,7 +37090,7 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/compliance__api__notfallplan_routes__IncidentUpdate"
|
||||
"$ref": "#/components/schemas/compliance__schemas__notfallplan__IncidentUpdate"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -37164,7 +37125,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/scenarios": {
|
||||
"get": {
|
||||
"description": "List all scenarios for a tenant.",
|
||||
"operationId": "list_scenarios_api_compliance_notfallplan_scenarios_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37211,7 +37171,6 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Create a new scenario.",
|
||||
"operationId": "create_scenario_api_compliance_notfallplan_scenarios_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37270,7 +37229,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/scenarios/{scenario_id}": {
|
||||
"delete": {
|
||||
"description": "Delete a scenario.",
|
||||
"operationId": "delete_scenario_api_compliance_notfallplan_scenarios__scenario_id__delete",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37326,7 +37284,6 @@
|
||||
]
|
||||
},
|
||||
"put": {
|
||||
"description": "Update an existing scenario.",
|
||||
"operationId": "update_scenario_api_compliance_notfallplan_scenarios__scenario_id__put",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37394,7 +37351,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/stats": {
|
||||
"get": {
|
||||
"description": "Return statistics for the Notfallplan module.",
|
||||
"operationId": "get_stats_api_compliance_notfallplan_stats_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37443,7 +37399,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/templates": {
|
||||
"get": {
|
||||
"description": "List Melde-Templates for a tenant.",
|
||||
"operationId": "list_templates_api_compliance_notfallplan_templates_get",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37506,7 +37461,6 @@
|
||||
]
|
||||
},
|
||||
"post": {
|
||||
"description": "Create a new Melde-Template.",
|
||||
"operationId": "create_template_api_compliance_notfallplan_templates_post",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37530,7 +37484,7 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/compliance__api__notfallplan_routes__TemplateCreate"
|
||||
"$ref": "#/components/schemas/compliance__schemas__notfallplan__TemplateCreate"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -37565,7 +37519,6 @@
|
||||
},
|
||||
"/api/compliance/notfallplan/templates/{template_id}": {
|
||||
"delete": {
|
||||
"description": "Delete a Melde-Template.",
|
||||
"operationId": "delete_template_api_compliance_notfallplan_templates__template_id__delete",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -37616,7 +37569,6 @@
|
||||
]
|
||||
},
|
||||
"put": {
|
||||
"description": "Update a Melde-Template.",
|
||||
"operationId": "update_template_api_compliance_notfallplan_templates__template_id__put",
|
||||
"parameters": [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user