openwallet-foundation / acapy

ACA-Py is a foundation for building decentralized identity applications and services running in non-mobile environments.
https://aca-py.org
Apache License 2.0
412 stars 512 forks source link

Statically loading core JSON-LD Contexts #2581

Closed dbluhm closed 11 months ago

dbluhm commented 11 months ago

Not long ago (a week or two from the time this issue was opened), the web server hosting core JSON-LD Contexts experienced downtime. This resulted in failing integration tests on PRs in this repo and, more critically, in users' ACA-Py deployments being unable to issue or verify JSON-LD credentials. This represented a major disturbance in usual operations.

We've already made it so our unit tests work without needing to download contexts and, as long as you can reach the hosted location at least once, the document contents will be cached. However, we've not implemented a complete solution in ACA-Py proper to address this. While it is technically possible to implement and plug in a new instance of DocumentLoader that statically loads these core contexts, doing so requires a fair bit of internal knowledge of ACA-Py. In other words, this is not a viable solution for most users.

We need to get an implementation of DocumentLoader that can load contexts statically (from the filesystem or otherwise) to prevent this category of downtime. Once this is in place, future work could also add startup configuration that adds additional contexts to the core contexts so users don't have to rely on uptime of remote servers for any contexts they depend on.

cc @swcurran

swcurran commented 11 months ago

Resolved by #2587.