Releases: mojoatomic/rdcp
RDCP Conformance CLI v0.1.0
Initial release of @rdcp.dev/conformance:\n- rdcp-conformance (discovery + gating)\n- rdcp-conformance-junit (JUnit)\n- rdcp-conformance-badges (badges)\n\nDocs: https://github.com/mojoatomic/rdcp/wiki/Conformance-CLI
v2.2.1 – Apache 2.0 license
Highlights
- Convert project license to Apache 2.0 (#101)
- Update per-package LICENSE files and wiki pointer (#102)
- Publish patch versions to reflect license change (#103)
Published packages
- @rdcp.dev/server 2.2.1
- @rdcp.dev/core 1.0.1
- @rdcp.dev/client 1.0.1
- @rdcp.dev/otel-plugin 1.0.1
Notes
- No functional or API changes; license and metadata only.
v2.2.0
What's Changed
- docs: add context7.json and CONTRIBUTING.md by @mojoatomic in #29
- docs: remove repo-local wiki, scope Context7 to docs, add Maintainers note by @mojoatomic in #30
- docs(context7): exclude WARP.md and warp-generic.md by @mojoatomic in #31
- feat(jwks): inflight dedupe, persisted cache, background refresh by @mojoatomic in #32
- docs(jwks): cache store patterns and quickstart by @mojoatomic in #33
- style(jwks): normalize formatting for Prettier/ESLint by @mojoatomic in #34
- core: extract protocol types to @rdcp.dev/core (PR1) by @mojoatomic in #37
- docs: JWKS client quickstart (repo) and README links by @mojoatomic in #38
- docs(core): document @rdcp.dev/core boundaries and usage by @mojoatomic in #39
- core(constants): export protocol constants from @rdcp.dev/core; refactor server to use them by @mojoatomic in #40
- core(errors): centralize RDCP error codes and type in @rdcp.dev/core; server re-exports by @mojoatomic in #41
- core(schemas): centralize RDCP protocol schemas in @rdcp.dev/core; server re-exports; fix 'status' action by @mojoatomic in #42
- core(fixtures): add protocol fixtures in @rdcp.dev/core; server re-exports; docs by @mojoatomic in #43
- docs(spec): sync protocol spec with core schemas; add generated error-codes doc by @mojoatomic in #44
- chore(core/exports): point @rdcp.dev/core exports to built dist (import/types) by @mojoatomic in #45
- fix(demo/control): emit spec-compliant control response via createControlResponse by @mojoatomic in #46
- feat(demo): implement toggle; align discovery/status/health responses to core schemas by @mojoatomic in #47
- qa: upgrade eslint to v9 and @typescript-eslint to v8; add flat config with projectService; keep CI green by @mojoatomic in #48
- ci: use local ESLint v9 and add error-codes drift check; upgrade otel-plugin dev ESLint to v9 by @mojoatomic in #49
- docs/pr12 readme core imports by @mojoatomic in #50
- style: refactor defaulting from || to ?? and re-enable prefer-nullish-coalescing by @mojoatomic in #51
- ci: add docs links checks (internal on PR, external weekly) by @mojoatomic in #52
- pkg/pr15 otel plugin tooling by @mojoatomic in #53
- release/v2.0.1 by @mojoatomic in #54
- ci: add Node 18/20 matrix and run otel-plugin lint:ci + type-check by @mojoatomic in #60
- dev/pr18 precommit quality gate by @mojoatomic in #61
- style(otel-plugin): re-enable Prettier and format plugin sources by @mojoatomic in #62
- gov: add CODEOWNERS (advisory-only) and PR labeler by @mojoatomic in #63
- chore: add Dependabot config + build: suppress dts external warning for @rdcp.dev/core by @mojoatomic in #64
- chore(husky): remove deprecated shim; docs: add Build & Types to CONTRIBUTING by @mojoatomic in #65
- chore(core): publish readiness (files/types/sideEffects + LICENSE); no code changes by @mojoatomic in #66
- feat(client): scaffold @rdcp.dev/client (native fetch, typed endpoints, error mapping) by @mojoatomic in #67
- test(client): add minimal client tests; ci: build client package in matrix by @mojoatomic in #68
- feat(client): add getHealth() endpoint (full RDCP coverage) + test by @mojoatomic in #69
- release: [email protected], [email protected], [email protected] (publish prep) by @mojoatomic in #70
- chore(server): use @rdcp.dev/core ^1.0.0 (post-publish) by @mojoatomic in #71
- docs: post-publish updates (badges, install, status summary) by @mojoatomic in #72
- feat(demo): client-first demo scripts and npm commands (#75) by @mojoatomic in #81
- fix(server): align adapter responses with core schemas; pass client-first e2e by @mojoatomic in #82
- chore(submodules): add .gitmodules for wiki (.wiki-edit) by @mojoatomic in #83
- docs: client-first docs + wiki pages; demo benchmark script by @mojoatomic in #86
- feat(admin-ui): P0 scaffold (headless builder, demo app, discovery.ui RFC) by @mojoatomic in #87
- admin-ui P0: builder mapping tests + minimal /admin HTML by @mojoatomic in #88
- test(client-e2e): restore rate-limit and audit tests for client-first suite by @mojoatomic in #89
- feat(admin-app): add /admin/json raw discovery+status alongside React SPA/spec by @mojoatomic in #90
- feat(admin-ui-react): scaffold React renderer (components + AdminUIRenderer) by @mojoatomic in #91
- feat(admin-app): SSR /admin using AdminUIRenderer (React); links to JSON/spec by @mojoatomic in #92
- test: project-wide Jest/TS mapping + admin app RDCP headers by @mojoatomic in #93
- feat(admin-ui): actions + polling (WIP) by @mojoatomic in #94
- feat(admin-app): working admin UI with validation and documentation by @mojoatomic in #95
Full Changelog: v1.2.1...v2.2.0
@rdcp.dev/server v2.1.0
RDCP server updates to align with the complete RDCP ecosystem.
Highlights
- Aligns with @rdcp.dev/core ^1.0.0
- Express/Fastify/Koa adapters; protocol endpoints; auth; rate limiting; audit; JWKS
- Comprehensive tests and CI stability
Ecosystem
RDCP v1.0/v2.0 delivers a complete runtime control ecosystem: client SDK for control applications, server SDK for target applications, shared protocol definitions, and OpenTelemetry integration - enabling end-to-end operational infrastructure control.
Install
npm i @rdcp.dev/serverExpress example
import express from "express"
import { createRDCPMiddleware } from "@rdcp.dev/server"
const app = express()
app.use("/rdcp", createRDCPMiddleware({ /* authenticator + options */ }))
app.listen(3000)@rdcp.dev/core v1.0.0
RDCP core (protocol v1.0) is now stable and published.
Highlights
- Protocol constants, error codes, and Zod schemas for RDCP v1.0
- Side-effect free ESM/CJS dual builds with types
- Foundation for all RDCP tooling and adapters
Ecosystem
RDCP v1.0/v2.0 delivers a complete runtime control ecosystem: client SDK for control applications, server SDK for target applications, shared protocol definitions, and OpenTelemetry integration - enabling end-to-end operational infrastructure control.
Install
npm i @rdcp.dev/core
# or: pnpm add @rdcp.dev/core / yarn add @rdcp.dev/coreBasic usage
import { PROTOCOL_VERSION, RDCP_ERROR_CODES, schemas } from "@rdcp.dev/core"
console.log(PROTOCOL_VERSION)@rdcp.dev/client v1.0.0
RDCP client SDK is stable and implements all five RDCP endpoints.
Highlights
- Endpoints: discovery, control, status, health, and .well-known
- Native fetch (Node 18+), robust error mapping, schema-validated responses
- ESM/CJS dual builds with types
Ecosystem
RDCP v1.0/v2.0 delivers a complete runtime control ecosystem: client SDK for control applications, server SDK for target applications, shared protocol definitions, and OpenTelemetry integration - enabling end-to-end operational infrastructure control.
Install
npm i @rdcp.dev/clientQuick start
import { createRDCPClient } from "@rdcp.dev/client"
const rdcp = createRDCPClient({ baseUrl: "http://localhost:3000" })
const health = await rdcp.getHealth()
console.log(health.status) // "healthy"RDCP SDK v2.0.0
RDCP SDK v2.0.0
Highlights
- New OpenTelemetry integration plugin published: @rdcp.dev/otel-plugin v1.0.0
- Optional plugin for trace correlation via @opentelemetry/api (peer dependency)
- Works with @rdcp.dev/server ^2.0.0
- Docs: https://github.com/mojoatomic/rdcp/wiki/OpenTelemetry-Integration-Roadmap
- RDCP Server v2.0.0
- Engines: Node.js >= 18 (Node 16 support removed)
- CI matrix: Node 18, 20, 22
- Strong JWKS ETag + conditional GET support (If-None-Match -> 304) across adapters
- Consolidated validation, rate limiting headers, and audit behaviors from 1.x
Breaking changes
- Drop Node 16 support; engines now >= 18.
New
- @rdcp.dev/otel-plugin v1.0.0 for OpenTelemetry trace correlation.
Improvements
- Idempotent, version-aware publish steps in the Release workflow.
- Build/install flow ensures @rdcp.dev/server is available to the plugin build regardless of registry timing.
Packages
- @rdcp.dev/server: 2.0.0 — https://www.npmjs.com/package/@rdcp.dev/server
- @rdcp.dev/otel-plugin: 1.0.0 — https://www.npmjs.com/package/@rdcp.dev/otel-plugin
Documentation
- OpenTelemetry integration docs (roadmap and usage):
https://github.com/mojoatomic/rdcp/wiki/OpenTelemetry-Integration-Roadmap
Checks
- CI: Build, lint, type-check, and tests passing on Node 18/20/22.
v1.1.0 — TTL controls (demo), hybrid hardening, docs alignment
v1.1.0 — TTL controls (demo), hybrid hardening, docs alignment
Highlights
- Demo app: Temporary controls (TTL) for categories with automatic expiry
- Security: Hardened hybrid authentication (mTLS + JWT) with subject matching and intentional fallback to cert-only when JWT invalid; warnings opt-in via RDCP_WARN_ON_HYBRID_FALLBACK
- Headers: Strict RDCP header enforcement on /rdcp/v1/* (X-RDCP-Auth-Method, X-RDCP-Client-ID)
- Rate limiting & audit: Demo app rate-limit for control endpoint and structured RDCP_AUDIT logs
- Docs: Moved Error Responses, Testing Helpers, and Logging to the wiki; added Release & Tagging Policy; updated Protocol Compliance and report
Security
- Improved enterprise mTLS validation with environment-driven allowlist and fingerprint checks
- Hybrid mode rules clarified and tested; default fallback logs at debug level, warning is opt-in
Breaking changes
- None
Migration notes
- If you rely on hybrid fallback warnings in development, set RDCP_WARN_ON_HYBRID_FALLBACK='true'
- Demo TTL controls are available via POST /rdcp/v1/tenants/:tenantId/control with options.temporary and options.duration
Docs
- wiki/Error-Responses.md — standardized error schema and codes
- wiki/Testing-Helpers.md — JWT scopes, tenant routes, mTLS simulation, hybrid patterns, TTL examples
- wiki/Logging.md — logging behavior for hybrid fallback
- wiki/Release-Policy.md — SemVer, tagging, release notes, retagging policy
- wiki/Home.md — updated Protocol Compliance, links
- wiki/Proof-of-Capabilities.md — proof-based test evidence with demo cURL commands
Testing
- 184 tests across 16 suites passing (adapters, authentication levels, integration, tenant e2e, TTL, rate limit + audit)