De command line tool bl
bl start de simulatie op je eigen computer (bl sim), controleert bewijspakketten
(bl evidence), maakt sleutels (bl key), praat na bl login met een connector en leest het
verzoekenlog en de logs van de diensten uit de logopslag (bl logs). Hoe je bl
installeert, staat op De simulatie op je eigen computer.
Deze naslag komt rechtstreeks uit de definitie van de commando’s in de code, met dezelfde teksten
als bl --help. De commando’s in de rest van de documentatie worden bij elke build hiertegen
gecontroleerd.
bl
Buildinglinks dataspace: simulatie en hulpmiddelen
bl <commando>
simDe complete gesimuleerde dataspace op deze machineevidenceBewijspakketten van een connectorkeyPrivate sleutels voor BL_KEY_SOURCE=file of envloginLog in bij een connector: u keurt het goed in zijn UI, via uw eigen IdPlogoutLog uit: beëindig de sessie bij de connector en wis de sleutels op deze machinewhoamiBij welke connector en als wie u bent ingelogdlogsLogs uit S3-compatibele opslag
bl sim
De complete gesimuleerde dataspace op deze machine
bl sim <commando>
startStart de simulatie: bestanden schrijven, images ophalen, starten en seedenstatusToon welke onderdelen draaien, met de adressen en inloggegevensstopStop de simulatie. De data blijft bewaard, tenzij --purgeresetBegin opnieuw: deelnemersdata wissen en opnieuw seeden; logs blijven bewaardlogsLogs van de simulatie of van enkele services (bijvoorbeeld sensortrust-cp seed)requestsHet request-log van de data planes uit de logopslag, op tijd gesorteerd (bijvoorbeeld --from 08:00 --to 12:00 --level warn)renderSchrijf alleen de bestanden (compose, Caddyfile, realms, seed), zonder iets te starten
bl sim start
Start de simulatie: bestanden schrijven, images ophalen, starten en seeden
bl sim start [opties]
--domain <domain> | Domein waaronder alles bereikbaar is: sensortrust.<domein>, authority.<domein>, … Bijvoorbeeld localhost, 100-64-1-2.sslip.io (Tailscale) of demo.example.nl |
--https <https> | HTTPS met certificaten van Let's Encrypt (publiek domein; poort 80 en 443) |
--port <port> | HTTP-poort van de reverse proxy (zonder --https) |
--bind <bind> | IP-adres waarop de proxy luistert (standaard 127.0.0.1 voor localhost, het adres uit een sslip.io- of nip.io-domein, anders 0.0.0.0) |
--registry <registry> | Registry en namespace van de images (standaard ghcr.io/buildinglinks; "" zet terug) |
--tag <tag> | Versie (tag) van de images (standaard de versie van bl, dev na --build; "" zet terug) |
--password <password> | Eén wachtwoord voor de hele simulatie (gebruiker demo), voor een server op internet. De browser vraagt het één keer; "" haalt het weer weg |
--traffic <traffic> | Hoe druk de apps het hebben: quiet (rustig), normal (standaard) of busy (druk) |
--view-only <view_only> | Kijkdemo voor op internet: iedereen kijkt mee als viewer en niemand verandert iets. admin en operator krijgen sterke wachtwoorden (bl sim status); de nieuwkomer en de hulpdiensten zijn alleen bereikbaar achter --password. --view-only=false zet terug |
--static-site <host=map> | Nog een statische site op een eigen hostnaam, zonder wachtwoord (met --https ook met een certificaat): HOST=MAP, bijvoorbeeld docs.buildinglinks.nl=/srv/docs; "" haalt hem weg. De proxy serveert MAP/current: een map, of een symlink naar een map, zodat een nieuwe versie in één keer wisselt |
--build | Bouw de images eerst uit deze repository (Dockerfile-targets en deploy/dss) |
bl sim status
Toon welke onderdelen draaien, met de adressen en inloggegevens
bl sim status [opties]
--json | Uitvoer als JSON |
bl sim stop
Stop de simulatie. De data blijft bewaard, tenzij --purge
bl sim stop [opties]
--purge | Wis ook de data (databases, logs, CA van de QTSP, certificaten van de proxy) |
bl sim reset
Begin opnieuw: deelnemersdata wissen en opnieuw seeden; logs blijven bewaard
bl sim reset [opties]
--participant <participant> | Zet alleen deze deelnemer terug naar een verse installatie (bijvoorbeeld nieuwkomer) |
bl sim logs
Logs van de simulatie of van enkele services (bijvoorbeeld sensortrust-cp seed)
bl sim logs [<services>…] [opties]
<services> | Services zoals in compose.yaml, bijvoorbeeld sensortrust-cp seed (standaard alle) |
-f, --follow | Blijf nieuwe regels volgen |
--tail <tail> | Aantal regels per service |
bl sim requests
Het request-log van de data planes uit de logopslag, op tijd gesorteerd (bijvoorbeeld --from 08:00 --to 12:00 --level warn)
bl sim requests [opties]
--from <from> | Begin: 2026-10-01T08:00 of 08:00 (lokale tijd), 2026-10-01, RFC 3339, of terug vanaf nu (15m, 2h, 7d) |
--to <to> | Eind, in dezelfde vormen (standaard nu) |
--level <level> | Laagste niveau: error, warn of info. Er staat alleen in wat het niveau van de data plane op dat moment logde (Instellingen → Request-log) |
--participant <participant> | Alleen deze deelnemer, bijvoorbeeld sensortrust (met --direct of in de simulatie) |
--counterparty <counterparty> | Alleen requests van of naar deze tegenpartij (DID of een deel ervan) |
--process <process> | Alleen requests van dit proces (process_id of een deel ervan) |
--json | Eén JSON-object per regel, zoals het in de opslag staat |
--direct | Rechtstreeks uit de logopslag in plaats van via de connectors (de noodroute) |
bl sim render
Schrijf alleen de bestanden (compose, Caddyfile, realms, seed), zonder iets te starten
bl sim render [opties]
--domain <domain> | Domein waaronder alles bereikbaar is: sensortrust.<domein>, authority.<domein>, … Bijvoorbeeld localhost, 100-64-1-2.sslip.io (Tailscale) of demo.example.nl |
--https <https> | HTTPS met certificaten van Let's Encrypt (publiek domein; poort 80 en 443) |
--port <port> | HTTP-poort van de reverse proxy (zonder --https) |
--bind <bind> | IP-adres waarop de proxy luistert (standaard 127.0.0.1 voor localhost, het adres uit een sslip.io- of nip.io-domein, anders 0.0.0.0) |
--registry <registry> | Registry en namespace van de images (standaard ghcr.io/buildinglinks; "" zet terug) |
--tag <tag> | Versie (tag) van de images (standaard de versie van bl, dev na --build; "" zet terug) |
--password <password> | Eén wachtwoord voor de hele simulatie (gebruiker demo), voor een server op internet. De browser vraagt het één keer; "" haalt het weer weg |
--traffic <traffic> | Hoe druk de apps het hebben: quiet (rustig), normal (standaard) of busy (druk) |
--view-only <view_only> | Kijkdemo voor op internet: iedereen kijkt mee als viewer en niemand verandert iets. admin en operator krijgen sterke wachtwoorden (bl sim status); de nieuwkomer en de hulpdiensten zijn alleen bereikbaar achter --password. --view-only=false zet terug |
--static-site <host=map> | Nog een statische site op een eigen hostnaam, zonder wachtwoord (met --https ook met een certificaat): HOST=MAP, bijvoorbeeld docs.buildinglinks.nl=/srv/docs; "" haalt hem weg. De proxy serveert MAP/current: een map, of een symlink naar een map, zodat een nieuwe versie in één keer wisselt |
bl evidence
Bewijspakketten van een connector
bl evidence <commando>
verifyVerifieer een bewijspakket offline
bl evidence verify
Verifieer een bewijspakket offline
bl evidence verify <bundle> [opties]
<bundle> | |
--online | Controleer ook tegen de actuele DID-documenten van de partijen |
--authority <authority> | De did:webvh van de Trust Authority die u vertrouwt. Zijn historie bepaalt welke sleutels wanneer geldig waren |
--tsa-ca <tsa_ca> | PEM-bestand met de certificaten van vertrouwde (gekwalificeerde) TSA's, voor de tijdstempels van de notary |
--trust-bundle-keys | Accepteer sleutels waar alleen het pakket zelf voor instaat: zonder vastgepinde authority, of van een partij zonder door de authority bevestigde historie. Alleen voor pakketten uit een TCK-run |
bl key
Private sleutels voor BL_KEY_SOURCE=file of env
bl key <commando>
generateMaak een nieuwe sleutel en schrijf hem als JWK naar stdoutsessionMaak een sleutel voor BL_SESSION_KEY (sessies van de beheer-UI) en schrijf hem naar stdoutdataMaak een sleutel voor BL_DATA_KEY (opgeslagen geheimen van connector en data plane) en schrijf hem naar stdouthashSchrijf de pre-rotatiehash van een Ed25519-sleutel naar stdout (voor BL_DID_NEXT_KEY_HASH)publicSchrijf het publieke deel van een JWK-bestand naar stdout
bl key generate
Maak een nieuwe sleutel en schrijf hem als JWK naar stdout
bl key generate [opties]
--ed25519 | Ed25519 in plaats van P-256: update-sleutels van did:webvh en de getuigensleutel |
bl key session
Maak een sleutel voor BL_SESSION_KEY (sessies van de beheer-UI) en schrijf hem naar stdout
bl key session
bl key data
Maak een sleutel voor BL_DATA_KEY (opgeslagen geheimen van connector en data plane) en schrijf hem naar stdout
bl key data
bl key hash
Schrijf de pre-rotatiehash van een Ed25519-sleutel naar stdout (voor BL_DID_NEXT_KEY_HASH)
bl key hash <file>
<file> |
bl key public
Schrijf het publieke deel van een JWK-bestand naar stdout
bl key public <file>
<file> |
bl login
Log in bij een connector: u keurt het goed in zijn UI, via uw eigen IdP
bl login <url> [opties]
<url> | Adres van de connector, zoals u de UI opent (bijvoorbeeld https://noord.example.nl) |
--profile <profile> | Naam van het profiel (standaard de host van de connector) |
--no-browser | Open geen browser; toon alleen de link (bijvoorbeeld via SSH) |
--file | Bewaar sleutel en tokens in een bestand, ook als er een keyring is |
bl logout
Log uit: beëindig de sessie bij de connector en wis de sleutels op deze machine
bl logout [opties]
--profile <profile> |
bl whoami
Bij welke connector en als wie u bent ingelogd
bl whoami [opties]
--profile <profile> |
bl logs
Logs uit S3-compatibele opslag
bl logs <commando>
bl logs requests
Het request-log van de data plane over een periode, op tijd gesorteerd
bl logs requests [opties]
--from <from> | Begin: 2026-10-01T08:00 of 08:00 (lokale tijd), 2026-10-01, RFC 3339, of terug vanaf nu (15m, 2h, 7d) |
--to <to> | Eind, in dezelfde vormen (standaard nu) |
--level <level> | Laagste niveau: error, warn of info. Er staat alleen in wat het niveau van de data plane op dat moment logde (Instellingen → Request-log) |
--participant <participant> | Alleen deze deelnemer, bijvoorbeeld sensortrust (met --direct of in de simulatie) |
--counterparty <counterparty> | Alleen requests van of naar deze tegenpartij (DID of een deel ervan) |
--process <process> | Alleen requests van dit proces (process_id of een deel ervan) |
--json | Eén JSON-object per regel, zoals het in de opslag staat |
--profile <profile> | Profiel van `bl login` (standaard het laatst ingelogde) |
--direct | Noodroute: rechtstreeks uit de logopslag, buiten de connector om, met een leessleutel uit AWS_ACCESS_KEY_ID en AWS_SECRET_ACCESS_KEY |
--endpoint <endpoint> | S3-endpoint (met --direct), bijvoorbeeld https://fsn1.your-objectstorage.com |
--bucket <bucket> | |
--prefix <prefix> | Map in de bucket waaronder de verzamelaar het request-log schrijft |
--region <region> | |
--virtual-hosted | Bucketnaam in de hostnaam (bucket.endpoint) in plaats van in het pad |
bl logs runtime
De logs van de diensten zelf (connector, data plane, …), rechtstreeks uit de logopslag: de noodroute als de connector niet draait
bl logs runtime [opties]
--from <from> | Begin, in dezelfde vormen als bij `bl logs requests` (standaard een uur terug) |
--to <to> | Eind (standaard nu) |
--level <level> | Laagste niveau: error, warn of info. Regels zonder niveau tellen als info |
--participant <participant> | Alleen deze deelnemer, bijvoorbeeld noord (of een dienst als authority) |
--component <component> | Alleen dit onderdeel: connector, dataplane of backend |
--contains <contains> | Alleen regels die deze tekst bevatten |
--json | Eén JSON-object per regel, zoals het in de opslag staat |
--direct | Rechtstreeks uit de logopslag, met een leessleutel uit AWS_ACCESS_KEY_ID en AWS_SECRET_ACCESS_KEY. Verplicht: dit is de noodroute |
--endpoint <endpoint> | S3-endpoint, bijvoorbeeld https://fsn1.your-objectstorage.com |
--bucket <bucket> | |
--prefix <prefix> | Map in de bucket met de logs van de diensten |
--region <region> | |
--virtual-hosted |
Omgevingsvariabelen van bl
Section titled “Omgevingsvariabelen van bl”Opdrachtregel bl
BL_CONFIG_DIROpdrachtregel blMap met de profielen van bl login.
- Standaard
- $XDG_CONFIG_HOME/bl, anders ~/.config/bl
- Vorm
- pad
BL_LOGS_BUCKETOpdrachtregel blBucket van de logopslag voor bl logs --direct (--bucket).
- Standaard
logs- Vorm
- tekst
BL_LOGS_PREFIXOpdrachtregel blMap in de bucket met het request-log, voor bl logs requests --direct (--prefix).
- Standaard
requests- Vorm
- tekst
BL_SIM_PROJECTOpdrachtregel blNaam van het compose-project van bl sim (--project). Meerdere simulaties naast elkaar hebben elk een eigen naam.
- Standaard
bl-sim- Vorm
- tekst