Skip to main content

Server & Middleware

The TypeScript SDK provides a base SekuireServer class plus Express/Fastify adapters for trust endpoints.

Implementing SekuireServer

SekuireServer is abstract. Create a subclass for your app-specific webhook behavior.

import { SekuireServer, generateKeyPair } from '@sekuire/sdk';

class AppSekuireServer extends SekuireServer {
async handleWebhook(payload: unknown): Promise<unknown> {
// Add app-specific behavior here
return { received: true, payload };
}
}

const keyPair = generateKeyPair();
const server = new AppSekuireServer('agent_123', keyPair);

Base behavior includes:

  • handleHello() for POST /sekuire/hello
  • handleAuth() for POST /sekuire/auth
  • handleWebhook() for POST /sekuire/webhook

Express Integration

import express from 'express';
import {
SekuireServer,
createSekuireExpressMiddleware,
generateKeyPair,
} from '@sekuire/sdk';

class AppSekuireServer extends SekuireServer {}

const app = express();
const server = new AppSekuireServer('agent_123', generateKeyPair());

// Returns [bodyParser, middleware]
app.use(...createSekuireExpressMiddleware(server));

app.get('/health', (_req, res) => {
res.json({ ok: true, agentId: server.getAgentId() });
});

app.listen(8000);

Fastify Integration

import Fastify from 'fastify';
import {
SekuireServer,
createSekuireFastifyPlugin,
generateKeyPair,
} from '@sekuire/sdk';

class AppSekuireServer extends SekuireServer {}

const app = Fastify();
const server = new AppSekuireServer('agent_123', generateKeyPair());

await app.register(createSekuireFastifyPlugin(server));

app.get('/health', async () => ({ ok: true, agentId: server.getAgentId() }));

await app.listen({ port: 8000, host: '0.0.0.0' });

Endpoint Summary

These helpers wire the protocol endpoints below:

  • POST /sekuire/hello
  • POST /sekuire/auth
  • POST /sekuire/webhook

Next Steps