Skip to content

Releases: kabirnarang39/wardline

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 09 Aug 10:15

Changelog

v2.0.0

Choose a tag to compare

@kabirnarang39 kabirnarang39 released this 09 Aug 07:00

Wardline v2.0.0 — the v2.0 milestone (273+ commits since v1.0.4), closing out the roadmap's "v2.0 (shipped)" feature set plus a security + docs hardening pass.

Highlights since v1.0.0

  • Federation — cross-instance anomaly correlation over signed, pseudonymized peer summaries.
  • ML-based anomaly detection + auto-block — combined z-score ml_score heuristic and a real, time-bounded auto-block enforcement action.
  • SSO / SCIM + tenant isolation — OIDC and mTLS/SPIFFE credential bootstrap, SCIM-provisioned RBAC, tenant enforced end to end.
  • Three policy backends — YAML, OPA/Rego, and Cedar; policy enforcement widened to MCP resources/* and prompts/*.
  • Compliance evidence export hardening — RSA-PSS signing + verify-evidence, scheduled export, log retention, redacted identities, live aggregate API.
  • Policy-pack marketplace — YAML/OPA/Cedar pack variants, versioning, compose, and an operator -packs-dir.
  • HA — Postgres-backed budget counters, anomaly baselines, distributed auto-block, and signing-key rotation (JWKS kid).
  • gRPC transport — a second listener running the same identity → policy → budget → audit → auto-block pipeline.
  • Pixel-parity web dashboard with read-only Policy/Budget/RBAC/Anomalies/Blocked views and clickjacking protection.

This release's hardening pass

  • Security fix: SCIM PATCH deactivate no longer silently 204s a no-op — a missing Operations wrapper or unsupported op returns 400, so an offboarding can't report success without applying.
  • Refresh-token reuse detection + family revocation — replaying a consumed refresh token is treated as theft: the whole token family is revoked atomically (SELECT … FOR UPDATE across replicas), logged as a SECURITY event, and masked to a generic 401.
  • Anomaly baseline pruning — abandoned/renamed replicas' Postgres baseline rows are cleaned up automatically on the GC tick.
  • gRPC upstream TLSgrpc_upstream_tls dials the upstream over TLS instead of plaintext.
  • verify-evidence closed file-set — rejects a bundle carrying files outside its checksum manifest.
  • Helm chart now exposes the full config surface (rbac, anomaly, scim, federation, compliance, retention, credential OIDC/mTLS, gRPC).
  • Docs reconciled with shipped features; new gRPC transport + Federation pages; complete CLI/config reference; a live make demo.

Single static Go binary, Apache-2.0. No database, IdP, or sidecar required to start.

v1.0.4

Choose a tag to compare

@kabirnarang39 kabirnarang39 released this 29 Jul 10:16

Patch release: fixes code blocks being nearly invisible in light mode across many docs pages (Chroma's inline dark-tuned text color wasn't overridden the way the background was). Also fixes table field-name code chips wrapping mid-word.

No functional or behavioral changes to Wardline itself.

Docs: https://kabirnarang39.github.io/wardline/docs/
Site: https://kabirnarang39.github.io/wardline/

v1.0.3

Choose a tag to compare

@kabirnarang39 kabirnarang39 released this 29 Jul 07:22

Patch release: fixes the docs site sidebar forcing every page to be at least full-viewport-tall, which pushed the footer down below a large dead-space gap on short pages instead of directly after the content. Also tightens the "on this page" TOC rail's spacing where entries wrap to multiple lines.

No functional or behavioral changes to Wardline itself.

Docs: https://kabirnarang39.github.io/wardline/docs/
Site: https://kabirnarang39.github.io/wardline/

v1.0.2

Choose a tag to compare

@kabirnarang39 kabirnarang39 released this 29 Jul 07:14

Patch release: marketing site and docs site redesigned to match the dynobox.xyz visual design system — Familjen Grotesk + IBM Plex Mono typography, the same accent color, numbered index-label sections, dark/light alternating full-bleed layout, and the docs site's dark-first sidebar/topbar layout with a working light/dark toggle.

Also fixes several rendering bugs introduced in the initial redesign pass: a broken full-bleed dark section, a leaked screen-reader-only table caption, unstyled inline code in prose, and a placeholder install command in the footer.

No functional or behavioral changes to Wardline itself.

Docs: https://kabirnarang39.github.io/wardline/docs/
Site: https://kabirnarang39.github.io/wardline/

v1.0.1

Choose a tag to compare

@kabirnarang39 kabirnarang39 released this 09 Aug 09:34

Full Changelog: v1.0.0...v1.0.1

v1.0.0

Choose a tag to compare

@kabirnarang39 kabirnarang39 released this 09 Aug 09:34

Full Changelog: v0.5.0...v1.0.0

v0.5.0

Choose a tag to compare

@kabirnarang39 kabirnarang39 released this 27 Jul 16:32

Wardline v0.5.0 — first tagged release.

Wardline is a control-plane proxy that sits between AI agents and the MCP servers they call, enforcing identity, policy, budget, and audit.

Highlights

  • OPA policy backend — Rego-based policy evaluation as an alternative to the built-in YAML rules engine, selectable via policy_backend: opa.
  • Budget enforcement — per-identity request-rate throttling (budget.requests_per_window / window_seconds), composes correctly with either policy backend.
  • OpenTelemetry tracing — every proxied request emits a span with the routing decision, exportable via OTLP.
  • Web UI dashboard — a read-only ops SPA (features.web_ui) showing a live audit stream, policy state, and system status, served directly off the Wardline binary.
  • Framework integration docs — verified guides for MCP clients, LangChain, LlamaIndex, the OpenAI Agents SDK, and CrewAI, including real, tested denial/error-handling behavior for each.
  • Postgres-backed audit storage — durable audit persistence (features.postgres_storage) alongside the existing stdout/file writer.
  • Helm chart — a production-ready chart (charts/wardline) with a multi-stage Dockerfile, restricted-PodSecurity-Standards-compliant securityContext, config/policy checksum annotations forcing rollout on change, and TCP-socket health probes.
  • MCP protocol pass-through: the proxy now speaks the full JSON-RPC handshake (initialize, notifications/initialized), not just tools/call, unblocking real MCP client compatibility.

Verified end-to-end

All five optional features (OPA, budget, tracing, dashboard, Postgres storage) are proven to compose correctly in a single process via TestServeEndToEnd_AllFeaturesCombined — exercising allow, throttle, and deny paths together and confirming every sink (Postgres, the dashboard's live feed, the OTLP exporter) receives consistent events from the same request lifecycle.