@open-resource-discovery/specification 1.11.1 → 1.12.0
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.
- package/dist/types/v1/Configuration.d.ts +13 -1
- package/dist/types/v1/Document.d.ts +67 -40
- package/package.json +2 -2
- package/static/spec-v1/interfaces/Configuration.annotated.schema.json +31 -0
- package/static/spec-v1/interfaces/Configuration.schema.json +27 -0
- package/static/spec-v1/interfaces/Document.annotated.schema.json +155 -61
- package/static/spec-v1/interfaces/Document.schema.json +133 -61
|
@@ -51,6 +51,18 @@ export interface ORDV1DocumentDescription {
|
|
|
51
51
|
* either the baseUrl or a full URL to the document MUST be provided.
|
|
52
52
|
*/
|
|
53
53
|
url: string;
|
|
54
|
+
/**
|
|
55
|
+
* With ORD it's possible to describe a system from a static or a dynamic [perspective](../index.md#perspectives) (for more details, follow the link).
|
|
56
|
+
*
|
|
57
|
+
* It is strongly RECOMMENDED to mark all static ORD documents with perspective `system-version`.
|
|
58
|
+
*
|
|
59
|
+
* It is RECOMMENDED to describe dynamic metadata in both static system-version perspective and additionally describe the system-instance perspective where it diverges from the static metadata.
|
|
60
|
+
*
|
|
61
|
+
* If not provided, this defaults to `system-instance`, which is the most precise description but also the most costly to replicate.
|
|
62
|
+
*
|
|
63
|
+
* Please read the [article on perspectives](../concepts/perspectives) for more explanations.
|
|
64
|
+
*/
|
|
65
|
+
perspective?: "system-version" | "system-instance" | "system-independent";
|
|
54
66
|
/**
|
|
55
67
|
* Whether the information in the ORD document is **system instance aware**.
|
|
56
68
|
*
|
|
@@ -87,7 +99,7 @@ export interface AccessStrategy {
|
|
|
87
99
|
/**
|
|
88
100
|
* Defines the authentication/authorization strategy through which the referenced ORD Documents can be accessed.
|
|
89
101
|
*/
|
|
90
|
-
type: "open" | "sap:oauth-client-credentials:v1" | "sap:cmp-mtls:v1" | "sap.businesshub:basic-auth:v1" | "custom";
|
|
102
|
+
type: (string | "open" | "sap:oauth-client-credentials:v1" | "sap:cmp-mtls:v1" | "sap.businesshub:basic-auth:v1" | "custom") & string;
|
|
91
103
|
/**
|
|
92
104
|
* If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
|
|
93
105
|
*
|
|
@@ -17,7 +17,7 @@ export interface ORDDocument {
|
|
|
17
17
|
/**
|
|
18
18
|
* Version of the Open Resource Discovery specification that is used to describe this document.
|
|
19
19
|
*/
|
|
20
|
-
openResourceDiscovery: "1.0" | "1.1" | "1.2" | "1.3" | "1.4" | "1.5" | "1.6" | "1.7" | "1.8" | "1.9" | "1.10" | "1.11";
|
|
20
|
+
openResourceDiscovery: "1.0" | "1.1" | "1.2" | "1.3" | "1.4" | "1.5" | "1.6" | "1.7" | "1.8" | "1.9" | "1.10" | "1.11" | "1.12";
|
|
21
21
|
/**
|
|
22
22
|
* Optional description of the ORD document itself.
|
|
23
23
|
* Please note that this information is NOT further processed or considered by an ORD aggregator.
|
|
@@ -25,6 +25,18 @@ export interface ORDDocument {
|
|
|
25
25
|
* Notated in [CommonMark](https://spec.commonmark.org/) (Markdown).
|
|
26
26
|
*/
|
|
27
27
|
description?: string;
|
|
28
|
+
/**
|
|
29
|
+
* With ORD it's possible to describe a system from a static or a dynamic [perspective](../index.md#perspectives) (for more details, follow the link).
|
|
30
|
+
*
|
|
31
|
+
* It is strongly RECOMMENDED to mark all static ORD documents with perspective `system-version`.
|
|
32
|
+
*
|
|
33
|
+
* It is RECOMMENDED to describe dynamic metadata in both static system-version perspective and additionally describe the system-instance perspective where it diverges from the static metadata.
|
|
34
|
+
*
|
|
35
|
+
* If not provided, this defaults to `system-instance`, which is the most precise description but also the most costly to replicate.
|
|
36
|
+
*
|
|
37
|
+
* Please read the [article on perspectives](../concepts/perspectives) for more explanations.
|
|
38
|
+
*/
|
|
39
|
+
perspective?: "system-version" | "system-instance" | "system-independent";
|
|
28
40
|
describedSystemInstance?: SystemInstance;
|
|
29
41
|
describedSystemType?: SystemType;
|
|
30
42
|
describedSystemVersion?: SystemVersion;
|
|
@@ -102,8 +114,8 @@ export interface ORDDocument {
|
|
|
102
114
|
*/
|
|
103
115
|
groupTypes?: GroupType[];
|
|
104
116
|
/**
|
|
105
|
-
* List of ORD information (resources or taxonomy) that have been "tombstoned"
|
|
106
|
-
* This MUST be indicated explicitly,
|
|
117
|
+
* List of ORD information (resources or taxonomy) that have been "tombstoned", indicating removal or archival.
|
|
118
|
+
* This MUST be indicated explicitly, just removing the ORD information itself is not sufficient.
|
|
107
119
|
*
|
|
108
120
|
* A tombstone entry MAY be removed after a grace period of 31 days.
|
|
109
121
|
*/
|
|
@@ -231,9 +243,13 @@ export interface SystemType {
|
|
|
231
243
|
*/
|
|
232
244
|
export interface SystemVersion {
|
|
233
245
|
/**
|
|
234
|
-
* The version
|
|
246
|
+
* The version of the system instance (run-time) or the version of the described system-version perspective.
|
|
235
247
|
*
|
|
236
248
|
* It MUST follow the [Semantic Versioning 2.0.0](https://semver.org/) standard.
|
|
249
|
+
*
|
|
250
|
+
* MUST be provided if the ORD document is `perspective`: `system-version`.
|
|
251
|
+
*
|
|
252
|
+
* For continuous-delivery systems, the version MAY be fixed to the same value, e.g. `1.0.0`, but be aware that phased rollouts may benefit from a more precise versioning like adding a build number.
|
|
237
253
|
*/
|
|
238
254
|
version?: string;
|
|
239
255
|
/**
|
|
@@ -405,7 +421,7 @@ export interface APIResource {
|
|
|
405
421
|
*
|
|
406
422
|
* If the resource has attached definitions, either the `version` or `lastUpdate` property MUST be defined and updated to let the ORD aggregator know that they need to be fetched again.
|
|
407
423
|
*
|
|
408
|
-
* Together with `
|
|
424
|
+
* Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
|
|
409
425
|
*/
|
|
410
426
|
lastUpdate?: string;
|
|
411
427
|
/**
|
|
@@ -415,7 +431,7 @@ export interface APIResource {
|
|
|
415
431
|
/**
|
|
416
432
|
* The `releaseStatus` specifies the stability of the resource and its external contract.
|
|
417
433
|
*/
|
|
418
|
-
releaseStatus: "
|
|
434
|
+
releaseStatus: "beta" | "active" | "deprecated" | "sunset";
|
|
419
435
|
/**
|
|
420
436
|
* Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
|
|
421
437
|
* This can happen either because it has not been setup for use or disabled by an admin / user.
|
|
@@ -436,15 +452,13 @@ export interface APIResource {
|
|
|
436
452
|
minSystemVersion?: string;
|
|
437
453
|
/**
|
|
438
454
|
* The deprecation date defines when the resource has been set as deprecated.
|
|
439
|
-
* This is not to be confused with the `sunsetDate` which defines when the resource will be actually decommissioned / removed.
|
|
440
|
-
*
|
|
441
|
-
* If the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.
|
|
455
|
+
* This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
|
|
442
456
|
*
|
|
443
457
|
* The date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
|
|
444
458
|
*/
|
|
445
459
|
deprecationDate?: string;
|
|
446
460
|
/**
|
|
447
|
-
* The sunset date defines when the resource is scheduled to be decommissioned/removed.
|
|
461
|
+
* The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
|
|
448
462
|
*
|
|
449
463
|
* If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
|
|
450
464
|
* Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
|
|
@@ -637,6 +651,9 @@ export interface APIResource {
|
|
|
637
651
|
*/
|
|
638
652
|
policyLevels?: string[];
|
|
639
653
|
/**
|
|
654
|
+
* All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
|
|
655
|
+
* All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
|
|
656
|
+
*
|
|
640
657
|
* Defines whether this ORD resource is **system instance aware**.
|
|
641
658
|
* This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
|
|
642
659
|
*
|
|
@@ -681,7 +698,7 @@ export interface ChangelogEntry {
|
|
|
681
698
|
/**
|
|
682
699
|
* The `releaseStatus` specifies the stability of the resource and its external contract.
|
|
683
700
|
*/
|
|
684
|
-
releaseStatus: "
|
|
701
|
+
releaseStatus: "beta" | "active" | "deprecated" | "sunset";
|
|
685
702
|
/**
|
|
686
703
|
* Date of change, without time or timezone information.
|
|
687
704
|
*
|
|
@@ -1109,7 +1126,7 @@ export interface EventResource {
|
|
|
1109
1126
|
*
|
|
1110
1127
|
* If the resource has attached definitions, either the `version` or `lastUpdate` property MUST be defined and updated to let the ORD aggregator know that they need to be fetched again.
|
|
1111
1128
|
*
|
|
1112
|
-
* Together with `
|
|
1129
|
+
* Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
|
|
1113
1130
|
*/
|
|
1114
1131
|
lastUpdate?: string;
|
|
1115
1132
|
/**
|
|
@@ -1119,7 +1136,7 @@ export interface EventResource {
|
|
|
1119
1136
|
/**
|
|
1120
1137
|
* The `releaseStatus` specifies the stability of the resource and its external contract.
|
|
1121
1138
|
*/
|
|
1122
|
-
releaseStatus: "
|
|
1139
|
+
releaseStatus: "beta" | "active" | "deprecated" | "sunset";
|
|
1123
1140
|
/**
|
|
1124
1141
|
* Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
|
|
1125
1142
|
* This can happen either because it has not been setup for use or disabled by an admin / user.
|
|
@@ -1140,15 +1157,13 @@ export interface EventResource {
|
|
|
1140
1157
|
minSystemVersion?: string;
|
|
1141
1158
|
/**
|
|
1142
1159
|
* The deprecation date defines when the resource has been set as deprecated.
|
|
1143
|
-
* This is not to be confused with the `sunsetDate` which defines when the resource will be actually decommissioned / removed.
|
|
1144
|
-
*
|
|
1145
|
-
* If the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.
|
|
1160
|
+
* This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
|
|
1146
1161
|
*
|
|
1147
1162
|
* The date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
|
|
1148
1163
|
*/
|
|
1149
1164
|
deprecationDate?: string;
|
|
1150
1165
|
/**
|
|
1151
|
-
* The sunset date defines when the resource is scheduled to be decommissioned/removed.
|
|
1166
|
+
* The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
|
|
1152
1167
|
*
|
|
1153
1168
|
* If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
|
|
1154
1169
|
* Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
|
|
@@ -1299,6 +1314,9 @@ export interface EventResource {
|
|
|
1299
1314
|
*/
|
|
1300
1315
|
policyLevels?: string[];
|
|
1301
1316
|
/**
|
|
1317
|
+
* All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
|
|
1318
|
+
* All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
|
|
1319
|
+
*
|
|
1302
1320
|
* Defines whether this ORD resource is **system instance aware**.
|
|
1303
1321
|
* This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
|
|
1304
1322
|
*
|
|
@@ -1466,7 +1484,7 @@ export interface EntityType {
|
|
|
1466
1484
|
*
|
|
1467
1485
|
* If the resource has attached definitions, either the `version` or `lastUpdate` property MUST be defined and updated to let the ORD aggregator know that they need to be fetched again.
|
|
1468
1486
|
*
|
|
1469
|
-
* Together with `
|
|
1487
|
+
* Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
|
|
1470
1488
|
*/
|
|
1471
1489
|
lastUpdate?: string;
|
|
1472
1490
|
/**
|
|
@@ -1476,18 +1494,16 @@ export interface EntityType {
|
|
|
1476
1494
|
/**
|
|
1477
1495
|
* The `releaseStatus` specifies the stability of the resource and its external contract.
|
|
1478
1496
|
*/
|
|
1479
|
-
releaseStatus: "
|
|
1497
|
+
releaseStatus: "beta" | "active" | "deprecated" | "sunset";
|
|
1480
1498
|
/**
|
|
1481
1499
|
* The deprecation date defines when the resource has been set as deprecated.
|
|
1482
|
-
* This is not to be confused with the `sunsetDate` which defines when the resource will be actually decommissioned / removed.
|
|
1483
|
-
*
|
|
1484
|
-
* If the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.
|
|
1500
|
+
* This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
|
|
1485
1501
|
*
|
|
1486
1502
|
* The date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
|
|
1487
1503
|
*/
|
|
1488
1504
|
deprecationDate?: string;
|
|
1489
1505
|
/**
|
|
1490
|
-
* The sunset date defines when the resource is scheduled to be decommissioned/removed.
|
|
1506
|
+
* The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
|
|
1491
1507
|
*
|
|
1492
1508
|
* If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
|
|
1493
1509
|
* Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
|
|
@@ -1567,6 +1583,9 @@ export interface EntityType {
|
|
|
1567
1583
|
*/
|
|
1568
1584
|
policyLevels?: string[];
|
|
1569
1585
|
/**
|
|
1586
|
+
* All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
|
|
1587
|
+
* All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
|
|
1588
|
+
*
|
|
1570
1589
|
* Defines whether this ORD resource is **system instance aware**.
|
|
1571
1590
|
* This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
|
|
1572
1591
|
*
|
|
@@ -1577,8 +1596,7 @@ export interface EntityType {
|
|
|
1577
1596
|
systemInstanceAware?: boolean;
|
|
1578
1597
|
}
|
|
1579
1598
|
/**
|
|
1580
|
-
* Defines
|
|
1581
|
-
* In the future, this could include stating the relationship type, too.
|
|
1599
|
+
* Defines the relation between Entity Types (via its ORD ID).
|
|
1582
1600
|
*/
|
|
1583
1601
|
export interface RelatedEntityType {
|
|
1584
1602
|
/**
|
|
@@ -1587,6 +1605,12 @@ export interface RelatedEntityType {
|
|
|
1587
1605
|
* It MUST be a valid [ORD ID](../index.md#ord-id) of the appropriate ORD type.
|
|
1588
1606
|
*/
|
|
1589
1607
|
ordId: string;
|
|
1608
|
+
/**
|
|
1609
|
+
* Optional type of the relationship, which defines a stricter semantic what the relationship implies.
|
|
1610
|
+
*
|
|
1611
|
+
* If not provided, the relationship type has no semantics, it's "related somehow".
|
|
1612
|
+
*/
|
|
1613
|
+
relationType?: "part-of" | "can-share-identity";
|
|
1590
1614
|
}
|
|
1591
1615
|
/**
|
|
1592
1616
|
* 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.
|
|
@@ -1702,7 +1726,7 @@ export interface Capability {
|
|
|
1702
1726
|
*
|
|
1703
1727
|
* If the resource has attached definitions, either the `version` or `lastUpdate` property MUST be defined and updated to let the ORD aggregator know that they need to be fetched again.
|
|
1704
1728
|
*
|
|
1705
|
-
* Together with `
|
|
1729
|
+
* Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
|
|
1706
1730
|
*/
|
|
1707
1731
|
lastUpdate?: string;
|
|
1708
1732
|
/**
|
|
@@ -1712,7 +1736,7 @@ export interface Capability {
|
|
|
1712
1736
|
/**
|
|
1713
1737
|
* The `releaseStatus` specifies the stability of the resource and its external contract.
|
|
1714
1738
|
*/
|
|
1715
|
-
releaseStatus: "
|
|
1739
|
+
releaseStatus: "beta" | "active" | "deprecated" | "sunset";
|
|
1716
1740
|
/**
|
|
1717
1741
|
* Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
|
|
1718
1742
|
* This can happen either because it has not been setup for use or disabled by an admin / user.
|
|
@@ -1761,6 +1785,9 @@ export interface Capability {
|
|
|
1761
1785
|
labels?: Labels;
|
|
1762
1786
|
documentationLabels?: DocumentationLabels;
|
|
1763
1787
|
/**
|
|
1788
|
+
* All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
|
|
1789
|
+
* All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
|
|
1790
|
+
*
|
|
1764
1791
|
* Defines whether this ORD resource is **system instance aware**.
|
|
1765
1792
|
* This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
|
|
1766
1793
|
*
|
|
@@ -1926,7 +1953,7 @@ export interface DataProduct {
|
|
|
1926
1953
|
*
|
|
1927
1954
|
* If the resource has attached definitions, either the `version` or `lastUpdate` property MUST be defined and updated to let the ORD aggregator know that they need to be fetched again.
|
|
1928
1955
|
*
|
|
1929
|
-
* Together with `
|
|
1956
|
+
* Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
|
|
1930
1957
|
*/
|
|
1931
1958
|
lastUpdate?: string;
|
|
1932
1959
|
/**
|
|
@@ -1938,7 +1965,7 @@ export interface DataProduct {
|
|
|
1938
1965
|
* In the context of data products, it it covers only properties on the data product level.
|
|
1939
1966
|
* APIs that are part of the input and output ports have their own independent `releaseStatus` and `version`.
|
|
1940
1967
|
*/
|
|
1941
|
-
releaseStatus: "
|
|
1968
|
+
releaseStatus: "beta" | "active" | "deprecated" | "sunset";
|
|
1942
1969
|
/**
|
|
1943
1970
|
* Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
|
|
1944
1971
|
* This can happen either because it has not been setup for use or disabled by an admin / user.
|
|
@@ -1966,15 +1993,13 @@ export interface DataProduct {
|
|
|
1966
1993
|
lifecycleStatus?: "inactive" | "provisioning" | "active" | "deprovisioning" | "active-with-errors" | "provisioning-error" | "deprovisioning-error";
|
|
1967
1994
|
/**
|
|
1968
1995
|
* The deprecation date defines when the resource has been set as deprecated.
|
|
1969
|
-
* This is not to be confused with the `sunsetDate` which defines when the resource will be actually decommissioned / removed.
|
|
1970
|
-
*
|
|
1971
|
-
* If the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.
|
|
1996
|
+
* This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
|
|
1972
1997
|
*
|
|
1973
1998
|
* The date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
|
|
1974
1999
|
*/
|
|
1975
2000
|
deprecationDate?: string;
|
|
1976
2001
|
/**
|
|
1977
|
-
* The sunset date defines when the resource is scheduled to be decommissioned/removed.
|
|
2002
|
+
* The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
|
|
1978
2003
|
*
|
|
1979
2004
|
* If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
|
|
1980
2005
|
* Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
|
|
@@ -2102,6 +2127,9 @@ export interface DataProduct {
|
|
|
2102
2127
|
*/
|
|
2103
2128
|
policyLevels?: string[];
|
|
2104
2129
|
/**
|
|
2130
|
+
* All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
|
|
2131
|
+
* All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
|
|
2132
|
+
*
|
|
2105
2133
|
* Defines whether this ORD resource is **system instance aware**.
|
|
2106
2134
|
* This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
|
|
2107
2135
|
*
|
|
@@ -2278,7 +2306,7 @@ export interface IntegrationDependency {
|
|
|
2278
2306
|
*
|
|
2279
2307
|
* If the resource has attached definitions, either the `version` or `lastUpdate` property MUST be defined and updated to let the ORD aggregator know that they need to be fetched again.
|
|
2280
2308
|
*
|
|
2281
|
-
* Together with `
|
|
2309
|
+
* Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
|
|
2282
2310
|
*/
|
|
2283
2311
|
lastUpdate?: string;
|
|
2284
2312
|
/**
|
|
@@ -2288,9 +2316,9 @@ export interface IntegrationDependency {
|
|
|
2288
2316
|
/**
|
|
2289
2317
|
* The `releaseStatus` specifies the stability of the resource and its external contract.
|
|
2290
2318
|
*/
|
|
2291
|
-
releaseStatus: "
|
|
2319
|
+
releaseStatus: "beta" | "active" | "deprecated" | "sunset";
|
|
2292
2320
|
/**
|
|
2293
|
-
* The sunset date defines when the resource is scheduled to be decommissioned/removed.
|
|
2321
|
+
* The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
|
|
2294
2322
|
*
|
|
2295
2323
|
* If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
|
|
2296
2324
|
* Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
|
|
@@ -2846,7 +2874,7 @@ export interface ConsumptionBundle {
|
|
|
2846
2874
|
*
|
|
2847
2875
|
* If the resource has attached definitions, either the `version` or `lastUpdate` property MUST be defined and updated to let the ORD aggregator know that they need to be fetched again.
|
|
2848
2876
|
*
|
|
2849
|
-
* Together with `
|
|
2877
|
+
* Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
|
|
2850
2878
|
*/
|
|
2851
2879
|
lastUpdate?: string;
|
|
2852
2880
|
/**
|
|
@@ -2981,13 +3009,12 @@ export interface GroupType {
|
|
|
2981
3009
|
[k: string]: any | undefined;
|
|
2982
3010
|
}
|
|
2983
3011
|
/**
|
|
2984
|
-
* A tombstone indicates that a previously published ORD resource or taxonomy has been removed / decommissioned.
|
|
3012
|
+
* A tombstone indicates that a previously published ORD resource or taxonomy has been removed / decommissioned / archived.
|
|
2985
3013
|
* This MUST be indicated explicitly, so ORD aggregators and consumers can learn about the removal.
|
|
2986
3014
|
*
|
|
2987
3015
|
* Exactly one of the IDs MUST be provided to state which ORD resource or taxonomy item the Tombstone addresses.
|
|
2988
3016
|
*
|
|
2989
|
-
*
|
|
2990
|
-
* After that it MAY be removed.
|
|
3017
|
+
* The tombstone MUST be kept sufficiently long (at least 31 days) so that all ORD aggregators can learn about the tombstone.
|
|
2991
3018
|
*/
|
|
2992
3019
|
export interface Tombstone {
|
|
2993
3020
|
/**
|
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.
|
|
4
|
+
"version": "1.12.0",
|
|
5
5
|
"description": "Open Resource Discovery (ORD) Specification",
|
|
6
6
|
"author": "SAP SE",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@docusaurus/core": "3.8.1",
|
|
30
30
|
"@docusaurus/preset-classic": "3.8.1",
|
|
31
31
|
"@docusaurus/theme-mermaid": "3.8.1",
|
|
32
|
-
"@easyops-cn/docusaurus-search-local": "0.
|
|
32
|
+
"@easyops-cn/docusaurus-search-local": "0.51.1",
|
|
33
33
|
"@mdx-js/react": "3.1.0",
|
|
34
34
|
"clsx": "2.1.1",
|
|
35
35
|
"prism-react-renderer": "2.4.1",
|
|
@@ -37,10 +37,36 @@
|
|
|
37
37
|
"https://example.com/open-resource-discovery/v1/documents/example1"
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
|
+
"perspective": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"x-introduced-in-version": "1.12.0",
|
|
43
|
+
"x-feature-status": "beta",
|
|
44
|
+
"description": "With ORD it's possible to describe a system from a static or a dynamic [perspective](../index.md#perspectives) (for more details, follow the link).\n\nIt is strongly RECOMMENDED to mark all static ORD documents with perspective `system-version`.\n\nIt is RECOMMENDED to describe dynamic metadata in both static system-version perspective and additionally describe the system-instance perspective where it diverges from the static metadata.\n\nIf not provided, this defaults to `system-instance`, which is the most precise description but also the most costly to replicate.\n\nPlease read the [article on perspectives](../concepts/perspectives) for more explanations.",
|
|
45
|
+
"oneOf": [
|
|
46
|
+
{
|
|
47
|
+
"const": "system-version",
|
|
48
|
+
"description": "Describes the static [system-version](../index.md#def-system-version) perspective, usually known at deploy-time.\n\nIf chosen, `describedSystemVersion`.`version` MUST be provided, too.\n\nThis perspective describes how a system of a particular type and version generally look like.\nThe latest system-version MAY also be interpreted as the [system-type](../index.md#def-system-type) perspective."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"const": "system-instance",
|
|
52
|
+
"description": "Describes the complete dynamic [system-instance](../index.md#def-system-instance) (tenant) perspective as known at run-time.\nThis allows to also reflect tenant specific extensions, customizations and runtime configuration.\n\nIf provided, it will completely override the static system-version perspective when metadata about system instances is requested."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"const": "system-independent",
|
|
56
|
+
"description": "Describes content that is independent of [system-versions](../index.md#def-system-version) or [system-instances](../index.md#def-system-instance).\nThis content is always static and has independent visibility and lifecycle from the systems in a particular landscape.\nThe \"system-independent\" content MUST NOT be overridden via system-version or system-instance perspective metadata.\n\nExamples are: Vendors, products, globally aligned entity types, groups and group types (taxonomy), which are usually shared by multiple systems."
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"default": "system-instance",
|
|
60
|
+
"examples": [
|
|
61
|
+
"system-instance"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
40
64
|
"systemInstanceAware": {
|
|
41
65
|
"type": "boolean",
|
|
42
66
|
"description": "Whether the information in the ORD document is **system instance aware**.\n\nThis is the case when the provided ORD document potentially differs between **system instances**.\nPlease note that if a system does not support multi-tenancy, most likely each system instance has its own\nURL and different system instances could even be deployed in a different state (version).\nIf those conditions apply, `systemInstanceAware` MUST be set to true.\n\nAn ORD aggregator that represents a system instance aware perspective MUST fetch a system instance aware ORD document,\nnot just once per system type but once per **system instance**.\n\nPlease note that you can define system instance awareness also on the level of an ORD resource.\nIt is even possible and valid to have an ORD document that is NOT system instance aware to contain resources that are.\nThis can be the case because the resource is described in separate resource definition formats which would change,\nwhile the ORD document itself would not change (the links to the resource definition files stay the same).\n\nIf some ORD information is **system instance aware** and some is not,\nwe RECOMMEND to split the information into separate documents and mark their system instance awareness accordingly.",
|
|
43
67
|
"default": false,
|
|
68
|
+
"x-deprecated-in-version": "1.12.0",
|
|
69
|
+
"x-deprecated": "Please use `perspectives` instead and split content of different perspectives into different ORD documents.",
|
|
44
70
|
"examples": [
|
|
45
71
|
true
|
|
46
72
|
]
|
|
@@ -81,6 +107,11 @@
|
|
|
81
107
|
"type": "string",
|
|
82
108
|
"description": "Defines the authentication/authorization strategy through which the referenced ORD Documents can be accessed.",
|
|
83
109
|
"oneOf": [
|
|
110
|
+
{
|
|
111
|
+
"type": "string",
|
|
112
|
+
"pattern": "^([a-z0-9-]+(?:[.][a-z0-9-]+)*):([a-zA-Z0-9._\\-]+):(v0|v[1-9][0-9]*)$",
|
|
113
|
+
"description": "Any valid [Specification ID](../index.md#specification-id).\nIf chosen, `customDescription` SHOULD be provided."
|
|
114
|
+
},
|
|
84
115
|
{
|
|
85
116
|
"const": "open",
|
|
86
117
|
"description": "The resource definitions are openly accessible and not protected via authentication or authorization.\nPlease find a more detailed documentation [here](../../spec-extensions/access-strategies/open)."
|
|
@@ -37,6 +37,28 @@
|
|
|
37
37
|
"https://example.com/open-resource-discovery/v1/documents/example1"
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
|
+
"perspective": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "With ORD it's possible to describe a system from a static or a dynamic [perspective](../index.md#perspectives) (for more details, follow the link).\n\nIt is strongly RECOMMENDED to mark all static ORD documents with perspective `system-version`.\n\nIt is RECOMMENDED to describe dynamic metadata in both static system-version perspective and additionally describe the system-instance perspective where it diverges from the static metadata.\n\nIf not provided, this defaults to `system-instance`, which is the most precise description but also the most costly to replicate.\n\nPlease read the [article on perspectives](../concepts/perspectives) for more explanations.",
|
|
43
|
+
"oneOf": [
|
|
44
|
+
{
|
|
45
|
+
"const": "system-version",
|
|
46
|
+
"description": "Describes the static [system-version](../index.md#def-system-version) perspective, usually known at deploy-time.\n\nIf chosen, `describedSystemVersion`.`version` MUST be provided, too.\n\nThis perspective describes how a system of a particular type and version generally look like.\nThe latest system-version MAY also be interpreted as the [system-type](../index.md#def-system-type) perspective."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"const": "system-instance",
|
|
50
|
+
"description": "Describes the complete dynamic [system-instance](../index.md#def-system-instance) (tenant) perspective as known at run-time.\nThis allows to also reflect tenant specific extensions, customizations and runtime configuration.\n\nIf provided, it will completely override the static system-version perspective when metadata about system instances is requested."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"const": "system-independent",
|
|
54
|
+
"description": "Describes content that is independent of [system-versions](../index.md#def-system-version) or [system-instances](../index.md#def-system-instance).\nThis content is always static and has independent visibility and lifecycle from the systems in a particular landscape.\nThe \"system-independent\" content MUST NOT be overridden via system-version or system-instance perspective metadata.\n\nExamples are: Vendors, products, globally aligned entity types, groups and group types (taxonomy), which are usually shared by multiple systems."
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"default": "system-instance",
|
|
58
|
+
"examples": [
|
|
59
|
+
"system-instance"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
40
62
|
"systemInstanceAware": {
|
|
41
63
|
"type": "boolean",
|
|
42
64
|
"description": "Whether the information in the ORD document is **system instance aware**.\n\nThis is the case when the provided ORD document potentially differs between **system instances**.\nPlease note that if a system does not support multi-tenancy, most likely each system instance has its own\nURL and different system instances could even be deployed in a different state (version).\nIf those conditions apply, `systemInstanceAware` MUST be set to true.\n\nAn ORD aggregator that represents a system instance aware perspective MUST fetch a system instance aware ORD document,\nnot just once per system type but once per **system instance**.\n\nPlease note that you can define system instance awareness also on the level of an ORD resource.\nIt is even possible and valid to have an ORD document that is NOT system instance aware to contain resources that are.\nThis can be the case because the resource is described in separate resource definition formats which would change,\nwhile the ORD document itself would not change (the links to the resource definition files stay the same).\n\nIf some ORD information is **system instance aware** and some is not,\nwe RECOMMEND to split the information into separate documents and mark their system instance awareness accordingly.",
|
|
@@ -81,6 +103,11 @@
|
|
|
81
103
|
"type": "string",
|
|
82
104
|
"description": "Defines the authentication/authorization strategy through which the referenced ORD Documents can be accessed.",
|
|
83
105
|
"oneOf": [
|
|
106
|
+
{
|
|
107
|
+
"type": "string",
|
|
108
|
+
"pattern": "^([a-z0-9-]+(?:[.][a-z0-9-]+)*):([a-zA-Z0-9._\\-]+):(v0|v[1-9][0-9]*)$",
|
|
109
|
+
"description": "Any valid [Specification ID](../index.md#specification-id).\nIf chosen, `customDescription` SHOULD be provided."
|
|
110
|
+
},
|
|
84
111
|
{
|
|
85
112
|
"const": "open",
|
|
86
113
|
"description": "The resource definitions are openly accessible and not protected via authentication or authorization.\nPlease find a more detailed documentation [here](../../spec-extensions/access-strategies/open)."
|