How to Add Audit Logs to Hono

TL;DR: Integrate Trailbase with Hono for edge-first audit logging. Works on Cloudflare Workers, Deno, Bun, and Node.js.

Step 1: Install the SDK

npm install @trailbase/sdk

Step 2: Initialize the Client

import { Hono } from 'hono';
import { TrailbaseClient } from '@trailbase/sdk';

const app = new Hono();

const trailbase = new TrailbaseClient({
  apiKey: process.env.TRAILBASE_API_KEY!,
  region: 'us-east-1',
});

Hono's middleware runs on edge runtimes like Cloudflare Workers. The Trailbase SDK uses standard fetch, so it works across all Hono deployment targets.

Step 3: Track Audit Events

// Middleware for automatic logging
app.use('*', async (c, next) => {
  await next();
  trailbase.track(`api.${c.req.method.toLowerCase()}`, {
    actor: c.get('userId'),
    metadata: { path: c.req.path, status: c.res.status },
  });
});

// Manual tracking in routes
app.post('/api/teams/:id/members', async (c) => {
  const { memberId } = await c.req.json();
  await trailbase.track('team.member.add', {
    actor: c.get('userId'),
    target: c.req.param('id'),
    metadata: { memberId },
  });
  return c.json({ success: true });
});

Step 4: Query Audit Logs

app.get('/api/audit', async (c) => {
  const events = await trailbase.search({
    actor: c.req.query('userId'),
  });
  return c.json(events);
});

Other Integrations

Next.jsTypeScriptExpress.jsJavaScript / TypeScriptFastifyTypeScript

Ready to Add Audit Logs to Hono?

Join the waitlist for early access. Five-minute setup, no infrastructure changes.

Get Early Access