Skip to content

Commit

Permalink
Corrections from feedback, another pass over all docs to fix links
Browse files Browse the repository at this point in the history
Signed-off-by: Stephen Curran <[email protected]>
  • Loading branch information
swcurran committed Feb 8, 2024
1 parent 7ab90b7 commit c3dd3be
Show file tree
Hide file tree
Showing 29 changed files with 379 additions and 327 deletions.
18 changes: 10 additions & 8 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,16 +151,18 @@ and any kind of face-to-face meetings or discussions.
## Incident Procedure

To report incidents or to appeal reports of incidents, send email to Mike Dolan
([email protected]) or Angela Brown ([email protected]). Please include any
available relevant information, including links to any publicly accessible material relating to the
matter. Every effort will be taken to ensure a safe and collegial environment in which to
collaborate on matters relating to the Project. In order to protect the community, the Project
reserves the right to take appropriate action, potentially including the removal of an individual
from any and all participation in the project. The Project will work towards an equitable resolution
in the event of a misunderstanding.
([[email protected]](mailto:[email protected])) or Angela
Brown ([[email protected]](mailto:[email protected])). Please
include any available relevant information, including links to any publicly
accessible material relating to the matter. Every effort will be taken to ensure
a safe and collegial environment in which to collaborate on matters relating to
the Project. In order to protect the community, the Project reserves the right
to take appropriate action, potentially including the removal of an individual
from any and all participation in the project. The Project will work towards an
equitable resolution in the event of a misunderstanding.

## Credits

This code is based on the
[W3C’s Code of Ethics and Professional Conduct](https://www.w3.org/Consortium/cepc) with some
additions from the [Cloud Foundry](https://www.cloudfoundry.org/)‘s Code of Conduct.
additions from the [Cloud Foundry](https://www.cloudfoundry.org/)‘s Code of Conduct.
10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## How to contribute
# How to contribute

You are encouraged to contribute to the repository by **forking and submitting a pull request**.

Expand All @@ -21,12 +21,12 @@ A configuration for [pre-commit](https://pre-commit.com/) is included in this re

On each commit, pre-commit hooks will run that verify the committed code complies with ruff and is formatted with black. To install the ruff and black checks:

```
$ pre-commit install
```bash
pre-commit install
```

To install the commit message linter:

```
$ pre-commit install --hook-type commit-msg
```bash
pre-commit install --hook-type commit-msg
```
2 changes: 1 addition & 1 deletion PUBLISHING.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ Once you have the list of PRs:
"Packages").

Additional information about the container image publication process can be
found in the document [Container Images and Github Actions](../deploying/ContainerImagesAndGithubActions.md).
found in the document [Container Images and Github Actions](docs/deploying/ContainerImagesAndGithubActions.md).

[publish.yml]: https://github.com/hyperledger/aries-cloudagent-python/blob/main/.github/workflows/publish.yml
[publish-indy.yml]: https://github.com/hyperledger/aries-cloudagent-python/blob/main/.github/workflows/publish-indy.yml
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ ACA-Py supports deployments in scaled environments such as in Kubernetes environ

### VC-API Endpoints

A set of endpoints conforming to the vc-api specification are included to manage w3c credentials and presentations. They are documented [here](docs/features/JsonLdCredentials.md#vc-api) and a postman demo is available [here](docs/demos/AriesPostmanDemo.md#vc-api).
A set of endpoints conforming to the vc-api specification are included to manage w3c credentials and presentations. They are documented [here](docs/features/JsonLdCredentials.md#vc-api) and a postman demo is available [here](docs/features/JsonLdCredentials.md#vc-api).

## Example Uses

Expand Down Expand Up @@ -80,7 +80,7 @@ in the [Aries ACA-Py Plugins repository]. Check them out -- it might have the ve

### Installation and Usage

Use the ["install and go" page for developers](docs/features/DevReadMe.md) if you are comfortable with Trust over IP and Aries concepts. ACA-Py can be run with Docker without installation (highly recommended), or can be installed [from PyPi](https://pypi.org/project/aries-cloudagent/). In the [/demo directory](/demo) there is a full set of demos for developers to use in getting started, and the [demo read me](docs/demo/README.md) is a great starting point for developers to use an "in-browser" approach to run a zero-install example. The [Read the Docs](https://aries-cloud-agent-python.readthedocs.io/en/latest/) overview is also a way to understand the internal modules and APIs that make up an ACA-Py instance.
Use the ["install and go" page for developers](docs/features/DevReadMe.md) if you are comfortable with Trust over IP and Aries concepts. ACA-Py can be run with Docker without installation (highly recommended), or can be installed [from PyPi](https://pypi.org/project/aries-cloudagent/). In the [/demo directory](demo) there is a full set of demos for developers to use in getting started, and the [demo read me](docs/demo/README.md) is a great starting point for developers to use an "in-browser" approach to run a zero-install example. The [Read the Docs](https://aries-cloud-agent-python.readthedocs.io/en/latest/) overview is also a way to understand the internal modules and APIs that make up an ACA-Py instance.

If you would like to develop on ACA-Py locally note that we use Poetry for dependency management and packaging, if you are unfamiliar with poetry please see our [cheat sheet](docs/deploying/Poetry.md)

Expand Down Expand Up @@ -111,7 +111,7 @@ The initial implementation of ACA-Py was developed by the Government of British

[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
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).
Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ The other way is to file a confidential security bug in our

The process by which the Hyperledger Security Team handles security bugs is documented further in
our [Defect Response page](https://wiki.hyperledger.org/display/SEC/Defect+Response) on our
[wiki](https://wiki.hyperledger.org).
[wiki](https://wiki.hyperledger.org).
41 changes: 19 additions & 22 deletions docs/deploying/AnonCredsWalletType.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# AnonCreds-Rs Support
# AnonCreds-RS Support

A new wallet type has been added to Aca-Py to support the new anoncreds-rs library:

```
```bash
--wallet-type askar-anoncreds
```

Expand All @@ -16,23 +16,23 @@ Within the protocols, there are new `handler` libraries to support the new `anon

The existing `indy` code are in:

```
```bash
aries_cloudagent/protocols/issue_credential/v2_0/formats/indy/handler.py
aries_cloudagent/protocols/indy/anoncreds/pres_exch_handler.py
aries_cloudagent/protocols/present_proof/v2_0/formats/indy/handler.py
```

The new `anoncreds` code is in:

```
```bash
aries_cloudagent/protocols/issue_credential/v2_0/formats/anoncreds/handler.py
aries_cloudagent/protocols/present_proof/anoncreds/pres_exch_handler.py
aries_cloudagent/protocols/present_proof/v2_0/formats/anoncreds/handler.py
```

The Indy handler checks to see if the wallet type is `askar-anoncreds` and if so delegates the calls to the anoncreds handler, for example:

```
```python
# Temporary shim while the new anoncreds library integration is in progress
wallet_type = profile.settings.get_value("wallet.type")
if wallet_type == "askar-anoncreds":
Expand All @@ -41,28 +41,27 @@ The Indy handler checks to see if the wallet type is `askar-anoncreds` and if so

... and then:

```
```python
# Temporary shim while the new anoncreds library integration is in progress
if self.anoncreds_handler:
return self.anoncreds_handler.get_format_identifier(message_type)
```

To run the alice/faber demo using the new anoncreds library, start the demo with:

```
```bash
--wallet-type askar-anoncreds
```

There are no anoncreds-specific integration tests, for the new anoncreds functionality the agents within the integration tests are started with:

```
```bash
--wallet-type askar-anoncreds
```

Everything should just work!!!

Theoretically ATH should work with anoncreds as well, by setting the wallet type (see https://github.com/hyperledger/aries-agent-test-harness#extra-backchannel-specific-parameters).

Theoretically ATH should work with anoncreds as well, by setting the wallet type (see [https://github.com/hyperledger/aries-agent-test-harness#extra-backchannel-specific-parameters](https://github.com/hyperledger/aries-agent-test-harness#extra-backchannel-specific-parameters)).

## Revocation (new in anoncreds)

Expand All @@ -72,31 +71,29 @@ The changes are significant. Notably:
- In the new way, the AnonCreds library expects the identifier for the revregentry used (aka the timestamp), the accumulator, and the full state (0s and 1s) of the revocation status of all credentials in the registry.
- The conversion from delta to full state must be handled in the Indy resolver -- not in the "generic" ACA-Py code, since the other ledgers automagically provide the full state. In fact, we're likely to update Indy VDR to always provide the full state. The "common" (post resolver) code should get back from the resolver the full state.

The Tails file changes are minimal -- nothing about the file itself changed. What changed:

- the tails-file-server can be published to WITHOUT knowing the ID of the RevRegEntry, since that is not known when the tails file is generated/published. See: https://github.com/bcgov/indy-tails-server/pull/53 -- basically, by publishing based on the hash.
- The tails-file is not needed by the issuer after generation. It used to be needed for (I think) issuing and revoking credentials. Those are now done without the tails file. See: https://github.com/hyperledger/aries-cloudagent-python/pull/2302/files. That code is already in Main, so you should have it.
The Tails File changes are minimal -- nothing about the file itself changed. What changed:

- the tails-file-server can be published to WITHOUT knowing the ID of the RevRegEntry, since that is not known when the tails file is generated/published. See: [https://github.com/bcgov/indy-tails-server/pull/53](https://github.com/bcgov/indy-tails-server/pull/53) -- basically, by publishing based on the hash.
- The tails-file is not needed by the issuer after generation. It used to be needed for issuing and revoking credentials. Those are now done without the tails file. See: [https://github.com/hyperledger/aries-cloudagent-python/pull/2302/files](https://github.com/hyperledger/aries-cloudagent-python/pull/2302/files). That code is already in Main, so you should have it.

## Outstanding work

* revocation notifications (not sure if they're included in `anoncreds-rs` updates, haven't tested them ...)
* revocation support - complete the revocation implementation (support for unhappy path scenarios)
* testing - various scenarios like mediation, multitenancy etc.
- revocation notifications (not sure if they're included in `anoncreds-rs` updates, haven't tested them ...)
- revocation support - complete the revocation implementation (support for unhappy path scenarios)
- testing - various scenarios like mediation, multitenancy etc.

- unit tests (in the new anoncreds package) (see https://github.com/hyperledger/aries-cloudagent-python/pull/2596/commits/229ffbba209aff0ea7def5bad6556d93057f3c2a)
- unit tests (in the new anoncreds package) (see [https://github.com/hyperledger/aries-cloudagent-python/pull/2596/commits/229ffbba209aff0ea7def5bad6556d93057f3c2a](https://github.com/hyperledger/aries-cloudagent-python/pull/2596/commits/229ffbba209aff0ea7def5bad6556d93057f3c2a))
- unit tests (review and possibly update unit tests for the credential and presentation integration)
- endorsement (not implemented with new anoncreds code)
- wallet upgrade (askar to askar-anoncreds)
- update V1.0 versions of the Credential and Presentation endpoints to use anoncreds
- any other anoncreds issues - https://github.com/hyperledger/aries-cloudagent-python/issues?q=is%3Aopen+is%3Aissue+label%3AAnonCreds

- any other anoncreds issues - [https://github.com/hyperledger/aries-cloudagent-python/issues?q=is%3Aopen+is%3Aissue+label%3AAnonCreds](https://github.com/hyperledger/aries-cloudagent-python/issues?q=is%3Aopen+is%3Aissue+label%3AAnonCreds)

## Retiring old Indy and Askar (credx) Code

The main changes for the Credential and Presentation support are in the following two files:

```
```bash
aries_cloudagent/protocols/issue_credential/v2_0/messages/cred_format.py
aries_cloudagent/protocols/present_proof/v2_0/messages/pres_format.py
```
Expand All @@ -105,7 +102,7 @@ The `INDY` handler just need to be re-pointed to the new anoncreds handler, and

The new code is already in place (in comments). For example for the Credential handler:

```
```python
To make the switch from indy to anoncreds replace the above with the following
INDY = FormatSpec(
"hlindy/",
Expand Down
57 changes: 28 additions & 29 deletions docs/deploying/ContainerImagesAndGithubActions.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ are now built and published directly from the Aries Cloud Agent - Python project
repository and made available through the [Github Packages Container
Registry](https://ghcr.io).


## Image

This project builds and publishes the `ghcr.io/hyperledger/aries-cloudagent-python` image.
Expand All @@ -26,13 +25,13 @@ end, there are multiple variants of ACA-Py built to suit the needs of a variety
of environments and workflows. There are currently two main variants:

- "Standard" - The default configuration of ACA-Py, including:
- Aries Askar for secure storage
- Indy VDR for Indy ledger communication
- Indy Shared Libraries for AnonCreds
- Aries Askar for secure storage
- Indy VDR for Indy ledger communication
- Indy Shared Libraries for AnonCreds
- "Indy" - The legacy configuration of ACA-Py, including:
- Indy SDK Wallet for secure storage
- Indy SDK Ledger for Indy ledger communication
- Indy SDK for AnonCreds
- Indy SDK Wallet for secure storage
- Indy SDK Ledger for Indy ledger communication
- Indy SDK for AnonCreds

These two image variants are largely distinguished by providers for Indy Network
and AnonCreds support. The Standard variant is recommended for new projects.
Expand All @@ -58,30 +57,30 @@ There are several key differences that should be noted between the two image
variants and between the BC Gov ACA-Py images.

- Standard Image
- Based on slim variant of Debian
- Does **NOT** include `libindy`
- Default user is `aries`
- Uses container's system python environment rather than `pyenv`
- Askar and Indy Shared libraries are installed as dependencies of ACA-Py through pip from pre-compiled binaries included in the python wrappers
- Built from repo contents
- Based on slim variant of Debian
- Does **NOT** include `libindy`
- Default user is `aries`
- Uses container's system python environment rather than `pyenv`
- Askar and Indy Shared libraries are installed as dependencies of ACA-Py through pip from pre-compiled binaries included in the python wrappers
- Built from repo contents
- Indy Image
- Based on slim variant of Debian
- Built from multi-stage build step (`indy-base` in the Dockerfile) which includes Indy dependencies; this could be replaced with an explicit `indy-python` image from the Indy SDK repo
- Includes `libindy` but does **NOT** include the Indy CLI
- Default user is `indy`
- Uses container's system python environment rather than `pyenv`
- Askar and Indy Shared libraries are installed as dependencies of ACA-Py through pip from pre-compiled binaries included in the python wrappers
- Built from repo contents
- Includes Indy postgres storage plugin
- Based on slim variant of Debian
- Built from multi-stage build step (`indy-base` in the Dockerfile) which includes Indy dependencies; this could be replaced with an explicit `indy-python` image from the Indy SDK repo
- Includes `libindy` but does **NOT** include the Indy CLI
- Default user is `indy`
- Uses container's system python environment rather than `pyenv`
- Askar and Indy Shared libraries are installed as dependencies of ACA-Py through pip from pre-compiled binaries included in the python wrappers
- Built from repo contents
- Includes Indy postgres storage plugin
- `bcgovimages/aries-cloudagent`
- (Usually) based on Ubuntu
- Based on `von-image`
- Default user is `indy`
- Includes `libindy` and Indy CLI
- Uses `pyenv`
- Askar and Indy Shared libraries built from source
- Built from ACA-Py python package uploaded to PyPI
- Includes Indy postgres storage plugin
- (Usually) based on Ubuntu
- Based on `von-image`
- Default user is `indy`
- Includes `libindy` and Indy CLI
- Uses `pyenv`
- Askar and Indy Shared libraries built from source
- Built from ACA-Py python package uploaded to PyPI
- Includes Indy postgres storage plugin

## Github Actions

Expand Down
2 changes: 1 addition & 1 deletion docs/deploying/IndySDKtoAskarMigration.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,4 +159,4 @@ please use the Aries Cloud Agent Python channel on [Hyperledger Discord], or
submit a [GitHub issue to the ACA-Py repository].

[Hyperledger Discord]: https://discord.gg/hyperledger
[GitHub issue to the ACA-Py repository]: https://github.com/hyperledger/aries-cloudagent-python/issues
[GitHub issue to the ACA-Py repository]: https://github.com/hyperledger/aries-cloudagent-python/issues
11 changes: 8 additions & 3 deletions docs/deploying/Poetry.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,28 @@ poetry shell
```

Alternatively you can source the environment settings in the current shell
```

```bash
source $(poetry env info --path)/bin/activate
```

for powershell users this would be
```

```powershell
(& ((poetry env info --path) + "\Scripts\activate.ps1")
```

### Deactivating the Virtual Environment

When using `poetry shell`

```bash
exit
```

When using the `activate` script
```

```bash
deactivate
```

Expand Down Expand Up @@ -120,6 +124,7 @@ poetry install -E extras-name
```

for example

```bash
poetry install -E "askar bbs indy"
```
Expand Down
Loading

0 comments on commit c3dd3be

Please sign in to comment.