Controller of aries-cloudagent-python (Go version)
The controller implementation is in directory alice & faber .
Repository structure details:
/
├── alice/ # Alice (Holder) controller implementation
├── faber/ # Faber (Issuer&Verifier) controller implementation
├── util/ # Common utility functions
└── docker/ # docker-compose.yml to run ACA-Py agent
Go version 1.18 or higher for source compilation
Docker & docker-compose for running ACA-Py
Run cloud agency with multitenancy support
$ cd docker
$ docker-compose up --build
$ cd faber
$ go build
$ ./faber
Alice controller polls the Alice agent periodically instead of receiving webhooks
When alice controller starts, it gets invitation from faber controller and proceeds connection, credential and proof(presentation) sequentially.
Detailed configuration is in alice-config.yml
$ cd alice
$ go build
$ ./alice
Provision (Issuer/Verifier or Holder)
Public API
Issuer API
Steward API
POST /multitenancy/wallet
POST /wallet/did/create
POST /ledger/register-nym
POST /wallet/did/public
Holder only needs POST /multitenancy/wallet.
Credential Preparation (Issuer)
Issuer API
Issuer webhook (topic, state)
POST /schemas
POST /credential-definitions
revocation_registry, init generated posted active
Issuer API
Holder API
Issuer webhook (topic, state)
Holder webhook (topic, state)
POST /connections/create-invitation
POST /connections/receive-invitation
connections, invitation
auto POST /connections/{conn_id}/accept-invitation
connections, request
connections, request
auto POST /connections/{conn_id}/accept-request
connections, response
connections, response
auto POST /connections/{conn_id}/send-ping
connections, active
connections, active
Issuer API
Holder API
Issuer webhook (topic, state)
Holder webhook (topic, state)
POST /issue-credential/send-proposal
issue_credential, proposal_received
issue_credential, proposal_sent
POST /issue-credential/records/{credExId}/send-offer
issue_credential, offer_sent
issue_credential, offer_received
POST /issue-credential/records/{credExId}/send-request
issue_credential, request_received
issue_credential, request_sent
auto POST /issue-credential/records/{credExId}/issue
issue_credential, credential_issued
issue_credential, credential_received
issuer_cred_rev, issued
auto POST /issue-credential/records/{credExId}/store
issue_credential, credential_acked
issue_credential, credential_acked
Verifier API
Holder API
Verifier webhook (topic, state)
Holder webhook (topic, state)
POST /present-proof/send-proposal
present_proof, proposal_received
present_proof, proposal_sent
POST /present-proof/send-request
present_proof, request_sent
present_proof, request_received
GET /present-proof/records/{presExId}/credentials
POST /present-proof/records/{presExId}/send-presentation
present_proof, presentation_received
present_proof, presentation_sent
auto POST /present-proof/records/{presExId}/verify-presentation
present_proof, verified
present_proof, presentation_acked