diff --git a/CHANGELOG.md b/CHANGELOG.md index 705afe8..6b63ee8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ For a roadmap including expected timeline, please refer to [ROADMAP.md](./ROADMA - Allow apostrophe for plural proper nouns in Short Descriptions in Policy Level `sap:core:v1`, e.g. `partners'`. +### Changed + +- Removed constraint that `describedSystemInstance` MUST be same as system instance providing the ORD information + ## [1.9.8] ### Added diff --git a/docs/details/articles/data-product.md b/docs/details/articles/data-product.md index a15a8c3..a7479ad 100644 --- a/docs/details/articles/data-product.md +++ b/docs/details/articles/data-product.md @@ -4,9 +4,9 @@ description: A Data Product is a data set exposed for consumption outside the bo title: Data Product --- -# Data Product BETA +# Data Product -> 🚧 Please note that the [Data Products](../../spec-v1/interfaces/document#data-product) concept is currently in [Beta Status](#beta-status). +> 🚧 Please note that the [Data Products](../../spec-v1/interfaces/document#data-product) concept still has some missing and some beta properties. ## Definition @@ -35,7 +35,7 @@ The following aspects of the definition are essential: (1) [data](#data-aspect), * Above we say that Data Products are consumed via APIs, but to be precise, they are consumed via APIs or Events (we treat events as a special form of API). In this doc, we generally use the term APIs to include Events (it is just more readable than always saying "APIs and/or Events"). * There is a clear expectation that the APIs are described via [metadata](#metadata-aspect) for machine- and human-readable documentation. -* For Data Products only certain types of API Protocols and qualities (performant mass read) are adequate. +* For Data Products only certain types of API Protocols and qualities (performant mass read) are adequate. E.g. SAP uses [Delta Sharing](https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md), which we additionally describe with [CSN Interop](https://sap.github.io/csn-interop-specification/) for richer metadata. * Data Products are also expected to describe their data lineage. This is done via Data Product input ports, which are described in details as an ORD [Integration Dependency](../../spec-v1/interfaces/document#integration-dependency) ### Metadata Aspect @@ -76,13 +76,13 @@ Data Products are exposed by **Producers** so that they can be used by **Consume * Data Product Consumers are applications or services that access and use the data from Data Products. Consumers can be of various types and cover both transactional and analytical applications. An application that processes operational data can be as Data Product consumer, as can analytical products like SAP Datasphere and SAP Analytics Cloud (SAC). * The Data Product Directory ([ORD Aggregator](../../spec-v1/#ord-aggregator)) is used by Consumers to find and discover available Data Products. -## Beta Status +## Current Status -Please note that the Data Product concept is currently in BETA. +Please note that the Data Product concept still contains some BETA properties. This has the following implications -* The interface contract is potentially subject to changes, although we aim to avoid breaking changes if possible. +* The beta-level properties are potentially subject to changes, although we aim to avoid breaking changes if possible. * Many data product relevant attributes are currently **not explicitly defined** in the specification yet. * Some attributes should be handled via documentation, e.g. Service Level Agreements via [dataProductLinks](../../spec-v1/interfaces/document#data-product_dataproductlinks) of `type`: [`service-level-agreement`](../../spec-v1/interfaces/document#data-product-link_type) * Such attributes need to be defined through generic extensibility mechanisms like `labels` and `documentationLabels` or added as text to the documentation. diff --git a/docs/index.md b/docs/index.md index 6e8f2a6..0f0d336 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,8 +12,8 @@ sidebar_position: 0
`"1.0"`: ORD Version 1.0
`"1.1"`: ORD Version 1.1
`"1.2"`: ORD Version 1.2
`"1.3"`: ORD Version 1.3
`"1.4"`: ORD Version 1.4
`"1.5"`: ORD Version 1.5
`"1.6"`: ORD Version 1.6
`"1.7"`: ORD Version 1.7
`"1.8"`: ORD Version 1.8
`"1.9"`: ORD Version 1.9
`"none"`: No policy level chosen. Only the base rules on how to create correct ORD documents apply.
`"sap:base:v1"`: Basic SAP rules and guidelines apply. This just ensures technical correctness and essential validations.
If chosen the [SAP Base V1](../../spec-extensions/policy-levels/sap-base-v1) rules MUST be followed.
`"sap:core:v1"`: SAP core rules and guidelines apply.
If chosen the [SAP Core V1](../../spec-extensions/policy-levels/sap-core-v1) rules MUST be followed.
`"custom"`: Custom policy level.
Further validation MAY be defined and implemented by the policy-level owner.
This level MAY be chosen by 3rd party or customer solutions.
If chosen, `customPolicyLevel` MUST be provided.
^(\[a-z0-9\]+(?:\[.\]\[a-z0-9\]+)\*):(\[a-zA-Z0-9.\_\\-\]+):(v0\|v\[1-9\]\[0-9\]\*)$
`"openapi-v2"`: [OpenAPI 2 / Swagger 2](https://swagger.io/specification/v2/) API Definition for [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) APIs.
The `mediaType` MUST be be set to either `application/json` or `text/yaml`.
`"openapi-v3"`: [OpenAPI 3](https://swagger.io/specification/) API Definition for [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) APIs.
The `mediaType` MUST be be set to either `application/json` or `text/yaml`.
`"raml-v1"`: [RAML](https://raml.org/) API Definition for [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) APIs.
The `mediaType` MUST be be set to `text/yaml`.
`"edmx"`: [OData](https://www.odata.org/documentation/) APIs can be described via edmx XML files.
For OData V2 APIs, this is standardized through the [Common Schema Definition Language (CSDL) V2](https://www.odata.org/documentation/odata-version-2-0/overview/#ServiceMetadataDocument).
For OData V4 APIs, this is standardized through the [CSDL XML Representation](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html)
The `mediaType` MUST be be set to `application/xml`.
The `apiProtocol` MUST be set to `odata-v2` or `odata-v4`.
`"csdl-json"`: [OData](https://www.odata.org/documentation/) V4 APIs can also be described via the
[OData Common Schema Definition Language (CSDL) JSON Representation](https://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html).
The `mediaType` MUST be be set to `application/json`.
The `apiProtocol` MUST be set to `odata-v2` or `odata-v4`.
`"graphql-sdl"`: [GraphQL](https://graphql.org/) APIs can be described via the [GraphQL Schema Definition Language](https://graphql.org/learn/schema/).
See also: [GraphQL Specification > Type System](https://spec.graphql.org/October2021/#sec-Type-System).
The `mediaType` MUST be be set to `text/plain`.
The `apiProtocol` MUST be set to `graphql`.
`"wsdl-v1"`: [WSDL 1](https://www.w3.org/TR/wsdl.html) API Definition for [SOAP](https://en.wikipedia.org/wiki/SOAP) APIs.
The `mediaType` MUST be be set to `application/xml`.
The `apiProtocol` MUST be set to `soap-inbound` or `soap-outbound`.
`"wsdl-v2"`: [WSDL 2](https://www.w3.org/TR/2007/REC-wsdl20-20070626/) API Definition for [SOAP](https://en.wikipedia.org/wiki/SOAP) APIs.
The `mediaType` MUST be be set to `application/xml`.
The `apiProtocol` MUST be set to `soap-inbound` or `soap-outbound`.
`"sap-rfc-metadata-v1"`: Proprietary metadata description format for [SAP RFC](https://help.sap.com/viewer/753088fc00704d0a80e7fbd6803c8adb/202009.000/en-US/4888068ad9134076e10000000a42189d.html).
The `mediaType` MUST be be set to `application/xml`.
`"sap-sql-api-definition-v1"`: Metadata description format for SAP SQL API, following the [SQL interface specification for SAP ecosystem](https://github.com/SAP/sql-interface-specification).
The `mediaType` MUST be be set to `application/json`.
The `apiProtocol` MUST be set to `sap-sql-api-v1`.
`"sap-csn-interop-effective-v1"`: CSN Interop Effective is a standardized and interoperable flavor of [CSN](https://cap.cloud.sap/docs/cds/csn)and a notation for compact representations of [CDS](https://cap.cloud.sap/docs/cds/) models.
The `mediaType` MUST be be set to `application/json`.
`"custom"`: If chosen, `customType` MUST be provided.
`"openapi-v2"`: [OpenAPI 2 / Swagger 2](https://swagger.io/specification/v2/) API Definition for [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) APIs.
The `mediaType` MUST be be set to either `application/json` or `text/yaml`.
`"openapi-v3"`: [OpenAPI 3](https://swagger.io/specification/) API Definition for [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) APIs.
The `mediaType` MUST be be set to either `application/json` or `text/yaml`.
`"raml-v1"`: [RAML](https://raml.org/) API Definition for [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) APIs.
The `mediaType` MUST be be set to `text/yaml`.
`"edmx"`: [OData](https://www.odata.org/documentation/) APIs can be described via edmx XML files.
For OData V2 APIs, this is standardized through the [Common Schema Definition Language (CSDL) V2](https://www.odata.org/documentation/odata-version-2-0/overview/#ServiceMetadataDocument).
For OData V4 APIs, this is standardized through the [CSDL XML Representation](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html)
The `mediaType` MUST be be set to `application/xml`.
The `apiProtocol` MUST be set to `odata-v2` or `odata-v4`.
`"csdl-json"`: [OData](https://www.odata.org/documentation/) V4 APIs can also be described via the
[OData Common Schema Definition Language (CSDL) JSON Representation](https://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html).
The `mediaType` MUST be be set to `application/json`.
The `apiProtocol` MUST be set to `odata-v2` or `odata-v4`.
`"graphql-sdl"`: [GraphQL](https://graphql.org/) APIs can be described via the [GraphQL Schema Definition Language](https://graphql.org/learn/schema/).
See also: [GraphQL Specification > Type System](https://spec.graphql.org/October2021/#sec-Type-System).
The `mediaType` MUST be be set to `text/plain`.
The `apiProtocol` MUST be set to `graphql`.
`"wsdl-v1"`: [WSDL 1](https://www.w3.org/TR/wsdl.html) API Definition for [SOAP](https://en.wikipedia.org/wiki/SOAP) APIs.
The `mediaType` MUST be be set to `application/xml`.
The `apiProtocol` MUST be set to `soap-inbound` or `soap-outbound`.
`"wsdl-v2"`: [WSDL 2](https://www.w3.org/TR/2007/REC-wsdl20-20070626/) API Definition for [SOAP](https://en.wikipedia.org/wiki/SOAP) APIs.
The `mediaType` MUST be be set to `application/xml`.
The `apiProtocol` MUST be set to `soap-inbound` or `soap-outbound`.
`"sap-rfc-metadata-v1"`: Proprietary metadata description format for [SAP RFC](https://help.sap.com/viewer/753088fc00704d0a80e7fbd6803c8adb/202009.000/en-US/4888068ad9134076e10000000a42189d.html).
The `mediaType` MUST be be set to `application/xml`.
`"sap-sql-api-definition-v1"`: Metadata description format for SAP SQL API, following the [SQL interface specification for SAP ecosystem](https://github.com/SAP/sql-interface-specification).
The `mediaType` MUST be be set to `application/json`.
The `apiProtocol` MUST be set to `sap-sql-api-v1`.
`"sap-csn-interop-effective-v1"`: [CSN Interop Effective](https://sap.github.io/csn-interop-specification/) is a standardized and interoperable [CSN](https://cap.cloud.sap/docs/cds/csn) export, used to describe [CDS](https://cap.cloud.sap/docs/cds/) models.
The `mediaType` MUST be be set to `application/json`.
`"custom"`: If chosen, `customType` MUST be provided.
^(\[a-z0-9\]+(?:\[.\]\[a-z0-9\]+)\*):(\[a-zA-Z0-9.\_\\-\]+):v(\[0-9\]+)$
`"application/json"`
`"application/xml"`
`"text/yaml"`
`"text/plain"`: For a plain-text format where no other serialization Media Type fits
`"application/octet-stream"`: For a binary format where no other serialization Media Type fits