Tools for developing clients and services in the Basic Data Infrastructure framework.
The BDI Stack contains standalone services and libraries.
- authentication-service - A standalone iSHARE / BDI compatible authentication service providing trusted access tokens.
- association-register - An iSHARE / BDI compatible Association Register
- authorization-register - An iSHARE / BDI compatible Authorization Register
- connector - a standalone service for authenticating and authorizing incoming HTTP requests.
- clj-ishare-jwt - A Clojure Library for creating and validating iSHARE compatible JWTs
- clj-ishare-client - A Clojure Library for accessing iSHARE compatible services
- clj-ring-middleware - Ring middleware for authenticating iSHARE compatible clients
The software is for development and testing purposes only! It has not been audited for security flaws and may not be suitable as a starting point for production quality software. Use at your own risk.
We publish services as docker images.
The VGU Demo repository contains a docker example that demonstrates running an application with the Authorization Register and Association Register using docker-compose.
You need Clojure installed in order to work with the source code in this repository. You also need GNU Make and OpenSSL installed.
See the Makefile for some common tasks.
This repository has each component in its own subdirectory as a
Clojure deps.edn project. The top-level directory contains a
deps.edn configuration that includes all components.
If a Clojure REPL is started from one of the component directories, it will include the source paths of the component and its dependencies.
If a REPL is started in the top-level directory, it will include the
source paths of all components. This is recommended if you're making
changes across components. To start a top-level REPL in Emacs/CIDER,
open the top-level deps.edn in Emacs and cider-jack-in
from there.
Running tests only works from the top-level project, since the tests
rely on a top-level configuraton directory test-config. Before
running the tests, run make test-config to generate the necessary
key can certificate files.
Some tests need a PostgreSQL database to run. In the example below a docker container is started to service as test database:
docker run -p 5432:5432 -e POSTGRES_PASSWORD=x docker.io/library/postgresUse -d to run it in the background and use --name bdi-stack-test-pg to make it reusable with docker start bdi-stack-test-pg.
Now the tests can be run using:
env AR_TEST_DB_NAME=postgres \
AR_TEST_DB_USER=postgres \
AR_TEST_DB_PASSWORD=x \
make testclojure -M:test runs all tests, clojure -M:test COMPONENT... runs
the tests for the specified components. For instance, to run only the
tests for clj-ishare-client, run clojure -M:test clj-ishare-client
in the top-level directory.
make test in the top-level directory runs all tests after ensuring
that the test-config is populated correctly.
- Include BDI Connector in releases
- CI and release automation improvements
- Dependency updates
- Bug fixes
- Added
authentication-service, a standalone service that provides an access token endpoint generating trusted JWTs. - Improve logging
- Internal refactoring: split out
service-commons, improve tests.
- Initial public release
Copyright (C) 2024-2025 Jomco B.V.
Copyright (C) 2024-2025 Stichting Connekt