DORA

DORA Article 17 ICT-related incident-reporting workflow. The Digital Operational Resilience Act (Regulation (EU) 2022/2554) Article 17 requires every "financial entity" subject to DORA to classify, document, and report ICT-related incidents according to the harmonized RTS template (Commission Delegated Regulation 2024/1772). The framework owns the classification rubric, the three-stage report shape (initial / intermediate / final), and the audit-chain integration; operators wire the produced RTS-template-shaped records into their submission code (channel + ESA / national-supervisor credentials are operator-specific — the framework does NOT submit on the operator's behalf).

Adjacent regimes (NIS2 Art. 23, CRA Art. 14, HIPAA breach notification) share the deadline-tracking shape; reference constants live on the module so operators don't pin literal hour counts in their reporters.

b.dora.create(opts) #

stable0.7.25doranis2crahipaa
{
  audit:          boolean (default true; set false to skip audit emits),
  observability:  boolean (default true; set false to skip the
                 best-effort observability counter on report),
}

Build a DORA reporter handle exposing classify, report, and draftFinalReport. classify runs the RTS 2024/1772 Articles 1-12 thresholds (severity / affected clients / economic impact / geographic scope / duration / reputational / sensitive-data classes) and returns the regulatory tier ("major" / "significant" / "minor") plus a deadline hint. report validates and shapes the operator's payload into an RTS-template record carrying the nextStageDueAt deadline (Art. 19 — 24h initial / 72h intermediate / 30-day final). draftFinalReport clones a prior record into a Stage-final skeleton with the operator-fillable fields zeroed. Each call emits an audit row in the dora.* namespace.

var dora = b.dora.create({ audit: true });
var rv = dora.classify({
  dataAffected:       "financial",
  severityIndicator:  "critical",
  affectedClients:    1200,
  economicImpact:     { eur: 50000 },
  durationMs:         4 * 60 * 60 * 1000,
});
rv.classification;     // → "major"
rv.mustReport;         // → true

var initial = dora.report({
  incidentId:    "INC-2026-0042",
  classification: rv.classification,
  stage:         "initial",
  detectedAt:    Date.now(),
  description:   "Payment-gateway outage — 2h customer-facing impact",
});
initial.stage;         // → "initial"

Last updated 2026-08-08T16:39:49.652Z by seeder.