BDI — Basic Data Infrastructure

BDI Developer Portal

Available Components

Components

Several components are available for BDI implementations.

BDI Stack

The BDI Stack contains development and demo tooling and includes docker containers for running an Association Register and Authorization Register locally.

Apache Pulsar Authorization Plugin

An Apache Pulsar authorization plugin for use with other BDI components. It implements authentication through an association register and authorization through an authorization register for topic access.

Third party components

Poort8 Dataspace Noodle Bar

The Noodle Bar project falls under the Basic Data Infrastructure (BDI) umbrella, pending its ongoing development.

Noodle Bar facilitates setting up dataspaces that follow certain principles, serving as an initial platform for data providers, apps, and data consumers.

Roles

iSHARE .NET Client

This is the official iSHARE library, which provides core functionality for service consumers. In other words, it encapsulates HTTP request calls towards iSHARE endpoints, JWT response validation, and mapping business logic.

Postman Collections

This link provides access to a set of tools called Postman collections, which are used to manually test how iSHARE APIs work within the BDI architecture. Postman is a popular API development and collaboration platform that allows developers and teams to design, test, document, and share APIs efficiently. It provides an intuitive interface for sending HTTP requests, examining responses, and automating API workflows through collections. In the collections provided here, you’ll be pretending to be a company called “ABC Trucking” using a special digital key that allows you to interact with the system as if you were that company. This is a safe way to try out the APIs and see how they work.

iSHARE Authorization Registry

The Authorization Register code that is in this repository is not a ‘production-ready’ Authorization Register, meaning it has a limited set of functionalities. It can be used in proof of concepts or pilots to showcase the iSHARE Authorization protocol, however many functionalities can be improved. Furthermore, it should be noted that only the request and return made to the /delegation endpoint (as described on our Developer Portal) is specified within the iSHARE standards. How an authorization registry registers policies and translates these into delegation evidence is up to the authorization registry. This code only provides one of the options to do so.

iSHARE Satellite

This is the iSHARE equivalent of a BDI Association Register.

The iSHARE Satellite is an application that safeguards trust in a dataspace. It functions as a register of participants. Participants can call the Satellite API to verify each other. When you verify that a participant is registered in the Satellite, you know that this participant has signed which agreements and the participant is indeed a part of a dataspace, also on a “legal level”.

FIWARE iSHARE Satellite

A simple implementation of an iSHARE satellite trust anchor / BDI Association Register.

The FIWARE iSHARE Satellite is based on Python Flask using Gunicorn and runs completely stateless. It is configured with a static configuration file.

This implementation of the iSHARE Satellite is only meant for testing and demonstration purposes. It is not possible to change participants or trusted CAs in a running instance. It is not recommended to be used in production environments.