aries_cloudagent.protocols.connections.v1_0 package

Subpackages

Submodules

aries_cloudagent.protocols.connections.v1_0.manager module

Classes to manage connections.

class aries_cloudagent.protocols.connections.v1_0.manager.ConnectionManager(profile: aries_cloudagent.core.profile.Profile)[source]

Bases: aries_cloudagent.connections.base_manager.BaseConnectionManager

Class for managing connections.

async accept_response(response: aries_cloudagent.protocols.connections.v1_0.messages.connection_response.ConnectionResponse, receipt: aries_cloudagent.transport.inbound.receipt.MessageReceipt) aries_cloudagent.connections.models.conn_record.ConnRecord[source]

Accept a connection response.

Process a ConnectionResponse message by looking up the connection request and setting up the pairwise connection.

Parameters
  • response – The ConnectionResponse to accept

  • receipt – The message receipt

Returns

The updated ConnRecord representing the connection

Raises
async create_invitation(my_label: Optional[str] = None, my_endpoint: Optional[str] = None, auto_accept: Optional[bool] = None, public: bool = False, multi_use: bool = False, alias: Optional[str] = None, routing_keys: Optional[Sequence[str]] = None, recipient_keys: Optional[Sequence[str]] = None, metadata: Optional[dict] = None, mediation_id: Optional[str] = None) Tuple[aries_cloudagent.connections.models.conn_record.ConnRecord, aries_cloudagent.protocols.connections.v1_0.messages.connection_invitation.ConnectionInvitation][source]

Generate new connection invitation.

This interaction represents an out-of-band communication channel. In the future and in practice, these sort of invitations will be received over any number of channels such as SMS, Email, QR Code, NFC, etc.

Structure of an invite message:

{
    "@type": "https://didcomm.org/connections/1.0/invitation",
    "label": "Alice",
    "did": "did:sov:QmWbsNYhMrjHiqZDTUTEJs"
}

Or, in the case of a peer DID:

{
    "@type": "https://didcomm.org/connections/1.0/invitation",
    "label": "Alice",
    "did": "did:peer:oiSqsNYhMrjHiqZDTUthsw",
    "recipient_keys": ["8HH5gYEeNc3z7PYXmd54d4x6qAfCNrqQqEB3nS7Zfu7K"],
    "service_endpoint": "https://example.com/endpoint"
    "routing_keys": ["9EH5gYEeNc3z7PYXmd53d5x6qAfCNrqQqEB4nS7Zfu6K"],
}
Parameters
  • my_label – label for this connection

  • my_endpoint – endpoint where other party can reach me

  • auto_accept – auto-accept a corresponding connection request (None to use config)

  • public – set to create an invitation from the public DID

  • multi_use – set to True to create an invitation for multiple use

  • alias – optional alias to apply to connection for later use

Returns

A tuple of the new ConnRecord and ConnectionInvitation instances

async create_request(connection: aries_cloudagent.connections.models.conn_record.ConnRecord, my_label: Optional[str] = None, my_endpoint: Optional[str] = None, mediation_id: Optional[str] = None) aries_cloudagent.protocols.connections.v1_0.messages.connection_request.ConnectionRequest[source]

Create a new connection request for a previously-received invitation.

Parameters
  • connection – The ConnRecord representing the invitation to accept

  • my_label – My label

  • my_endpoint – My endpoint

Returns

A new ConnectionRequest message to send to the other agent

async create_response(connection: aries_cloudagent.connections.models.conn_record.ConnRecord, my_endpoint: Optional[str] = None, mediation_id: Optional[str] = None) aries_cloudagent.protocols.connections.v1_0.messages.connection_response.ConnectionResponse[source]

Create a connection response for a received connection request.

Parameters
  • connection – The ConnRecord with a pending connection request

  • my_endpoint – The endpoint I can be reached at

  • mediation_id – The record id for mediation that contains routing_keys and

  • endpoint (service) –

Returns

A tuple of the updated ConnRecord new ConnectionResponse message

property profile: aries_cloudagent.core.profile.Profile

Accessor for the current profile.

Returns

The profile for this connection manager

async receive_invitation(invitation: aries_cloudagent.protocols.connections.v1_0.messages.connection_invitation.ConnectionInvitation, their_public_did: Optional[str] = None, auto_accept: Optional[bool] = None, alias: Optional[str] = None, mediation_id: Optional[str] = None) aries_cloudagent.connections.models.conn_record.ConnRecord[source]

Create a new connection record to track a received invitation.

Parameters
  • invitation – The ConnectionInvitation to store

  • auto_accept – set to auto-accept the invitation (None to use config)

  • alias – optional alias to set on the record

Returns

The new ConnRecord instance

async receive_request(request: aries_cloudagent.protocols.connections.v1_0.messages.connection_request.ConnectionRequest, receipt: aries_cloudagent.transport.inbound.receipt.MessageReceipt) aries_cloudagent.connections.models.conn_record.ConnRecord[source]

Receive and store a connection request.

Parameters
  • request – The ConnectionRequest to accept

  • receipt – The message receipt

Returns

The new or updated ConnRecord instance

exception aries_cloudagent.protocols.connections.v1_0.manager.ConnectionManagerError(*args, error_code: Optional[str] = None, **kwargs)[source]

Bases: aries_cloudagent.core.error.BaseError

Connection error.

aries_cloudagent.protocols.connections.v1_0.message_types module

Message type identifiers for Connections.

aries_cloudagent.protocols.connections.v1_0.routes module

Connection handling admin routes.

class aries_cloudagent.protocols.connections.v1_0.routes.AcceptInvitationQueryStringSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Parameters and validators for accept invitation request query string.

mediation_id
my_endpoint
my_label
class aries_cloudagent.protocols.connections.v1_0.routes.AcceptRequestQueryStringSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Parameters and validators for accept conn-request web-request query string.

my_endpoint
class aries_cloudagent.protocols.connections.v1_0.routes.ConnIdRefIdMatchInfoSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Path parameters and validators for request taking connection and ref ids.

conn_id
ref_id
class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionListSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Result schema for connection list.

results
class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionMetadataQuerySchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Query schema for metadata.

key
class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionMetadataSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Result schema for connection metadata.

results
class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionMetadataSetRequestSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Request Schema for set metadata.

metadata
class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionModuleResponseSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Response schema for connection module.

class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionStaticRequestSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Request schema for a new static connection.

alias
my_did
my_seed
their_did
their_endpoint
their_label
their_seed
their_verkey
class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionStaticResultSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Result schema for new static connection.

my_did
my_endpoint
my_verkey
record
their_did
their_verkey
class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionsConnIdMatchInfoSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Path parameters and validators for request taking connection id.

conn_id
class aries_cloudagent.protocols.connections.v1_0.routes.ConnectionsListQueryStringSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Parameters and validators for connections list request query string.

alias
connection_protocol
invitation_key
invitation_msg_id
my_did
state
their_did
their_public_did
their_role
class aries_cloudagent.protocols.connections.v1_0.routes.CreateInvitationQueryStringSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Parameters and validators for create invitation request query string.

alias
auto_accept
multi_use
public
class aries_cloudagent.protocols.connections.v1_0.routes.CreateInvitationRequestSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Request schema for invitation connection target.

mediation_id
metadata
my_label
recipient_keys
routing_keys
service_endpoint
class aries_cloudagent.protocols.connections.v1_0.routes.EndpointsResultSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Result schema for connection endpoints.

my_endpoint
their_endpoint
class aries_cloudagent.protocols.connections.v1_0.routes.InvitationResultSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Result schema for a new connection invitation.

connection_id
invitation
invitation_url
class aries_cloudagent.protocols.connections.v1_0.routes.ReceiveInvitationQueryStringSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Parameters and validators for receive invitation request query string.

alias
auto_accept
mediation_id
class aries_cloudagent.protocols.connections.v1_0.routes.ReceiveInvitationRequestSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Request schema for receive invitation request.

validate_fields(data, **kwargs)

Bypass middleware field validation: marshmallow has no data yet.

aries_cloudagent.protocols.connections.v1_0.routes.connection_sort_key(conn)[source]

Get the sorting key for a particular connection.

aries_cloudagent.protocols.connections.v1_0.routes.post_process_routes(app: aiohttp.web.Application)[source]

Amend swagger API.

async aries_cloudagent.protocols.connections.v1_0.routes.register(app: aiohttp.web.Application)[source]

Register routes.