hyperledger-archives / aries-framework-go

Hyperledger Aries Framework Go provides packages for building Agent / DIDComm services.
https://wiki.hyperledger.org/display/ARIES/aries-framework-go
Apache License 2.0
240 stars 161 forks source link

Build Reference Agent #68

Closed alikic closed 5 years ago

alikic commented 5 years ago

New package: cmd/agent

llorllale commented 5 years ago

This seems like an epic

troyronda commented 5 years ago

The controller API is REST in this case. Also, due to this point, we may want a more specific name for the package.

troyronda commented 5 years ago

Also the reference agent is built (and dependent) upon #74.

llorllale commented 5 years ago

This is needed for milestone 0.1.0

llorllale commented 5 years ago

The controller API should follow the one implemented by hyplerledger/aries-cloudagent-python so that we can reuse their test cases.

sudeshrshetty commented 5 years ago

Controller API

For DEMO

sudeshrshetty commented 5 years ago

Endpoints for tests: server GET ​/modules Fetch the list of loaded modules GET ​/status Fetch the server status POST ​/status​/reset Reset statistics GET ​/protocols Query supported protocols

action-menu POST ​/action-menu​/{id}​/close Close the active menu associated with a connection POST ​/action-menu​/{id}​/fetch Fetch the active menu POST ​/action-menu​/{id}​/perform Perform an action associated with the active menu POST ​/action-menu​/{id}​/request Request the active menu POST ​/connections​/{id}​/send-menu Send an action menu to a connection

connection GET ​/connections Query agent-to-agent connections GET ​/connections​/{id} Fetch a single connection record POST ​/connections​/create-invitation Create a new connection invitation POST ​/connections​/receive-invitation Receive a new connection invitation POST ​/connections​/{id}​/accept-invitation Accept a stored connection invitation POST ​/connections​/{id}​/accept-request Accept a stored connection request POST ​/connections​/{id}​/establish-inbound​/{ref_id} Assign another connection as the inbound connection POST ​/connections​/{id}​/remove Remove an existing connection record

credentials GET ​/credential​/{id} Fetch a credential from wallet by id POST ​/credential​/{id}​/remove Remove a credential from the wallet by id GET ​/credentials Fetch credentials from wallet

credential_exchange GET ​/credential_exchange Fetch all credential exchange records GET ​/credential_exchange​/{id} Fetch a single credential exchange record POST ​/credential_exchange​/send Sends a credential and automates the entire flow POST ​/credential_exchange​/send-offer Sends a credential offer POST ​/credential_exchange​/{id}​/send-request Sends a credential request POST ​/credential_exchange​/{id}​/issue Sends a credential POST ​/credential_exchange​/{id}​/store Stores a received credential POST ​/credential_exchange​/{id}​/problem_report Send a problem report for credential exchange POST ​/credential_exchange​/{id}​/remove Remove an existing credential exchange record

introduction POST ​/connections​/{id}​/start-introduction Start an introduction between two connections

presentation_exchange GET ​/presentation_exchange Fetch all presentation exchange records GET ​/presentation_exchange​/{id} Fetch a single presentation exchange record GET ​/presentation_exchange​/{id}​/credentials Fetch credentials for a presentation request from wallet GET ​/presentation_exchange​/{id}​/credentials​/{referent} Fetch credentials for a presentation request from wallet POST ​/presentation_exchange​/create_request Creates a presentation request POST ​/presentation_exchange​/send_request Creates and sends a presentation request POST ​/presentation_exchange​/{id}​/send_presentation Sends a credential presentation POST ​/presentation_exchange​/{id}​/verify_presentation Verify a received credential presentation POST ​/presentation_exchange​/{id}​/remove Remove an existing presentation exchange record

schema POST ​/schemas Sends a schema to the ledger GET ​/schemas​/{id} Gets a schema from the ledger

credential-definition POST ​/credential-definitions Sends a credential definition to the ledger GET ​/credential-definitions​/{id} Gets a credential definition from the ledger

basicmessage POST ​/connections​/{id}​/send-message Send a basic message to a connection POST ​/connections​/{id}​/expire-message​/{activity_id} Expire a copyable basicmessage

trustping POST ​/connections​/{id}​/send-ping Send a trust ping to a connection

wallet GET ​/wallet​/did List wallet DIDs POST ​/wallet​/did​/create Create a local DID GET ​/wallet​/did​/public Fetch the current public DID POST ​/wallet​/did​/public Assign the current public DID

llorllale commented 5 years ago

@sudeshrshetty

Also note: the connections protocol is expected to be superseded by the did-exchange protocol