@open-resource-discovery/specification 1.14.1 → 1.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -170,13 +170,15 @@ export interface SystemInstance {
170
170
  tags?: string[];
171
171
  }
172
172
  /**
173
- * Generic labels that can be applied to most ORD information.
173
+ * Generic key-value labels that can be applied to most ORD information.
174
174
  * They are defined as an object that may have arbitrary keys.
175
175
  * The value of a key is an array of strings.
176
176
  *
177
177
  * Labels can be used to attach technical information that cannot be expressed natively in ORD.
178
178
  * An ORD aggregator should allow to categorize and query information based on the labels provided.
179
179
  *
180
+ * To learn more about the concept, see [Labels](../concepts/grouping-and-bundling#labels).
181
+ *
180
182
  * If multiple parties rely on the existence of certain label information,
181
183
  * standardization through ORD SHOULD be preferred.
182
184
  *
@@ -456,7 +458,7 @@ export interface ApiResource {
456
458
  *
457
459
  * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
458
460
  */
459
- releaseStatus: "beta" | "active" | "deprecated" | "sunset";
461
+ releaseStatus: "development" | "beta" | "active" | "deprecated" | "sunset";
460
462
  /**
461
463
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
462
464
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -477,6 +479,18 @@ export interface ApiResource {
477
479
  * It MUST follow the [Semantic Versioning 2.0.0](https://semver.org/) standard.
478
480
  */
479
481
  minSystemVersion?: string;
482
+ /**
483
+ * Optional list of related API Resources.
484
+ *
485
+ * Use this to indicate which APIs implement, expose, or are otherwise related to this entity.
486
+ */
487
+ relatedApiResources?: RelatedAPIResource[];
488
+ /**
489
+ * Optional list of related Event Resources.
490
+ *
491
+ * Use this to indicate which events are emitted, consumed, or otherwise related to this entity.
492
+ */
493
+ relatedEventResources?: RelatedEventResource[];
480
494
  /**
481
495
  * The deprecation date defines when the resource has been set as deprecated.
482
496
  * This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
@@ -719,6 +733,42 @@ export interface ConsumptionBundleReference {
719
733
  */
720
734
  defaultEntryPoint?: string;
721
735
  }
736
+ /**
737
+ * Defines a relation to an API Resource (via its ORD ID).
738
+ */
739
+ export interface RelatedAPIResource {
740
+ /**
741
+ * The ORD ID is a stable, globally unique ID for ORD resources or taxonomy.
742
+ *
743
+ * It MUST be a valid [ORD ID](../index.md#ord-id) of the appropriate ORD type.
744
+ */
745
+ ordId: string;
746
+ /**
747
+ * Optional type of the relationship as a [Concept ID](../index.md#concept-id).
748
+ *
749
+ * Defines the semantic meaning of the relationship.
750
+ * If not provided, the relationship has no specific semantics ("related somehow").
751
+ */
752
+ relationType?: string;
753
+ }
754
+ /**
755
+ * Defines a relation to an Event Resource (via its ORD ID).
756
+ */
757
+ export interface RelatedEventResource {
758
+ /**
759
+ * The ORD ID is a stable, globally unique ID for ORD resources or taxonomy.
760
+ *
761
+ * It MUST be a valid [ORD ID](../index.md#ord-id) of the appropriate ORD type.
762
+ */
763
+ ordId: string;
764
+ /**
765
+ * Optional type of the relationship as a [Concept ID](../index.md#concept-id).
766
+ *
767
+ * Defines the semantic meaning of the relationship.
768
+ * If not provided, the relationship has no specific semantics ("related somehow").
769
+ */
770
+ relationType?: string;
771
+ }
722
772
  /**
723
773
  * A changelog entry can be used to indicate changes.
724
774
  * Usually they lead to a change of the version number or the release status.
@@ -741,7 +791,7 @@ export interface ChangelogEntry {
741
791
  *
742
792
  * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
743
793
  */
744
- releaseStatus: "beta" | "active" | "deprecated" | "sunset";
794
+ releaseStatus: "development" | "beta" | "active" | "deprecated" | "sunset";
745
795
  /**
746
796
  * Date of change, without time or timezone information.
747
797
  *
@@ -1037,7 +1087,7 @@ export interface Link {
1037
1087
  */
1038
1088
  url: string;
1039
1089
  /**
1040
- * Full description, notated in [CommonMark](https://spec.commonmark.org/) (Markdown)
1090
+ * Full description, notated in [CommonMark](https://spec.commonmark.org/) (Markdown).
1041
1091
  */
1042
1092
  description?: string;
1043
1093
  [k: string]: unknown | undefined;
@@ -1232,7 +1282,7 @@ export interface EventResource {
1232
1282
  *
1233
1283
  * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
1234
1284
  */
1235
- releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1285
+ releaseStatus: "development" | "beta" | "active" | "deprecated" | "sunset";
1236
1286
  /**
1237
1287
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
1238
1288
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -1253,6 +1303,18 @@ export interface EventResource {
1253
1303
  * It MUST follow the [Semantic Versioning 2.0.0](https://semver.org/) standard.
1254
1304
  */
1255
1305
  minSystemVersion?: string;
1306
+ /**
1307
+ * Optional list of related API Resources.
1308
+ *
1309
+ * Use this to indicate which APIs implement, expose, or are otherwise related to this entity.
1310
+ */
1311
+ relatedApiResources?: RelatedAPIResource[];
1312
+ /**
1313
+ * Optional list of related Event Resources.
1314
+ *
1315
+ * Use this to indicate which events are emitted, consumed, or otherwise related to this entity.
1316
+ */
1317
+ relatedEventResources?: RelatedEventResource[];
1256
1318
  /**
1257
1319
  * The deprecation date defines when the resource has been set as deprecated.
1258
1320
  * This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
@@ -1509,8 +1571,8 @@ export interface EventCompatibility {
1509
1571
  maxVersion: string;
1510
1572
  }
1511
1573
  /**
1512
- * An [**Entity Type**](../concepts/grouping-and-bundling#entity-type) describes either a business concept / term or an underlying conceptual model.
1513
- * The same entity type can be exposed through one or multiple API and events resources.
1574
+ * An [**Entity Type**](../concepts/grouping-and-bundling#entity-type) describes either a business concept / term or an underlying conceptual model (e.g. a business object / domain model).
1575
+ * Entity Types can be related to API & Event resources, Data Products and other Entity Types, connecting exposed resources to business semantics.
1514
1576
  *
1515
1577
  * To learn more about the concept, see [Entity Type](../concepts/grouping-and-bundling#entity-type).
1516
1578
  */
@@ -1641,7 +1703,7 @@ export interface EntityType {
1641
1703
  *
1642
1704
  * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
1643
1705
  */
1644
- releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1706
+ releaseStatus: "development" | "beta" | "active" | "deprecated" | "sunset";
1645
1707
  /**
1646
1708
  * The deprecation date defines when the resource has been set as deprecated.
1647
1709
  * This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
@@ -1757,8 +1819,10 @@ export interface RelatedEntityType {
1757
1819
  * Optional type of the relationship, which defines a stricter semantic what the relationship implies.
1758
1820
  *
1759
1821
  * If not provided, the relationship type has no semantics, it's "related somehow".
1822
+ *
1823
+ * MUST be a valid [Concept ID](../index.md#concept-id).
1760
1824
  */
1761
- relationType?: "part-of" | "can-share-identity";
1825
+ relationType?: (string | "part-of" | "can-share-identity") & string;
1762
1826
  }
1763
1827
  /**
1764
1828
  * Capabilities can be used to describe use case specific capabilities, most notably supported features or additional information (like configuration) that needs to be understood from outside.
@@ -1896,7 +1960,7 @@ export interface Capability {
1896
1960
  *
1897
1961
  * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
1898
1962
  */
1899
- releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1963
+ releaseStatus: "development" | "beta" | "active" | "deprecated" | "sunset";
1900
1964
  /**
1901
1965
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
1902
1966
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -1922,6 +1986,24 @@ export interface Capability {
1922
1986
  * MUST be a valid reference to an [EntityType Resource](#entity-type) ORD ID.
1923
1987
  */
1924
1988
  relatedEntityTypes?: string[];
1989
+ /**
1990
+ * Optional list of related API Resources.
1991
+ *
1992
+ * Use this to indicate which APIs implement, expose, or are otherwise related to this entity.
1993
+ */
1994
+ relatedApiResources?: RelatedAPIResource[];
1995
+ /**
1996
+ * Optional list of related Event Resources.
1997
+ *
1998
+ * Use this to indicate which events are emitted, consumed, or otherwise related to this entity.
1999
+ */
2000
+ relatedEventResources?: RelatedEventResource[];
2001
+ /**
2002
+ * Optional list of related Capabilities.
2003
+ *
2004
+ * Use this to indicate dependencies, extensions, or other relationships between capabilities.
2005
+ */
2006
+ relatedCapabilities?: RelatedCapability[];
1925
2007
  /**
1926
2008
  * List of available machine-readable definitions, which describe the resource or capability in detail.
1927
2009
  * See also [Resource Definitions](../index.md#resource-definitions) for more context.
@@ -1962,6 +2044,24 @@ export interface Capability {
1962
2044
  */
1963
2045
  systemInstanceAware?: boolean;
1964
2046
  }
2047
+ /**
2048
+ * Defines a relation to another Capability (via its ORD ID).
2049
+ */
2050
+ export interface RelatedCapability {
2051
+ /**
2052
+ * The ORD ID is a stable, globally unique ID for ORD resources or taxonomy.
2053
+ *
2054
+ * It MUST be a valid [ORD ID](../index.md#ord-id) of the appropriate ORD type.
2055
+ */
2056
+ ordId: string;
2057
+ /**
2058
+ * Optional type of the relationship as a [Concept ID](../index.md#concept-id).
2059
+ *
2060
+ * Defines the semantic meaning of the relationship.
2061
+ * If not provided, the relationship has no specific semantics ("related somehow").
2062
+ */
2063
+ relationType?: string;
2064
+ }
1965
2065
  /**
1966
2066
  * Link and categorization of a machine-readable capability definition.
1967
2067
  */
@@ -2141,7 +2241,7 @@ export interface DataProduct {
2141
2241
  * In the context of data products, it it covers only properties on the data product level.
2142
2242
  * APIs that are part of the input and output ports have their own independent `releaseStatus` and `version`.
2143
2243
  */
2144
- releaseStatus: "beta" | "active" | "deprecated" | "sunset";
2244
+ releaseStatus: "development" | "beta" | "active" | "deprecated" | "sunset";
2145
2245
  /**
2146
2246
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
2147
2247
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -2501,7 +2601,7 @@ export interface Agent {
2501
2601
  *
2502
2602
  * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
2503
2603
  */
2504
- releaseStatus: "beta" | "active" | "deprecated" | "sunset";
2604
+ releaseStatus: "development" | "beta" | "active" | "deprecated" | "sunset";
2505
2605
  /**
2506
2606
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
2507
2607
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -2779,7 +2879,7 @@ export interface IntegrationDependency {
2779
2879
  *
2780
2880
  * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
2781
2881
  */
2782
- releaseStatus: "beta" | "active" | "deprecated" | "sunset";
2882
+ releaseStatus: "development" | "beta" | "active" | "deprecated" | "sunset";
2783
2883
  /**
2784
2884
  * The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
2785
2885
  *
@@ -2868,6 +2968,10 @@ export interface Aspect {
2868
2968
  * List of Event Resource Dependencies.
2869
2969
  */
2870
2970
  eventResources?: EventResourceIntegrationAspect[];
2971
+ /**
2972
+ * List of Capability Dependencies.
2973
+ */
2974
+ capabilities?: CapabilityIntegrationAspect[];
2871
2975
  }
2872
2976
  /**
2873
2977
  * API resource related integration aspect
@@ -2948,6 +3052,22 @@ export interface EventResourceIntegrationAspectSubset {
2948
3052
  */
2949
3053
  eventType: string;
2950
3054
  }
3055
+ /**
3056
+ * Capability related integration aspect
3057
+ */
3058
+ export interface CapabilityIntegrationAspect {
3059
+ /**
3060
+ * The ORD ID is a stable, globally unique ID for ORD resources or taxonomy.
3061
+ *
3062
+ * It MUST be a valid [ORD ID](../index.md#ord-id) of the appropriate ORD type.
3063
+ */
3064
+ ordId: string;
3065
+ /**
3066
+ * Minimum version of the references resource that the integration requires.
3067
+ *
3068
+ */
3069
+ minVersion?: string;
3070
+ }
2951
3071
  /**
2952
3072
  * The vendor of a product or a package, usually a corporation or a customer / user.
2953
3073
  *
@@ -2995,15 +3115,17 @@ export interface Vendor {
2995
3115
  documentationLabels?: DocumentationLabels;
2996
3116
  }
2997
3117
  /**
2998
- * A **product** in ORD is understood as a commercial product or service.
3118
+ * A [**Product**](../concepts/grouping-and-bundling#product) in ORD is understood as a software product or service offering (whether commercial or free).
2999
3119
  *
3000
- * It is a high-level entity for structuring the software portfolio from a sales / software logistics perspective.
3001
- * While **system type** is a technical concept, **product** covers the commercial and marketing view.
3120
+ * It is a high-level entity for structuring the software portfolio from a portfolio / software logistics perspective.
3121
+ * While **system type** is a technical concept, **product** covers the portfolio and marketing view.
3002
3122
  *
3003
3123
  * Please note that the ORD concept of a product is very simple on purpose.
3004
3124
  * There is no distinction between products and services and concepts like product versions, variants, etc.
3005
3125
  *
3006
3126
  * ORD assumes that this is handled by specialized systems and that ORD only provides the means to correlate to them.
3127
+ *
3128
+ * To learn more about the concept, see [Product](../concepts/grouping-and-bundling#product).
3007
3129
  */
3008
3130
  export interface Product {
3009
3131
  /**
@@ -3171,6 +3293,10 @@ export interface Package {
3171
3293
  * `packageLinks` MUST be preferred if applicable.
3172
3294
  */
3173
3295
  links?: Link[];
3296
+ /**
3297
+ * Generic list of files with arbitrary meaning and content. Meant to be used for linking PDFs, Word or similar content. This option MUST NOT be used for linking the actual metadata files like OpenAPI, AsyncAPI, CSN, etc.
3298
+ */
3299
+ files?: File[];
3174
3300
  /**
3175
3301
  * Standardized identifier for the license.
3176
3302
  * It MUST conform to the [SPDX License List](https://spdx.org/licenses).
@@ -3268,10 +3394,46 @@ export interface PackageLink {
3268
3394
  [k: string]: unknown | undefined;
3269
3395
  }
3270
3396
  /**
3271
- * A [**Consumption Bundle**](../concepts/grouping-and-bundling#consumption-bundle) groups APIs and Events together that can be consumed with the credentials and auth mechanism.
3272
- * Ideally it also includes instructions and details how to request access and credentials for resources.
3397
+ * File that can be attached on ORD package level.
3398
+ *
3399
+ */
3400
+ export interface File {
3401
+ /**
3402
+ * Human readable title of the file.
3403
+ *
3404
+ * MUST be unique within the collection of files provided.
3405
+ */
3406
+ title: string;
3407
+ /**
3408
+ * [URL](https://tools.ietf.org/html/rfc3986) of the link.
3409
+ *
3410
+ * The file target MAY be relative or absolute.
3411
+ * If a relative URL is given, it is relative to the [`describedSystemInstance.baseUrl`](#system-instance_baseurl).
3412
+ * If an absolute URL is given, then it MUST be openly accessible.
3413
+ */
3414
+ url: string;
3415
+ /**
3416
+ * Full description, notated in [CommonMark](https://spec.commonmark.org/) (Markdown).
3417
+ *
3418
+ * The description SHOULD not be excessive in length and is not meant to provide full documentation.
3419
+ * Detailed documentation SHOULD be attached as (typed) links.
3420
+ */
3421
+ description?: string;
3422
+ /**
3423
+ * The [Media Type](https://www.iana.org/assignments/media-types/media-types.xhtml) of the definition serialization format.
3424
+ * A consuming application can use this information to know which file format parser it needs to use.
3425
+ *
3426
+ * If no Media Type is registered for the referenced file, `text/plain` MAY be used for arbitrary plain-text and `application/octet-stream` for arbitrary binary data.
3427
+ *
3428
+ */
3429
+ mediaType: string;
3430
+ [k: string]: unknown | undefined;
3431
+ }
3432
+ /**
3433
+ * A [**Consumption Bundle**](../concepts/grouping-and-bundling#consumption-bundle) groups APIs and Events together that can be consumed with the same credentials and auth mechanism.
3434
+ * Ideally it also includes instructions and details on how to request access and credentials for resources.
3273
3435
  *
3274
- * For more documentation and guidance how to correctly this correctly, see [Consumption Bundle details](../concepts/grouping-and-bundling#consumption-bundle).
3436
+ * For more documentation and guidance on how to use this correctly, see [Consumption Bundle](../concepts/grouping-and-bundling#consumption-bundle).
3275
3437
  *
3276
3438
  * A Consumption Bundle SHOULD have at least one association with a resource (0..n). Avoid empty Consumption Bundles.
3277
3439
  * A Consumption Bundle MUST NOT contain APIs and Events that are NOT defined in the ORD document(s) returned
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package",
3
3
  "name": "@open-resource-discovery/specification",
4
- "version": "1.14.1",
4
+ "version": "1.14.3",
5
5
  "description": "Open Resource Discovery (ORD) Specification",
6
6
  "author": "SAP SE",
7
7
  "license": "Apache-2.0",
@@ -23,29 +23,30 @@
23
23
  ],
24
24
  "scripts": {
25
25
  "docusaurus": "docusaurus",
26
- "build": "npm run generate && npm run build-ts && npm run build-docusaurus",
26
+ "build": "npm run generate && npm run build:ts && npm run build:docusaurus",
27
27
  "clean": "node src/helper/clean.mjs",
28
- "build-ts": "tsc -p ./tsconfig.json",
29
- "build-docusaurus": "docusaurus build",
28
+ "build:ts": "tsc -p ./tsconfig.json",
29
+ "build:docusaurus": "docusaurus build",
30
30
  "format": "biome format --write .",
31
31
  "lint": "biome lint .",
32
- "test": "npm run build-ts && node --test dist/**/*.test.js",
32
+ "test": "npm run build:ts && node --test dist/**/*.test.js",
33
33
  "serve": "docusaurus serve",
34
34
  "start": "docusaurus start",
35
35
  "deploy": "npm run build && gh-pages -d ./build",
36
36
  "pregenerate": "npm run clean",
37
37
  "generate": "npx @open-resource-discovery/spec-toolkit -c ./spec-toolkit.config.json",
38
- "postgenerate": "ts-node ./src/helper/copyGeneratedToDestination.ts"
38
+ "postgenerate": "ts-node ./src/helper/copyGeneratedToDestination.ts",
39
+ "generate:llm-notebook": "npm run generate && ts-node ./src/helper/exportForNotebookLM.ts"
39
40
  },
40
41
  "devDependencies": {
41
- "@biomejs/biome": "2.4.6",
42
+ "@biomejs/biome": "2.4.9",
42
43
  "@docusaurus/core": "3.9.2",
43
44
  "@docusaurus/plugin-client-redirects": "3.9.2",
44
45
  "@docusaurus/preset-classic": "3.9.2",
45
46
  "@docusaurus/theme-mermaid": "3.9.2",
46
47
  "@easyops-cn/docusaurus-search-local": "0.55.1",
47
48
  "@mdx-js/react": "3.1.1",
48
- "@open-resource-discovery/spec-toolkit": "0.7.1",
49
+ "@open-resource-discovery/spec-toolkit": "0.8.0",
49
50
  "@types/fs-extra": "11.0.4",
50
51
  "ajv": "8.18.0",
51
52
  "ajv-formats": "3.0.1",