Features | Usage | Available APIs | Contributing | License
The Aries CloudController is a Python-based client library for interacting with an instance of Aries Cloud Agent (ACA-Py). It leverages the OpenAPI definition from ACA-Py to provide a fully-typed, rich API experience for cloud agent interaction.
Versioning Update: As of version 0.8.0, the Aries CloudController has aligned its versioning with ACA-Py. This means that each new version of ACA-Py will correspond directly to the same version of the Aries CloudController. This change ensures a more straightforward and predictable upgrade path for users.
In other words, CloudController 0.8.0 is compatible with ACA-Py 0.8.0, CloudController 0.9.0 is compatible with ACA-Py 0.9.0, etc.
For legacy versions, please review our release history to found the version compatible with ACA-Py pre-0.8.0.
Aries CloudController Python provides a robust client for interacting with Aries Cloud Agents (ACA-Py).
- Fully Typed: Offers a strongly-typed wrapper around the Aries Cloud Agent Python, enhancing developer experience and reducing errors.
- Up-to-Date Support: Compatible with the latest ACA-Py version (1.1.0), ensuring access to the most recent features and improvements.
- Auto-Generated Client: Utilizes OpenAPI definitions for automatic generation, ensuring timely updates in line with new ACA-Py releases.
- Multi-Tenancy and Authentication Support: Facilitates working with multi-tenant APIs and integrates various authentication mechanisms.
- Asynchronous API: Supports asynchronous operations, enabling efficient handling of I/O-bound tasks.
Install Aries Cloud Controller Python via pip:
pip install aries-cloudcontroller
Easily initialize the AcaPyClient:
from aries_cloudcontroller import AcaPyClient
client = AcaPyClient(
base_url="http://localhost:8000",
api_key="myApiKey"
)
Admin Insecure Mode: If running ACA-Py with the --admin-insecure-mode
flag and without an API key:
client = AcaPyClient(
base_url="http://localhost:8000",
admin_insecure=True # No API key needed
)
Multitenancy: For specific tenant contexts:
client = AcaPyClient(
base_url="http://localhost:8000",
tenant_jwt="eyXXX"
)
The API, being fully typed, is best explored through the ACA-Py Swagger UI, which mirrors the available client properties.
Example: Creating and receiving an invitation:
invitation = await client.connection.create_invitation(
body=CreateInvitationRequest(my_label="Cloud Controller")
)
connection = await client.connection.receive_invitation(body=invitation.invitation)
The client encompasses various APIs, each corresponding to ACA-Py Swagger UI topics:
action_menu
anoncreds_credential_definitions
anoncreds_revocation
anoncreds_schemas
basicmessage
connection
credential_definition
credentials
default
did_exchange
did_rotate
discover_features
discover_features_v2_0
endorse_transaction
introduction
issue_credential_v1_0
issue_credential_v2_0
jsonld
ledger
mediation
multitenancy
out_of_band
present_proof_v1_0
present_proof_v2_0
resolver
revocation
schema
server
settings
trustping
vc
wallet
Contributions are welcome! Please see our CONTRIBUTING guidelines for more information on how to get involved.
This project is licensed under the Apache License Version 2.0 (Apache-2.0).