aries_cloudagent.resolver package

Interfaces and base classes for DID Resolution.

async aries_cloudagent.resolver.setup(context: aries_cloudagent.config.injection_context.InjectionContext)[source]

Set up default resolvers.

Subpackages

Submodules

aries_cloudagent.resolver.base module

Base Class for DID Resolvers.

class aries_cloudagent.resolver.base.BaseDIDResolver(type_: Optional[aries_cloudagent.resolver.base.ResolverType] = None)[source]

Bases: abc.ABC

Base Class for DID Resolvers.

property native

Return if this resolver is native.

async resolve(profile: aries_cloudagent.core.profile.Profile, did: Union[str, pydid.DID], service_accept: Optional[Sequence[str]] = None) dict[source]

Resolve a DID using this resolver.

abstract async setup(context: aries_cloudagent.config.injection_context.InjectionContext)[source]

Do asynchronous resolver setup.

property supported_did_regex: Pattern

Supported DID regex for matching this resolver to DIDs it can resolve.

Override this property with a class var or similar to use regex matching on DIDs to determine if this resolver supports a given DID.

property supported_methods: Sequence[str]

Return supported methods.

DEPRECATED: Use supported_did_regex instead.

async supports(profile: aries_cloudagent.core.profile.Profile, did: str) bool[source]

Return if this resolver supports the given DID.

Override this method to determine if this resolver supports a DID based on information other than just a regular expression; i.e. check a value in storage, query a resolver connection record, etc.

exception aries_cloudagent.resolver.base.DIDMethodNotSupported(*args, error_code: Optional[str] = None, **kwargs)[source]

Bases: aries_cloudagent.resolver.base.ResolverError

Raised when no resolver is registered for a given did method.

exception aries_cloudagent.resolver.base.DIDNotFound(*args, error_code: Optional[str] = None, **kwargs)[source]

Bases: aries_cloudagent.resolver.base.ResolverError

Raised when DID is not found in verifiable data registry.

class aries_cloudagent.resolver.base.ResolutionMetadata(resolver_type: aries_cloudagent.resolver.base.ResolverType, resolver: str, retrieved_time: str, duration: int)[source]

Bases: tuple

Resolution Metadata.

property duration

Alias for field number 3

property resolver

Alias for field number 1

property resolver_type

Alias for field number 0

property retrieved_time

Alias for field number 2

serialize() dict[source]

Return serialized resolution metadata.

class aries_cloudagent.resolver.base.ResolutionResult(did_document: dict, metadata: aries_cloudagent.resolver.base.ResolutionMetadata)[source]

Bases: object

Resolution Class to pack the DID Doc and the resolution information.

serialize() dict[source]

Return serialized resolution result.

exception aries_cloudagent.resolver.base.ResolverError(*args, error_code: Optional[str] = None, **kwargs)[source]

Bases: aries_cloudagent.core.error.BaseError

Base class for resolver exceptions.

class aries_cloudagent.resolver.base.ResolverType(value)[source]

Bases: enum.Enum

Resolver Type declarations.

NATIVE = 'native'
NON_NATIVE = 'non-native'

aries_cloudagent.resolver.did_resolver module

the did resolver.

responsible for keeping track of all resolvers. more importantly retrieving did’s from different sources provided by the method type.

class aries_cloudagent.resolver.did_resolver.DIDResolver(resolvers: Optional[List[aries_cloudagent.resolver.base.BaseDIDResolver]] = None)[source]

Bases: object

did resolver singleton.

async dereference(profile: aries_cloudagent.core.profile.Profile, did_url: str, *, document: Optional[pydid.doc.doc.BaseDIDDocument] = None) pydid.Resource[source]

Dereference a DID URL to its corresponding DID Doc object.

register_resolver(resolver: aries_cloudagent.resolver.base.BaseDIDResolver)[source]

Register a new resolver.

async resolve(profile: aries_cloudagent.core.profile.Profile, did: Union[str, pydid.DID], service_accept: Optional[Sequence[str]] = None) dict[source]

Resolve a DID.

async resolve_with_metadata(profile: aries_cloudagent.core.profile.Profile, did: Union[str, pydid.DID]) aries_cloudagent.resolver.base.ResolutionResult[source]

Resolve a DID and return the ResolutionResult.

aries_cloudagent.resolver.routes module

Resolve did document admin routes.

“/resolver/resolve/{did}”: {
“get”: {
“responses”: {
“200”: {
“schema”: {

“$ref”: “#/definitions/DIDDoc”

}, “description”: null

}

}, “parameters”: [

{

“in”: “path”, “name”: “did”, “required”: true, “type”: “string”, “pattern”: “did:([a-z]+):((?:[a-zA-Z0-9._-]*:)*[a-zA-Z0-9._-]+)”, “description”: “decentralize identifier(DID)”, “example”: “did:ted:WgWxqztrNooG92RXvxSTWv”

}

],

“tags”: [ “resolver” ], “summary”: “Retrieve doc for requested did”, “produces”: [ “application/json” ]

}

}

class aries_cloudagent.resolver.routes.DIDMatchInfoSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Path parameters and validators for request taking DID.

did
class aries_cloudagent.resolver.routes.ResolutionResultSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Result schema for did document query.

did_document
metadata
class aries_cloudagent.resolver.routes.W3cDID(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.validate.

Validate value against w3c DID.

EXAMPLE = 'did:ted:WgWxqztrNooG92RXvxSTWv'
aries_cloudagent.resolver.routes.post_process_routes(app: aiohttp.web.Application)[source]

Amend swagger API.

async aries_cloudagent.resolver.routes.register(app: aiohttp.web.Application)[source]

Register routes.