Skip to content

Commit

Permalink
Merge branch 'eclipse-tractusx:feat/tutorials' into feat/tutorials
Browse files Browse the repository at this point in the history
  • Loading branch information
stephanbcbauer authored Nov 20, 2023
2 parents fbe76c0 + 757a51f commit 2ff5cf2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 10 deletions.
21 changes: 13 additions & 8 deletions docs/tutorials/e2e/boost/provideData.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ curl --location 'http://localhost/alice/management/v2/catalog/request' \

## Create first access policy

Let´s see if Alice can see the Asset (ID:3).
Let´s see if Alice can see the Asset (ID: 3).

As you can see in the response, the data offer "Product EDC Demo Asset 3" (asset ID:3) does not appear. Unfortunately, Alice sees some contract offers but she cannot find the contract offer from Bob.
As you can see in the response, the data offer "Product EDC Demo Asset 3" (asset ID: 3) does not appear. Unfortunately, Alice sees some contract offers but she cannot find the contract offer from Bob.

Alice calls Bob and says she can´t see the asset. Bob remembers that he did not create an access policy. An access policy defines who is allowed to see a data offering.

Expand Down Expand Up @@ -117,13 +117,18 @@ curl --location 'http://localhost/alice/management/v2/catalog/request' \

Let´s see if Alice can see the Asset.

Once again Alice cannot find the data offer. This is by design and to be expected since Bob has only created an asset and a policy definition. An asset and a policy cannot be displayed to Alice as a consumer without a contract definition.
**This is the first lesson for this tutorial: A contract definition must be created on the data provider side. It must always contain an asset, an access policy and a contract policy.**
Once again Alice cannot find the data offer. This is by design and to be expected since Bob has only created an asset and a policy definition. An asset and a policy can not be displayed to Alice as a consumer without a contract definition.

Contract definitions state how assets and policies are linked together. Contract definitions express under what conditions an asset is published to a data space. Those conditions are comprised of a contract policy and an access policy. Those policies are referenced by ID, that means they must already exist in the policy store before creating the contract definition.
:::info

- Access policy: determines whether a particular consumer is offered an asset or not. For example, we may want to restrict certain assets such that only selected consumers from a list of slescted partners can access the asset. This can be done using a unique identifier such as the Business Partner Nukber (BPN). Other dta space participants than those whose BPN is listed in the access policy wouldn't even have the assets in their catalog.
- Contract policy: determines the conditions for initiating a contract negotiation for a particular asset. Note that does not automatically guarantee the successful creation of a contract, it merely expresses the eligibility to start the negotiation.
This is the first lesson in this tutorial: For providing data, a contract definition must be created on the provider side. This must always contain an asset, an access policy, and a contract policy.

:::

Contract definitions state how assets and policies are linked together. Contract definitions express under what conditions an asset is published in a data space. Those conditions are comprised of a contract policy and an access policy. Those policies are referenced by ID, that means they must already exist in the policy store before creating the contract definition.

- Access policy: determines whether or not a particular consumer can see an asset in the provider's catalog. For example, we may want to restrict certain assets such that only selected consumers from a list of selected partners can access the asset. This can be done using a unique identifier such as the Business Partner Number (BPN). Other data space participants than those whose BPN is listed in the access policy wouldn't even be able to see the asset in the catalog.
- Contract policy: determines the conditions for initiating a contract negotiation for a particular asset. Note that this does not automatically guarantee the successful creation of a contract, it merely expresses the eligibility to start the negotiation.

Find additional information on transferring data in the [Developer's Handbook](https://github.com/eclipse-edc/docs/blob/main/developer/handbook.md).

Expand Down Expand Up @@ -175,7 +180,7 @@ curl --location 'http://localhost/alice/management/v2/catalog/request' \
```

Finally Alice can see the Contract Offer from Bob.
Congratulations on yor first successful data exchange in your own data space!
Congratulations on yor first successful offering of data in your own data space!

## Notice

Expand Down
12 changes: 10 additions & 2 deletions docs/tutorials/e2e/boost/restrictData.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ sidebar_position: 4

## Create an asset

Bob will once again be the data provider and Alice is interested in Bob’s data assets. Bob, as a data provider, creates an asset.
Bob will once again be the data provider. But this time Bob does not want Alice to see the asset.
The first step for Bob will again be to create an asset.

Action (Bob): Create an asset using the following `curl` command:

Expand All @@ -32,7 +33,13 @@ curl --location 'http://localhost/bob/management/v2/assets' \

## Create a permissive access policy

Now that the asset is created, an access policy must be created to define who shall be able to see the asset within the catalog. This time Bob does not want Alice to see the asset. So he defines a policy not allowing Alice to see the asset in her catalog.
Now that the asset has been created, Bob creates an access policy that defines who can see and therefore access the asset in his catalog. To specify this access, Bob uses the Business Partner Number (BPN). The BPN is a unique identifier for participants of a data space. Bob knows that his exchange partner for this asset has the BPN (BPNL000000000003). Therefore, he can define his access policy as follows:

:::info

The MXD contains only two members (Alice & Bob). Therefore, it will not be possible to consume an asset with the policy defined here, because the participant with the BPN BPNL000000000003 does not exist in this data space. This is an example to demonstrate the restriction of an asset with a policy.

:::

Action (Bob): Create the access policy using the following `curl` command:

Expand Down Expand Up @@ -69,6 +76,7 @@ curl --location 'http://localhost/bob/management/v2/policydefinitions' \
}
}'
```
Bob defined a policy which restricts access to connector(s) with the BusinessPartnerNumber BPNL000000000003. As Alice does not own this BPN, she should not be able to access the asset.

## Create a contract definition

Expand Down

0 comments on commit 2ff5cf2

Please sign in to comment.