ISO_CONTROLS is an array exported from src/store/isoControls.js that contains all 93 controls defined in ISO 27002:2022. It is the authoritative source of Annex A control data throughout ISOwl.
Control data shape
Each element in the array has the following base shape as defined in the source file:| Field | Type | Description |
|---|---|---|
id | string | Control identifier in A.X.Y format (e.g. A.5.1) |
domain | string | Control domain (one of four values — see Domains below) |
name | string | Control name |
description | string | Short description of what the control requires |
| Field | Type | Default | Description |
|---|---|---|---|
status | string | 'No Evaluado' | Evaluation status — updated via updateControlStatus() |
responsible | string | '' | Responsible person or team |
lastReview | string | '' | ISO date of last review |
Domains
ISO 27002:2022 organizes its 93 controls into four thematic domains (called “themes” in the standard). ISOwl uses the Spanish domain names as defined inisoControls.js.
| Domain (Spanish) | Theme (English) | ID range | Control count |
|---|---|---|---|
| Organizacionales | Organizational | A.5.x | 37 |
| Personas | People | A.6.x | 8 |
| Físicos | Physical | A.7.x | 14 |
| Tecnológicos | Technological | A.8.x | 34 |
| Total | 93 |
The control count per domain matches the ISO 27002:2022 edition. Earlier editions of ISO 27002 used 14 domains and 114 controls. ISOwl implements the 2022 restructured version exclusively.
Usage across the app
Store initialization
ISO_CONTROLS is used to seed the controls array in the Zustand store for each new tenant. Controls are copied with default status, responsible, and lastReview values.Annex A module
The Annex A page reads
controls from the store and renders each control grouped by domain. Status updates are written back via updateControlStatus().Dashboard metrics
getDomainProgress() aggregates control statuses by domain using the domain field. The maturity radar chart uses these aggregated scores.SoA export
The Statement of Applicability export iterates over all 93 controls and outputs their current status and responsible fields.
Filtering by domain
To work with controls from a specific domain, filter the array by thedomain field:
Example entries
Related references
ISO 27002 standard
Background on the ISO 27002:2022 standard, its four themes, and the purpose of each control domain.
Store reference
Full reference for
updateControlStatus() and the controls state field in the Zustand store.