diff --git a/DevReadMe.md b/DevReadMe.md index e16484ce92..db1262054a 100644 --- a/DevReadMe.md +++ b/DevReadMe.md @@ -29,7 +29,11 @@ See the [README](README.md) for details about this repository and information ab Aries Cloud Agent Python (ACA-Py) is a configurable, extensible, non-mobile Aries agent that implements an easy way for developers to build decentralized identity services that use verifiable credentials. -The information on this page assumes you are developer with a background in decentralized identity, Indy, Aries and verifiable credentials. If you aren't familiar with those concepts and projects, please use our [Getting Started Guide](/docs/GettingStartedAriesDev/README.md) to learn more. +The information on this page assumes you are developer with a background in +decentralized identity, Aries, DID Methods, and verifiable credentials, +especially AnonCreds. If you aren't familiar with those concepts and projects, +please use our [Getting Started Guide](/docs/GettingStartedAriesDev/README.md) +to learn more. ## Developer Demos @@ -39,8 +43,12 @@ To put ACA-Py through its paces at the command line, checkout our [demos](/docs/ ### Configuring ACA-PY: Command Line Parameters -ACA-Py agent instances are configured through the use of command line parameters. Use the `--help` option -to discover the available command line parameters. +ACA-Py agent instances are configured through the use of command line +parameters, environment variables and/or YAML files. All of the configurations +settings can be managed using any combination of the three methods (command line +parameters override environment variables override YAML). Use the `--help` +option to discover the available command line parameters. There are a lot of +them--for good and bad. ### Docker @@ -98,19 +106,21 @@ aca-py start --inbound-transport http 0.0.0.0 8000 \ ACA-Py ships with both inbound and outbound transport drivers for `http` and `ws` (websockets). Additional transport drivers can be added as pluggable implementations. See the existing implementations in the [transports module](aries_cloudagent/transport) for getting starting on adding a new transport. -Most configuration parameters are provided to the the agent at startup. Refer to the `Running` sections above for details on listing the available command line parameters. +Most configuration parameters are provided to the agent at startup. Refer to the `Running` sections above for details on listing the available command line parameters. -### Provisioning a Wallet +### Provisioning Secure Storage -It is possible to provision an Indy wallet before running an agent to avoid passing in the wallet seed on every invocation of an agent (e.g. on every `aca-py start ...`). +It is possible to provision a secure storage (sometimes called a wallet--but not +the same as a mobile wallet app) before running an agent to avoid passing in the +secure storage seed on every invocation of an agent (e.g. on every `aca-py start ...`). ```bash -aca-py provision --wallet-type indy --seed $SEED +aca-py provision --wallet-type askar --seed $SEED ``` For additional `provision` options, execute `aca-py provision --help`. -Additional information about wallet storages can be found [here](Databases.md). +Additional information about secure storage options and configuration settings can be found [here](Databases.md). ### Mediation @@ -152,7 +162,7 @@ Any ports you will be using from the docker container should be published using PORTS="5000:5000 8000:8000 10000:10000" ./scripts/run_docker start --inbound-transport http 0.0.0.0 10000 --outbound-transport http --debug --log-level DEBUG ``` -Refer to [the previous section](#Running) for instructions on how to run the software. +Refer to [the previous section](#Running) for instructions on how to run ACA-Py. ### Logging @@ -193,8 +203,8 @@ Check out and run AATH tests as follows (this tests the aca-py `main` branch): ```bash git clone https://github.com/hyperledger/aries-agent-test-harness.git cd aries-agent-test-harness -./manage build -a acapy-master -./manage run -d acapy-master -t @AcceptanceTest -t ~@wip +./manage build -a acapy-main +./manage run -d acapy-main -t @AcceptanceTest -t ~@wip ``` The `manage` script is described in detail [here](https://github.com/hyperledger/aries-agent-test-harness#the-manage-bash-script), including how to modify the AATH code to run the tests against your aca-py repo/branch. diff --git a/README.md b/README.md index 81b2ab6360..636ab692aa 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,14 @@ > An easy to use Aries agent for building SSI services using any language that supports sending/receiving HTTP requests. +Full access to an organized set of all of the ACA-Py documents is available at [https://aca-py.org](https://aca-py.org). +Check it out! It's much easier to navigate then finding all the documentation here. + ## Overview Hyperledger Aries Cloud Agent Python (ACA-Py) is a foundation for building Verifiable Credential (VC) ecosystems. It operates in the second and third layers of the [Trust Over IP framework (PDF)](https://trustoverip.org/wp-content/uploads/2020/05/toip_050520_primer.pdf) using [DIDComm messaging](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0005-didcomm) and [Hyperledger Aries](https://www.hyperledger.org/use/aries) protocols. The "cloud" in the name means that ACA-Py runs on servers (cloud, enterprise, IoT devices, and so forth), and is not designed to run on mobile devices. -ACA-Py is built on the Aries concepts and features that make up [Aries Interop Profile (AIP) 1.0](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#aries-interop-profile-version-10), and most of the features in [AIP 2.0](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#aries-interop-profile-version-20). [ACA-Py’s supported Aries protocols](https://github.com/hyperledger/aries-cloudagent-python/blob/main/SupportedRFCs.md) include, most importantly, protocols for issuing, verifying, and holding verifiable credentials using both [Hyperledger Indy AnonCreds](https://hyperledger-indy.readthedocs.io/projects/sdk/en/latest/docs/design/002-anoncreds/README.html) verifiable credential format, and the [W3C Standard Verifiable Credential](https://www.w3.org/TR/vc-data-model/) format using JSON-LD with LD-Signatures and BBS+ Signatures. +ACA-Py is built on the Aries concepts and features that make up [Aries Interop Profile (AIP) 1.0](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#aries-interop-profile-version-10), and most of the features in [AIP 2.0](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#aries-interop-profile-version-20). [ACA-Py’s supported Aries protocols](https://github.com/hyperledger/aries-cloudagent-python/blob/main/SupportedRFCs.md) include, most importantly, protocols for issuing, verifying, and holding verifiable credentials using both [Hyperledger AnonCreds](https://www.hyperledger.org/use/anoncreds) verifiable credential format, and the [W3C Standard Verifiable Credential](https://www.w3.org/TR/vc-data-model/) format using JSON-LD with LD-Signatures and BBS+ Signatures. To use ACA-Py you create a business logic controller that "talks to" ACA-Py (sending HTTP requests and receiving webhook notifications), and ACA-Py handles the Aries and DIDComm functionality. That controller can be built in any language that supports making and receiving HTTP requests; knowledge of Python is not needed. Together, this means you can focus on building VC solutions using familiar web development technologies, instead of having to learn the nuts and bolts of low-level cryptography and Trust over IP-type Aries protocols. @@ -24,9 +27,7 @@ ACA-Py supports "multi-tenant" scenarios. In these scenarios, one (scalable) ins ### Mediator Service -Startup options allow the use of an ACA-Py as an Aries [mediator](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0046-mediators-and-relays#summary) using core Aries protocols to coordinate its mediation role. Such an ACA-Py instance receives, stores and forwards messages to Aries agents that (for example) lack an addressable endpoint on the Internet such as a mobile wallet. A live instance of a public mediator based on ACA-Py is available [here](https://indicio-tech.github.io/mediator/) from Indicio Technologies. Learn more about deploying a mediator [here](./Mediation.md). -Coming soon is a Hyperledger Aries Mediator repository that includes a fully configured mediator ready for production deployment using -ACA-Py as a dependency. +Startup options allow the use of an ACA-Py as an Aries [mediator](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0046-mediators-and-relays#summary) using core Aries protocols to coordinate its mediation role. Such an ACA-Py instance receives, stores and forwards messages to Aries agents that (for example) lack an addressable endpoint on the Internet such as a mobile wallet. A live instance of a public mediator based on ACA-Py is available [here](https://indicio-tech.github.io/mediator/) from Indicio Technologies. Learn more about deploying a mediator [here](./Mediation.md). See the [Aries Mediator Service](https://github.com/hyperledger/aries-mediator-service) for a "best practices" configuration of an Aries mediator. ### Indy Transaction Endorsing @@ -94,7 +95,14 @@ here](https://discord.gg/hyperledger)). ## Credit -The initial implementation of ACA-Py was developed by the Government of British Columbia’s Digital Trust Team in Canada. To learn more about what’s happening with decentralized identity and digital trust in British Columbia, a new website will be launching and the link will be made available here. +The initial implementation of ACA-Py was developed by the Government of British Columbia’s Digital Trust Team in Canada. To learn more about what’s happening with decentralized identity and digital trust in British Columbia, checkout the [BC Digital Trust] website. + +[BC Digital Trust]: https://digital.gov.bc.ca/digital-trust/ + +See the [MAINTAINERS.md](/Maintainers.md) file for a list of the current ACA-Py +maintainers, and the guidelines for becoming a Maintainer. We'd love to have you +join the team if you are willing and able to carry out the [duties of a +Maintainer](/MAINTAINERS.md#the-duties-of-a-maintainer). ## Contributing