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-cloudcontrollerEasily 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_menuanoncreds_credential_definitionsanoncreds_revocationanoncreds_schemasanoncreds_wallet_upgradebasicmessageconnectioncredential_definitioncredentialsdefaultdid_exchangedid_rotatediscover_featuresdiscover_features_v2_0endorse_transactionintroductionissue_credential_v1_0issue_credential_v2_0jsonldledgermediationmultitenancyout_of_bandpresent_proof_v1_0present_proof_v2_0resolverrevocationschemaserversettingstrustpingvcwallet
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).
