Tailrace
Integrations

Encore

OpenAI-compatible Encore middleware for raw proxy endpoints - scan chat bodies and SSE, return 422 on policy block.

Enforce data policy on OpenAI-compatible proxy endpoints in Encore.ts. Target raw endpoints so bodies and SSE are available.

Quickstart

import { createTailrace } from "@tailrace/core";
import { tailraceEncore } from "@tailrace/encore";
import { Service } from "encore.dev/service";

export default new Service("api", {
  middlewares: [
    tailraceEncore(createTailrace(), {
      agent: "api",
      workflowId: "default",
    }),
  ],
});

Peer: encore.dev >=1.46. Only mode: "openai-compatible" in v0.1. Use api.raw for streaming proxies.

Boundaries covered

LocationTailrace boundaryDirection
Chat request messages{ kind: "model", provider } (model field as-is)Outbound to upstream
JSON chat completionsame model boundaryInbound
SSE text/event-streamsame; carry-buffer across chunksInbound

Block → 422 { error: { type: "policy_violation", entity, rule } }. SSE: cancel upstream, emit one error data: event, close (abort-only; no streamBlockBehavior in v0.1).

Guides

Reference

On this page