Ga naar inhoud

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>
  • sim De complete gesimuleerde dataspace op deze machine
  • evidence Bewijspakketten van een connector
  • key Private sleutels voor BL_KEY_SOURCE=file of env
  • login Log in bij een connector: u keurt het goed in zijn UI, via uw eigen IdP
  • logout Log uit: beëindig de sessie bij de connector en wis de sleutels op deze machine
  • whoami Bij welke connector en als wie u bent ingelogd
  • logs Logs uit S3-compatibele opslag

bl sim

De complete gesimuleerde dataspace op deze machine

bl sim <commando>
  • start Start de simulatie: bestanden schrijven, images ophalen, starten en seeden
  • status Toon welke onderdelen draaien, met de adressen en inloggegevens
  • stop Stop de simulatie. De data blijft bewaard, tenzij --purge
  • reset Begin opnieuw: deelnemersdata wissen en opnieuw seeden; logs blijven bewaard
  • logs Logs van de simulatie of van enkele services (bijvoorbeeld sensortrust-cp seed)
  • requests Het request-log van de data planes uit de logopslag, op tijd gesorteerd (bijvoorbeeld --from 08:00 --to 12:00 --level warn)
  • render Schrijf 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)
Waarden: true, false
--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)
Waarden: quiet, normal, busy
--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
Waarden: true, false
--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
--buildBouw 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]
--jsonUitvoer als JSON

bl sim stop

Stop de simulatie. De data blijft bewaard, tenzij --purge

bl sim stop [opties]
--purgeWis 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, --followBlijf nieuwe regels volgen
--tail <tail>Aantal regels per service
Standaard: 100

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)
Standaard: 1h
--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)
Waarden: error, warn, info
Standaard: info
--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)
--jsonEén JSON-object per regel, zoals het in de opslag staat
--directRechtstreeks 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)
Waarden: true, false
--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)
Waarden: quiet, normal, busy
--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
Waarden: true, false
--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>
  • verify Verifieer een bewijspakket offline

bl evidence verify

Verifieer een bewijspakket offline

bl evidence verify <bundle> [opties]
<bundle>
--onlineControleer 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-keysAccepteer 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>
  • generate Maak een nieuwe sleutel en schrijf hem als JWK naar stdout
  • session Maak een sleutel voor BL_SESSION_KEY (sessies van de beheer-UI) en schrijf hem naar stdout
  • data Maak een sleutel voor BL_DATA_KEY (opgeslagen geheimen van connector en data plane) en schrijf hem naar stdout
  • hash Schrijf de pre-rotatiehash van een Ed25519-sleutel naar stdout (voor BL_DID_NEXT_KEY_HASH)
  • public Schrijf 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]
--ed25519Ed25519 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-browserOpen geen browser; toon alleen de link (bijvoorbeeld via SSH)
--fileBewaar 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>
  • requests Het request-log van de data plane over een periode, op tijd gesorteerd
  • runtime De logs van de diensten zelf (connector, data plane, …), rechtstreeks uit de logopslag: de noodroute als de connector niet draait

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)
Standaard: 1h
--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)
Waarden: error, warn, info
Standaard: info
--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)
--jsonEén JSON-object per regel, zoals het in de opslag staat
--profile <profile>Profiel van `bl login` (standaard het laatst ingelogde)
--directNoodroute: 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
Ook via AWS_ENDPOINT_URL
--bucket <bucket>
Standaard: logs
Ook via BL_LOGS_BUCKET
--prefix <prefix>Map in de bucket waaronder de verzamelaar het request-log schrijft
Standaard: requests
Ook via BL_LOGS_PREFIX
--region <region>
Standaard: us-east-1
Ook via AWS_REGION
--virtual-hostedBucketnaam 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)
Standaard: 1h
--to <to>Eind (standaard nu)
--level <level>Laagste niveau: error, warn of info. Regels zonder niveau tellen als info
Waarden: error, warn, info
Standaard: 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
--jsonEén JSON-object per regel, zoals het in de opslag staat
--directRechtstreeks 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
Ook via AWS_ENDPOINT_URL
--bucket <bucket>
Standaard: logs
Ook via BL_LOGS_BUCKET
--prefix <prefix>Map in de bucket met de logs van de diensten
Standaard: runtime
--region <region>
Standaard: us-east-1
Ook via AWS_REGION
--virtual-hosted

Opdrachtregel bl

BL_CONFIG_DIROpdrachtregel bl

Map met de profielen van bl login.

Standaard
$XDG_CONFIG_HOME/bl, anders ~/.config/bl
Vorm
pad
BL_LOGS_BUCKETOpdrachtregel bl

Bucket van de logopslag voor bl logs --direct (--bucket).

Standaard
logs
Vorm
tekst
BL_LOGS_PREFIXOpdrachtregel bl

Map in de bucket met het request-log, voor bl logs requests --direct (--prefix).

Standaard
requests
Vorm
tekst
BL_SIM_PROJECTOpdrachtregel bl

Naam van het compose-project van bl sim (--project). Meerdere simulaties naast elkaar hebben elk een eigen naam.

Standaard
bl-sim
Vorm
tekst