diff --git a/README.md b/README.md index 3a022da..0828d95 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,16 @@ NoodleBar, developed by Poort8, is a cutting-edge dataspace solution designed to ## Table of Contents -1. [Introduction](docs/1-Introduction.md) -2. [Dataspace Concepts](docs/2-Dataspace-Concepts.md) -3. [Customer Journeys](docs/3-Customer-Journeys.md) -4. [NoodleBar Implementation Stages](docs/4-NoodleBar-Implementation-Stages.md) -5. [Tech Stack](docs/5-Tech-Stack.md) -6. [Deployment Using a Local Identity Server](docs/6-Deployment-Using-a-Local-Identity-Server.md) -7. [Deployment Using OAuth Server](docs/7-Deployment-Using-OAuth-Server.md) -8. [Deployment Using iSHARE](docs/8-Deployment-Using-iSHARE.md) -9. [Database Migrations](docs/9-Database-Migrations.md) +1. [Introduction](docs/01%20-%20Introduction.md) +2. [Dataspace Concepts](docs/02%20-%20Dataspace%20Concepts.md) +3. [Customer Journeys](docs/03%20-%20Customer%20Journeys.md) +4. [NoodleBar Implementation Stages](docs/04%20-%20NoodleBar%20Implementation%20Stages.md) +5. [Tech Stack](docs/05%20-%20Tech%20Stack.md) +6. [Deployment Using a Local Identity Server](docs/06%20-%20Deployment%20Using%20a%20Local%20Identity%20Server.md) +7. [Deployment Using OAuth Server](docs/07%20-%20Deployment%20Using%20OAuth%20Server.md) +8. [Deployment Using iSHARE](docs/08%20-%20Deployment%20Using%20iSHARE.md) +9. [Database Migrations](docs/09%20-%20Database%20Migrations.md) +10. [NoodleBar Showcase](docs/10%20-%20NoodleBar%20Showcase.md) ## Context @@ -39,7 +40,7 @@ To facilitate setting up dataspaces that follow certain principles, serving as a ## Customer Journeys -The wiki describes the following [Customer Journeys](docs/3%20-%20Customer%20Journeys.md) in more detail: +The wiki describes the following [Customer Journeys](docs/03%20-%20Customer%20Journeys.md) in more detail: - Initiating Dataspace Core - Onboarding Data Sources @@ -54,7 +55,7 @@ The first 3 journeys comprise the launch of a first (prototype) of a dataspace. The Dataspace Core provides services for the organization registry, the organization onboarding process, the dataspace manager and (optionally) an authorization registry. With the dataspace manager the dataspace standards can be managed, such as the requirements for authentication and onboarding, and the definition of a dataspace data model. Secondly (and optionally), the dataspace initiator can provide Dataspace Adapters to Data Providers, with services to support them with mapping to the dataspace data model, and Identification, Authentication and Authorisation (IAA) according to the Dataspace standards. Dataspace Adapters are expected to be made redundant as Data Providers create independent solutions for this. Thirdly (and optionally), the dataspace initiator may choose to launch the dataspace with a prototype app, using the Dataspace Prototype services for logic, IAA, and multiple front-end channels for the end user. Such a Dataspace Prototype app can be removed when additional apps are added to the dataspace. -See the [architectural outline](docs/2%20-%20Dataspace%20Concepts.md) of these functions for more detail. +See the [architectural outline](docs/02%20-%20Dataspace%20Concepts.md) of these functions for more detail. ## Challenges diff --git a/docs/1 - Introduction.md b/docs/01 - Introduction.md similarity index 100% rename from docs/1 - Introduction.md rename to docs/01 - Introduction.md diff --git a/docs/2 - Dataspace Concepts.md b/docs/02 - Dataspace Concepts.md similarity index 96% rename from docs/2 - Dataspace Concepts.md rename to docs/02 - Dataspace Concepts.md index daa60a7..b27b766 100644 --- a/docs/2 - Dataspace Concepts.md +++ b/docs/02 - Dataspace Concepts.md @@ -55,7 +55,7 @@ These roles ensure that all parties involved in data sharing are properly authen - **Modularity**: The components can be customized and integrated with other systems, making it a flexible solution for various organizational needs. - **Scalability**: NoodleBar is designed to scale, supporting growing data sharing needs as organizations expand. - **Compliance**: Fully aligned with the iSHARE Trust Framework, NoodleBar ensures compliance with stringent data sharing standards. -- **Versatility**: NoodleBar supports various [deployment models](/docs/4%20-%20NoodleBar%20Implementation%20Stages.md), from simple local [identity management](/docs/6%20-%20Deployment%20Using%20a%20Local%20Identity%20Server.md) to advanced [OAuth (recommended)](/docs/7%20-%20Deployment%20Using%20OAuth%20Server.md) and [iSHARE](/docs/8%20-%20Deployment%20Using%20iSHARE.md) compliant setups. +- **Versatility**: NoodleBar supports various [deployment models](04%20-%20NoodleBar%20Implementation%20Stages.md), from simple local [identity management](06%20-%20Deployment%20Using%20a%20Local%20Identity%20Server.md) to advanced [OAuth (recommended)](07%20-%20Deployment%20Using%20OAuth%20Server.md) and [iSHARE](08%20-%20Deployment%20Using%20iSHARE.md) compliant setups. ### 2.6 Dataspace Adapters (In Development) diff --git a/docs/3 - Customer Journeys.md b/docs/03 - Customer Journeys.md similarity index 94% rename from docs/3 - Customer Journeys.md rename to docs/03 - Customer Journeys.md index 5e22b28..ce9157c 100644 --- a/docs/3 - Customer Journeys.md +++ b/docs/03 - Customer Journeys.md @@ -18,6 +18,8 @@ After setting up the core, the next step is to onboard data sources: - **Integrating Data Sources**: Using Dataspace Adapters to convert legacy APIs and ensure data compatibility with the dataspace schema. - **Defining Access Policies**: Setting up rules and permissions for data access through the Authorization Register. +The process of registering data providers and defining access policies using the Core Manager is shown in the [NoodleBar Showcase](10%20-%20NoodleBar%20Showcase). + ### 3.3 Onboarding Data Owners and Consumers To fully operationalize the dataspace, onboard data owners and consumers: diff --git a/docs/4 - NoodleBar Implementation Stages.md b/docs/04 - NoodleBar Implementation Stages.md similarity index 100% rename from docs/4 - NoodleBar Implementation Stages.md rename to docs/04 - NoodleBar Implementation Stages.md diff --git a/docs/5 - Tech Stack.md b/docs/05 - Tech Stack.md similarity index 100% rename from docs/5 - Tech Stack.md rename to docs/05 - Tech Stack.md diff --git a/docs/6 - Deployment Using a Local Identity Server.md b/docs/06 - Deployment Using a Local Identity Server.md similarity index 100% rename from docs/6 - Deployment Using a Local Identity Server.md rename to docs/06 - Deployment Using a Local Identity Server.md diff --git a/docs/7 - Deployment Using OAuth Server.md b/docs/07 - Deployment Using OAuth Server.md similarity index 100% rename from docs/7 - Deployment Using OAuth Server.md rename to docs/07 - Deployment Using OAuth Server.md diff --git a/docs/8 - Deployment Using iSHARE.md b/docs/08 - Deployment Using iSHARE.md similarity index 100% rename from docs/8 - Deployment Using iSHARE.md rename to docs/08 - Deployment Using iSHARE.md diff --git a/docs/9 - Database Migrations.md b/docs/09 - Database Migrations.md similarity index 100% rename from docs/9 - Database Migrations.md rename to docs/09 - Database Migrations.md diff --git a/docs/10 - NoodleBar Showcase.md b/docs/10 - NoodleBar Showcase.md new file mode 100644 index 0000000..921ea1b --- /dev/null +++ b/docs/10 - NoodleBar Showcase.md @@ -0,0 +1,47 @@ +# 10: NoodleBar Showcase +The NoodleBar Core Manager is a web application for managing the Organization Register and Authorization Register. This showcase displays the basics of the Core Manager. To keep things simple, this showcase functions using a local identity server. + +### 10.1 Registering and logging in +When launching the Core Manager, the user is met with a welcome page. From here, the user can go to the login page. All other menu options are visible, but the user will automatically be directed to the login page if they are not authenticated. +![Home](showcase-images/01-home.png) +![Login](showcase-images/02-login.png) + +If the user isn't registered yet, they can do so with an email address and password. If the registration is complete, the user can login using their credentials. +![Registering](showcase-images/03-registering.png) +![Logging in](showcase-images/04-logging-in.png) + +### 10.2 Organization Register +Within the Organization Register, the user can manage their organizations. They can add a new organization using the **New Organization** button. +![OR](showcase-images/05-or.png) +![OR - Add organization](showcase-images/06-or-add-organization.png) + +The user can delete an organization by clicking the delete button, or view additional details by clicking the **i** button. + +### 10.3 Authorization Register +Within the Authorization Register, the user can manage their organizations mandates, resource groups, and policies. + +#### 10.3.1 Organization mandates +The user can add an organization mandate using the **Add Organization** button. Each organization can only have one mandate, the *Add Organization* form contains a dropdown menu with available organizations from the Organization Register. This means that an organization mandate cannot be added if there are no organizations in the Organization Register. The user can delete an organization mandate by clicking the trash can button. +![AR - Organization mandates](showcase-images/07-ar-organization-mandates.png) +![Ar - Add organization mandate](showcase-images/08-ar-add-organization-mandate.png) + +By clicking the label button, the user can manage named properties of an organization mandate. +![AR - Add organization mandate propery](showcase-images/09-ar-add-organization-mandate-property.png) + +By clicking the **i** button, the user can view additional details of an organization mandate. From here, the user can manage employees of the organization mandate. +![AR - Organization mandate details](showcase-images/10-ar-organization-mandate-details.png) +![AR - Add organization mandate employee](showcase-images/11-ar-add-organization-mandate-employee.png) + +#### 10.3.2 Resource groups +The user can create a new resource group using the **New ResourceGroup** button. The *Provider* field in the *New ResourceGroup* form contains a dropdown menu with organizations from the Organization Register. This means that a resource group cannot be created if there are no organizations in the Organization Register. By clicking the label button, the user can manage named properties of a resource group. The user can delete a resource group by clicking the trash can button. +![AR - Resource groups](showcase-images/12-ar-resourcegroups.png) +![AR - Create resource group](showcase-images/13-ar-create-resourcegroup.png) + +By clicking the **i** button, the user can view additional details of a resource group. From here, the user can manage resources of the resource group. Resources are not exclusive to a resource group, making it possible to add existing resources from one to another resource group. +![AR - Resource group details](showcase-images/14-ar-resourcegroup-details.png) +![AR - Create resource group resource](showcase-images/15-ar-create-resourcegroup-resource.png) + +#### 10.3.3 Policies +The user can create a new policy using the **New Policy** button. The *Issuer*, *Actor*, and *Service Provider* fields in the *New Policy* form each contain a dropdown menu with organizations from the Organization Register. This means that a policy cannot be created if there are no organizations in the Organization Register. By clicking the label button, the user can manage named properties of a policy. The user can delete a policy by clicking the trash can button, or view additional details by clicking the **i** button. +![AR - Policies](showcase-images/16-ar-policies.png) +![AR - Create policy](showcase-images/17-ar-create-policy.png) \ No newline at end of file diff --git a/docs/showcase-images/01-home.png b/docs/showcase-images/01-home.png new file mode 100644 index 0000000..386aafa Binary files /dev/null and b/docs/showcase-images/01-home.png differ diff --git a/docs/showcase-images/02-login.png b/docs/showcase-images/02-login.png new file mode 100644 index 0000000..e8a907d Binary files /dev/null and b/docs/showcase-images/02-login.png differ diff --git a/docs/showcase-images/03-registering.png b/docs/showcase-images/03-registering.png new file mode 100644 index 0000000..4c64f39 Binary files /dev/null and b/docs/showcase-images/03-registering.png differ diff --git a/docs/showcase-images/04-logging-in.png b/docs/showcase-images/04-logging-in.png new file mode 100644 index 0000000..d1d822c Binary files /dev/null and b/docs/showcase-images/04-logging-in.png differ diff --git a/docs/showcase-images/05-or.png b/docs/showcase-images/05-or.png new file mode 100644 index 0000000..9bfb128 Binary files /dev/null and b/docs/showcase-images/05-or.png differ diff --git a/docs/showcase-images/06-or-add-organization.png b/docs/showcase-images/06-or-add-organization.png new file mode 100644 index 0000000..3436220 Binary files /dev/null and b/docs/showcase-images/06-or-add-organization.png differ diff --git a/docs/showcase-images/07-ar-organization-mandates.png b/docs/showcase-images/07-ar-organization-mandates.png new file mode 100644 index 0000000..8e9769c Binary files /dev/null and b/docs/showcase-images/07-ar-organization-mandates.png differ diff --git a/docs/showcase-images/08-ar-add-organization-mandate.png b/docs/showcase-images/08-ar-add-organization-mandate.png new file mode 100644 index 0000000..b9b72f7 Binary files /dev/null and b/docs/showcase-images/08-ar-add-organization-mandate.png differ diff --git a/docs/showcase-images/09-ar-add-organization-mandate-property.png b/docs/showcase-images/09-ar-add-organization-mandate-property.png new file mode 100644 index 0000000..5186c85 Binary files /dev/null and b/docs/showcase-images/09-ar-add-organization-mandate-property.png differ diff --git a/docs/showcase-images/10-ar-organization-mandate-details.png b/docs/showcase-images/10-ar-organization-mandate-details.png new file mode 100644 index 0000000..02b58dc Binary files /dev/null and b/docs/showcase-images/10-ar-organization-mandate-details.png differ diff --git a/docs/showcase-images/11-ar-add-organization-mandate-employee.png b/docs/showcase-images/11-ar-add-organization-mandate-employee.png new file mode 100644 index 0000000..dc54066 Binary files /dev/null and b/docs/showcase-images/11-ar-add-organization-mandate-employee.png differ diff --git a/docs/showcase-images/12-ar-resourcegroups.png b/docs/showcase-images/12-ar-resourcegroups.png new file mode 100644 index 0000000..da9e092 Binary files /dev/null and b/docs/showcase-images/12-ar-resourcegroups.png differ diff --git a/docs/showcase-images/13-ar-create-resourcegroup.png b/docs/showcase-images/13-ar-create-resourcegroup.png new file mode 100644 index 0000000..6de98b0 Binary files /dev/null and b/docs/showcase-images/13-ar-create-resourcegroup.png differ diff --git a/docs/showcase-images/14-ar-resourcegroup-details.png b/docs/showcase-images/14-ar-resourcegroup-details.png new file mode 100644 index 0000000..b22e66e Binary files /dev/null and b/docs/showcase-images/14-ar-resourcegroup-details.png differ diff --git a/docs/showcase-images/15-ar-create-resourcegroup-resource.png b/docs/showcase-images/15-ar-create-resourcegroup-resource.png new file mode 100644 index 0000000..be2fd24 Binary files /dev/null and b/docs/showcase-images/15-ar-create-resourcegroup-resource.png differ diff --git a/docs/showcase-images/16-ar-policies.png b/docs/showcase-images/16-ar-policies.png new file mode 100644 index 0000000..a74e051 Binary files /dev/null and b/docs/showcase-images/16-ar-policies.png differ diff --git a/docs/showcase-images/17-ar-create-policy.png b/docs/showcase-images/17-ar-create-policy.png new file mode 100644 index 0000000..49a8ea3 Binary files /dev/null and b/docs/showcase-images/17-ar-create-policy.png differ