Skip to main content

remote-server package

Express router for exposing @veramo/remote-client OpenAPI schema

Example

import express from 'express'
import { agent } from './agent'
import { AgentRouter, ApiSchemaRouter, WebDidDocRouter } from '@veramo/remote-server'

const getAgentForRequest = async (req: express.Request) => agent
const exposedMethods = agent.availableMethods()
const basePath = '/agent'
const schemaPath = '/open-api.json'

const agentRouter = AgentRouter({
getAgentForRequest,
exposedMethods,
})

const schemaRouter = ApiSchemaRouter({
basePath,
getAgentForRequest,
exposedMethods,
})

const didDocRouter = WebDidDocRouter({
getAgentForRequest,
})

const app = express()
app.use(basePath, agentRouter)
app.use(schemaPath, schemaRouter)
app.use(didDocRouter)
app.listen(3002)

Functions

Function

Description

AgentRouter(options)

Creates a router that exposes Agent methods remotely.

This can be used by AgentRestClient to instantiate the methods of this agent on the client.

apiKeyAuth({ apiKey })

This provides a simple authorization mechanism based on a single pre-shared API key.

ApiSchemaRouter(options)

Creates a router that exposes Agent OpenAPI schema

createDefaultDid(options)

(BETA) This can be used to automatically create a did:web with signing and encryption keys and listing messaging and DIDComm service endpoints.

MessagingRouter(options)

Creates a router for handling incoming messages.

Messages posted to this router get sent to the handleMessage method of the associated agent where this is used.

RequestWithAgentRouter(options)

Creates an expressjs router that adds a Veramo agent to the request object.

This is needed by all other routers provided by this package to be able to perform their functions.

WebDidDocRouter(options)

Creates a router that serves did:web DID Documents

Interfaces

Interface

Description

AgentRouterOptions

ApiSchemaRouterOptions

Variables

Variable

Description

didDocEndpoint

The URL path to the DID document, used by did:web when the identifier is a hostname.