This application was deprecated on March 14th 2024, there will be no further dependency or security updates.
Proxy service for aca-py cloud wallets. aries-cloudagent-python (also known as aca-py) is a cloud based wallet service for SSI implementations. The architecture of aca-py does not however allow a frontend to connect directly to it safely as this would expose all necessary API authentication details (see this issue for details). This service acts an authenticated shim for aca-py such that it can be used safely as a multi-tenant cloud wallet.
The veritable-acapy-proxy
is a gateway service for aca-py
designed to enable safe exposure of a multi-tenant aca-py
instance to an end user web-frontend. It uses a configured JWT authentication provider (such as Auth0
) to authenticate a user and then allows that user to create a single wallet for themselves and to then instruct that wallet to perform SSI actions. The basic workflow is as follows:
veritable-acapy-proxy
is configured primarily using environment variables as follows:
variable | required | default | description |
---|---|---|---|
SERVICE_TYPE | N | VERITABLE_ACAPY_PROXY |
Name of this service |
PORT | N | 3000 |
The port for the API to listen on |
LOG_LEVEL | N | info |
Logging level. Valid values are [trace , debug , info , warn , error , fatal ] |
API_VERSION | N | Set by package.json |
API version |
API_MAJOR_VERSION | N | v1 |
API major version |
SERVICE_HOST | Y | Host on which this service is publicly served. Used for advertising the OpenAPI spec | |
SERVICE_PORT | N | 80 |
Port on which this service is publicly served. Used for advertising the OpenAPI spec |
ACAPY_API_KEY | Y | Admin apikey for the aca-py service |
|
ACAPY_ADMIN_SERVICE | Y | Origin for the aca-py service, for example http://localhost:8001 |
|
AUTH_AUDIENCE | Y | JWT audience to check claim for |
|
AUTH_ISSUER | Y | Issuer URL for the JWT . Note it is assumed that the jwks config will be found at ${AUTH_ISSUER}/.well-known/jwks.json |
Environment variables are additionally loaded from a .env
file in the root of this repository which is gitignored.
In order to develop veritable-acapy-proxy
and run the tests you'll need the following local tooling:
nodejs
version16
or laternpm
version8
or laterdocker
version20.10
or laterdocker-compose
version1.29
or later
With that done you can bring up an aca-py
instance for testing against using:
docker-compose up -d
Install dependencies with
npm install
And finally run the tests with
npm run test
A code coverage report can also be generated with
npm run coverage