diff --git a/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/CAC.md b/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/CAC.md new file mode 100644 index 0000000000..5fa7a3982a --- /dev/null +++ b/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/CAC.md @@ -0,0 +1,111 @@ +# Conformity Assessment Criteria + +## General Information + +- cxId: CX-0128 +- name: Demand and Capacity Management Data Exchange +- capability: Demand and Capacity +- version: 2.2.0 +- release: CX-Saturn + +## Conformity Assessment Criteria + +### CX-0128-CAC-001 + +- type: MUST +- topic: Policy +- automisable: false +- assessment: + - [ ] Inspection + - [ ] Observation + - [ ] Self-Assessment + - [ ] Inquiry + - [x] Confirmation + - [ ] Recalculation + - [ ] Reperformance + - [ ] Analytical + - [ ] Procedures + +#### Requirement + +Policies within Catena-X MUST be aligned with the example usage policy in the CX ODRL Profile and with all subsections of [2.3 Additional Requirements](#23-additional-requirements). + +#### Proof of Conformity + +Customer and Supplier: Contract Definitions, Policies and Assets used by the EDC for the respective APIs. + +#### Information + +Policies + +### CX-0128-CAC-002 + +- type: MUST +- assessmentBy: + - Inspection: false + - Observation: false + - Self-Assessment: false + - Inquiry: false + - Confirmation: true + - Recalculation: false + - Reperformance: false + - Analytical: false + - Procedures: false + +#### Requirement + +The [unique identifier](#314-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred. + +#### Proof of Confirmity + +Customer: Egest of Aspect Model. + +#### Information + +Aspect Model WeekBasedMaterialDemand + + + + +--- + +## Not part, ... + +| CAC - ID NR. | Standard | Standard Version | Category | Status | Platform Capability | Standard title | Requirement (CAC) | Add Info | MUST/ SHOULD | Proof of Conformity | Inspection | Observation | Self-Assessment | Inquiry | Confirmation | Recalculation | Reperformance | Analytical Procedures | Test automisable (Y/N) | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| CX-0128-CAC-001 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Policies within Catena-X MUST be aligned with the example usage policy in the CX ODRL Profile and with all subsections of [2.3 Additional Requirements](#23-additional-requirements). | Policies | MUST | Customer and Supplier: Contract Definitions, Policies and Assets used by the EDC for the respective APIs | | | | | x | | | | | +| CX-0128-CAC-002 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The [unique identifier](#314-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred. | Aspect Model WeekBasedMaterialDemand | MUST | Customer: Egest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-003 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The JSON payload provided by data providers MUST comply with the [JSON schema](#3152-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers. | Aspect Model WeekBasedMaterialDemand | MUST | Customer: Egest of Aspect Model, Supplier: Ingest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-004 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space `WeekBasedMaterialDemand` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [WeekBasedMaterialDemand API](#41-weekbasedmaterialdemand-api) | Aspect Model WeekBasedMaterialDemand | MUST | Customer: Egest of Aspect Model, Supplier: Ingest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-005 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The [unique identifier](#324-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred. | Aspect Model WeekBasedCapacityGroup | MUST | Supplierr: Egest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-006 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The JSON payload provided by data providers MUST comply with the [JSON schema](#3252-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers. | Aspect Model WeekBasedCapacityGroup | MUST | Supplier: Egest of Aspect Model, Customer: Ingest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-007 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space `WeekBasedMaterialCapacityGroup` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [WeekBasedCapacityGroup API](#42-weekbasedcapacitygroup-api) | Aspect Model WeekBasedCapacityGroup | MUST | Supplier: Egest of Aspect Model, Customer: Ingest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-008 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The [unique identifier](#324-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred. | Aspect Model IdBasedRequestForUpdate | MUST | Customer and Supplier: Egest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-009 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The JSON payload provided by data providers MUST comply with the [JSON schema](#3352-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers. | Aspect Model IdBasedRequestForUpdate | MUST | Customer and Supplier: Egest and Ingest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-010 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space `IdBasedRequestForUpdate` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [RequestForUpdate API](#43-requestforupdate-api). | Aspect Model IdBasedRequestForUpdate | MUST | Customer and Supplier: Egest and Ingest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-011 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The [unique identifier](#344-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred. | Aspect Model IdBasedComment | MUST | Customer and Supplier: Egest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-012 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The JSON Payload provided by data providers MUST comply with the [JSON schema](#3452-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers. | Aspect Model IdBasedComment | MUST | Customer and Supplier: Egest and Ingest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-013 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space `IdBasedComment` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It must be transferred using the [IdBasedComment API](#44-idbasedcomment-api). | Aspect Model IdBasedComment | MUST | Customer and Supplier: Egest and Ingest of Aspect Model | | | | | x | | | | | +| CX-0128-CAC-014 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | When exchanging data with a DCM partner, the POST request payload MUST be structured as follows: | Payload Structure | MUST | Customer and Supplier: Serialization of Aspect Models as Payloads | | | | | x | | | | | +| CX-0128-CAC-015 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)]. | API WeekBasedMaterialDemand | MUST | Supplier: EDC Asset | | | | | x | | | | | +| CX-0128-CAC-016 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be registered as a data asset as defined in [Section 4.1.2.5](#4125-data-asset-structure). | API WeekBasedMaterialDemand | MUST | Supplier: EDC Asset | | | | | x | | | | | +| CX-0128-CAC-017 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be implemented as defined in [Section 4.1.2](#412-api-specification). | API WeekBasedMaterialDemand | MUST | Supplier: API Logic | | | | | x | | | | | +| CX-0128-CAC-018 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)]. | API WeekBasedCapacityGroup | MUST | Customer: EDC Asset | | | | | x | | | | | +| CX-0128-CAC-019 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be registered as a data asset as defined in [Section 4.2.2.5](#4225-data-asset-structure). | API WeekBasedCapacityGroup | MUST | Customer: EDC Asset | | | | | x | | | | | +| CX-0128-CAC-020 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be implemented as defined in [Section 4.2.2](#422-api-specification). | API WeekBasedCapacityGroup | MUST | Customer: API Logic | | | | | x | | | | | +| CX-0128-CAC-021 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)]. | API IdBasedRequestForUpdate | MUST | Customer and Supplier: EDC Asset | | | | | x | | | | | +| CX-0128-CAC-022 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be registered as a data asset as defined in [Section 4.3.2.4](#4324-data-asset-structure). | API IdBasedRequestForUpdate | MUST | Customer and Supplier: EDC Asset | | | | | x | | | | | +| CX-0128-CAC-023 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be implemented as defined in [Section 4.3.2](#432-api-specification). | API IdBasedRequestForUpdate | MUST | Customer and Supplier: API Logic | | | | | x | | | | | +| CX-0128-CAC-024 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)]. | API IdBasedComment | MUST | Customer and Supplier: EDC Asset | | | | | x | | | | | +| CX-0128-CAC-025 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be registered as a data asset as defined in [Section 4.4.2.5](#4425-data-asset-structure). | API IdBasedComment | MUST | Customer and Supplier: EDC Asset | | | | | x | | | | | +| CX-0128-CAC-026 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be implemented as defined in [Section 4.4.2](#442-api-specification). | API IdBasedComment | MUST | Customer and Supplier: API Logic | | | | | x | | | | | +| CX-0128-CAC-027 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Data providers MAY adopt the DCM AAS API. If they choose otherwise, none of the obligations of this section apply. | API DCM AAS | MAY | Customer and Supplier: Self Assessment | | | | | x | | | | | +| CX-0128-CAC-028 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)]. | API DCM AAS | MUST | Customer and Supplier: EDC Assets | | | | | x | | | | | +| CX-0128-CAC-029 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The API MUST be implemented as defined in [Section 4.5.2](#452-api-specification). | API DCM AAS | MUST | Customer and Supplier: API Logic | | | | | x | | | | | +| CX-0128-CAC-030 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Companies adopting demand and capacity management in Catena-X MUST conform to the processes and guidelies defined in [Chapter 5](#5-processes) and all its subsections. | Processes | MUST | Customer and Supplier: Application and Business Logic | | | | | x | | | | | +| CX-0128-CAC-031 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The following sections describe capabilities, that are REQUIRED (except for subsections that are defined as optional): | Capabilities | REQUIRED | Customer and Supplier: Self Assessment | | | | | x | | | | | +| CX-0128-CAC-032 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | The following sections describe capabilities, that are OPTIONAL: | Capabilities | OPTIONAL | Customer and Supplier: Self Assessment | | | | | x | | | | | +| CX-0128-CAC-033 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | Software solutions implementing demand and capacity management in Catena-X MUST conform to the data formats and processes defined in the following sections, for every capability they intend to offer: | Capabilities | MUST | Customer and Supplier: Application and Business Logic | | | | | x | | | | | +| CX-0128-CAC-034 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | All participants involved in the Catena-X DCM use case MUST consent to the *Data Exchange Governance* framework agreement. | Framework | MUST | Customer and Supplier: Cofinity-X Wallet | | | | | x | | | | | +| CX-0128-CAC-035 | CX-0128 | 2.2.0 | Triangle | Release 25.09 | Demand and Capacity | Demand and Capacity Management Data Exchange | A key aspect of managing business partner relationships within Catena-X involves defining and applying policies that facilitate and protect data exchange. Both customers and suppliers MUST implement and uphold these policies in order to guarantee a secure and collaborative data exchange: | Policies | MUST | Customer and Supplier: Contract Definitions, Policies and Assets used by the EDC for the respective APIs and Application and Business Logic | | | | | x | | | | | +| | | | | | | | | | | | | | | | | | | | | diff --git a/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/assets/CAC.csv b/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/assets/CAC.csv new file mode 100644 index 0000000000..39e8c98589 --- /dev/null +++ b/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/assets/CAC.csv @@ -0,0 +1,37 @@ +CAC - ID NR.;Standard;Standard Version;Category;Status;Platform Capability;Standard title;Requirement (CAC);Add Info;MUST/ SHOULD ;Proof of Conformity ;Inspection;Observation;Self-Assessment;Inquiry;Confirmation;Recalculation;Reperformance;Analytical Procedures;Priority for testing (Y/N) +CX-0128-CAC-001;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Policies within Catena-X MUST be aligned with the example usage policy in the CX ODRL Profile and with all subsections of [2.3 Additional Requirements](#23-additional-requirements).;Policies;MUST;Customer and Supplier: Contract Definitions, Policies and Assets used by the EDC for the respective APIs;;;;;x;;;; +CX-0128-CAC-002;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The [unique identifier](#314-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.;Aspect Model WeekBasedMaterialDemand;MUST;Customer: Egest of Aspect Model;;;;;x;;;; +CX-0128-CAC-003;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The JSON payload provided by data providers MUST comply with the [JSON schema](#3152-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers.;Aspect Model WeekBasedMaterialDemand;MUST;Customer: Egest of Aspect Model, Supplier: Ingest of Aspect Model;;;;;x;;;; +CX-0128-CAC-004;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space `WeekBasedMaterialDemand` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [WeekBasedMaterialDemand API](#41-weekbasedmaterialdemand-api);Aspect Model WeekBasedMaterialDemand;MUST;Customer: Egest of Aspect Model, Supplier: Ingest of Aspect Model;;;;;x;;;; +CX-0128-CAC-005;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The [unique identifier](#324-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.;Aspect Model WeekBasedCapacityGroup;MUST;Supplierr: Egest of Aspect Model;;;;;x;;;; +CX-0128-CAC-006;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The JSON payload provided by data providers MUST comply with the [JSON schema](#3252-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers.;Aspect Model WeekBasedCapacityGroup;MUST;Supplier: Egest of Aspect Model, Customer: Ingest of Aspect Model;;;;;x;;;; +CX-0128-CAC-007;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space `WeekBasedMaterialCapacityGroup` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [WeekBasedCapacityGroup API](#42-weekbasedcapacitygroup-api);Aspect Model WeekBasedCapacityGroup;MUST;Supplier: Egest of Aspect Model, Customer: Ingest of Aspect Model;;;;;x;;;; +CX-0128-CAC-008;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The [unique identifier](#324-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.;Aspect Model IdBasedRequestForUpdate;MUST;Customer and Supplier: Egest of Aspect Model;;;;;x;;;; +CX-0128-CAC-009;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The JSON payload provided by data providers MUST comply with the [JSON schema](#3352-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers.;Aspect Model IdBasedRequestForUpdate;MUST;Customer and Supplier: Egest and Ingest of Aspect Model;;;;;x;;;; +CX-0128-CAC-010;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space `IdBasedRequestForUpdate` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [RequestForUpdate API](#43-requestforupdate-api).;Aspect Model IdBasedRequestForUpdate;MUST;Customer and Supplier: Egest and Ingest of Aspect Model;;;;;x;;;; +CX-0128-CAC-011;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The [unique identifier](#344-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.;Aspect Model IdBasedComment;MUST;Customer and Supplier: Egest of Aspect Model;;;;;x;;;; +CX-0128-CAC-012;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The JSON Payload provided by data providers MUST comply with the [JSON schema](#3452-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers.;Aspect Model IdBasedComment;MUST;Customer and Supplier: Egest and Ingest of Aspect Model;;;;;x;;;; +CX-0128-CAC-013;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space `IdBasedComment` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It must be transferred using the [IdBasedComment API](#44-idbasedcomment-api).;Aspect Model IdBasedComment;MUST;Customer and Supplier: Egest and Ingest of Aspect Model;;;;;x;;;; +CX-0128-CAC-014;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;When exchanging data with a DCM partner, the POST request payload MUST be structured as follows:;Payload Structure;MUST;Customer and Supplier: Serialization of Aspect Models as Payloads;;;;;x;;;; +CX-0128-CAC-015;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].;API WeekBasedMaterialDemand;MUST;Supplier: EDC Asset;;;;;x;;;; +CX-0128-CAC-016;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be registered as a data asset as defined in [Section 4.1.2.5](#4125-data-asset-structure).;API WeekBasedMaterialDemand;MUST;Supplier: EDC Asset;;;;;x;;;; +CX-0128-CAC-017;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be implemented as defined in [Section 4.1.2](#412-api-specification).;API WeekBasedMaterialDemand;MUST;Supplier: API Logic;;;;;x;;;; +CX-0128-CAC-018;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].;API WeekBasedCapacityGroup;MUST;Customer: EDC Asset;;;;;x;;;; +CX-0128-CAC-019;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be registered as a data asset as defined in [Section 4.2.2.5](#4225-data-asset-structure).;API WeekBasedCapacityGroup;MUST;Customer: EDC Asset;;;;;x;;;; +CX-0128-CAC-020;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be implemented as defined in [Section 4.2.2](#422-api-specification).;API WeekBasedCapacityGroup;MUST;Customer: API Logic;;;;;x;;;; +CX-0128-CAC-021;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].;API IdBasedRequestForUpdate;MUST;Customer and Supplier: EDC Asset;;;;;x;;;; +CX-0128-CAC-022;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be registered as a data asset as defined in [Section 4.3.2.4](#4324-data-asset-structure).;API IdBasedRequestForUpdate;MUST;Customer and Supplier: EDC Asset;;;;;x;;;; +CX-0128-CAC-023;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be implemented as defined in [Section 4.3.2](#432-api-specification).;API IdBasedRequestForUpdate;MUST;Customer and Supplier: API Logic;;;;;x;;;; +CX-0128-CAC-024;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].;API IdBasedComment;MUST;Customer and Supplier: EDC Asset;;;;;x;;;; +CX-0128-CAC-025;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be registered as a data asset as defined in [Section 4.4.2.5](#4425-data-asset-structure).;API IdBasedComment;MUST;Customer and Supplier: EDC Asset;;;;;x;;;; +CX-0128-CAC-026;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be implemented as defined in [Section 4.4.2](#442-api-specification).;API IdBasedComment;MUST;Customer and Supplier: API Logic;;;;;x;;;; +CX-0128-CAC-027;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Data providers MAY adopt the DCM AAS API. If they choose otherwise, none of the obligations of this section apply.;API DCM AAS;MAY;Customer and Supplier: Self Assessment;;;;;x;;;; +CX-0128-CAC-028;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].;API DCM AAS;MUST;Customer and Supplier: EDC Assets;;;;;x;;;; +CX-0128-CAC-029;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The API MUST be implemented as defined in [Section 4.5.2](#452-api-specification).;API DCM AAS;MUST;Customer and Supplier: API Logic;;;;;x;;;; +CX-0128-CAC-030;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Companies adopting demand and capacity management in Catena-X MUST conform to the processes and guidelies defined in [Chapter 5](#5-processes) and all its subsections.;Processes;MUST;Customer and Supplier: Application and Business Logic;;;;;x;;;; +CX-0128-CAC-031;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The following sections describe capabilities, that are REQUIRED (except for subsections that are defined as optional):;Capabilities;REQUIRED;Customer and Supplier: Self Assessment;;;;;x;;;; +CX-0128-CAC-032;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;The following sections describe capabilities, that are OPTIONAL:;Capabilities;OPTIONAL;Customer and Supplier: Self Assessment;;;;;x;;;; +CX-0128-CAC-033;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;Software solutions implementing demand and capacity management in Catena-X MUST conform to the data formats and processes defined in the following sections, for every capability they intend to offer:;Capabilities;MUST;Customer and Supplier: Application and Business Logic;;;;;x;;;; +CX-0128-CAC-034;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;All participants involved in the Catena-X DCM use case MUST consent to the *Data Exchange Governance* framework agreement.;Framework;MUST;Customer and Supplier: Cofinity-X Wallet;;;;;x;;;; +CX-0128-CAC-035;CX-0128;2.2.0;Triangle;Release 25.09;Demand and Capacity;Demand and Capacity Management Data Exchange;A key aspect of managing business partner relationships within Catena-X involves defining and applying policies that facilitate and protect data exchange. Both customers and suppliers MUST implement and uphold these policies in order to guarantee a secure and collaborative data exchange:;Policies;MUST;Customer and Supplier: Contract Definitions, Policies and Assets used by the EDC for the respective APIs and Application and Business Logic;;;;;x;;;; +;;;;;;;;;;;;;;;;;;; \ No newline at end of file diff --git a/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/assets/CAC.json b/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/assets/CAC.json new file mode 100644 index 0000000000..18a66195b7 --- /dev/null +++ b/docs/standards/CX-0128-DemandandCapacityManagementDataExchange/assets/CAC.json @@ -0,0 +1,255 @@ +{ + "CX-0128": { + "cxId": "CX-0128", + "name": "Demand and Capacity Management Data Exchange", + "version": "2.2.0", + "type": "Demand and Capacity", + "cac": [ + { + "id": "CX-0128-CAC-001", + "requirement": "Policies within Catena-X MUST be aligned with the example usage policy in the CX ODRL Profile and with all subsections of [2.3 Additional Requirements](#23-additional-requirements).", + "info": "Policies", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-002", + "requirement": "The [unique identifier](#314-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.", + "info": "Aspect Model WeekBasedMaterialDemand", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-003", + "requirement": "The JSON payload provided by data providers MUST comply with the [JSON schema](#3152-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers.", + "info": "Aspect Model WeekBasedMaterialDemand", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-004", + "requirement": "Within the Catena-X data space `WeekBasedMaterialDemand` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [WeekBasedMaterialDemand API](#41-weekbasedmaterialdemand-api)", + "info": "Aspect Model WeekBasedMaterialDemand", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-005", + "requirement": "The [unique identifier](#324-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.", + "info": "Aspect Model WeekBasedCapacityGroup", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-006", + "requirement": "The JSON payload provided by data providers MUST comply with the [JSON schema](#3252-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers.", + "info": "Aspect Model WeekBasedCapacityGroup", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-007", + "requirement": "Within the Catena-X data space `WeekBasedMaterialCapacityGroup` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [WeekBasedCapacityGroup API](#42-weekbasedcapacitygroup-api)", + "info": "Aspect Model WeekBasedCapacityGroup", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-008", + "requirement": "The [unique identifier](#324-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.", + "info": "Aspect Model IdBasedRequestForUpdate", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-009", + "requirement": "The JSON payload provided by data providers MUST comply with the [JSON schema](#3352-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers.", + "info": "Aspect Model IdBasedRequestForUpdate", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-010", + "requirement": "Within the Catena-X data space `IdBasedRequestForUpdate` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It MUST be transferred using the [RequestForUpdate API](#43-requestforupdate-api).", + "info": "Aspect Model IdBasedRequestForUpdate", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-011", + "requirement": "The [unique identifier](#344-identifier-of-semantic-model) for the semantic model, as specified in this standard, MUST be used to define the meaning of the data being transferred.", + "info": "Aspect Model IdBasedComment", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-012", + "requirement": "The JSON Payload provided by data providers MUST comply with the [JSON schema](#3452-json-schema) as specified in this standard and MUST be validated against the same JSON schema by data consumers.", + "info": "Aspect Model IdBasedComment", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-013", + "requirement": "Within the Catena-X data space `IdBasedComment` data MUST be requested and exchanged using a connector, conforming to the standards [[CX-0018](#71-normative-references)] and [[CX-0002](#71-normative-references)]. It must be transferred using the [IdBasedComment API](#44-idbasedcomment-api).", + "info": "Aspect Model IdBasedComment", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-014", + "requirement": "When exchanging data with a DCM partner, the POST request payload MUST be structured as follows:", + "info": "Payload Structure", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-015", + "requirement": "Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].", + "info": "API WeekBasedMaterialDemand", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-016", + "requirement": "The API MUST be registered as a data asset as defined in [Section 4.1.2.5](#4125-data-asset-structure).", + "info": "API WeekBasedMaterialDemand", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-017", + "requirement": "The API MUST be implemented as defined in [Section 4.1.2](#412-api-specification).", + "info": "API WeekBasedMaterialDemand", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-018", + "requirement": "Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].", + "info": "API WeekBasedCapacityGroup", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-019", + "requirement": "The API MUST be registered as a data asset as defined in [Section 4.2.2.5](#4225-data-asset-structure).", + "info": "API WeekBasedCapacityGroup", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-020", + "requirement": "The API MUST be implemented as defined in [Section 4.2.2](#422-api-specification).", + "info": "API WeekBasedCapacityGroup", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-021", + "requirement": "Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].", + "info": "API IdBasedRequestForUpdate", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-022", + "requirement": "The API MUST be registered as a data asset as defined in [Section 4.3.2.4](#4324-data-asset-structure).", + "info": "API IdBasedRequestForUpdate", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-023", + "requirement": "The API MUST be implemented as defined in [Section 4.3.2](#432-api-specification).", + "info": "API IdBasedRequestForUpdate", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-024", + "requirement": "Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].", + "info": "API IdBasedComment", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-025", + "requirement": "The API MUST be registered as a data asset as defined in [Section 4.4.2.5](#4425-data-asset-structure).", + "info": "API IdBasedComment", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-026", + "requirement": "The API MUST be implemented as defined in [Section 4.4.2](#442-api-specification).", + "info": "API IdBasedComment", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-027", + "requirement": "Data providers MAY adopt the DCM AAS API. If they choose otherwise, none of the obligations of this section apply.", + "info": "API DCM AAS", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-028", + "requirement": "Within the Catena-X data space APIs MUST only be accessible via a connector, conforming to the standard [[CX-0018](#71-normative-references)].", + "info": "API DCM AAS", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-029", + "requirement": "The API MUST be implemented as defined in [Section 4.5.2](#452-api-specification).", + "info": "API DCM AAS", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-030", + "requirement": "Companies adopting demand and capacity management in Catena-X MUST conform to the processes and guidelies defined in [Chapter 5](#5-processes) and all its subsections.", + "info": "Processes", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-031", + "requirement": "The following sections describe capabilities, that are REQUIRED (except for subsections that are defined as optional):", + "info": "Capabilities", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-032", + "requirement": "The following sections describe capabilities, that are OPTIONAL:", + "info": "Capabilities", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-033", + "requirement": "Software solutions implementing demand and capacity management in Catena-X MUST conform to the data formats and processes defined in the following sections, for every capability they intend to offer:", + "info": "Capabilities", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-034", + "requirement": "All participants involved in the Catena-X DCM use case MUST consent to the *Data Exchange Governance* framework agreement.", + "info": "Framework", + "assessmentBy": "Confirmation", + "priority": {} + }, + { + "id": "CX-0128-CAC-035", + "requirement": "A key aspect of managing business partner relationships within Catena-X involves defining and applying policies that facilitate and protect data exchange. Both customers and suppliers MUST implement and uphold these policies in order to guarantee a secure and collaborative data exchange:", + "info": "Policies", + "assessmentBy": "Confirmation", + "priority": {} + } + ] + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 51080caaef..513f93c847 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,8 +17,10 @@ "@mdx-js/react": "^3.0.0", "@mermaid-js/layout-elk": "^0.1.9", "clsx": "^2.0.0", + "csv-parser": "^3.2.0", "docusaurus-plugin-image-zoom": "^2.0.0", "elkjs": "^0.11.0", + "papaparse": "^5.5.3", "prism-react-renderer": "^2.3.0", "react": "^18.0.0", "react-dom": "^18.0.0" @@ -30,6 +32,7 @@ "husky": "^7.0.4", "markdownlint": "^0.25.1", "markdownlint-cli": "^0.31.1", + "raw-loader": "^4.0.2", "typescript": "~5.2.2" }, "engines": { @@ -8745,6 +8748,18 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, + "node_modules/csv-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.0.tgz", + "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==", + "license": "MIT", + "bin": { + "csv-parser": "bin/csv-parser" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/cytoscape": { "version": "3.33.1", "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", @@ -15807,6 +15822,12 @@ "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", "license": "MIT" }, + "node_modules/papaparse": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==", + "license": "MIT" + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -17806,6 +17827,80 @@ "node": ">=0.10.0" } }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/raw-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/raw-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/raw-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/raw-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", diff --git a/package.json b/package.json index e712a90380..a32e481d22 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "docusaurus": "docusaurus", "start": "docusaurus start", + "prebuild": "node ./src/scripts/convert-csv-to-json.js", "build": "docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", @@ -26,8 +27,10 @@ "@mdx-js/react": "^3.0.0", "@mermaid-js/layout-elk": "^0.1.9", "clsx": "^2.0.0", + "csv-parser": "^3.2.0", "docusaurus-plugin-image-zoom": "^2.0.0", "elkjs": "^0.11.0", + "papaparse": "^5.5.3", "prism-react-renderer": "^2.3.0", "react": "^18.0.0", "react-dom": "^18.0.0" @@ -39,6 +42,7 @@ "husky": "^7.0.4", "markdownlint": "^0.25.1", "markdownlint-cli": "^0.31.1", + "raw-loader": "^4.0.2", "typescript": "~5.2.2" }, "browserslist": { diff --git a/src/scripts/convert-csv-to-json.js b/src/scripts/convert-csv-to-json.js new file mode 100644 index 0000000000..c7b2a883b2 --- /dev/null +++ b/src/scripts/convert-csv-to-json.js @@ -0,0 +1,79 @@ +const fs = require('fs'); +const path = require('path'); +const Papa = require('papaparse'); +const glob = require('glob'); + +// 🔍 Suche alle CSV-Dateien rekursiv im docs-Verzeichnis +const docsDir = path.join(__dirname, '../../docs'); +const csvFiles = glob.sync(`${docsDir}/**/assets/CAC.csv`); +const jsonString = {}; + +if (csvFiles.length === 0) { + console.log('Keine CSV-Dateien gefunden.'); + process.exit(0); +} + +csvFiles.forEach(file => { + const csvContent = fs.readFileSync(file, 'utf8'); + const parsed = Papa.parse(csvContent, { header: true, skipEmptyLines: true }); + + if (!parsed.data || parsed.data.length === 0) { + console.warn(`⚠️ Datei enthält keine Daten: ${file}`); + return; + } + + console.log(parsed.data[0]); + + // JSON-String erzeugen + // const jsonRawData = JSON.stringify(parsed.data, null, 2); + + var cxId = parsed.data[0]['Standard']; + + jsonString[cxId] = {} + jsonString[cxId]['cxId'] = cxId; + jsonString[cxId]['name'] = parsed.data[0]['Standard title']; + jsonString[cxId]['version'] = parsed.data[0]['Standard Version']; + jsonString[cxId]['release'] = parsed.data[0]['Release 25.09']; + jsonString[cxId]['type'] = parsed.data[0]['Platform Capability']; + jsonString[cxId]['cac'] = []; + + parsed.data.slice(0).forEach(row => { + if(row['Standard title']){ + jsonString[cxId]['cac'].push({ + id: row['CAC - ID NR.'], + requirement: row['Requirement (CAC)'], + info: row['Add Info'], + type: row['MUST/ SHOULD'], + proof: row['Proof of Conformity'], + assessmentBy: Object.keys(row).filter(key => row[key] === 'x').join(', '), + priority: {} + }); + } + }); + + + +// Ausgabe: "Confirmation" + +/* { + "Proof of Conformity ": "Customer and Supplier: Contract Definitions, Policies and Assets used by the EDC for the respective APIs", + "Inspection": "", + "Observation": "", + "Self-Assessment": "", + "Inquiry": "", + "Confirmation": "x", + "Recalculation": "", + "Reperformance": "", + "Analytical Procedures": "", + "Priority for testing (Y/N)": "" + }, +*/ + + const jsonPath = file.replace(/\.csv$/, '.json'); + fs.writeFileSync(jsonPath, JSON.stringify(jsonString, null, 2), 'utf8'); + + // JSON-Datei schreiben + console.log(`✅ Konvertiert: ${path.relative(docsDir, file)} → ${path.relative(docsDir, jsonPath)}`); +}); + + diff --git a/src/scripts/convert-csv-to-md.js b/src/scripts/convert-csv-to-md.js new file mode 100644 index 0000000000..c7b2a883b2 --- /dev/null +++ b/src/scripts/convert-csv-to-md.js @@ -0,0 +1,79 @@ +const fs = require('fs'); +const path = require('path'); +const Papa = require('papaparse'); +const glob = require('glob'); + +// 🔍 Suche alle CSV-Dateien rekursiv im docs-Verzeichnis +const docsDir = path.join(__dirname, '../../docs'); +const csvFiles = glob.sync(`${docsDir}/**/assets/CAC.csv`); +const jsonString = {}; + +if (csvFiles.length === 0) { + console.log('Keine CSV-Dateien gefunden.'); + process.exit(0); +} + +csvFiles.forEach(file => { + const csvContent = fs.readFileSync(file, 'utf8'); + const parsed = Papa.parse(csvContent, { header: true, skipEmptyLines: true }); + + if (!parsed.data || parsed.data.length === 0) { + console.warn(`⚠️ Datei enthält keine Daten: ${file}`); + return; + } + + console.log(parsed.data[0]); + + // JSON-String erzeugen + // const jsonRawData = JSON.stringify(parsed.data, null, 2); + + var cxId = parsed.data[0]['Standard']; + + jsonString[cxId] = {} + jsonString[cxId]['cxId'] = cxId; + jsonString[cxId]['name'] = parsed.data[0]['Standard title']; + jsonString[cxId]['version'] = parsed.data[0]['Standard Version']; + jsonString[cxId]['release'] = parsed.data[0]['Release 25.09']; + jsonString[cxId]['type'] = parsed.data[0]['Platform Capability']; + jsonString[cxId]['cac'] = []; + + parsed.data.slice(0).forEach(row => { + if(row['Standard title']){ + jsonString[cxId]['cac'].push({ + id: row['CAC - ID NR.'], + requirement: row['Requirement (CAC)'], + info: row['Add Info'], + type: row['MUST/ SHOULD'], + proof: row['Proof of Conformity'], + assessmentBy: Object.keys(row).filter(key => row[key] === 'x').join(', '), + priority: {} + }); + } + }); + + + +// Ausgabe: "Confirmation" + +/* { + "Proof of Conformity ": "Customer and Supplier: Contract Definitions, Policies and Assets used by the EDC for the respective APIs", + "Inspection": "", + "Observation": "", + "Self-Assessment": "", + "Inquiry": "", + "Confirmation": "x", + "Recalculation": "", + "Reperformance": "", + "Analytical Procedures": "", + "Priority for testing (Y/N)": "" + }, +*/ + + const jsonPath = file.replace(/\.csv$/, '.json'); + fs.writeFileSync(jsonPath, JSON.stringify(jsonString, null, 2), 'utf8'); + + // JSON-Datei schreiben + console.log(`✅ Konvertiert: ${path.relative(docsDir, file)} → ${path.relative(docsDir, jsonPath)}`); +}); + +