/DSWS

Data-Sovereign Web Services Utilising the Solid Architecture (DSWS)

Primary LanguageTypeScriptMIT LicenseMIT

Data-Sovereign Web Services Utilising the Solid Architecture (DSWS)

Project Solid 7C4DFF badge badge

This repository presents an innovative approach to developing data-sovereign Web services using the Solid protocol. This concept involves capturing personal data and data held in trust and making it available to other services. To demonstrate this idea, 12 services have been created to represent government agencies or other organizations that act as trustees for citizens. Personal data management can be accomplished through a citizen service that stores personal data and references to the data held in trust.

The research was conducted as part of C149.2 and aims to provide a simplified example of an e-governance scenario. For a detailed explanation of the approach, including its benefits and drawbacks, please visit: https://guddii.github.io/DSWS/paper/README.html

Installation

An .env file is required to provide the necessary environment variables at runtime. You can find the available environment variables in .env.example or copy the entire file:

cp .env.example .env

You need to create Inrupt profiles and register corresponding Inrupt application for each service. Add the WebID, Client ID, and Client secret to the process as environment variables.

This is a Node.js based project, please use the package manager pnpm to install this project.

pnpm install

Usage

If you want to run this project in development mode, enter the following command in your terminal:

pnpm run dev

If the servers have booted successfully, you can select one of the local servers listed in the table below to access the services. If you do not want to manually start the servers, you can use one of the available public examples. In both cases, it is recommended to begin with the 'citizen' service and then proceed to any other desired services.

Symbol Service Name Local Server Public Server

🐵

car-insurance-company

http://localhost:3000/

https://showcase-solid-car-isurance-company.vercel.app/

🐶

citizen

http://localhost:3010/

https://showcase-solid-citizen.vercel.app/

🦊

construction-office

http://localhost:3020/

https://showcase-solid-construction-office.vercel.app/

🐱

customs

http://localhost:3030/

https://showcase-solid-customs.vercel.app/

🦁

employment-office

http://localhost:3040/

https://showcase-solid-employment-agency.vercel.app/

🐯

environmental-office

http://localhost:3050/

https://showcase-solid-environmental-office.vercel.app/

🐮

land-registry-office

http://localhost:3060/

https://showcase-solid-land-registry-office.vercel.app/

🐷

parental-benefits-office

http://localhost:3070/

https://showcase-solid-parental-benefits-office.vercel.app/

🐭

reconstruction-loan-corporation

http://localhost:3080/

https://showcase-solid-reconstruction-loan-corporation.vercel.app/

🐹

registration-office

http://localhost:3090/

https://showcase-solid-registration-office.vercel.app/

🐰

tax-office

http://localhost:3100/

https://showcase-solid-tax-office.vercel.app/

🐻

trade-office

http://localhost:3110/

https://showcase-solid-trade-office.vercel.app/

🐨

vehicle-registration-office

http://localhost:3120/

https://showcase-solid-vehicle-registration-office.vercel.app

Authors

Licence

MIT