bcgov / lcrb-dav

LCRB Digital Age Verification Service
Apache License 2.0
0 stars 6 forks source link
hyperledger hyperledger-indy lcrb trust-over-ip verifiable-credentials

Lifecycle:Retired License

LCRB Digital Age Verification Service (lcrb-dav)

A verifier application to enable the Digital Age Verification process involving the BC Person credential. This application is designed so that it can also be used for other use cases involving different presentation request template.

See here for more background and architectural info.

Running lcrb-dav will standup an aca-py service with it's associated storage, controller service with it's FastAPI backend, vanilla JavaScript frontend relying on Jinja2 template and polling GET endpoints, and Mongo database.

Retirement Notice

The Digital Age Verification service was built as a usable prototype to validate the age verification use-case and provide implementers with an example to be used as reference when implementing age verification. The project has been retired as it is not going to be actively maintained, but still serves its purpose of demonstrating the technical stack and potential integration patterns.

Pre-requisites

Configuring Ngrok

Each developer must apply for an Ngrok token here. Then place the token into the .env-dev file within the docker directory.

NGROK_AUTHTOKEN=<your token here>

Running lcrb-dav

If you want to run the project in production mode, follow the instructions here.

To run the project in local development mode, open a shell in the docker folder and run the following commands:

A list of all available commands is visible by executing ./manage -h.

The project is set-up to run without needing any external dependencies by default, using a standalone agent in read-only that will target the ledgers specified in ledgers.yaml.

Using lcrb-dav

Before starting up lcrv-dav, a couple of things need to be considered:

Environment Variables

Several functions in lcrb-dav can be tweaked by using the following environment variables.

Variable Type What it does NOTES
USE_OOB_PRESENT_PROOF bool if True, the present-proof request will be provided as a an out of band invitation with a present-proof request inside. If False, the present-proof request will be use the service-decorator TRUE: BC Wallet supports our OOB Message with a minor glitch, BiFold, Lissi, Trinsic, and Estatus all read the QR code as 'Invalid' FALSE: Works with
LOG_WITH_JSON bool If True, logging output should printed as JSON if False it will be pretty printed. Default behavior will print as JSON.
LOG_TIMESTAMP_FORMAT string determines the timestamp formatting used in logs Default is "iso"
LOG_LEVEL "DEBUG", "INFO", "WARNING", or "ERROR" sets the minimum log level that will be printed to standard out Defaults to DEBUG
DAV_PROOF_CONFIG_ID "age-verification-bc-person-credential" sets the proof template config to be used Defaults to "age-verification-bc-person-credential"