Skip to main content

NthLayer override-event sidecar — HTTP → gen_ai.override OTel span bridge

Project description

nthlayer-override-adapter

Standalone HTTP sidecar that accepts human-override events and emits them as gen_ai.override OTel spans. Part of the NthLayer ecosystem; implements opensrm-jmy.7 — § 4 of NTHLAYER_MISSING_CAPABILITIES_SPEC.md.

Why

nthlayer-measure computes judgment SLOs from override metrics consumed via OTel. Operators reviewing AI decisions live in heterogeneous tools (Slack, Jira, internal review UIs, email). The override-adapter is the translation layer: HTTP in, canonical OTel gen_ai.override events out.

Endpoints

  • POST /api/v1/overrides — canonical OverrideEvent JSON in.
  • POST /api/v1/overrides/batch{overrides: [...]} with last-in-array-wins on duplicate decision_id.
  • POST /webhook/{source} — one route per configured adapter; runs a YAML-declared field mapping on the inbound webhook payload.
  • GET /healthz — liveness probe.
  • GET /metrics — Prometheus self-observability.

Run locally

uv sync --extra dev
uv run nthlayer-override-adapter serve --config override-adapter-config.yaml

See override-adapter-config.yaml.example for a Jira-shaped adapter declaration.

Tests

uv run pytest -q
uv run ruff check src/ tests/

Ecosystem testing conventions: ../nthlayer/docs/testing.md.

License

Apache 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nthlayer_override_adapter-0.2.0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nthlayer_override_adapter-0.2.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file nthlayer_override_adapter-0.2.0.tar.gz.

File metadata

File hashes

Hashes for nthlayer_override_adapter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d7a27d20317b4b47dd93b8cfd64000b7db54c395096c4e5d8c0a12ae709fa5ac
MD5 3d221933bf99055f245f22f571c4ed2a
BLAKE2b-256 c4d9291e388ee27c347151a123da4971b248017314e55cb0e9e063c4f3ccf44e

See more details on using hashes here.

Provenance

The following attestation bundles were made for nthlayer_override_adapter-0.2.0.tar.gz:

Publisher: release.yml on rsionnach/nthlayer-override-adapter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nthlayer_override_adapter-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nthlayer_override_adapter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f75ddcaedff803bf8e4601713ffdd7c12c6cfb0ed463a7cc3d35b09d4e112f0
MD5 329deec947e6e001757f4099be2c5f06
BLAKE2b-256 2054f9ed62e30fe713c12aa42b30c46837043ff942767abeb2b0953abd8d2957

See more details on using hashes here.

Provenance

The following attestation bundles were made for nthlayer_override_adapter-0.2.0-py3-none-any.whl:

Publisher: release.yml on rsionnach/nthlayer-override-adapter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page