Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/add create own identity attribute description #164

Merged
merged 41 commits into from
Mar 5, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
c02d130
feat: create own identityattribute init
vinzlange Oct 4, 2023
e2eec0b
feat: create own identityattribute
britsta Oct 20, 2023
256a3db
feat: create own identityattribute
britsta Oct 23, 2023
2e4edbd
feat: create own identityattribute
britsta Oct 24, 2023
d8d5b63
fix: adjust size of diagramm
britsta Oct 30, 2023
3d425aa
fix: adjust size of diagramm
britsta Oct 30, 2023
72c71d3
fix: remove dependent link temporarly
britsta Nov 2, 2023
3603e6b
fix: remove api excerpt on create attribute page
britsta Oct 27, 2023
6371146
fix: make text more readable, embed new diagram
britsta Nov 16, 2023
e053d5c
fix: change terminology for requests, add usecases
britsta Nov 17, 2023
2a28594
fix: replace http request payloads with tables
britsta Nov 20, 2023
de45355
fix: simplifying property notation
britsta Nov 21, 2023
f2976eb
fix: synchronize table with other documentations
britsta Nov 24, 2023
1f5215a
fix: remove comments on RelationshipAttributes
britsta Nov 29, 2023
ffb77e3
fix: synchronize tables with other documentations
britsta Nov 29, 2023
566a9ac
fix: remove comments
britsta Nov 30, 2023
e0c4433
Merge branch 'main' into feature/add-create-own-identity-attribute-de…
britsta Dec 12, 2023
2db8893
refactor: incorporate some review comments
britsta Jan 8, 2024
8081463
refactor: replace example tables with JSON payloads
britsta Jan 22, 2024
0500b70
feat: replace input table with JSON payload
britsta Jan 24, 2024
7359d78
feat: remove table of success response
britsta Jan 24, 2024
0fb2220
feat: adjust scenario because "Create an Attribute" use case will change
britsta Jan 24, 2024
6697d79
Merge branch 'main' into feature/add-create-own-identity-attribute-de…
britsta Jan 24, 2024
8c6e298
Merge branch 'main' into feature/add-create-own-identity-attribute-de…
britsta Jan 29, 2024
772681c
Merge branch 'main' into feature/add-create-own-identity-attribute-de…
britsta Jan 30, 2024
e7f5882
refactor: add whitespaces in JSON comments
britsta Jan 30, 2024
05f587e
Merge branch 'main' into feature/add-create-own-identity-attribute-de…
britsta Feb 5, 2024
dfbe9b1
Merge branch 'main' into feature/add-create-own-identity-attribute-de…
britsta Feb 22, 2024
7b49450
refactor: renaming use cases
britsta Feb 22, 2024
7954cd3
refactor: renaming of scenario
britsta Feb 22, 2024
0bd99d3
refactor: use new nomenclature for Attributes part 1
britsta Feb 22, 2024
181f265
refactor: use new nomenclature for Attributes part 2
britsta Feb 23, 2024
5a04a86
refactor: use new nomenclatur for Attributes part 3
britsta Feb 23, 2024
fc9870d
feat: add "Create RelationshipAttribute for yourself" part
britsta Feb 26, 2024
a97ef27
feat: add structure for "Create a RelationshipAttribute for yourself"…
britsta Feb 26, 2024
367e8a2
feat: add RelationshipAttribute creation with Read/Create/ProposeAttr…
britsta Feb 27, 2024
ac174c7
feat: add RelationshipAttribute creation with ShareAttributeRequestItem
britsta Feb 28, 2024
ca890ce
feat: incorporate review comments
britsta Mar 5, 2024
de5b20f
feat: mention consumption.attributeCreated event
britsta Mar 5, 2024
47162fb
feat: incorporate review comments
britsta Mar 5, 2024
9c151ef
Merge branch 'main' into feature/add-create-own-identity-attribute-de…
britsta Mar 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions _data/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,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"
Expand Down
2 changes: 1 addition & 1 deletion _docs_integrate/create-own-identityattribute.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
68 changes: 68 additions & 0 deletions _includes/scenarios/integrate/create-own-identityattribute.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
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.

<!--- TODO: Insert link to "IdentityAttribute introduction" --->
britsta marked this conversation as resolved.
Show resolved Hide resolved

## 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:
britsta marked this conversation as resolved.
Show resolved Hide resolved

| Property | Value |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| `@type` | `"IdentityAttribute"` |
| `owner` | `"<Address of your Connector>"` |
| `validFrom` | `"<start of Attribute validity>"` |
| `validTo` | `"<end of Attribute validity>"` |
| `value` | Specify an [IdentityAttribute Value]({% link _docs_integrate/attribute-values.md %}#identity-attributes) |
| `tags` | `["<additional information 1>", ..., "<additional information m>"]` |

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.
britsta marked this conversation as resolved.
Show resolved Hide resolved
britsta marked this conversation as resolved.
Show resolved Hide resolved

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`.
britsta marked this conversation as resolved.
Show resolved Hide resolved
{: .notice--info}

<!--- TODO: Change link to subsection of create an attribute use case --->

## 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.

<div style="width: 640px; height: 480px; margin: 10px; position: relative;"><iframe allowfullscreen frameborder="0" style="width:640px; height:480px" src="https://lucid.app/documents/embedded/310cea0e-6f6f-4ee0-9efd-55e180ec5dda" id="WT4OFNWd3bcS"></iframe></div>
britsta marked this conversation as resolved.
Show resolved Hide resolved

### 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:
britsta marked this conversation as resolved.
Show resolved Hide resolved

| Property | Value |
| ------------- | ------------------------------------ |
| `@type` | `"IdentityAttribute"` |
| `owner` | `"<Address of your Connector>"` |
| `value.@type` | `"DisplayName"` |
| `value.value` | `"<display name of your Connector>"` |

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.
britsta marked this conversation as resolved.
Show resolved Hide resolved

### 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 content:
britsta marked this conversation as resolved.
Show resolved Hide resolved

| Property | Value |
| ------------- | ------------------------------- |
| `@type` | `"IdentityAttribute"` |
| `owner` | `"<Address of your Connector>"` |
| `value.@type` | `"BirthDate"` |
| `value.day` | `<day of birth>` |
| `value.month` | `<month of birth>` |
| `value.year` | `<year of birth>` |

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.
britsta marked this conversation as resolved.
Show resolved Hide resolved

## 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` | `"<ID of IdentityAttribute>` |
| `createdAt` | `"<creation date of IdentityAttribute>"` |

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 %}).
Loading