From c02d130937379aa0cfaf64232f211c3d5de01002 Mon Sep 17 00:00:00 2001 From: Vinzent Lange Date: Wed, 4 Oct 2023 09:24:20 +0000 Subject: [PATCH 01/34] feat: create own identityattribute init (cherry picked from commit 2a36b68539878c197824bda90ed3008cf8859fea) --- _data/navigation.yml | 4 ++++ _docs_integrate/create-own-identityattribute.md | 2 +- _includes/scenarios/integrate/create-own-identityattribute.md | 1 + assets/images/integrate/Create own IdentityAttribute.svg | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 _includes/scenarios/integrate/create-own-identityattribute.md create mode 100644 assets/images/integrate/Create own IdentityAttribute.svg diff --git a/_data/navigation.yml b/_data/navigation.yml index aac23b6a3..7fc61ad88 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -92,6 +92,10 @@ docs_integrate: url: /integrate/requests-over-templates - title: "Requests over Messages" url: /integrate/requests-over-messages + - title: Manage attributes of yourself + children: + - title: "Create own IdentityAttribute" + url: /integrate/create-own-identityattribute - title: Manage attributes of others children: - title: "Request persistent consent of peer" diff --git a/_docs_integrate/create-own-identityattribute.md b/_docs_integrate/create-own-identityattribute.md index 42cca79d9..e2805f887 100644 --- a/_docs_integrate/create-own-identityattribute.md +++ b/_docs_integrate/create-own-identityattribute.md @@ -1,7 +1,7 @@ --- # !!! Warning: Do not edit this file; any changes must be replicated in Excel !!! permalink: integrate/create-own-identityattribute -published: false +published: true title: "Create own IdentityAttribute" type: scenario toc: true diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md new file mode 100644 index 000000000..82be26366 --- /dev/null +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -0,0 +1 @@ +![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute.svg' | relative_url }}){: .align-center} diff --git a/assets/images/integrate/Create own IdentityAttribute.svg b/assets/images/integrate/Create own IdentityAttribute.svg new file mode 100644 index 000000000..339f0ef3c --- /dev/null +++ b/assets/images/integrate/Create own IdentityAttribute.svg @@ -0,0 +1 @@ + \ No newline at end of file From e2eec0b7169ecee3eb486814ef0aef474d9b07ff Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Fri, 20 Oct 2023 16:07:20 +0000 Subject: [PATCH 02/34] feat: create own identityattribute (cherry picked from commit f820de93668c61b3f42c97fa8e675aefc5ec2ec6) --- .../integrate/create-own-identityattribute.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 82be26366..db20f99dc 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -1 +1,27 @@ +You can create an Identity Attribute for your own Connector by executing `POST /api/v2/Attributes` with the following payload + +```json +{ + "content": { + "@type": "IdentityAttribute", + "owner": "", + "tags": ["", ... , ""], + "validFrom": "", + "validTo": "", + "value": { + // Identity Attribute Value + "@type": "", + "": "", ... , "": "" + } + } +} +``` + +where you need to replace the placeholders marked with <...> appropriately. + +The Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD` if you are using the Demo Connector of the Tutorial. In general, you can query the Connector's Address under the route `/api/v2/Account/IdentityInfo`. +{: .notice--info} + +{% include rapidoc api_route_regex="^post /api/v2/Attributes$" %} + ![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute.svg' | relative_url }}){: .align-center} From 256a3db9ef43d9bdfac14ee8d93b95e0e04d1350 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Mon, 23 Oct 2023 15:06:43 +0000 Subject: [PATCH 03/34] feat: create own identityattribute (cherry picked from commit 188fb6d8c02ff312a5050104935912911b3b05ee) --- .../integrate/create-own-identityattribute.md | 102 ++++++++++++++++-- .../Create own IdentityAttribute V2.svg | 1 + 2 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 assets/images/integrate/Create own IdentityAttribute V2.svg diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index db20f99dc..22cb1b434 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -1,27 +1,109 @@ -You can create an Identity Attribute for your own Connector by executing `POST /api/v2/Attributes` with the following payload +This guide explains the end to end flow of creating an [IdentityAttribute]({% link _docs_integrate/data-model-overview.md %}#identityattribute) for your own Connector. Before you start, you should check out our [IdentityAttribute introduction]({% link _docs_integrate/identityattribute-introduction.md %}) first. + +## Send Request with IdentityAttribute JSON payload + +To create an IdentityAttribute as a user for your own Connector, you need to send a Request by executing `POST /api/v2/Attributes` with an IdentityAttribute JSON payload: ```json { "content": { "@type": "IdentityAttribute", "owner": "", - "tags": ["", ... , ""], - "validFrom": "", - "validTo": "", + "validFrom": "", + "validTo": "", "value": { - // Identity Attribute Value - "@type": "", - "": "", ... , "": "" - } + //IdentityAttribute Value + "@type": "", + "": , ... , "": + }, + "tags": ["", ... , ""] } } ``` -where you need to replace the placeholders marked with <...> appropriately. +You need to replace the placeholders marked with <...> appropriately. In particular, it is necessary that you feed one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the payload. Note that the `"validFrom"`, `"validTo"` and `"tags"` properties are optional, so you can omit them. The Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD` if you are using the Demo Connector of the Tutorial. In general, you can query the Connector's Address under the route `/api/v2/Account/IdentityInfo`. {: .notice--info} {% include rapidoc api_route_regex="^post /api/v2/Attributes$" %} -![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute.svg' | relative_url }}){: .align-center} +## Process + +As you can see from the diagram below, after you send a request to create an IdentityAttribute for your own Connector, several checks are performed to verify the correctness of your request. + +Note that both an IdentityAttribute JSON and a RelationshipAttribute JSON are accepted as payload when requesting via `POST /api/v2/Attributes`, but only an IdentityAttribute JSON is suitable for creating an IdentityAttribute. Therefore, in this guide we assume that an IdentityAttribute JSON is submitted. As the name suggests, you can use a RelationshipAttribute JSON to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute). +{: .notice--info} + +If the request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case occurs. Then it is checked if the input values of the properties of the submitted IdentityAttribute Value meet the validation criteria, which you can find on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. If the validation was successful, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). + +![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute V2.svg' | relative_url }}){: .align-center} + +If the IdentityAttribute to be created is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each appropriate component of it. + +### Example 1: Create an own simple IdentityAttribute + +An example of a simple IdentityAttribute is an IdentityAttribute with IdentityAttribute Value of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If we want to create one without using optional parameters, the payload of the request has the following form: + +```json +{ + "content": { + "@type": "IdentityAttribute", + "owner": "", + "value": { + "@type": "DisplayName", + "value": "" + } + } +} +``` + +If the input value for the Connector's display name meets the validation criterion, which means the name is not longer than 100 characters, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. + +### Example 2: Create an own complex IdentityAttribute + +An example of a complex IdentityAttribute is an IdentityAttribute with IdentityAttribute Value of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If we want to create one without using optional parameters, the payload of the request has the following form: + +```json +{ + "content": { + "@type": "IdentityAttribute", + "owner": "", + "value": { + "@type": "BirthDate", + "day": , + "month": , + "year": + } + } +} +``` + +If the input values ​​for the properties `"day"`, `"month"` and `"year"` meet the validation criteria, that is, for example, that the input value for `"month"` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `"day"`, `"month"` and `"year"` can each be viewed as an independent IdentityAttribute with IdentityAttribute Value type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) or [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear). For this reason, another LocalAttribute is created for each of these components before a success response is sent. + +## Success Response + +If you have successfully created an IdentityAttribute for your connector, you will receive a success response. Generally this is of the following form: + +```json +{ + "result": { + "id": "", + "createdAt": "", + "content": { + "@type": "IdentityAttribute", + "owner": "", + "value": { + //IdentityAttribute Value + "@type": "", + "": , ... , "": + }, + "tags": ["", ... , ""], + "validFrom": "", + "validTo": "" + } + } +} +``` + +From this answer you can read the ID of the created IdentityAttribute from the property `"id"`. You will need this ID, for example, if you then want to share this IdentityAttribute with other identities as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). diff --git a/assets/images/integrate/Create own IdentityAttribute V2.svg b/assets/images/integrate/Create own IdentityAttribute V2.svg new file mode 100644 index 000000000..5578182e2 --- /dev/null +++ b/assets/images/integrate/Create own IdentityAttribute V2.svg @@ -0,0 +1 @@ + \ No newline at end of file From 2e4edbdda8ece659585219a80b5b3084d4099d34 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Tue, 24 Oct 2023 14:25:10 +0000 Subject: [PATCH 04/34] feat: create own identityattribute (cherry picked from commit 6b294bf564ba78055a1f7e0c15448f7f76ded11b) --- .../integrate/create-own-identityattribute.md | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 22cb1b434..3ee042caa 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -1,10 +1,10 @@ This guide explains the end to end flow of creating an [IdentityAttribute]({% link _docs_integrate/data-model-overview.md %}#identityattribute) for your own Connector. Before you start, you should check out our [IdentityAttribute introduction]({% link _docs_integrate/identityattribute-introduction.md %}) first. -## Send Request with IdentityAttribute JSON payload +## Send Request To create an IdentityAttribute as a user for your own Connector, you need to send a Request by executing `POST /api/v2/Attributes` with an IdentityAttribute JSON payload: -```json +```jsonc { "content": { "@type": "IdentityAttribute", @@ -14,36 +14,34 @@ To create an IdentityAttribute as a user for your own Connector, you need to sen "value": { //IdentityAttribute Value "@type": "", - "": , ... , "": + "": , ..., "": }, - "tags": ["", ... , ""] + "tags": ["", ..., ""] } } ``` You need to replace the placeholders marked with <...> appropriately. In particular, it is necessary that you feed one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the payload. Note that the `"validFrom"`, `"validTo"` and `"tags"` properties are optional, so you can omit them. -The Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD` if you are using the Demo Connector of the Tutorial. In general, you can query the Connector's Address under the route `/api/v2/Account/IdentityInfo`. +In general, you can query your Connector's Address by sending a Request using `GET /api/v2/Account/IdentityInfo`. If you use the Demo Connector provided by us for testing purposes in the interactive excerpt of the Connector's API documentation below, the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. {: .notice--info} {% include rapidoc api_route_regex="^post /api/v2/Attributes$" %} ## Process -As you can see from the diagram below, after you send a request to create an IdentityAttribute for your own Connector, several checks are performed to verify the correctness of your request. +As you can see from the diagram below, after you send a Request to create an IdentityAttribute for your own Connector, several checks are performed to verify the correctness of your Request. -Note that both an IdentityAttribute JSON and a RelationshipAttribute JSON are accepted as payload when requesting via `POST /api/v2/Attributes`, but only an IdentityAttribute JSON is suitable for creating an IdentityAttribute. Therefore, in this guide we assume that an IdentityAttribute JSON is submitted. As the name suggests, you can use a RelationshipAttribute JSON to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute). +Note that both an IdentityAttribute JSON and a RelationshipAttribute JSON are accepted as payload when requesting via `POST /api/v2/Attributes`, but only an IdentityAttribute JSON is suitable for creating an IdentityAttribute. Therefore, in this guide we assume that an IdentityAttribute JSON is passed. As the name suggests, you can use a RelationshipAttribute JSON to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute). {: .notice--info} -If the request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case occurs. Then it is checked if the input values of the properties of the submitted IdentityAttribute Value meet the validation criteria, which you can find on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. If the validation was successful, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). +If the Request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case occurs. In this case it is checked whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. ![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute V2.svg' | relative_url }}){: .align-center} -If the IdentityAttribute to be created is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each appropriate component of it. - ### Example 1: Create an own simple IdentityAttribute -An example of a simple IdentityAttribute is an IdentityAttribute with IdentityAttribute Value of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If we want to create one without using optional parameters, the payload of the request has the following form: +An example of a simple IdentityAttribute is an IdentityAttribute with IdentityAttribute Value of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create one without specifying optional parameters, the payload of the Request must have the following form: ```json { @@ -58,11 +56,11 @@ An example of a simple IdentityAttribute is an IdentityAttribute with IdentityAt } ``` -If the input value for the Connector's display name meets the validation criterion, which means the name is not longer than 100 characters, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. +Assuming that the input value for the Connector's display name meets the validation criterion, which means that the specified name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. ### Example 2: Create an own complex IdentityAttribute -An example of a complex IdentityAttribute is an IdentityAttribute with IdentityAttribute Value of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If we want to create one without using optional parameters, the payload of the request has the following form: +An example of a complex IdentityAttribute is an IdentityAttribute with IdentityAttribute Value of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create one without specifying optional parameters, the payload of the Request must have the following form: ```json { @@ -79,13 +77,13 @@ An example of a complex IdentityAttribute is an IdentityAttribute with IdentityA } ``` -If the input values ​​for the properties `"day"`, `"month"` and `"year"` meet the validation criteria, that is, for example, that the input value for `"month"` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `"day"`, `"month"` and `"year"` can each be viewed as an independent IdentityAttribute with IdentityAttribute Value type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) or [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear). For this reason, another LocalAttribute is created for each of these components before a success response is sent. +Assuming that the input values ​​for the properties `"day"`, `"month"` and `"year"` meet the validation criteria, which means, for example, that the input value for `"month"` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `"day"`, `"month"` and `"year"` can each be understood as an additional IdentityAttribute with IdentityAttribute Value type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. ## Success Response -If you have successfully created an IdentityAttribute for your connector, you will receive a success response. Generally this is of the following form: +When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. This has the general form: -```json +```jsonc { "result": { "id": "", @@ -96,9 +94,9 @@ If you have successfully created an IdentityAttribute for your connector, you wi "value": { //IdentityAttribute Value "@type": "", - "": , ... , "": + "": , ..., "": }, - "tags": ["", ... , ""], + "tags": ["", ..., ""], "validFrom": "", "validTo": "" } @@ -106,4 +104,4 @@ If you have successfully created an IdentityAttribute for your connector, you wi } ``` -From this answer you can read the ID of the created IdentityAttribute from the property `"id"`. You will need this ID, for example, if you then want to share this IdentityAttribute with other identities as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). +From this response, you can get the ID of the created IdentityAttribute from the `"id"` property. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). From d8d5b63a865f4e66d97defaca4da8e1bf0c5c215 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Mon, 30 Oct 2023 16:15:51 +0000 Subject: [PATCH 05/34] fix: adjust size of diagramm (cherry picked from commit 7fa0ed94f0fe6cdada8733c0fcfdc76021e56479) --- .../scenarios/integrate/create-own-identityattribute.md | 6 ++++-- assets/images/integrate/Create own IdentityAttribute V2.svg | 1 - assets/images/integrate/Create own IdentityAttribute.svg | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) delete mode 100644 assets/images/integrate/Create own IdentityAttribute V2.svg diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 3ee042caa..10db7d4d8 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -32,12 +32,14 @@ In general, you can query your Connector's Address by sending a Request using `G As you can see from the diagram below, after you send a Request to create an IdentityAttribute for your own Connector, several checks are performed to verify the correctness of your Request. -Note that both an IdentityAttribute JSON and a RelationshipAttribute JSON are accepted as payload when requesting via `POST /api/v2/Attributes`, but only an IdentityAttribute JSON is suitable for creating an IdentityAttribute. Therefore, in this guide we assume that an IdentityAttribute JSON is passed. As the name suggests, you can use a RelationshipAttribute JSON to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute). +Note that both an [IdentityAttribute JSON]({% link _docs_integrate/create-own-identityattribute.md %}#send-request) and a RelationshipAttribute JSON are accepted as payload when requesting via `POST /api/v2/Attributes`, but only an IdentityAttribute JSON is suitable for creating an IdentityAttribute. Therefore, in this guide we assume that an IdentityAttribute JSON is passed. As the name suggests, you can use a RelationshipAttribute JSON to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute). {: .notice--info} If the Request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case occurs. In this case it is checked whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. -![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute V2.svg' | relative_url }}){: .align-center} +[![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute V2.svg' | relative_url }}){: .align-center}]({{ '/assets/images/integrate/Create own IdentityAttribute V2.svg' | relative_url }}) + + ### Example 1: Create an own simple IdentityAttribute diff --git a/assets/images/integrate/Create own IdentityAttribute V2.svg b/assets/images/integrate/Create own IdentityAttribute V2.svg deleted file mode 100644 index 5578182e2..000000000 --- a/assets/images/integrate/Create own IdentityAttribute V2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/integrate/Create own IdentityAttribute.svg b/assets/images/integrate/Create own IdentityAttribute.svg index 339f0ef3c..c41d0a688 100644 --- a/assets/images/integrate/Create own IdentityAttribute.svg +++ b/assets/images/integrate/Create own IdentityAttribute.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 3d425aa7bf4aaa67cb0a2f174d56a5e4e3834a6c Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Mon, 30 Oct 2023 16:28:20 +0000 Subject: [PATCH 06/34] fix: adjust size of diagramm (cherry picked from commit 486d542ecde1196c42fe7e5f6639911e6f07b205) --- _includes/scenarios/integrate/create-own-identityattribute.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 10db7d4d8..bed5f1a0b 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -37,9 +37,9 @@ Note that both an [IdentityAttribute JSON]({% link _docs_integrate/create-own-id If the Request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case occurs. In this case it is checked whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. -[![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute V2.svg' | relative_url }}){: .align-center}]({{ '/assets/images/integrate/Create own IdentityAttribute V2.svg' | relative_url }}) +[![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute.svg' | relative_url }}){: .align-center}]({{ '/assets/images/integrate/Create own IdentityAttribute.svg' | relative_url }}) - + ### Example 1: Create an own simple IdentityAttribute From 72c71d37532e981dcf2a1b410e23bc7d7647412b Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Thu, 2 Nov 2023 08:55:55 +0000 Subject: [PATCH 07/34] fix: remove dependent link temporarly --- _includes/scenarios/integrate/create-own-identityattribute.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index bed5f1a0b..84334fbb7 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -1,4 +1,6 @@ -This guide explains the end to end flow of creating an [IdentityAttribute]({% link _docs_integrate/data-model-overview.md %}#identityattribute) for your own Connector. Before you start, you should check out our [IdentityAttribute introduction]({% link _docs_integrate/identityattribute-introduction.md %}) first. +This guide explains the end to end flow of creating an [IdentityAttribute]({% link _docs_integrate/data-model-overview.md %}#identityattribute) for your own Connector. Before you start, you should check out our IdentityAttribute introduction first. + + ## Send Request From 3603e6b547c9c8bc1b9e536a38f95327ed8f3d0c Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Fri, 27 Oct 2023 16:00:39 +0000 Subject: [PATCH 08/34] fix: remove api excerpt on create attribute page (cherry picked from commit 5686ce648d44c25d10224dd598e2b765b0d58cec) --- .../integrate/create-own-identityattribute.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 84334fbb7..aa9baba3d 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -23,12 +23,12 @@ To create an IdentityAttribute as a user for your own Connector, you need to sen } ``` -You need to replace the placeholders marked with <...> appropriately. In particular, it is necessary that you feed one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the payload. Note that the `"validFrom"`, `"validTo"` and `"tags"` properties are optional, so you can omit them. +You need to replace the placeholders marked with <...> appropriately. In particular, it is necessary that you feed one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the payload. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. -In general, you can query your Connector's Address by sending a Request using `GET /api/v2/Account/IdentityInfo`. If you use the Demo Connector provided by us for testing purposes in the interactive excerpt of the Connector's API documentation below, the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. +In general, you can query your Connector's Address by sending a Request using `GET /api/v2/Account/IdentityInfo`. If you use the Demo Connector provided by us for testing purposes in the [interactive excerpt of the Connector's API documentation]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}), the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. {: .notice--info} -{% include rapidoc api_route_regex="^post /api/v2/Attributes$" %} + ## Process @@ -81,7 +81,7 @@ An example of a complex IdentityAttribute is an IdentityAttribute with IdentityA } ``` -Assuming that the input values ​​for the properties `"day"`, `"month"` and `"year"` meet the validation criteria, which means, for example, that the input value for `"month"` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `"day"`, `"month"` and `"year"` can each be understood as an additional IdentityAttribute with IdentityAttribute Value type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. +Assuming that the input values ​​for the properties `day`, `month` and `year` meet the validation criteria, which means, for example, that the input value for `month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `day`, `month` and `year` can each be understood as an additional IdentityAttribute with IdentityAttribute Value type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. ## Success Response @@ -108,4 +108,4 @@ When you have successfully created an IdentityAttribute for your Connector, you } ``` -From this response, you can get the ID of the created IdentityAttribute from the `"id"` property. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). +From this response, you can get the ID of the created IdentityAttribute from the `id` property. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). From 63711463e1428211461737c3f364f8f8ef436321 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Thu, 16 Nov 2023 15:39:57 +0000 Subject: [PATCH 09/34] fix: make text more readable, embed new diagram --- .../integrate/create-own-identityattribute.md | 16 +++++++++------- .../integrate/Create own IdentityAttribute.svg | 1 - 2 files changed, 9 insertions(+), 8 deletions(-) delete mode 100644 assets/images/integrate/Create own IdentityAttribute.svg diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index aa9baba3d..7d2598154 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -1,10 +1,10 @@ -This guide explains the end to end flow of creating an [IdentityAttribute]({% link _docs_integrate/data-model-overview.md %}#identityattribute) for your own Connector. Before you start, you should check out our IdentityAttribute introduction first. +This guide explains the end to end flow of creating an [IdentityAttribute]({% link _docs_integrate/data-model-overview.md %}#identityattribute) for your own Connector as an Integrator. Before you start, you should check out our IdentityAttribute introduction first. ## Send Request -To create an IdentityAttribute as a user for your own Connector, you need to send a Request by executing `POST /api/v2/Attributes` with an IdentityAttribute JSON payload: +To create an IdentityAttribute as an Integrator for your own Connector, you need to send a Request by executing `POST /api/v2/Attributes` with an IdentityAttribute JSON payload: ```jsonc { @@ -23,7 +23,7 @@ To create an IdentityAttribute as a user for your own Connector, you need to sen } ``` -You need to replace the placeholders marked with <...> appropriately. In particular, it is necessary that you feed one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the payload. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. +You need to replace the placeholders marked with <...> appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the payload. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. In general, you can query your Connector's Address by sending a Request using `GET /api/v2/Account/IdentityInfo`. If you use the Demo Connector provided by us for testing purposes in the [interactive excerpt of the Connector's API documentation]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}), the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. {: .notice--info} @@ -39,13 +39,15 @@ Note that both an [IdentityAttribute JSON]({% link _docs_integrate/create-own-id If the Request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case occurs. In this case it is checked whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. -[![High level architecture diagram of enmeshed components and layers]({{ '/assets/images/integrate/Create own IdentityAttribute.svg' | relative_url }}){: .align-center}]({{ '/assets/images/integrate/Create own IdentityAttribute.svg' | relative_url }}) +
+ + ### Example 1: Create an own simple IdentityAttribute -An example of a simple IdentityAttribute is an IdentityAttribute with IdentityAttribute Value of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create one without specifying optional parameters, the payload of the Request must have the following form: +An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, the payload of the Request must have the following form: ```json { @@ -64,7 +66,7 @@ Assuming that the input value for the Connector's display name meets the validat ### Example 2: Create an own complex IdentityAttribute -An example of a complex IdentityAttribute is an IdentityAttribute with IdentityAttribute Value of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create one without specifying optional parameters, the payload of the Request must have the following form: +An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, the payload of the Request must have the following form: ```json { @@ -81,7 +83,7 @@ An example of a complex IdentityAttribute is an IdentityAttribute with IdentityA } ``` -Assuming that the input values ​​for the properties `day`, `month` and `year` meet the validation criteria, which means, for example, that the input value for `month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `day`, `month` and `year` can each be understood as an additional IdentityAttribute with IdentityAttribute Value type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. +Assuming that the input values ​​for the properties `day`, `month` and `year` meet the validation criteria, which means, for example, that the input value for `month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `day`, `month` and `year` can each be understood as an additional IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. ## Success Response diff --git a/assets/images/integrate/Create own IdentityAttribute.svg b/assets/images/integrate/Create own IdentityAttribute.svg deleted file mode 100644 index c41d0a688..000000000 --- a/assets/images/integrate/Create own IdentityAttribute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From e053d5c8a714a357ccd8c7018ca9ab31880a8922 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Fri, 17 Nov 2023 09:43:48 +0000 Subject: [PATCH 10/34] fix: change terminology for requests, add usecases --- .../integrate/create-own-identityattribute.md | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 7d2598154..5bb8d8679 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -2,9 +2,9 @@ This guide explains the end to end flow of creating an [IdentityAttribute]({% li -## Send Request +## Send HTTP request -To create an IdentityAttribute as an Integrator for your own Connector, you need to send a Request by executing `POST /api/v2/Attributes` with an IdentityAttribute JSON payload: +To create an IdentityAttribute as an Integrator for your own Connector, you need to send an HTTP request as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation by executing `POST /api/v2/Attributes` with an IdentityAttribute JSON payload: ```jsonc { @@ -25,19 +25,23 @@ To create an IdentityAttribute as an Integrator for your own Connector, you need You need to replace the placeholders marked with <...> appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the payload. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. -In general, you can query your Connector's Address by sending a Request using `GET /api/v2/Account/IdentityInfo`. If you use the Demo Connector provided by us for testing purposes in the [interactive excerpt of the Connector's API documentation]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}), the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. +In general, you can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. If you use the Demo Connector provided by us for testing purposes in the [interactive excerpt of the Connector's API documentation]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}), the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. {: .notice--info} + + + + ## Process -As you can see from the diagram below, after you send a Request to create an IdentityAttribute for your own Connector, several checks are performed to verify the correctness of your Request. +As you can see from the diagram below, after you send an HTTP request to create an IdentityAttribute for your own Connector, several checks are performed to verify the correctness of your HTTP request. -Note that both an [IdentityAttribute JSON]({% link _docs_integrate/create-own-identityattribute.md %}#send-request) and a RelationshipAttribute JSON are accepted as payload when requesting via `POST /api/v2/Attributes`, but only an IdentityAttribute JSON is suitable for creating an IdentityAttribute. Therefore, in this guide we assume that an IdentityAttribute JSON is passed. As the name suggests, you can use a RelationshipAttribute JSON to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute). +Note that both an [IdentityAttribute JSON]({% link _docs_integrate/create-own-identityattribute.md %}#send-http-request) and a RelationshipAttribute JSON are accepted as payload when requesting via `POST /api/v2/Attributes`, but only an IdentityAttribute JSON is suitable for creating an IdentityAttribute. Therefore, in this guide we assume that an IdentityAttribute JSON is passed. As the name suggests, you can use a RelationshipAttribute JSON to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute). {: .notice--info} -If the Request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case occurs. In this case it is checked whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. +If the HTTP request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the next step of the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case is a check whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components.
@@ -47,7 +51,7 @@ If the Request is not made correctly, an [error message]({% link _docs_integrate ### Example 1: Create an own simple IdentityAttribute -An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, the payload of the Request must have the following form: +An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, the payload of the HTTP request must have the following form: ```json { @@ -66,7 +70,7 @@ Assuming that the input value for the Connector's display name meets the validat ### Example 2: Create an own complex IdentityAttribute -An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, the payload of the Request must have the following form: +An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, the payload of the HTTP request must have the following form: ```json { @@ -85,7 +89,7 @@ An example of a complex IdentityAttribute is one of type [BirthDate]({% link _do Assuming that the input values ​​for the properties `day`, `month` and `year` meet the validation criteria, which means, for example, that the input value for `month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `day`, `month` and `year` can each be understood as an additional IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. -## Success Response +## Success response When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. This has the general form: From 2a28594fe825ff1c2ebab00fa26e85eccc3ee1bd Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Mon, 20 Nov 2023 17:40:54 +0000 Subject: [PATCH 11/34] fix: replace http request payloads with tables --- .../integrate/create-own-identityattribute.md | 75 ++++++++++++++----- 1 file changed, 56 insertions(+), 19 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 5bb8d8679..b4de89f25 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -2,10 +2,13 @@ This guide explains the end to end flow of creating an [IdentityAttribute]({% li -## Send HTTP request +## Input for creating an IdentityAttribute -To create an IdentityAttribute as an Integrator for your own Connector, you need to send an HTTP request as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation by executing `POST /api/v2/Attributes` with an IdentityAttribute JSON payload: +To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation using the following table values as input: + + + + +| Property | Value | +| ------------------- | ------------------------------------------------------------------- | +| `content.@type` | `"IdentityAttribute"` | +| `content.owner` | `""` | +| `content.validFrom` | `""` | +| `content.validTo` | `""` | +| `content.value` | `` | +| `content.tags` | `["", ..., ""]` | -You need to replace the placeholders marked with <...> appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the payload. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. +You need to replace the placeholders marked with `<...>` appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `content.value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `content.owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. Note that you can omit the properties `content.validFrom`, `content.validTo` and `content.tags`, because they are optional. In general, you can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. If you use the Demo Connector provided by us for testing purposes in the [interactive excerpt of the Connector's API documentation]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}), the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. {: .notice--info} @@ -36,14 +49,17 @@ In general, you can query your Connector's Address by proceeding as documented i ## Process -As you can see from the diagram below, after you send an HTTP request to create an IdentityAttribute for your own Connector, several checks are performed to verify the correctness of your HTTP request. +As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. -Note that both an [IdentityAttribute JSON]({% link _docs_integrate/create-own-identityattribute.md %}#send-http-request) and a RelationshipAttribute JSON are accepted as payload when requesting via `POST /api/v2/Attributes`, but only an IdentityAttribute JSON is suitable for creating an IdentityAttribute. Therefore, in this guide we assume that an IdentityAttribute JSON is passed. As the name suggests, you can use a RelationshipAttribute JSON to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute). +Note that with proceeding as documented in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case, you can create an IdentityAttribute as well as a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute) depending on the input you provide. In the [Input for creating an IdentityAttribute]({% link _docs_integrate/create-own-identityattribute.md %}#input-for-creating-an-identityattribute) section before we described the suitable input for creating an IdentityAttribute only, as this guide should not cover the procedure of how to create a RelationshipAttribute. Nevertheless, specifying input values for creating a RelationshipAttribute would not return an error at this point. {: .notice--info} -If the HTTP request is not made correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the next step of the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case is a check whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. + + +If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the next step of the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case is a check whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. -
+
@@ -51,9 +67,16 @@ If the HTTP request is not made correctly, an [error message]({% link _docs_inte ### Example 1: Create an own simple IdentityAttribute -An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, the payload of the HTTP request must have the following form: +An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following input: -```json +| Property | Value | +| --------------------- | ----------------------------------- | +| `content.@type` | `"IdentityAttribute"` | +| `content.owner` | `""` | +| `content.value.@type` | `"DisplayName"` | +| `content.value.value` | `""` | + + -Assuming that the input value for the Connector's display name meets the validation criterion, which means that the specified name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. +Assuming that the input value for the Connector's display name specified in the `content.value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. ### Example 2: Create an own complex IdentityAttribute -An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, the payload of the HTTP request must have the following form: +An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, you must use the following input: -```json +| Property | Value | +| --------------------- | ------------------------------ | +| `content.@type` | `"IdentityAttribute"` | +| `content.owner` | `""` | +| `content.value.@type` | `"BirthDate"` | +| `content.value.day` | `` | +| `content.value.month` | `` | +| `content.value.year` | `` | + + -Assuming that the input values ​​for the properties `day`, `month` and `year` meet the validation criteria, which means, for example, that the input value for `month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `day`, `month` and `year` can each be understood as an additional IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. +Assuming that the input values ​​for the properties `content.value.day`, `content.value.month` and `content.value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `content.value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `content.value.day`, `content.value.month` and `content.value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. ## Success response -When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. This has the general form: +When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. From this response, you can read the following output values: -```jsonc +| Property | Value | +| ------------------ | ---------------------------------------- | +| `result.id` | `"` | +| `result.createdAt` | `""` | + + -From this response, you can get the ID of the created IdentityAttribute from the `id` property. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). +In particular, you can get the ID of the created IdentityAttribute from the `result.id` property of the response. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). From de45355d9b7348841c9f0bfe3b61b711ee97fb34 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Tue, 21 Nov 2023 08:53:23 +0000 Subject: [PATCH 12/34] fix: simplifying property notation --- .../integrate/create-own-identityattribute.md | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index b4de89f25..d101d452e 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -4,7 +4,7 @@ This guide explains the end to end flow of creating an [IdentityAttribute]({% li ## Input for creating an IdentityAttribute -To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation using the following table values as input: +To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation using the following content: @@ -27,16 +27,16 @@ To create an IdentityAttribute as an Integrator for your own Connector, you need ``` ---> -| Property | Value | -| ------------------- | ------------------------------------------------------------------- | -| `content.@type` | `"IdentityAttribute"` | -| `content.owner` | `""` | -| `content.validFrom` | `""` | -| `content.validTo` | `""` | -| `content.value` | `` | -| `content.tags` | `["", ..., ""]` | +| Property | Value | +| ----------- | ------------------------------------------------------------------- | +| `@type` | `"IdentityAttribute"` | +| `owner` | `""` | +| `validFrom` | `""` | +| `validTo` | `""` | +| `value` | `` | +| `tags` | `["", ..., ""]` | -You need to replace the placeholders marked with `<...>` appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `content.value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `content.owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. Note that you can omit the properties `content.validFrom`, `content.validTo` and `content.tags`, because they are optional. +You need to replace the placeholders marked with `<...>` appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. In general, you can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. If you use the Demo Connector provided by us for testing purposes in the [interactive excerpt of the Connector's API documentation]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}), the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. {: .notice--info} @@ -67,14 +67,14 @@ If the input is not entered correctly, an [error message]({% link _docs_integrat ### Example 1: Create an own simple IdentityAttribute -An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following input: +An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following content: -| Property | Value | -| --------------------- | ----------------------------------- | -| `content.@type` | `"IdentityAttribute"` | -| `content.owner` | `""` | -| `content.value.@type` | `"DisplayName"` | -| `content.value.value` | `""` | +| Property | Value | +| ------------- | ----------------------------------- | +| `@type` | `"IdentityAttribute"` | +| `owner` | `""` | +| `value.@type` | `"DisplayName"` | +| `value.value` | `""` | -Assuming that the input value for the Connector's display name specified in the `content.value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. +Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. ### Example 2: Create an own complex IdentityAttribute -An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, you must use the following input: +An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, you must use the following content: -| Property | Value | -| --------------------- | ------------------------------ | -| `content.@type` | `"IdentityAttribute"` | -| `content.owner` | `""` | -| `content.value.@type` | `"BirthDate"` | -| `content.value.day` | `` | -| `content.value.month` | `` | -| `content.value.year` | `` | +| Property | Value | +| ------------- | ------------------------------ | +| `@type` | `"IdentityAttribute"` | +| `owner` | `""` | +| `value.@type` | `"BirthDate"` | +| `value.day` | `` | +| `value.month` | `` | +| `value.year` | `` | -Assuming that the input values ​​for the properties `content.value.day`, `content.value.month` and `content.value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `content.value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `content.value.day`, `content.value.month` and `content.value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. +Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. ## Success response -When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. From this response, you can read the following output values: +When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. From the result, you can read the following values: -| Property | Value | -| ------------------ | ---------------------------------------- | -| `result.id` | `"` | -| `result.createdAt` | `""` | +| Property | Value | +| ----------- | ---------------------------------------- | +| `id` | `"` | +| `createdAt` | `""` | -In particular, you can get the ID of the created IdentityAttribute from the `result.id` property of the response. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). +In particular, you can get the ID of the created IdentityAttribute from the `id` property of the result. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). From f2976ebcb28a3aeadf7e88cd83e99b2967341abb Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Fri, 24 Nov 2023 15:40:33 +0000 Subject: [PATCH 13/34] fix: synchronize table with other documentations --- .../integrate/create-own-identityattribute.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index d101d452e..4a4ea09bf 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -27,14 +27,14 @@ To create an IdentityAttribute as an Integrator for your own Connector, you need ``` ---> -| Property | Value | -| ----------- | ------------------------------------------------------------------- | -| `@type` | `"IdentityAttribute"` | -| `owner` | `""` | -| `validFrom` | `""` | -| `validTo` | `""` | -| `value` | `` | -| `tags` | `["", ..., ""]` | +| Property | Value | +| ----------- | -------------------------------------------------------------------------------------------------------- | +| `@type` | `"IdentityAttribute"` | +| `owner` | `""` | +| `validFrom` | `""` | +| `validTo` | `""` | +| `value` | Specify an [IdentityAttribute Value]({% link _docs_integrate/attribute-values.md %}#identity-attributes) | +| `tags` | `["", ..., ""]` | You need to replace the placeholders marked with `<...>` appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. From 1f5215a8c9ebd023d4a228e1e1e77d5be1df113b Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Wed, 29 Nov 2023 16:48:30 +0000 Subject: [PATCH 14/34] fix: remove comments on RelationshipAttributes --- .../scenarios/integrate/create-own-identityattribute.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 4a4ea09bf..a172b0582 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -49,16 +49,14 @@ In general, you can query your Connector's Address by proceeding as documented i ## Process -As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. +As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. -Note that with proceeding as documented in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case, you can create an IdentityAttribute as well as a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute) depending on the input you provide. In the [Input for creating an IdentityAttribute]({% link _docs_integrate/create-own-identityattribute.md %}#input-for-creating-an-identityattribute) section before we described the suitable input for creating an IdentityAttribute only, as this guide should not cover the procedure of how to create a RelationshipAttribute. Nevertheless, specifying input values for creating a RelationshipAttribute would not return an error at this point. -{: .notice--info} + -If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, the next step of the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case is a check whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. -
From ffb77e37845dcb1da48db080e71f6d2b968951eb Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Wed, 29 Nov 2023 16:51:26 +0000 Subject: [PATCH 15/34] fix: synchronize tables with other documentations --- .../integrate/create-own-identityattribute.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index a172b0582..a60611b76 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -30,7 +30,7 @@ To create an IdentityAttribute as an Integrator for your own Connector, you need | Property | Value | | ----------- | -------------------------------------------------------------------------------------------------------- | | `@type` | `"IdentityAttribute"` | -| `owner` | `""` | +| `owner` | `"
"` | | `validFrom` | `""` | | `validTo` | `""` | | `value` | Specify an [IdentityAttribute Value]({% link _docs_integrate/attribute-values.md %}#identity-attributes) | @@ -67,12 +67,12 @@ As you can see from the diagram below, after you have entered the input values t An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following content: -| Property | Value | -| ------------- | ----------------------------------- | -| `@type` | `"IdentityAttribute"` | -| `owner` | `""` | -| `value.@type` | `"DisplayName"` | -| `value.value` | `""` | +| Property | Value | +| ------------- | ------------------------------------ | +| `@type` | `"IdentityAttribute"` | +| `owner` | `"
"` | +| `value.@type` | `"DisplayName"` | +| `value.value` | `""` | + ## Input for creating an IdentityAttribute To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation using the following content: - - - - | Property | Value | | ----------- | -------------------------------------------------------------------------------------------------------- | | `@type` | `"IdentityAttribute"` | @@ -41,28 +20,14 @@ You need to replace the placeholders marked with `<...>` appropriately. In parti In general, you can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. If you use the Demo Connector provided by us for testing purposes in the [interactive excerpt of the Connector's API documentation]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}), the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. {: .notice--info} - - - - ## Process As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. - - - -
- - - - ### Example 1: Create an own simple IdentityAttribute An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following content: @@ -74,19 +39,6 @@ An example of a simple IdentityAttribute is one of type [DisplayName]({% link _d | `value.@type` | `"DisplayName"` | | `value.value` | `""` | - - Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. ### Example 2: Create an own complex IdentityAttribute @@ -102,21 +54,6 @@ An example of a complex IdentityAttribute is one of type [BirthDate]({% link _do | `value.month` | `` | | `value.year` | `` | - - Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. ## Success response @@ -128,25 +65,4 @@ When you have successfully created an IdentityAttribute for your Connector, you | `id` | `"` | | `createdAt` | `""` | - - In particular, you can get the ID of the created IdentityAttribute from the `id` property of the result. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). From 2db8893c8bbab89175c4ef361b54236c0c2b7c9a Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Mon, 8 Jan 2024 15:15:39 +0000 Subject: [PATCH 17/34] refactor: incorporate some review comments --- .../integrate/create-own-identityattribute.md | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 480f3a1db..6d2c5cef2 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -6,22 +6,20 @@ This guide explains the end to end flow of creating an [IdentityAttribute]({% li To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation using the following content: -| Property | Value | -| ----------- | -------------------------------------------------------------------------------------------------------- | -| `@type` | `"IdentityAttribute"` | -| `owner` | `"
"` | -| `validFrom` | `""` | -| `validTo` | `""` | -| `value` | Specify an [IdentityAttribute Value]({% link _docs_integrate/attribute-values.md %}#identity-attributes) | -| `tags` | `["", ..., ""]` | - -You need to replace the placeholders marked with `<...>` appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. - -In general, you can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. If you use the Demo Connector provided by us for testing purposes in the [interactive excerpt of the Connector's API documentation]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}), the Connector's Address is `id134nJmN7E4Carb6KyRJyePVnXxVHEYQgWD`. +| Property | Value | Required | +| ----------- | -------------------------------------------------------------------------------------------------------- | :------: | +| `@type` | `"IdentityAttribute"` | ✓ | +| `owner` | `"
"` | ✓ | +| `validFrom` | `""` | ✗ | +| `validTo` | `""` | ✗ | +| `value` | Specify an [IdentityAttribute Value]({% link _docs_integrate/attribute-values.md %}#identity-attributes) | ✓ | +| `tags` | `["", ..., ""]` | ✗ | + +You need to replace the placeholders marked with `<...>` appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. + +You can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. {: .notice--info} - - ## Process As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. From 8081463406aba83a293d200f138e7a962d1582fe Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Mon, 22 Jan 2024 15:07:07 +0000 Subject: [PATCH 18/34] refactor: replace example tables with JSON payloads --- .../integrate/create-own-identityattribute.md | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 6d2c5cef2..dd3c70bc6 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -30,12 +30,18 @@ As you can see from the diagram below, after you have entered the input values t An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following content: -| Property | Value | -| ------------- | ------------------------------------ | -| `@type` | `"IdentityAttribute"` | -| `owner` | `"
"` | -| `value.@type` | `"DisplayName"` | -| `value.value` | `""` | +```jsonc +{ + "content": { + "@type": "IdentityAttribute", + "owner": "
", + "value": { + "@type": "DisplayName", + "value": "" + } + } +} +``` Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. @@ -43,14 +49,20 @@ Assuming that the input value for the Connector's display name specified in the An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, you must use the following content: -| Property | Value | -| ------------- | ------------------------------- | -| `@type` | `"IdentityAttribute"` | -| `owner` | `"
"` | -| `value.@type` | `"BirthDate"` | -| `value.day` | `` | -| `value.month` | `` | -| `value.year` | `` | +```jsonc +{ + "content": { + "@type": "IdentityAttribute", + "owner": "
", + "value": { + "@type": "BirthDate", + "day": , + "month": , + "year": + } + } +} +``` Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. From 0500b704f6ddd7e573d176a06d67f8022b88c2f8 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Wed, 24 Jan 2024 08:57:57 +0000 Subject: [PATCH 19/34] feat: replace input table with JSON payload --- .../integrate/create-own-identityattribute.md | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index dd3c70bc6..65d6ab578 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -6,16 +6,23 @@ This guide explains the end to end flow of creating an [IdentityAttribute]({% li To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation using the following content: -| Property | Value | Required | -| ----------- | -------------------------------------------------------------------------------------------------------- | :------: | -| `@type` | `"IdentityAttribute"` | ✓ | -| `owner` | `"
"` | ✓ | -| `validFrom` | `""` | ✗ | -| `validTo` | `""` | ✗ | -| `value` | Specify an [IdentityAttribute Value]({% link _docs_integrate/attribute-values.md %}#identity-attributes) | ✓ | -| `tags` | `["", ..., ""]` | ✗ | - -You need to replace the placeholders marked with `<...>` appropriately. In particular, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. +```jsonc +{ + "content": { + "@type": "IdentityAttribute", + "owner": "
", + "validFrom": "", + "validTo": "", + "value": { + //IdentityAttribute Value + ... + }, + "tags": ["", ..., ""] + } +} +``` + +You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. You can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. {: .notice--info} From 7359d78710c6a34ec09db7eae84c9049aeb4c0c7 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Wed, 24 Jan 2024 14:18:39 +0000 Subject: [PATCH 20/34] feat: remove table of success response --- .../integrate/create-own-identityattribute.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 65d6ab578..f81c1259e 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -29,7 +29,7 @@ You can query your Connector's Address by proceeding as documented in the [Get c ## Process -As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. +As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. These LocalAttributes of the components contain the `id` of the LocalAttribute belonging to the complex IdentityAttribute within their `parentId` property.
@@ -75,11 +75,4 @@ Assuming that the input values ​​for the properties `value.day`, `value.mont ## Success response -When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. From the result, you can read the following values: - -| Property | Value | -| ----------- | ---------------------------------------- | -| `id` | `"` | -| `createdAt` | `""` | - -In particular, you can get the ID of the created IdentityAttribute from the `id` property of the result. You will need this ID, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). +When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. From the result, you can get the `id` of the corresponding [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) belonging to the IdentityAttribute. You will need this `id`, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). From 0fb22209d5c37a3c42d1adc4fc7bb951be2386a6 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Wed, 24 Jan 2024 15:04:15 +0000 Subject: [PATCH 21/34] feat: adjust scenario because "Create an Attribute" use case will change --- _includes/scenarios/integrate/create-own-identityattribute.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index f81c1259e..799c23662 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -22,7 +22,7 @@ To create an IdentityAttribute as an Integrator for your own Connector, you need } ``` -You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of Attributes for yourself and not for others. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. +You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of IdentityAttributes for yourself and not for others. For that reason, it is also possible to omit the `owner` property. In that case, your Connector automatically becomes the owner of the IdentityAttribute. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them as well. You can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. {: .notice--info} From e7f5882be2d8e68daa0ad4a94edba039ba7082a9 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Tue, 30 Jan 2024 15:21:55 +0000 Subject: [PATCH 22/34] refactor: add whitespaces in JSON comments --- _includes/scenarios/integrate/create-own-identityattribute.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 799c23662..8791dd1b0 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -14,7 +14,7 @@ To create an IdentityAttribute as an Integrator for your own Connector, you need "validFrom": "", "validTo": "", "value": { - //IdentityAttribute Value + // IdentityAttribute Value ... }, "tags": ["", ..., ""] From 7b49450d97e034a1cbcc1956f2f151152aba47b0 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Thu, 22 Feb 2024 13:13:51 +0000 Subject: [PATCH 23/34] refactor: renaming use cases --- _includes/scenarios/integrate/create-own-identityattribute.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-own-identityattribute.md index 8791dd1b0..3762f7e9a 100644 --- a/_includes/scenarios/integrate/create-own-identityattribute.md +++ b/_includes/scenarios/integrate/create-own-identityattribute.md @@ -4,7 +4,7 @@ This guide explains the end to end flow of creating an [IdentityAttribute]({% li ## Input for creating an IdentityAttribute -To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case documentation using the following content: +To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create a RepositoryAttribute]({% link _docs_use-cases/use-case-consumption-create-a-repositoryattribute.md %}) use case documentation using the following content: ```jsonc { @@ -22,7 +22,7 @@ To create an IdentityAttribute as an Integrator for your own Connector, you need } ``` -You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create an Attribute]({% link _docs_use-cases/use-case-consumption-create-an-attribute.md %}) use case relates to the creation of IdentityAttributes for yourself and not for others. For that reason, it is also possible to omit the `owner` property. In that case, your Connector automatically becomes the owner of the IdentityAttribute. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them as well. +You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create a RepositoryAttribute]({% link _docs_use-cases/use-case-consumption-create-a-repositoryattribute.md %}) use case relates to the creation of IdentityAttributes for yourself and not for others. For that reason, it is also possible to omit the `owner` property. In that case, your Connector automatically becomes the owner of the IdentityAttribute. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them as well. You can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. {: .notice--info} From 7954cd37830f3aa98ab8ff2edaf0a496e804e4a3 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Thu, 22 Feb 2024 13:25:37 +0000 Subject: [PATCH 24/34] refactor: renaming of scenario --- _data/navigation.yml | 4 ++-- ...ntityattribute.md => create-attribute-for-yourself.md} | 8 ++++---- _docs_integrate/identityattribute-introduction.md | 2 +- _docs_integrate/test-your-requests-validity.md | 2 +- ...ntityattribute.md => create-attribute-for-yourself.md} | 0 5 files changed, 8 insertions(+), 8 deletions(-) rename _docs_integrate/{create-own-identityattribute.md => create-attribute-for-yourself.md} (69%) rename _includes/scenarios/integrate/{create-own-identityattribute.md => create-attribute-for-yourself.md} (100%) diff --git a/_data/navigation.yml b/_data/navigation.yml index ca60173a0..3fa2c55f5 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -95,8 +95,8 @@ docs_integrate: url: /integrate/requests-over-messages - title: Manage attributes of yourself children: - - title: "Create own IdentityAttribute" - url: /integrate/create-own-identityattribute + - title: "Create Attribute for yourself" + url: /integrate/create-attribute-for-yourself - title: "Share own Attribute to peer" url: /integrate/share-own-attribute-to-peer - title: "Succeeding Attributes to update their values" diff --git a/_docs_integrate/create-own-identityattribute.md b/_docs_integrate/create-attribute-for-yourself.md similarity index 69% rename from _docs_integrate/create-own-identityattribute.md rename to _docs_integrate/create-attribute-for-yourself.md index 645146dff..a5cc553cf 100644 --- a/_docs_integrate/create-own-identityattribute.md +++ b/_docs_integrate/create-attribute-for-yourself.md @@ -1,8 +1,8 @@ --- # !!! Warning: Do not edit this file; any changes must be replicated in Excel !!! -permalink: integrate/create-own-identityattribute +permalink: integrate/create-attribute-for-yourself published: true -title: "Create own IdentityAttribute" +title: "Create Attribute for yourself" type: scenario toc: true properties: @@ -15,11 +15,11 @@ properties: - implementation status: DONE - documentation status: OPEN - published: - - link: integrate/create-own-identityattribute + - link: integrate/create-attribute-for-yourself require: - integrate/identityattribute-introduction required_by: - integrate/test-your-requests-validity --- -{% include scenarios/integrate/create-own-identityattribute.md %} +{% include scenarios/integrate/create-attribute-for-yourself.md %} diff --git a/_docs_integrate/identityattribute-introduction.md b/_docs_integrate/identityattribute-introduction.md index 42c77d2ba..ad4ad9d02 100644 --- a/_docs_integrate/identityattribute-introduction.md +++ b/_docs_integrate/identityattribute-introduction.md @@ -18,7 +18,7 @@ properties: - link: integrate/identityattribute-introduction require: required_by: - - integrate/create-own-identityattribute + - integrate/create-attribute-for-yourself --- {% include scenarios/integrate/identityattribute-introduction.md %} diff --git a/_docs_integrate/test-your-requests-validity.md b/_docs_integrate/test-your-requests-validity.md index 26c4373b6..086029e66 100644 --- a/_docs_integrate/test-your-requests-validity.md +++ b/_docs_integrate/test-your-requests-validity.md @@ -17,7 +17,7 @@ properties: - published: - link: integrate/test-your-requests-validity require: - - integrate/create-own-identityattribute + - integrate/create-attribute-for-yourself required_by: --- diff --git a/_includes/scenarios/integrate/create-own-identityattribute.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md similarity index 100% rename from _includes/scenarios/integrate/create-own-identityattribute.md rename to _includes/scenarios/integrate/create-attribute-for-yourself.md From 0bd99d36107e5986bcd57162f25e42dc0f7cef8a Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Thu, 22 Feb 2024 15:36:54 +0000 Subject: [PATCH 25/34] refactor: use new nomenclature for Attributes part 1 --- .../create-attribute-for-yourself.md | 26 ++++++++++++------- .../integrate/share-own-attribute-to-peer.md | 4 +-- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index 3762f7e9a..1781036b8 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -1,16 +1,22 @@ -This guide explains the end to end flow of creating an [IdentityAttribute]({% link _docs_integrate/data-model-overview.md %}#identityattribute) for your own Connector as an Integrator. Before you start, you should check out our IdentityAttribute introduction first. +This guide explains the end to end flow of creating an [Attribute]({% link _docs_integrate/data-model-overview.md %}#attributes) for your own Connector as its Integrator. As there are [IdentityAttributes]({% link _docs_integrate/data-model-overview.md %}#identityattribute) and [RelationshipAttributes]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), a distinction must be made between these two types of Attributes when creating an Attribute for yourself. + +## Create an IdentityAttribute for yourself + +This section is about how to create an IdentityAttribute for your own Connector that is not initially shared with any other Identity. From a technical point of view, this corresponds to the creation of a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) whose `content` is given by the IdentityAttribute that is intended to be created and whose `shareInfo` is undefined. As usual, such a LocalAttribute is referred to as a **RepositoryAttribute**. + +Since knowledge about IdentityAttributes is required in the following, you should take a look at our IdentityAttribute introduction before continuing reading this guide. In particular, there is a description of the two kinds of IdentityAttributes, the simple IdentityAttributes and the complex IdentityAttributes. +{: .notice--info} -## Input for creating an IdentityAttribute +### Input for creating a RepositoryAttribute -To create an IdentityAttribute as an Integrator for your own Connector, you need to proceed as described in the [Create a RepositoryAttribute]({% link _docs_use-cases/use-case-consumption-create-a-repositoryattribute.md %}) use case documentation using the following content: +To create a RepositoryAttribute, proceed as described in the [Create a RepositoryAttribute]({% link _docs_use-cases/use-case-consumption-create-a-repositoryattribute.md %}) use case documentation. As input for the creation of a RepositoryAttribute, the following `content` must be used: ```jsonc { "content": { "@type": "IdentityAttribute", - "owner": "
", "validFrom": "", "validTo": "", "value": { @@ -27,13 +33,13 @@ You need to replace the placeholders marked with `<...>` appropriately. Also, it You can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. {: .notice--info} -## Process +### Process of creating a RepositoryAttribute As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. These LocalAttributes of the components contain the `id` of the LocalAttribute belonging to the complex IdentityAttribute within their `parentId` property.
-### Example 1: Create an own simple IdentityAttribute +#### Example 1: Create a simple RepositoryAttribute An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following content: @@ -41,7 +47,6 @@ An example of a simple IdentityAttribute is one of type [DisplayName]({% link _d { "content": { "@type": "IdentityAttribute", - "owner": "
", "value": { "@type": "DisplayName", "value": "" @@ -52,7 +57,7 @@ An example of a simple IdentityAttribute is one of type [DisplayName]({% link _d Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. -### Example 2: Create an own complex IdentityAttribute +#### Example 2: Create a complex RepositoryAttribute An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, you must use the following content: @@ -60,7 +65,6 @@ An example of a complex IdentityAttribute is one of type [BirthDate]({% link _do { "content": { "@type": "IdentityAttribute", - "owner": "
", "value": { "@type": "BirthDate", "day": , @@ -73,6 +77,8 @@ An example of a complex IdentityAttribute is one of type [BirthDate]({% link _do Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. -## Success response +### Success response When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. From the result, you can get the `id` of the corresponding [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) belonging to the IdentityAttribute. You will need this `id`, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). + +## Create a RelationshipAttribute for yourself diff --git a/_includes/scenarios/integrate/share-own-attribute-to-peer.md b/_includes/scenarios/integrate/share-own-attribute-to-peer.md index 575ade537..cef19e6a9 100644 --- a/_includes/scenarios/integrate/share-own-attribute-to-peer.md +++ b/_includes/scenarios/integrate/share-own-attribute-to-peer.md @@ -37,9 +37,7 @@ The following table provides an overview of the possible kinds of Attributes tha ### Example of sharing an own IdentityAttribute -We assume that the Integrator of the Sender has created an own IdentityAttribute of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate) for the Sender by following the instructions of our Create own IdentityAttribute scenario documentation. This IdentityAttribute is stored locally within the `content` property of a corresponding [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) of the Sender. - - +We assume that the Integrator of the Sender has created an own IdentityAttribute of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate) for the Sender by following the instructions of our [Create Attribute for yourself]({% link _docs_integrate/create-attribute-for-yourself.md %}) scenario documentation. This IdentityAttribute is stored locally within the `content` property of a corresponding [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) of the Sender. ```jsonc { From 181f265f8d04ba7582cf1417e0b3a2ad778d995a Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Fri, 23 Feb 2024 18:49:17 +0000 Subject: [PATCH 26/34] refactor: use new nomenclature for Attributes part 2 --- .../create-attribute-for-yourself.md | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index 1781036b8..55cbd9752 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -4,7 +4,7 @@ This guide explains the end to end flow of creating an [Attribute]({% link _docs This section is about how to create an IdentityAttribute for your own Connector that is not initially shared with any other Identity. From a technical point of view, this corresponds to the creation of a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) whose `content` is given by the IdentityAttribute that is intended to be created and whose `shareInfo` is undefined. As usual, such a LocalAttribute is referred to as a **RepositoryAttribute**. -Since knowledge about IdentityAttributes is required in the following, you should take a look at our IdentityAttribute introduction before continuing reading this guide. In particular, there is a description of the two kinds of IdentityAttributes, the simple IdentityAttributes and the complex IdentityAttributes. +Since knowledge about IdentityAttributes is required in the following, you should take a look at our IdentityAttribute introduction before you continue reading this guide. In particular, a description of the two kinds of IdentityAttributes, the simple IdentityAttributes and the complex IdentityAttributes, can be found there. {: .notice--info} @@ -16,37 +16,32 @@ To create a RepositoryAttribute, proceed as described in the [Create a Repositor ```jsonc { "content": { - "@type": "IdentityAttribute", - "validFrom": "", - "validTo": "", + "validFrom": "", + "validTo": "", "value": { // IdentityAttribute Value ... }, - "tags": ["", ..., ""] + "tags": ["", ..., ""] } } ``` -You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. You are not allowed to specify the Address of a Connector other than your own as the value for the `owner` property, as the [Create a RepositoryAttribute]({% link _docs_use-cases/use-case-consumption-create-a-repositoryattribute.md %}) use case relates to the creation of IdentityAttributes for yourself and not for others. For that reason, it is also possible to omit the `owner` property. In that case, your Connector automatically becomes the owner of the IdentityAttribute. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them as well. - -You can query your Connector's Address by proceeding as documented in the [Get currently used Identity]({% link _docs_use-cases/use-case-transport-get-currently-used-identity.md %}) use case. -{: .notice--info} +You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. ### Process of creating a RepositoryAttribute -As you can see from the diagram below, after you have entered the input values to create an IdentityAttribute for your own Connector, a few checks are performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, the IdentityAttribute to be created is saved as a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute). If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another LocalAttribute is created beforehand for each of its appropriate components. These LocalAttributes of the components contain the `id` of the LocalAttribute belonging to the complex IdentityAttribute within their `parentId` property. +As you can see from the diagram below, after you have entered the input values to create a RepositoryAttribute, a check is performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, a corresponding RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate components. These RepositoryAttributes for the components are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. They contain the `id` of the RepositoryAttribute belonging to the complex IdentityAttribute within their `parentId` property.
-#### Example 1: Create a simple RepositoryAttribute +### Example of creating a simple IdentityAttribute -An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following content: +An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following `content`: ```jsonc { "content": { - "@type": "IdentityAttribute", "value": { "@type": "DisplayName", "value": "" @@ -57,14 +52,13 @@ An example of a simple IdentityAttribute is one of type [DisplayName]({% link _d Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. -#### Example 2: Create a complex RepositoryAttribute +### Example of creating a complex IdentityAttribute -An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, you must use the following content: +An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, you must use the following `content`: ```jsonc { "content": { - "@type": "IdentityAttribute", "value": { "@type": "BirthDate", "day": , From 5a04a86bc662b80ca60b7f7178867d6f38c6e532 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Fri, 23 Feb 2024 18:58:57 +0000 Subject: [PATCH 27/34] refactor: use new nomenclatur for Attributes part 3 --- .../integrate/create-attribute-for-yourself.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index 55cbd9752..a2f69bb80 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -37,24 +37,24 @@ As you can see from the diagram below, after you have entered the input values t ### Example of creating a simple IdentityAttribute -An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). If you want to create it without specifying optional parameters, you must use the following `content`: +An example of a simple IdentityAttribute is one of type [DisplayName]({% link _docs_integrate/attribute-values.md %}#displayname). To create one for your own Connector without specifying optional parameters, the following `content` must be used: ```jsonc { "content": { "value": { "@type": "DisplayName", - "value": "" + "value": "" } } } ``` -Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a LocalAttribute and a success response is sent. +Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a RepositoryAttribute and a success response is sent. ### Example of creating a complex IdentityAttribute -An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). If you want to create it without specifying optional parameters, you must use the following `content`: +An example of a complex IdentityAttribute is one of type [BirthDate]({% link _docs_integrate/attribute-values.md %}#birthdate). To create one for your own Connector without specifying optional parameters, the following `content` must be used: ```jsonc { @@ -69,10 +69,10 @@ An example of a complex IdentityAttribute is one of type [BirthDate]({% link _do } ``` -Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a LocalAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another LocalAttribute is created internally for each of these components before a success response is sent. +Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a RepositoryAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another RepositoryAttribute is created internally for each of these components before a success response is sent. ### Success response -When you have successfully created an IdentityAttribute for your Connector, you will receive a success response. From the result, you can get the `id` of the corresponding [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) belonging to the IdentityAttribute. You will need this `id`, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). +When you have successfully created an IdentityAttribute for your own Connector, you will receive a success response. From the result, you can get the `id` of the corresponding RepositoryAttribute belonging to the IdentityAttribute. You will need this `id`, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). ## Create a RelationshipAttribute for yourself From fc9870de99754482979c19d646a12ce1996bde27 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Mon, 26 Feb 2024 12:46:17 +0000 Subject: [PATCH 28/34] feat: add "Create RelationshipAttribute for yourself" part --- .../create-attribute-for-yourself.md | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index a2f69bb80..c0868c981 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -31,7 +31,7 @@ You need to replace the placeholders marked with `<...>` appropriately. Also, it ### Process of creating a RepositoryAttribute -As you can see from the diagram below, after you have entered the input values to create a RepositoryAttribute, a check is performed to verify the correctness of your input. If the input is not entered correctly, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. Assuming a successful validation, a corresponding RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate components. These RepositoryAttributes for the components are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. They contain the `id` of the RepositoryAttribute belonging to the complex IdentityAttribute within their `parentId` property. +As you can see from the diagram below, after you have entered the [input for creating a RepositoryAttribute]({% link _docs_integrate/create-attribute-for-yourself.md %}#input-for-creating-a-repositoryattribute), a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. If the validation is not successful, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate components. These RepositoryAttributes for the components are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. The `id` of their parent is contained within their `parentId` property.
@@ -50,7 +50,7 @@ An example of a simple IdentityAttribute is one of type [DisplayName]({% link _d } ``` -Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name is not more than 100 characters long, the IdentityAttribute is saved as a RepositoryAttribute and a success response is sent. +Assuming that the input value for the Connector's display name specified in the `value.value` property meets the [validation criterion]({% link _docs_integrate/attribute-values.md %}#displayname), which means that the entered name does not have more than 100 characters, the IdentityAttribute is saved as a RepositoryAttribute and a success response is sent. ### Example of creating a complex IdentityAttribute @@ -61,18 +61,31 @@ An example of a complex IdentityAttribute is one of type [BirthDate]({% link _do "content": { "value": { "@type": "BirthDate", - "day": , - "month": , - "year": + "day": , + "month": , + "year": } } } ``` -Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a RepositoryAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another RepositoryAttribute is created internally for each of these components before a success response is sent. +Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a RepositoryAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another RepositoryAttribute is created internally for each of these components before a success response is sent. So for the RepositoryAttribute, which belongs to the complex IdentityAttribute of type BirthDate, a total of three children are created. -### Success response +### What's next? -When you have successfully created an IdentityAttribute for your own Connector, you will receive a success response. From the result, you can get the `id` of the corresponding RepositoryAttribute belonging to the IdentityAttribute. You will need this `id`, for example, if you want to share the IdentityAttribute with other Identities later, as in the [Integration Example]({% link _docs_integrate/integration-example.md %}). +When you have successfully created an IdentityAttribute for your own Connector, you will receive a success response. From the result, you can get the `id` of the corresponding RepositoryAttribute belonging to the IdentityAttribute. You will need this `id`, for example, if you want to share the underlying IdentityAttribute of the RepositoryAttribute with other Identities later, as in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) scenario. ## Create a RelationshipAttribute for yourself + +If you want to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), you must proceed differently than when [creating an IdentityAttribute for yourself]({% link _docs_integrate/create-attribute-for-yourself.md %}#create-an-identityattribute-for-yourself). This is because a RelationshipAttribute can only exist in the context of a [Relationship]({% link _docs_integrate/data-model-overview.md %}#relationship) with a peer, which means that they must also agree to the creation of it. This is achieved by sending a [Request]({% link _docs_integrate/data-model-overview.md %}#request) whose `items` property contains an appropriate [RequestItem]({% link _docs_integrate/data-model-overview.md %}#requestitems), which must be accepted by the peer. Depending on whether you or your peer should set the [RelationshipAttribute Value]({% link _docs_integrate/attribute-values.md %}#relationship-attributes) and depending on other factors, a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem), [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem), [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem) or [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) should be used for this. + +From a technical point of view, the creation of a RelationshipAttribute corresponds to the creation of one [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) for yourself and one LocalAttribute for your peer, whereby their `content` is given by the RelationshipAttribute that is intended to be created and the `shareInfo` of both LocalAttributes contains a correspondingly suitable [LocalAttributeShareInfo]({% link _docs_integrate/data-model-overview.md %}#localattributeshareinfo). +{: .notice--info} + +### Create a RelationshipAttribute with a ReadAttributeRequestitem + +### Create a RelationshipAttribute with a ShareAttributeRequestitem + +### Create a RelationshipAttribute with a CreateAttributeRequestitem + +### Create a RelationshipAttribute with a ProposeAttributeRequestitem From a97ef27e7b975fd47a3d6d8687f013f8c98bc140 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Mon, 26 Feb 2024 15:36:25 +0000 Subject: [PATCH 29/34] feat: add structure for "Create a RelationshipAttribute for yourself" section --- .../create-attribute-for-yourself.md | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index c0868c981..beeadca15 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -82,10 +82,26 @@ If you want to create a [RelationshipAttribute]({% link _docs_integrate/data-mod From a technical point of view, the creation of a RelationshipAttribute corresponds to the creation of one [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) for yourself and one LocalAttribute for your peer, whereby their `content` is given by the RelationshipAttribute that is intended to be created and the `shareInfo` of both LocalAttributes contains a correspondingly suitable [LocalAttributeShareInfo]({% link _docs_integrate/data-model-overview.md %}#localattributeshareinfo). {: .notice--info} -### Create a RelationshipAttribute with a ReadAttributeRequestitem +### Utilization of a ReadAttributeRequestItem -### Create a RelationshipAttribute with a ShareAttributeRequestitem +Creating a RelationshipAttribute using a ReadAttributeRequestItem is suitable if... -### Create a RelationshipAttribute with a CreateAttributeRequestitem +All details on how to create a RelationshipAttribute using a ReadAttributeRequestItem can be found in the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. -### Create a RelationshipAttribute with a ProposeAttributeRequestitem +### Utilization of a ShareAttributeRequestItem + +Creating a RelationshipAttribute using a ShareAttributeRequestItem is suitable if... + +All details on how to create a RelationshipAttribute using a ShareAttributeRequestItem can be found in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) guide. + +### Utilization of a CreateAttributeRequestItem + +Creating a RelationshipAttribute using a CreateAttributeRequestItem is suitable if... + +All details on how to create a RelationshipAttribute using a CreateAttributeRequestItem can be found in the [Create Attribute for peer]({% link _docs_integrate/create-attribute-for-peer.md %}) guide. + +### Utilization of a ProposeAttributeRequestItem + +Creating a RelationshipAttribute using a ProposeAttributeRequestItem is suitable if... + +All details on how to create a RelationshipAttribute using a ProposeAttributeRequestItem can be found in the [Propose Attribute to peer]({% link _docs_integrate/propose-attribute-to-peer.md %}) guide. From 367e8a27d242d3bfacbfcd74975c0b7df58f3e50 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Tue, 27 Feb 2024 10:03:18 +0000 Subject: [PATCH 30/34] feat: add RelationshipAttribute creation with Read/Create/ProposeAttributeRequestItem --- .../create-attribute-for-yourself.md | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index beeadca15..5ef5c2c54 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -77,31 +77,25 @@ When you have successfully created an IdentityAttribute for your own Connector, ## Create a RelationshipAttribute for yourself -If you want to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), you must proceed differently than when [creating an IdentityAttribute for yourself]({% link _docs_integrate/create-attribute-for-yourself.md %}#create-an-identityattribute-for-yourself). This is because a RelationshipAttribute can only exist in the context of a [Relationship]({% link _docs_integrate/data-model-overview.md %}#relationship) with a peer, which means that they must also agree to the creation of it. This is achieved by sending a [Request]({% link _docs_integrate/data-model-overview.md %}#request) whose `items` property contains an appropriate [RequestItem]({% link _docs_integrate/data-model-overview.md %}#requestitems), which must be accepted by the peer. Depending on whether you or your peer should set the [RelationshipAttribute Value]({% link _docs_integrate/attribute-values.md %}#relationship-attributes) and depending on other factors, a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem), [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem), [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem) or [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) should be used for this. +If you want to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), you must proceed differently than when [creating an IdentityAttribute for yourself]({% link _docs_integrate/create-attribute-for-yourself.md %}#create-an-identityattribute-for-yourself). This is because a RelationshipAttribute can only exist in the context of a [Relationship]({% link _docs_integrate/data-model-overview.md %}#relationship) with a peer, which means that they must also agree to the creation of it. This is achieved by sending a [Request]({% link _docs_integrate/data-model-overview.md %}#request) whose `items` property contains an appropriate [RequestItem]({% link _docs_integrate/data-model-overview.md %}#requestitems), which must be accepted by the peer. Depending on whether you or your peer should set the [RelationshipAttribute Value]({% link _docs_integrate/attribute-values.md %}#relationship-attributes) and depending on other factors, a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem), [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem), [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) or [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) should be used for this. From a technical point of view, the creation of a RelationshipAttribute corresponds to the creation of one [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) for yourself and one LocalAttribute for your peer, whereby their `content` is given by the RelationshipAttribute that is intended to be created and the `shareInfo` of both LocalAttributes contains a correspondingly suitable [LocalAttributeShareInfo]({% link _docs_integrate/data-model-overview.md %}#localattributeshareinfo). {: .notice--info} ### Utilization of a ReadAttributeRequestItem -Creating a RelationshipAttribute using a ReadAttributeRequestItem is suitable if... - -All details on how to create a RelationshipAttribute using a ReadAttributeRequestItem can be found in the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. - -### Utilization of a ShareAttributeRequestItem - -Creating a RelationshipAttribute using a ShareAttributeRequestItem is suitable if... - -All details on how to create a RelationshipAttribute using a ShareAttributeRequestItem can be found in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) guide. +You can use a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttribute Value to be set by your peer. Even if it seems misleading to use a ReadAttributeRequestItem to create a RelationshipAttribute, this terminology makes sense insofar as the RelationshipAttribute Value is to be read from the peer in order to be able to create the RelationshipAttribute. All details on how to create a RelationshipAttribute using a ReadAttributeRequestItem can be found in the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. ### Utilization of a CreateAttributeRequestItem -Creating a RelationshipAttribute using a CreateAttributeRequestItem is suitable if... - -All details on how to create a RelationshipAttribute using a CreateAttributeRequestItem can be found in the [Create Attribute for peer]({% link _docs_integrate/create-attribute-for-peer.md %}) guide. +You can use a [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttribute Value to be set by yourself. Your peer can only accept or reject the creation of the RelationshipAttribute, but cannot modify the RelationshipAttribute Value. For full details on how to create a RelationshipAttribute using a CreateAttributeRequestItem, please refer to the [Create Attribute for peer]({% link _docs_integrate/create-attribute-for-peer.md %}) guide. ### Utilization of a ProposeAttributeRequestItem -Creating a RelationshipAttribute using a ProposeAttributeRequestItem is suitable if... +You can use a [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want to propose a RelationshipAttribute Value to your peer, but your peer can modify it before the RelationshipAttribute is created. A RelationshipAttribute that you want to create using a ProposeAttributeRequestItem must be owned by your peer. All details on how to create a RelationshipAttribute using a ProposeAttributeRequestItem can be found in the [Propose Attribute to peer]({% link _docs_integrate/propose-attribute-to-peer.md %}) guide. + +### Utilization of a ShareAttributeRequestItem -All details on how to create a RelationshipAttribute using a ProposeAttributeRequestItem can be found in the [Propose Attribute to peer]({% link _docs_integrate/propose-attribute-to-peer.md %}) guide. +Creating a RelationshipAttribute using a [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) is suitable if... + +All details on how to create a RelationshipAttribute using a ShareAttributeRequestItem can be found in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) guide. From ac174c74a09ecd262a30e30a13024cbe27523a19 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Wed, 28 Feb 2024 11:03:15 +0000 Subject: [PATCH 31/34] feat: add RelationshipAttribute creation with ShareAttributeRequestItem --- .../integrate/create-attribute-for-yourself.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index 5ef5c2c54..fa88ad97b 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -19,7 +19,7 @@ To create a RepositoryAttribute, proceed as described in the [Create a Repositor "validFrom": "", "validTo": "", "value": { - // IdentityAttribute Value + // IdentityAttributeValue ... }, "tags": ["", ..., ""] @@ -27,11 +27,11 @@ To create a RepositoryAttribute, proceed as described in the [Create a Repositor } ``` -You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. +You need to replace the placeholders marked with `<...>` appropriately. Also, it is necessary that you insert one of the available [IdentityAttributeValues]({% link _docs_integrate/attribute-values.md %}#identity-attributes) into the `value` property. Note that the properties `validFrom`, `validTo` and `tags` are optional, so you can omit them. ### Process of creating a RepositoryAttribute -As you can see from the diagram below, after you have entered the [input for creating a RepositoryAttribute]({% link _docs_integrate/create-attribute-for-yourself.md %}#input-for-creating-a-repositoryattribute), a check is performed whether the input values for the properties of the specified IdentityAttribute Value meet the validation criteria documented on the [IdentityAttribute Values]({% link _docs_integrate/attribute-values.md %}#identity-attributes) page. If the validation is not successful, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate components. These RepositoryAttributes for the components are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. The `id` of their parent is contained within their `parentId` property. +As you can see from the diagram below, after you have entered the [input for creating a RepositoryAttribute]({% link _docs_integrate/create-attribute-for-yourself.md %}#input-for-creating-a-repositoryattribute), a check is performed whether the input values for the properties of the specified [IdentityAttributeValue]({% link _docs_integrate/attribute-values.md %}#identity-attributes) meet the validation criteria documented on the [Attribute Values]({% link _docs_integrate/attribute-values.md %}) page. If the validation is not successful, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate components. These RepositoryAttributes for the components are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. The `id` of their parent is contained within their `parentId` property.
@@ -77,25 +77,23 @@ When you have successfully created an IdentityAttribute for your own Connector, ## Create a RelationshipAttribute for yourself -If you want to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), you must proceed differently than when [creating an IdentityAttribute for yourself]({% link _docs_integrate/create-attribute-for-yourself.md %}#create-an-identityattribute-for-yourself). This is because a RelationshipAttribute can only exist in the context of a [Relationship]({% link _docs_integrate/data-model-overview.md %}#relationship) with a peer, which means that they must also agree to the creation of it. This is achieved by sending a [Request]({% link _docs_integrate/data-model-overview.md %}#request) whose `items` property contains an appropriate [RequestItem]({% link _docs_integrate/data-model-overview.md %}#requestitems), which must be accepted by the peer. Depending on whether you or your peer should set the [RelationshipAttribute Value]({% link _docs_integrate/attribute-values.md %}#relationship-attributes) and depending on other factors, a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem), [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem), [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) or [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) should be used for this. +If you want to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), you must proceed differently than when [creating an IdentityAttribute for yourself]({% link _docs_integrate/create-attribute-for-yourself.md %}#create-an-identityattribute-for-yourself). This is because a RelationshipAttribute can only exist in the context of a [Relationship]({% link _docs_integrate/data-model-overview.md %}#relationship) with a peer, which means that they must also agree to the creation of it. This is achieved by sending a [Request]({% link _docs_integrate/data-model-overview.md %}#request) whose `items` property contains an appropriate [RequestItem]({% link _docs_integrate/data-model-overview.md %}#requestitems), which must be accepted by the peer. Depending on whether you or your peer should set the [RelationshipAttributeValue]({% link _docs_integrate/attribute-values.md %}#relationship-attributes) and depending on other factors, a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem), [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem), [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) or [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) should be used for this. From a technical point of view, the creation of a RelationshipAttribute corresponds to the creation of one [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) for yourself and one LocalAttribute for your peer, whereby their `content` is given by the RelationshipAttribute that is intended to be created and the `shareInfo` of both LocalAttributes contains a correspondingly suitable [LocalAttributeShareInfo]({% link _docs_integrate/data-model-overview.md %}#localattributeshareinfo). {: .notice--info} ### Utilization of a ReadAttributeRequestItem -You can use a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttribute Value to be set by your peer. Even if it seems misleading to use a ReadAttributeRequestItem to create a RelationshipAttribute, this terminology makes sense insofar as the RelationshipAttribute Value is to be read from the peer in order to be able to create the RelationshipAttribute. All details on how to create a RelationshipAttribute using a ReadAttributeRequestItem can be found in the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. +You can use a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttributeValue to be set by your peer. Even if it seems misleading to use a ReadAttributeRequestItem to create a RelationshipAttribute, this terminology makes sense insofar as the RelationshipAttributeValue should be read from the peer in order to be able to create the RelationshipAttribute. All details on how to create a RelationshipAttribute using a ReadAttributeRequestItem can be found in the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. ### Utilization of a CreateAttributeRequestItem -You can use a [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttribute Value to be set by yourself. Your peer can only accept or reject the creation of the RelationshipAttribute, but cannot modify the RelationshipAttribute Value. For full details on how to create a RelationshipAttribute using a CreateAttributeRequestItem, please refer to the [Create Attribute for peer]({% link _docs_integrate/create-attribute-for-peer.md %}) guide. +You can use a [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttributeValue to be set by yourself. Your peer can only accept or reject the creation of the RelationshipAttribute, but cannot modify the RelationshipAttributeValue. For full details on how to create a RelationshipAttribute using a CreateAttributeRequestItem, please refer to the [Create Attribute for peer]({% link _docs_integrate/create-attribute-for-peer.md %}) guide. ### Utilization of a ProposeAttributeRequestItem -You can use a [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want to propose a RelationshipAttribute Value to your peer, but your peer can modify it before the RelationshipAttribute is created. A RelationshipAttribute that you want to create using a ProposeAttributeRequestItem must be owned by your peer. All details on how to create a RelationshipAttribute using a ProposeAttributeRequestItem can be found in the [Propose Attribute to peer]({% link _docs_integrate/propose-attribute-to-peer.md %}) guide. +You can use a [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want to propose a potentially suitable RelationshipAttributeValue to your peer, but your peer has the option to modify it before the RelationshipAttribute is created. A RelationshipAttribute that you want to create using a ProposeAttributeRequestItem must be owned by your peer. All details on how to create a RelationshipAttribute using a ProposeAttributeRequestItem can be found in the [Propose Attribute to peer]({% link _docs_integrate/propose-attribute-to-peer.md %}) guide. ### Utilization of a ShareAttributeRequestItem -Creating a RelationshipAttribute using a [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) is suitable if... - -All details on how to create a RelationshipAttribute using a ShareAttributeRequestItem can be found in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) guide. +You can use a [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want to use an existing RelationshipAttribute between you and another Identity as the source for creating the new RelationshipAttribute. Your peer can only accept or reject the creation of it, but cannot modify it. All details on how to create a RelationshipAttribute using a ShareAttributeRequestItem can be found in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) guide. From ca890cef25b77d9e72437178cd284ffbab773992 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Tue, 5 Mar 2024 12:47:51 +0000 Subject: [PATCH 32/34] feat: incorporate review comments --- .../create-attribute-for-yourself.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index fa88ad97b..38c19dbcf 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -1,8 +1,8 @@ -This guide explains the end to end flow of creating an [Attribute]({% link _docs_integrate/data-model-overview.md %}#attributes) for your own Connector as its Integrator. As there are [IdentityAttributes]({% link _docs_integrate/data-model-overview.md %}#identityattribute) and [RelationshipAttributes]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), a distinction must be made between these two types of Attributes when creating an Attribute for yourself. +This guide explains the end to end flow of creating an [Attribute]({% link _docs_integrate/data-model-overview.md %}#attributes) for your own Connector as its Integrator. As there are two types of Attributes, [IdentityAttributes]({% link _docs_integrate/data-model-overview.md %}#identityattribute) and [RelationshipAttributes]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), a distinction must be made between them when creating an Attribute for yourself. ## Create an IdentityAttribute for yourself -This section is about how to create an IdentityAttribute for your own Connector that is not initially shared with any other Identity. From a technical point of view, this corresponds to the creation of a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) whose `content` is given by the IdentityAttribute that is intended to be created and whose `shareInfo` is undefined. As usual, such a LocalAttribute is referred to as a **RepositoryAttribute**. +This section is about how to create an [IdentityAttribute]({% link _docs_integrate/data-model-overview.md %}#identityattribute) for your own Connector that is not initially shared with any other Identity. From a technical point of view, this corresponds to the creation of a [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) whose `content` is given by the IdentityAttribute that is intended to be created and whose `shareInfo` is undefined. Such a LocalAttribute is referred to as a RepositoryAttribute. Since knowledge about IdentityAttributes is required in the following, you should take a look at our IdentityAttribute introduction before you continue reading this guide. In particular, a description of the two kinds of IdentityAttributes, the simple IdentityAttributes and the complex IdentityAttributes, can be found there. {: .notice--info} @@ -31,7 +31,7 @@ You need to replace the placeholders marked with `<...>` appropriately. Also, it ### Process of creating a RepositoryAttribute -As you can see from the diagram below, after you have entered the [input for creating a RepositoryAttribute]({% link _docs_integrate/create-attribute-for-yourself.md %}#input-for-creating-a-repositoryattribute), a check is performed whether the input values for the properties of the specified [IdentityAttributeValue]({% link _docs_integrate/attribute-values.md %}#identity-attributes) meet the validation criteria documented on the [Attribute Values]({% link _docs_integrate/attribute-values.md %}) page. If the validation is not successful, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate components. These RepositoryAttributes for the components are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. The `id` of their parent is contained within their `parentId` property. +As you can see from the diagram below, after you have entered the [input for creating a RepositoryAttribute]({% link _docs_integrate/create-attribute-for-yourself.md %}#input-for-creating-a-repositoryattribute), a check is performed whether the input values for the properties of the specified [IdentityAttributeValue]({% link _docs_integrate/attribute-values.md %}#identity-attributes) meet the validation criteria documented on the [Attribute Values]({% link _docs_integrate/attribute-values.md %}) page. If the validation is not successful, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate properties. These RepositoryAttributes for the properties are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. The `id` of their parent is contained within their `parentId` property.
@@ -69,26 +69,26 @@ An example of a complex IdentityAttribute is one of type [BirthDate]({% link _do } ``` -Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a RepositoryAttribute. The components `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another RepositoryAttribute is created internally for each of these components before a success response is sent. So for the RepositoryAttribute, which belongs to the complex IdentityAttribute of type BirthDate, a total of three children are created. +Assuming that the input values ​​for the properties `value.day`, `value.month` and `value.year` meet the [validation criteria]({% link _docs_integrate/attribute-values.md %}#birthdate), which means, for example, that the input value for `value.month` is an integer between 1 and 12, the IdentityAttribute is saved as a RepositoryAttribute. The properties `value.day`, `value.month` and `value.year` can each be understood as an additional simple IdentityAttribute of type [BirthDay]({% link _docs_integrate/attribute-values.md %}#birthday), [BirthMonth]({% link _docs_integrate/attribute-values.md %}#birthmonth) and [BirthYear]({% link _docs_integrate/attribute-values.md %}#birthyear), respectively. For this reason, another RepositoryAttribute is created internally for each of these properties before a success response is sent. So for the RepositoryAttribute, which belongs to the complex IdentityAttribute of type BirthDate, a total of three children are created. ### What's next? -When you have successfully created an IdentityAttribute for your own Connector, you will receive a success response. From the result, you can get the `id` of the corresponding RepositoryAttribute belonging to the IdentityAttribute. You will need this `id`, for example, if you want to share the underlying IdentityAttribute of the RepositoryAttribute with other Identities later, as in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) scenario. +When you have successfully created an IdentityAttribute for your own Connector, you will receive a success response. From the result, you can get the `id` of the corresponding RepositoryAttribute belonging to the IdentityAttribute. You will need this `id`, for example, if you want to share the underlying IdentityAttribute with other Identities later, as in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) scenario. ## Create a RelationshipAttribute for yourself -If you want to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), you must proceed differently than when [creating an IdentityAttribute for yourself]({% link _docs_integrate/create-attribute-for-yourself.md %}#create-an-identityattribute-for-yourself). This is because a RelationshipAttribute can only exist in the context of a [Relationship]({% link _docs_integrate/data-model-overview.md %}#relationship) with a peer, which means that they must also agree to the creation of it. This is achieved by sending a [Request]({% link _docs_integrate/data-model-overview.md %}#request) whose `items` property contains an appropriate [RequestItem]({% link _docs_integrate/data-model-overview.md %}#requestitems), which must be accepted by the peer. Depending on whether you or your peer should set the [RelationshipAttributeValue]({% link _docs_integrate/attribute-values.md %}#relationship-attributes) and depending on other factors, a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem), [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem), [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) or [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) should be used for this. +If you want to create a [RelationshipAttribute]({% link _docs_integrate/data-model-overview.md %}#relationshipattribute), you must proceed differently than when [creating an IdentityAttribute for yourself]({% link _docs_integrate/create-attribute-for-yourself.md %}#create-an-identityattribute-for-yourself). This is because a RelationshipAttribute can only exist in the context of a [Relationship]({% link _docs_integrate/data-model-overview.md %}#relationship) with a peer, which means that they must also agree to the creation of it. This is achieved by sending a [Request]({% link _docs_integrate/data-model-overview.md %}#request) whose `items` property contains an appropriate [RequestItem]({% link _docs_integrate/data-model-overview.md %}#requestitems), which must be accepted by the peer. Depending on whether you or your peer should set the [RelationshipAttributeValue]({% link _docs_integrate/attribute-values.md %}#relationship-attributes) and depending on other factors, a [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem), [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem), [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#proposeattributerequestitem) or [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) should be used for this. From a technical point of view, the creation of a RelationshipAttribute corresponds to the creation of one [LocalAttribute]({% link _docs_integrate/data-model-overview.md %}#localattribute) for yourself and one LocalAttribute for your peer, whereby their `content` is given by the RelationshipAttribute that is intended to be created and the `shareInfo` of both LocalAttributes contains a correspondingly suitable [LocalAttributeShareInfo]({% link _docs_integrate/data-model-overview.md %}#localattributeshareinfo). {: .notice--info} -### Utilization of a ReadAttributeRequestItem +### Utilization of a CreateAttributeRequestItem -You can use a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttributeValue to be set by your peer. Even if it seems misleading to use a ReadAttributeRequestItem to create a RelationshipAttribute, this terminology makes sense insofar as the RelationshipAttributeValue should be read from the peer in order to be able to create the RelationshipAttribute. All details on how to create a RelationshipAttribute using a ReadAttributeRequestItem can be found in the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. +You can use a [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttributeValue to be set by yourself. Your peer can only accept or reject the creation of the RelationshipAttribute, but cannot modify the RelationshipAttributeValue. A RelationshipAttribute that you want to create using a CreateAttributeRequestItem can be owned by yourself or by your peer. For full details on how to create a RelationshipAttribute using a CreateAttributeRequestItem, please refer to the [Create Attribute for peer]({% link _docs_integrate/create-attribute-for-peer.md %}) guide. -### Utilization of a CreateAttributeRequestItem +### Utilization of a ReadAttributeRequestItem -You can use a [CreateAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#createattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttributeValue to be set by yourself. Your peer can only accept or reject the creation of the RelationshipAttribute, but cannot modify the RelationshipAttributeValue. For full details on how to create a RelationshipAttribute using a CreateAttributeRequestItem, please refer to the [Create Attribute for peer]({% link _docs_integrate/create-attribute-for-peer.md %}) guide. +You can use a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttributeValue to be set by your peer. Even if it seems misleading to use a ReadAttributeRequestItem to create a RelationshipAttribute, this terminology makes sense insofar as the RelationshipAttributeValue should be read from the peer in order to be able to create the RelationshipAttribute. All details on how to create a RelationshipAttribute using a ReadAttributeRequestItem can be found in the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. ### Utilization of a ProposeAttributeRequestItem From de5b20f362b475748d15738090c15ef1ae8e1d95 Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Tue, 5 Mar 2024 12:48:16 +0000 Subject: [PATCH 33/34] feat: mention consumption.attributeCreated event --- _includes/scenarios/integrate/create-attribute-for-yourself.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index 38c19dbcf..2e61f9960 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -31,7 +31,7 @@ You need to replace the placeholders marked with `<...>` appropriately. Also, it ### Process of creating a RepositoryAttribute -As you can see from the diagram below, after you have entered the [input for creating a RepositoryAttribute]({% link _docs_integrate/create-attribute-for-yourself.md %}#input-for-creating-a-repositoryattribute), a check is performed whether the input values for the properties of the specified [IdentityAttributeValue]({% link _docs_integrate/attribute-values.md %}#identity-attributes) meet the validation criteria documented on the [Attribute Values]({% link _docs_integrate/attribute-values.md %}) page. If the validation is not successful, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate properties. These RepositoryAttributes for the properties are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. The `id` of their parent is contained within their `parentId` property. +As you can see from the diagram below, after you have entered the [input for creating a RepositoryAttribute]({% link _docs_integrate/create-attribute-for-yourself.md %}#input-for-creating-a-repositoryattribute), a check is performed whether the input values for the properties of the specified [IdentityAttributeValue]({% link _docs_integrate/attribute-values.md %}#identity-attributes) meet the validation criteria documented on the [Attribute Values]({% link _docs_integrate/attribute-values.md %}) page. If the validation is not successful, an [error message]({% link _docs_integrate/error-codes.md %}) is sent in response. Otherwise, a RepositoryAttribute is created that contains the IdentityAttribute in its `content` property. If it is a simple IdentityAttribute, a success response is sent directly. In the case of a complex IdentityAttribute, on the other hand, another RepositoryAttribute is created beforehand for each of its appropriate properties. These RepositoryAttributes for the properties are also referred to as children of the RepositoryAttribute belonging to the complex IdentityAttribute. The `id` of their parent is contained within their `parentId` property. Note that the successful creation of a LocalAttribute, and therefore in particular the creation of a RepositoryAttribute, triggers the `consumption.attributeCreated` [Connector event]({% link _docs_integrate/connector-events.md %}).
From 47162fb40a8eba587971e2c98b0de4e68ad4375c Mon Sep 17 00:00:00 2001 From: Britta Stallknecht Date: Tue, 5 Mar 2024 13:02:36 +0000 Subject: [PATCH 34/34] feat: incorporate review comments --- .../scenarios/integrate/create-attribute-for-yourself.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/scenarios/integrate/create-attribute-for-yourself.md b/_includes/scenarios/integrate/create-attribute-for-yourself.md index 2e61f9960..d54d3d4f0 100644 --- a/_includes/scenarios/integrate/create-attribute-for-yourself.md +++ b/_includes/scenarios/integrate/create-attribute-for-yourself.md @@ -88,7 +88,7 @@ You can use a [CreateAttributeRequestItem]({% link _docs_integrate/data-model-ov ### Utilization of a ReadAttributeRequestItem -You can use a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttributeValue to be set by your peer. Even if it seems misleading to use a ReadAttributeRequestItem to create a RelationshipAttribute, this terminology makes sense insofar as the RelationshipAttributeValue should be read from the peer in order to be able to create the RelationshipAttribute. All details on how to create a RelationshipAttribute using a ReadAttributeRequestItem can be found in the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. +You can use a [ReadAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#readattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want the RelationshipAttributeValue to be set by your peer. Even if it seems misleading to use a ReadAttributeRequestItem to create a RelationshipAttribute, this terminology makes sense insofar as the RelationshipAttributeValue should be read from the peer in order to be able to create the RelationshipAttribute. A RelationshipAttribute that you want to create using a ReadAttributeRequestItem can be owned by yourself, your peer or even a third party. For full details on how to create a RelationshipAttribute using a ReadAttributeRequestItem, please refer to the [Read Attribute from peer]({% link _docs_integrate/read-attribute-from-peer.md %}) guide. ### Utilization of a ProposeAttributeRequestItem @@ -96,4 +96,4 @@ You can use a [ProposeAttributeRequestItem]({% link _docs_integrate/data-model-o ### Utilization of a ShareAttributeRequestItem -You can use a [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want to use an existing RelationshipAttribute between you and another Identity as the source for creating the new RelationshipAttribute. Your peer can only accept or reject the creation of it, but cannot modify it. All details on how to create a RelationshipAttribute using a ShareAttributeRequestItem can be found in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) guide. +You can use a [ShareAttributeRequestItem]({% link _docs_integrate/data-model-overview.md %}#shareattributerequestitem) to create a RelationshipAttribute in the context of a Relationship between you and your peer if you want to use an existing RelationshipAttribute between you and a third party as the source for creating the new RelationshipAttribute. Your peer can only accept or reject the creation of it, but cannot modify it. A RelationshipAttribute that you want to create using a ShareAttributeRequestItem can be owned by yourself or the third party, but not by your peer. All details on how to create a RelationshipAttribute using a ShareAttributeRequestItem can be found in the [Share own Attribute to peer]({% link _docs_integrate/share-own-attribute-to-peer.md %}) guide.