From f32218b7a52fa4a8348628e015006297795da271 Mon Sep 17 00:00:00 2001 From: Simon Heimler Date: Fri, 21 Mar 2025 10:55:00 +0100 Subject: [PATCH 1/7] Add ObjectModel.owner annotation Signed-off-by: Simon Heimler --- CHANGELOG.md | 4 + spec/v1/annotations/object-model.yaml | 27 ++++- .../schemas/csn-interop-effective.schema.json | 114 +++++++++++++++++- .../spec-v1/schemas/object-model.schema.json | 23 +++- .../spec-v1/types/csn-interop-effective.ts | 41 +++++++ 5 files changed, 201 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 443d3ee9..55ff3979 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,10 @@ For a roadmap including expected timeline, please refer to [ROADMAP.md](./ROADMA ## [unreleased] +### Added + +- Added `@ObjectModel.owner` annotation to state ownership for parts of the CSN model where it differs from the main ownership. + ## [1.0.3] ### Fixed diff --git a/spec/v1/annotations/object-model.yaml b/spec/v1/annotations/object-model.yaml index 10034aea..665cf815 100644 --- a/spec/v1/annotations/object-model.yaml +++ b/spec/v1/annotations/object-model.yaml @@ -31,6 +31,25 @@ definitions: title: Element Reference ref: "#/definitions/ElementReference" + "@ObjectModel.owner": + type: string + description: |- + State the owner of the CSN model part, where it differs from the main ownership. + This can happen with extensions, which can be created by customers, partners or by industry extensions. + + The value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces). + If the annotation is not present, the owner is identical to the owner of the overall CSN model. + + For extensions created by the customer / owner of the system instance, use the reserved `customer` namespace. + pattern: ^[a-z0-9]+(?:[.][a-z0-9]+)*$ + x-extension-targets: + - "Entity" + - "Type" + - "Service" + examples: + - "customer" + - "somevendor.authority" + "@ObjectModel.modelingPattern": type: object description: |- @@ -121,7 +140,7 @@ definitions: "@ObjectModel.tenantWideUniqueName": type: string description: |- - Unique technical name of the entity within the tenant / isolation context it is deployed to. + Unique technical name of the entity within the tenant / isolation context it is deployed to. This may be used as a hint for database table names and help to keep them short enough. Once chosen the technical name ID MUST be kept stable (immutable). @@ -131,15 +150,15 @@ definitions: "@ObjectModel.usageType.sizeCategory": type: object description: |- - The size category enables the consumer to judge the possible result data set size. + The size category enables the consumer to judge the possible result data set size. It is a pure estimation at design time while modeling the entity what the data set size would be at runtime. - It reflects the set of data which has to be searched through to compute for example a count(*) of the data. + It reflects the set of data which has to be searched through to compute for example a count(*) of the data. The labels correspond to the following size categories (expected number of rows at production customers): - S: less than 1000 - M: less than 100.000 - L: less than 10.000.000 - - XL: less than 100.000.000 + - XL: less than 100.000.000 - XXL: more than 100.000.000 properties: "#": diff --git a/src/generated/spec-v1/schemas/csn-interop-effective.schema.json b/src/generated/spec-v1/schemas/csn-interop-effective.schema.json index d7ecbf22..73149830 100644 --- a/src/generated/spec-v1/schemas/csn-interop-effective.schema.json +++ b/src/generated/spec-v1/schemas/csn-interop-effective.schema.json @@ -374,6 +374,9 @@ "@ObjectModel.representativeKey": { "$ref": "#/definitions/@ObjectModel.representativeKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.modelingPattern": { "$ref": "#/definitions/@ObjectModel.modelingPattern" }, @@ -789,6 +792,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -992,6 +998,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -1193,6 +1202,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -1393,6 +1405,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -1594,6 +1609,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -1809,6 +1827,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -2008,6 +2029,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -2209,6 +2233,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -2405,6 +2432,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -2601,6 +2631,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -2797,6 +2830,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -2990,6 +3026,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -3271,6 +3310,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -3574,6 +3616,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -3815,6 +3860,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -4333,6 +4381,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -4744,6 +4795,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -4950,6 +5004,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -5157,6 +5214,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -5349,6 +5409,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -5553,6 +5616,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -5766,6 +5832,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -5972,6 +6041,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -6167,6 +6239,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -6365,6 +6440,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -6557,6 +6635,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -6749,6 +6830,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -6938,6 +7022,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -7219,6 +7306,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -7527,6 +7617,9 @@ "@ObjectModel.semanticKey": { "$ref": "#/definitions/@ObjectModel.semanticKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.foreignKey.association": { "$ref": "#/definitions/@ObjectModel.foreignKey.association" }, @@ -7716,6 +7809,9 @@ "@ObjectModel.representativeKey": { "$ref": "#/definitions/@ObjectModel.representativeKey" }, + "@ObjectModel.owner": { + "$ref": "#/definitions/@ObjectModel.owner" + }, "@ObjectModel.modelingPattern": { "$ref": "#/definitions/@ObjectModel.modelingPattern" }, @@ -8444,6 +8540,20 @@ ], "items": {} }, + "@ObjectModel.owner": { + "type": "string", + "description": "State the owner of the CSN model part, where it differs from the main ownership.\nThis can happen with extensions, which can be created by customers, partners or by industry extensions.\n\nThe value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces).\nIf the annotation is not present, the owner is identical to the owner of the overall CSN model.\n\nFor extensions created by the customer / owner of the system instance, use the reserved `customer` namespace.", + "pattern": "^[a-z0-9]+(?:[.][a-z0-9]+)*$", + "x-extension-targets": [ + "Entity", + "Type", + "Service" + ], + "examples": [ + "customer", + "somevendor.authority" + ] + }, "@ObjectModel.modelingPattern": { "type": "object", "description": "The property declares the modeling pattern applied in this entity definition.", @@ -8532,7 +8642,7 @@ }, "@ObjectModel.tenantWideUniqueName": { "type": "string", - "description": "Unique technical name of the entity within the tenant / isolation context it is deployed to. \nThis may be used as a hint for database table names and help to keep them short enough.\n\nOnce chosen the technical name ID MUST be kept stable (immutable).", + "description": "Unique technical name of the entity within the tenant / isolation context it is deployed to.\nThis may be used as a hint for database table names and help to keep them short enough.\n\nOnce chosen the technical name ID MUST be kept stable (immutable).", "maxLength": 120, "x-extension-targets": [ "Entity" @@ -8540,7 +8650,7 @@ }, "@ObjectModel.usageType.sizeCategory": { "type": "object", - "description": "The size category enables the consumer to judge the possible result data set size. \nIt is a pure estimation at design time while modeling the entity what the data set size would be at runtime.\nIt reflects the set of data which has to be searched through to compute for example a count(*) of the data. \n\nThe labels correspond to the following size categories (expected number of rows at production customers):\n- S: less than 1000\n- M: less than 100.000\n- L: less than 10.000.000\n- XL: less than 100.000.000 \n- XXL: more than 100.000.000", + "description": "The size category enables the consumer to judge the possible result data set size.\nIt is a pure estimation at design time while modeling the entity what the data set size would be at runtime.\nIt reflects the set of data which has to be searched through to compute for example a count(*) of the data.\n\nThe labels correspond to the following size categories (expected number of rows at production customers):\n- S: less than 1000\n- M: less than 100.000\n- L: less than 10.000.000\n- XL: less than 100.000.000\n- XXL: more than 100.000.000", "properties": { "#": { "type": "string", diff --git a/src/generated/spec-v1/schemas/object-model.schema.json b/src/generated/spec-v1/schemas/object-model.schema.json index 9fab0e91..cc6facf6 100644 --- a/src/generated/spec-v1/schemas/object-model.schema.json +++ b/src/generated/spec-v1/schemas/object-model.schema.json @@ -51,6 +51,25 @@ "@ObjectModel.semanticKey" ] }, + "@ObjectModel.owner": { + "type": "string", + "description": "State the owner of the CSN model part, where it differs from the main ownership.\nThis can happen with extensions, which can be created by customers, partners or by industry extensions.\n\nThe value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces).\nIf the annotation is not present, the owner is identical to the owner of the overall CSN model.\n\nFor extensions created by the customer / owner of the system instance, use the reserved `customer` namespace.", + "pattern": "^[a-z0-9]+(?:[.][a-z0-9]+)*$", + "x-extension-targets": [ + "Entity", + "Type", + "Service" + ], + "examples": [ + "customer", + "somevendor.authority" + ], + "title": "@ObjectModel.owner", + "x-context": [ + "./spec/v1/annotations/object-model.yaml", + "@ObjectModel.owner" + ] + }, "@ObjectModel.modelingPattern": { "type": "object", "description": "The property declares the modeling pattern applied in this entity definition.", @@ -184,7 +203,7 @@ }, "@ObjectModel.tenantWideUniqueName": { "type": "string", - "description": "Unique technical name of the entity within the tenant / isolation context it is deployed to. \nThis may be used as a hint for database table names and help to keep them short enough.\n\nOnce chosen the technical name ID MUST be kept stable (immutable).", + "description": "Unique technical name of the entity within the tenant / isolation context it is deployed to.\nThis may be used as a hint for database table names and help to keep them short enough.\n\nOnce chosen the technical name ID MUST be kept stable (immutable).", "maxLength": 120, "x-extension-targets": [ "Entity" @@ -197,7 +216,7 @@ }, "@ObjectModel.usageType.sizeCategory": { "type": "object", - "description": "The size category enables the consumer to judge the possible result data set size. \nIt is a pure estimation at design time while modeling the entity what the data set size would be at runtime.\nIt reflects the set of data which has to be searched through to compute for example a count(*) of the data. \n\nThe labels correspond to the following size categories (expected number of rows at production customers):\n- S: less than 1000\n- M: less than 100.000\n- L: less than 10.000.000\n- XL: less than 100.000.000 \n- XXL: more than 100.000.000", + "description": "The size category enables the consumer to judge the possible result data set size.\nIt is a pure estimation at design time while modeling the entity what the data set size would be at runtime.\nIt reflects the set of data which has to be searched through to compute for example a count(*) of the data.\n\nThe labels correspond to the following size categories (expected number of rows at production customers):\n- S: less than 1000\n- M: less than 100.000\n- L: less than 10.000.000\n- XL: less than 100.000.000\n- XXL: more than 100.000.000", "properties": { "#": { "type": "string", diff --git a/src/generated/spec-v1/types/csn-interop-effective.ts b/src/generated/spec-v1/types/csn-interop-effective.ts index fee85376..3a675cad 100644 --- a/src/generated/spec-v1/types/csn-interop-effective.ts +++ b/src/generated/spec-v1/types/csn-interop-effective.ts @@ -100,6 +100,16 @@ export type EntityRelationship = ReferenceTarget[]; * The property contains element(s) which shall be used to display the key in UIs (instead of the technical key). */ export type ObjectModel = unknown[]; +/** + * State the owner of the CSN model part, where it differs from the main ownership. + * This can happen with extensions, which can be created by customers, partners or by industry extensions. + * + * The value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces). + * If the annotation is not present, the owner is identical to the owner of the overall CSN model. + * + * For extensions created by the customer / owner of the system instance, use the reserved `customer` namespace. + */ +export type ObjectModelOwner = string; /** * The property contains element(s) containing a text for the annotated (id)element */ @@ -676,6 +686,7 @@ export interface EntityDefinition { "@EntityRelationship.referencesWithConstantIds"?: EntityRelationship5; "@ObjectModel.compositionRoot"?: ObjectModelCompositionRoot; "@ObjectModel.representativeKey"?: ElementReference; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.modelingPattern"?: ObjectModel1; "@ObjectModel.supportedCapabilities"?: ObjectModel2; "@ObjectModel.tenantWideUniqueName"?: ObjectModelTenantWideUniqueName; @@ -759,6 +770,7 @@ export interface BooleanType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -972,6 +984,7 @@ export interface StringType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1116,6 +1129,7 @@ export interface LargeStringType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1213,6 +1227,7 @@ export interface IntegerType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1342,6 +1357,7 @@ export interface Integer64Type { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1446,6 +1462,7 @@ export interface DecimalType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1545,6 +1562,7 @@ export interface DoubleType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1643,6 +1661,7 @@ export interface DateType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1740,6 +1759,7 @@ export interface TimeType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1837,6 +1857,7 @@ export interface DateTimeType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -1934,6 +1955,7 @@ export interface TimestampType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -2030,6 +2052,7 @@ export interface UUIDType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -2148,6 +2171,7 @@ export interface AssociationType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -2316,6 +2340,7 @@ export interface CompositionType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -2449,6 +2474,7 @@ export interface CustomType { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -2762,6 +2788,7 @@ export interface ServiceDefinition { "@EndUserText.label"?: EndUserTextLabel; "@EndUserText.quickInfo"?: EndUserTextQuickInfo; "@ObjectModel.representativeKey"?: ElementReference; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.modelingPattern"?: ObjectModel1; "@ObjectModel.supportedCapabilities"?: ObjectModel2; /** @@ -2819,6 +2846,7 @@ export interface BooleanTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -2920,6 +2948,7 @@ export interface StringTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3021,6 +3050,7 @@ export interface LargeStringTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3117,6 +3147,7 @@ export interface IntegerTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3214,6 +3245,7 @@ export interface Integer64TypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3322,6 +3354,7 @@ export interface DecimalTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3419,6 +3452,7 @@ export interface DoubleTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3516,6 +3550,7 @@ export interface DateTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3612,6 +3647,7 @@ export interface TimeTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3708,6 +3744,7 @@ export interface DateTimeTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3804,6 +3841,7 @@ export interface TimestampTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -3899,6 +3937,7 @@ export interface UUIDTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -4018,6 +4057,7 @@ export interface AssociationTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; @@ -4137,6 +4177,7 @@ export interface CompositionTypeDefinition { "@EntityRelationship.propertyType"?: EntityRelationshipPropertyType; "@EntityRelationship.reference"?: EntityRelationship; "@ObjectModel.semanticKey"?: ObjectModel; + "@ObjectModel.owner"?: ObjectModelOwner; "@ObjectModel.foreignKey.association"?: ElementReference; "@ObjectModel.text.element"?: ObjectModelText; "@ObjectModel.text.association"?: ElementReference; From d3f862eabd413f1b7f990790d4356f5f6da6250a Mon Sep 17 00:00:00 2001 From: Simon Heimler Date: Fri, 21 Mar 2025 11:14:18 +0100 Subject: [PATCH 2/7] Add more documentation how to use the namespaces Signed-off-by: Simon Heimler --- spec/v1/annotations/object-model.yaml | 6 ++++-- .../spec-v1/schemas/csn-interop-effective.schema.json | 2 +- src/generated/spec-v1/schemas/object-model.schema.json | 2 +- src/generated/spec-v1/types/csn-interop-effective.ts | 6 ++++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/spec/v1/annotations/object-model.yaml b/spec/v1/annotations/object-model.yaml index 665cf815..83bbd621 100644 --- a/spec/v1/annotations/object-model.yaml +++ b/spec/v1/annotations/object-model.yaml @@ -34,13 +34,15 @@ definitions: "@ObjectModel.owner": type: string description: |- - State the owner of the CSN model part, where it differs from the main ownership. - This can happen with extensions, which can be created by customers, partners or by industry extensions. + State the owner of the CSN model part, where it differs from the main ownership of the CSN document. + This can happen with model extensions, created by customers, partners or by industry extensions. The value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces). If the annotation is not present, the owner is identical to the owner of the overall CSN model. For extensions created by the customer / owner of the system instance, use the reserved `customer` namespace. + For extensions created by partners, use a [vendor namespace](https://open-resource-discovery.github.io/specification/spec-v1#vendor-namespace), representing the partner. + For industry extensions, use an [authority namespace](https://open-resource-discovery.github.io/specification/spec-v1#authority-namespace) if the industry is independent from a particular application or [sub-context namespace](https://open-resource-discovery.github.io/specification/spec-v1#sub-context-namespace) if it is owned by a sub-team / sub-domain of the application. pattern: ^[a-z0-9]+(?:[.][a-z0-9]+)*$ x-extension-targets: - "Entity" diff --git a/src/generated/spec-v1/schemas/csn-interop-effective.schema.json b/src/generated/spec-v1/schemas/csn-interop-effective.schema.json index 73149830..2c3d0aff 100644 --- a/src/generated/spec-v1/schemas/csn-interop-effective.schema.json +++ b/src/generated/spec-v1/schemas/csn-interop-effective.schema.json @@ -8542,7 +8542,7 @@ }, "@ObjectModel.owner": { "type": "string", - "description": "State the owner of the CSN model part, where it differs from the main ownership.\nThis can happen with extensions, which can be created by customers, partners or by industry extensions.\n\nThe value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces).\nIf the annotation is not present, the owner is identical to the owner of the overall CSN model.\n\nFor extensions created by the customer / owner of the system instance, use the reserved `customer` namespace.", + "description": "State the owner of the CSN model part, where it differs from the main ownership of the CSN document.\nThis can happen with model extensions, created by customers, partners or by industry extensions.\n\nThe value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces).\nIf the annotation is not present, the owner is identical to the owner of the overall CSN model.\n\nFor extensions created by the customer / owner of the system instance, use the reserved `customer` namespace.\nFor extensions created by partners, use a [vendor namespace](https://open-resource-discovery.github.io/specification/spec-v1#vendor-namespace), representing the partner.\nFor industry extensions, use an [authority namespace](https://open-resource-discovery.github.io/specification/spec-v1#authority-namespace) if the industry is independent from a particular application or [sub-context namespace](https://open-resource-discovery.github.io/specification/spec-v1#sub-context-namespace) if it is owned by a sub-team / sub-domain of the application.", "pattern": "^[a-z0-9]+(?:[.][a-z0-9]+)*$", "x-extension-targets": [ "Entity", diff --git a/src/generated/spec-v1/schemas/object-model.schema.json b/src/generated/spec-v1/schemas/object-model.schema.json index cc6facf6..fce4f8ae 100644 --- a/src/generated/spec-v1/schemas/object-model.schema.json +++ b/src/generated/spec-v1/schemas/object-model.schema.json @@ -53,7 +53,7 @@ }, "@ObjectModel.owner": { "type": "string", - "description": "State the owner of the CSN model part, where it differs from the main ownership.\nThis can happen with extensions, which can be created by customers, partners or by industry extensions.\n\nThe value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces).\nIf the annotation is not present, the owner is identical to the owner of the overall CSN model.\n\nFor extensions created by the customer / owner of the system instance, use the reserved `customer` namespace.", + "description": "State the owner of the CSN model part, where it differs from the main ownership of the CSN document.\nThis can happen with model extensions, created by customers, partners or by industry extensions.\n\nThe value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces).\nIf the annotation is not present, the owner is identical to the owner of the overall CSN model.\n\nFor extensions created by the customer / owner of the system instance, use the reserved `customer` namespace.\nFor extensions created by partners, use a [vendor namespace](https://open-resource-discovery.github.io/specification/spec-v1#vendor-namespace), representing the partner.\nFor industry extensions, use an [authority namespace](https://open-resource-discovery.github.io/specification/spec-v1#authority-namespace) if the industry is independent from a particular application or [sub-context namespace](https://open-resource-discovery.github.io/specification/spec-v1#sub-context-namespace) if it is owned by a sub-team / sub-domain of the application.", "pattern": "^[a-z0-9]+(?:[.][a-z0-9]+)*$", "x-extension-targets": [ "Entity", diff --git a/src/generated/spec-v1/types/csn-interop-effective.ts b/src/generated/spec-v1/types/csn-interop-effective.ts index 3a675cad..3845ce64 100644 --- a/src/generated/spec-v1/types/csn-interop-effective.ts +++ b/src/generated/spec-v1/types/csn-interop-effective.ts @@ -101,13 +101,15 @@ export type EntityRelationship = ReferenceTarget[]; */ export type ObjectModel = unknown[]; /** - * State the owner of the CSN model part, where it differs from the main ownership. - * This can happen with extensions, which can be created by customers, partners or by industry extensions. + * State the owner of the CSN model part, where it differs from the main ownership of the CSN document. + * This can happen with model extensions, created by customers, partners or by industry extensions. * * The value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces). * If the annotation is not present, the owner is identical to the owner of the overall CSN model. * * For extensions created by the customer / owner of the system instance, use the reserved `customer` namespace. + * For extensions created by partners, use a [vendor namespace](https://open-resource-discovery.github.io/specification/spec-v1#vendor-namespace), representing the partner. + * For industry extensions, use an [authority namespace](https://open-resource-discovery.github.io/specification/spec-v1#authority-namespace) if the industry is independent from a particular application or [sub-context namespace](https://open-resource-discovery.github.io/specification/spec-v1#sub-context-namespace) if it is owned by a sub-team / sub-domain of the application. */ export type ObjectModelOwner = string; /** From 2736fbd9706f98c2ed6b844b78bb461b03d3cf1c Mon Sep 17 00:00:00 2001 From: Simon Heimler Date: Mon, 24 Mar 2025 10:55:12 +0100 Subject: [PATCH 3/7] Update spec/v1/annotations/object-model.yaml Co-authored-by: Thomas Martin Gawlitza --- spec/v1/annotations/object-model.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/v1/annotations/object-model.yaml b/spec/v1/annotations/object-model.yaml index 83bbd621..b5b56fa5 100644 --- a/spec/v1/annotations/object-model.yaml +++ b/spec/v1/annotations/object-model.yaml @@ -34,7 +34,7 @@ definitions: "@ObjectModel.owner": type: string description: |- - State the owner of the CSN model part, where it differs from the main ownership of the CSN document. + Annotates the owner of the element. This can happen with model extensions, created by customers, partners or by industry extensions. The value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces). From 4a3e2fe2eb0567024d18b8b9101bdd14dd1be69b Mon Sep 17 00:00:00 2001 From: Simon Heimler Date: Mon, 24 Mar 2025 10:55:21 +0100 Subject: [PATCH 4/7] Update spec/v1/annotations/object-model.yaml Co-authored-by: Thomas Martin Gawlitza --- spec/v1/annotations/object-model.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/v1/annotations/object-model.yaml b/spec/v1/annotations/object-model.yaml index b5b56fa5..4ca02aa3 100644 --- a/spec/v1/annotations/object-model.yaml +++ b/spec/v1/annotations/object-model.yaml @@ -40,7 +40,7 @@ definitions: The value MUST be a valid [ORD namespace](https://open-resource-discovery.github.io/specification/spec-v1#namespaces). If the annotation is not present, the owner is identical to the owner of the overall CSN model. - For extensions created by the customer / owner of the system instance, use the reserved `customer` namespace. + For elements owned by the customer, use the reserved namespace `customer`. For extensions created by partners, use a [vendor namespace](https://open-resource-discovery.github.io/specification/spec-v1#vendor-namespace), representing the partner. For industry extensions, use an [authority namespace](https://open-resource-discovery.github.io/specification/spec-v1#authority-namespace) if the industry is independent from a particular application or [sub-context namespace](https://open-resource-discovery.github.io/specification/spec-v1#sub-context-namespace) if it is owned by a sub-team / sub-domain of the application. pattern: ^[a-z0-9]+(?:[.][a-z0-9]+)*$ From 313d1bd7d4011d0d2a21cb5656c1965b8886e834 Mon Sep 17 00:00:00 2001 From: Simon Heimler Date: Mon, 24 Mar 2025 10:55:31 +0100 Subject: [PATCH 5/7] Update spec/v1/annotations/object-model.yaml Co-authored-by: Thomas Martin Gawlitza --- spec/v1/annotations/object-model.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/v1/annotations/object-model.yaml b/spec/v1/annotations/object-model.yaml index 4ca02aa3..9d933b30 100644 --- a/spec/v1/annotations/object-model.yaml +++ b/spec/v1/annotations/object-model.yaml @@ -41,7 +41,7 @@ definitions: If the annotation is not present, the owner is identical to the owner of the overall CSN model. For elements owned by the customer, use the reserved namespace `customer`. - For extensions created by partners, use a [vendor namespace](https://open-resource-discovery.github.io/specification/spec-v1#vendor-namespace), representing the partner. + For extensions created by partners, use [vendor namespaces](https://open-resource-discovery.github.io/specification/spec-v1#vendor-namespace). For industry extensions, use an [authority namespace](https://open-resource-discovery.github.io/specification/spec-v1#authority-namespace) if the industry is independent from a particular application or [sub-context namespace](https://open-resource-discovery.github.io/specification/spec-v1#sub-context-namespace) if it is owned by a sub-team / sub-domain of the application. pattern: ^[a-z0-9]+(?:[.][a-z0-9]+)*$ x-extension-targets: From e997ded47a9f258884576674b2960a4018738962 Mon Sep 17 00:00:00 2001 From: Simon Heimler Date: Mon, 24 Mar 2025 10:55:41 +0100 Subject: [PATCH 6/7] Update spec/v1/annotations/object-model.yaml Co-authored-by: Thomas Martin Gawlitza --- spec/v1/annotations/object-model.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/v1/annotations/object-model.yaml b/spec/v1/annotations/object-model.yaml index 9d933b30..f772ac2c 100644 --- a/spec/v1/annotations/object-model.yaml +++ b/spec/v1/annotations/object-model.yaml @@ -42,7 +42,7 @@ definitions: For elements owned by the customer, use the reserved namespace `customer`. For extensions created by partners, use [vendor namespaces](https://open-resource-discovery.github.io/specification/spec-v1#vendor-namespace). - For industry extensions, use an [authority namespace](https://open-resource-discovery.github.io/specification/spec-v1#authority-namespace) if the industry is independent from a particular application or [sub-context namespace](https://open-resource-discovery.github.io/specification/spec-v1#sub-context-namespace) if it is owned by a sub-team / sub-domain of the application. + For industry extensions, use [authority namespaces](https://open-resource-discovery.github.io/specification/spec-v1#authority-namespace) if the industry is independent from a particular application. Use [sub-context namespaces](https://open-resource-discovery.github.io/specification/spec-v1#sub-context-namespace) if it is owned by a sub-team / sub-domain of the application. pattern: ^[a-z0-9]+(?:[.][a-z0-9]+)*$ x-extension-targets: - "Entity" From 87da695b29b2d4f23cd26bef929e63dade3613d7 Mon Sep 17 00:00:00 2001 From: Simon Heimler Date: Wed, 26 Mar 2025 17:33:54 +0100 Subject: [PATCH 7/7] Update cdsc compiler hint comment Signed-off-by: Simon Heimler --- spec/v1/examples/TestEntity.cds | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/spec/v1/examples/TestEntity.cds b/spec/v1/examples/TestEntity.cds index f04a568a..46f4f01a 100644 --- a/spec/v1/examples/TestEntity.cds +++ b/spec/v1/examples/TestEntity.cds @@ -1,11 +1,9 @@ // Compile this to CDS: // Closest to CSN Interop Effective (but not fully there yet) -// cdsc forEffective --beta effectiveCsn .\examples\TestEntity.cds -o tmp/test.cds.json +// cdsc forEffective --beta effectiveCsn .\spec\v1\examples\TestEntity.cds -o tmp/TestEntity.cds.json // Regular CAP CSN with inferred (effective) flavor // cds c -f inferred .\examples\TestEntity.cds -o tmp/test.cds.json -context foo.bar; - /** * Code comment description */