This demo application is designed to show a practical example on how to create an application that connects to a Dataspace built with the IOXIO Dataspace technology.
It consists of a simple Python FastAPI backend that is responsible for data retrieval and a React-based frontend application.
You can try the online demo or check the configuration section for instructions on how to run this code locally.
Main idea is to demonstrate how to:
- Retrieve data products from Product Gateway
- Retrieve data from data sources that are using Dataspace verified API tokens
- backend - Python FastAPI backend
- main.py - All the backend routes, e.g. for data retrieval
- access_control.py - Logic for getting API tokens for sources using Dataspace verified API tokens
- settings.py - Backend configuration
- frontend - React application
- containers - Root containers for handling data products
- components - Stateless components to simplify following the containers' logic
- utils.js - Some helpers, e.g. for making network requests to the backend
No configuration is necessary to get started with testing the app locally. However, if you want to also test data retrieval from a data source that requires dataspace verified API tokens, you need to:
- Create a group in the Sandbox Developer Portal.
- Request that your group gets access to the data source or use your own data source.
- Create the backend/.env file based on backend/.env.example.
- Get your access control keys from the
Sandbox Developer Portal and
configure
ACCESS_CONTROL_KEYSlike:Multiple keys can be set for separate DSIs by separating the pairs with commas. You will also have to setACCESS_CONTROL_KEYS={"dpp://.../": "ABC123..."}ACCESS_CONTROL_SUBto the group your application uses to access the source.
- Python 3.11 - 3.13 - For running the backend
- Poetry 1.8.2+ - Python dependency management tool
- Node 18+ - For running the frontend
- pnpm 8.15+ - Node package manager
- pre-commit - Runs hooks before you commit to e.g. format
your code. Make sure you run
pre-commit installafter checking out the repo.
cd backend
poetry install
poetry run devcd frontend
pnpm install
pnpm devThen open http://localhost:3000 in your browser.