Skip to content

Commit d11fde0

Browse files
simonorzel26claude
andcommitted
v3.1.0: AI supply-chain disclosure block (G7 SBOM-for-AI)
Adds three backward-compatible fields covering the G7 / BSI / ACN / CISA "SBOM for AI - Minimum Elements" guideline published on 12 May 2026: - profile.usesAiSystems (boolean, required) - gates the AI block. Includes any AI / ML model the customer's data passes through, including third-party LLMs accessed via API. - security_practices.providesSbomForAi (boolean, optional, visibleWhen usesAiSystems=true) - supplier states whether they publish an SBOM-for-AI per the G7 minimum elements. - security_practices.aiSbomUrl (url, optional, visibleWhen providesSbomForAi=true) - public or customer-shared URL. Legal basis: NIS2 Art. 21(2)(d) / ENISA TIG §5.1.2. The G7 SBOM-for-AI guideline is referenced in field descriptions as the recognised voluntary baseline, not as the legal authority - the underlying duty is supply-chain risk management; the G7 document operationalises one credible disclosure format. No schema enum changes, no breaking changes. Existing supplier responses remain valid; new fields default to null until answered. The visibleFields helper hides the entire AI block from suppliers that don't use AI systems. Field count: 56 -> 59. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent c3e7c8a commit d11fde0

15 files changed

Lines changed: 175 additions & 15 deletions

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@ All notable changes to this repository are documented here. Format follows [Keep
44

55
## [Unreleased]
66

7+
## [3.1.0] — 2026-05-15
8+
9+
### Added
10+
- **AI supply-chain disclosure block.** Three new fields covering the G7 / BSI / ACN / CISA "Software Bill of Materials (SBOM) for Artificial Intelligence — Minimum Elements" guideline published on 12 May 2026:
11+
- `profile.usesAiSystems` (boolean, required) — gates the AI block. Includes any AI / ML model the customer's data passes through, including third-party LLMs accessed via API.
12+
- `security_practices.providesSbomForAi` (boolean, optional, visible when `usesAiSystems = true`) — supplier states whether they publish an SBOM-for-AI per the G7 minimum elements.
13+
- `security_practices.aiSbomUrl` (url, optional, visible when `providesSbomForAi = true`) — public or customer-shared URL to the document.
14+
- Legal basis anchored to **NIS2 Art. 21(2)(d) / ENISA TIG §5.1.2**. The G7 SBOM-for-AI guideline is referenced in the description as the recognised voluntary baseline, not as the legal authority — the underlying duty is supply-chain risk management; the G7 document operationalises one credible disclosure format.
15+
16+
### Migration
17+
- Backward compatible. Existing supplier responses remain valid; new fields default to `null` until a supplier answers them. The `usesAiSystems` gate hides the entire AI block from suppliers that don't use AI.
18+
- Consumers do not need to change anything. The visible-fields helper automatically skips the new conditional block based on the response state.
19+
720
## [3.0.1] — 2026-04-28
821

922
### Changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The reference implementation is the supplier portal at [nisd2.eu](https://nisd2.
1515

1616
## What's in it
1717

18-
- **56 fields** across 6 sections (`profile`, `security_practices`, `saas_technical`, `on_prem_technical`, `pro_services`, `managed_services`)
18+
- **59 fields** across 6 sections (`profile`, `security_practices`, `saas_technical`, `on_prem_technical`, `pro_services`, `managed_services`)
1919
- Each field anchored to an **EU-level** primary source: NIS2 Art. 21(2), CIR 2024/2690, ENISA Technical Implementation Guidance v1.0, GDPR Art. 28, or the Cyber Resilience Act
2020
- Two locales: English and German
2121
- Published as a Zod schema (TypeScript), a JSON artefact, and a JSON Schema for non-TS consumers
@@ -36,7 +36,7 @@ National-derivative frameworks (BSI IT-Grundschutz / Lieferketten-Checkliste in
3636
This package is **not on the npm registry** — install directly from GitHub.
3737

3838
```bash
39-
bun add github:NISD2/nis2-supply-chain-questionnaire-schema#v3.0.2
39+
bun add github:NISD2/nis2-supply-chain-questionnaire-schema#v3.1.0
4040
# npm, pnpm, yarn — same syntax
4141
```
4242

data/supply-chain-questionnaire.json

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"version": "3.0.2",
3-
"lastUpdated": "2026-04-28",
2+
"version": "3.1.0",
3+
"lastUpdated": "2026-05-15",
44
"fields": [
55
{
66
"id": "legalName",
@@ -257,6 +257,21 @@
257257
"legalBasis": "ENISA TIG §5.2(b)",
258258
"required": true
259259
},
260+
{
261+
"id": "usesAiSystems",
262+
"section": "profile",
263+
"type": "boolean",
264+
"label": {
265+
"en": "We use, integrate or provide AI systems",
266+
"de": "Wir nutzen, integrieren oder bieten KI-Systeme"
267+
},
268+
"description": {
269+
"en": "Determines whether AI supply-chain disclosure questions appear next. Includes any AI / ML model the customer's data passes through, including third-party LLMs accessed via API.",
270+
"de": "Bestimmt, ob KI-Lieferketten-Fragen als Nächstes erscheinen. Schließt jedes KI- / ML-Modell ein, durch das Kundendaten laufen — auch fremde LLMs über API."
271+
},
272+
"legalBasis": "NIS2 Art. 21(2)(d)",
273+
"required": true
274+
},
260275
{
261276
"id": "hasIsms",
262277
"section": "security_practices",
@@ -621,6 +636,44 @@
621636
"legalBasis": "ENISA TIG §5.1.4 TIPS",
622637
"required": true
623638
},
639+
{
640+
"id": "providesSbomForAi",
641+
"section": "security_practices",
642+
"type": "boolean",
643+
"label": {
644+
"en": "Provide an SBOM-for-AI per G7 minimum elements",
645+
"de": "Wir stellen ein SBOM-for-AI nach G7-Mindestelementen bereit"
646+
},
647+
"description": {
648+
"en": "G7 cybersecurity authorities (BSI, ACN, CISA et al.) and the EU Commission published 'Software Bill of Materials (SBOM) for Artificial Intelligence — Minimum Elements' on 12 May 2026. Voluntary baseline reference for AI supply-chain transparency under NIS2 Art. 21(2)(d). Covers seven clusters: metadata, models, dataset properties, infrastructure, security properties, KPIs, system-level properties.",
649+
"de": "G7-Cybersicherheitsbehörden (BSI, ACN, CISA u. a.) und die EU-Kommission haben am 12. Mai 2026 'Software Bill of Materials (SBOM) for Artificial Intelligence — Minimum Elements' veröffentlicht. Freiwillige Baseline-Referenz für KI-Lieferketten-Transparenz nach NIS2 Art. 21(2)(d). Umfasst sieben Cluster: Metadata, Models, Dataset Properties, Infrastructure, Security Properties, KPIs, System-Level Properties."
650+
},
651+
"legalBasis": "NIS2 Art. 21(2)(d) / ENISA TIG §5.1.2",
652+
"required": false,
653+
"visibleWhen": {
654+
"field": "usesAiSystems",
655+
"equals": true
656+
}
657+
},
658+
{
659+
"id": "aiSbomUrl",
660+
"section": "security_practices",
661+
"type": "url",
662+
"label": {
663+
"en": "SBOM-for-AI document URL",
664+
"de": "URL des SBOM-for-AI-Dokuments"
665+
},
666+
"description": {
667+
"en": "Public or customer-shared URL pointing to the supplier's SBOM-for-AI document.",
668+
"de": "Öffentliche oder kundenseitig geteilte URL zum SBOM-for-AI-Dokument des Lieferanten."
669+
},
670+
"legalBasis": "NIS2 Art. 21(2)(d) / ENISA TIG §5.1.2",
671+
"required": false,
672+
"visibleWhen": {
673+
"field": "providesSbomForAi",
674+
"equals": true
675+
}
676+
},
624677
{
625678
"id": "saasHostingRegion",
626679
"section": "saas_technical",

dist/data.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import { type SupplierQuestionnaire } from "./schema";
88
* Bump these constants when shipping a release; CI will fail if the
99
* generated JSON falls out of sync.
1010
*/
11-
export declare const VERSION = "3.0.2";
12-
export declare const LAST_UPDATED = "2026-04-28";
11+
export declare const VERSION = "3.1.0";
12+
export declare const LAST_UPDATED = "2026-05-15";
1313
export declare const supplierQuestionnaire: SupplierQuestionnaire;
1414
export declare function groupBySection(q: SupplierQuestionnaire): Map<string, {
1515
type: "string" | "boolean" | "text" | "email" | "phone" | "url" | "country" | "enum" | "integer";

dist/data.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/fields/profile.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/fields/profile.js

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/fields/profile.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/fields/security-practices.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/fields/security-practices.js

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)