Palladium

Integration & Tools

Palladium is a white-label-capable, multi-tenant licensing engine. It assigns licences to software packages, scoped per client and per project, and brokers role-based access control (RBAC) entitlement decisions on behalf of each licensed package - so a consuming product never has to build its own licence-checking logic.

Consuming products never call Palladium's HTTP API by hand. They integrate through a frozen, generated OpenAPI 3.1 contract (docs/openapi/v1.json) and two small, dependency-light .NET assemblies - Palladium.Contracts for the request/response DTOs and Palladium.Sdk for a generic OAuth2 client-credentials transport with transparent token refresh - so there is no second, hand-maintained route table to drift from the published contract. CodeZero's Pyrometrix is the first real, live consumer.

Key Technologies

.NET 10 PostgreSQL Redis Docker Compose OpenAPI 3.1 Testcontainers

Key Features

  • Licence assignment to software packages, scoped per client and per project across multiple tenants
  • Centralised role-based access control decisions brokered on behalf of each licensed package
  • Tenant isolation enforced at the database layer, with an automated gate that requires a cross-tenant isolation test for every tenant-scoped route
  • A frozen OpenAPI 3.1 contract generated from the running service, guarded by a diff gate that fails any unintended change to the published surface
  • White-label ready by design: vendor naming is excluded from the public API surface and verified automatically, including against live responses

How it's proven

No CI platform - a git pre-commit hook is the entire build/test gate, run on every commit before it lands:

  • Migration syntax check, Docker Compose config validation, a full solution build, then the full xUnit suite - including real Testcontainers-backed PostgreSQL 17 and Redis integration tests, no mocked database or cache boundaries
  • A route-coverage gate that fails the build if any new tenant-scoped route lands without a matching cross-tenant isolation probe
  • A contract-freeze diff gate that regenerates the OpenAPI document fresh and fails on any difference from the committed copy, plus a static and live-HTTP scan for "palladium"/"uv"/"codezero" leaking into the public API surface

Real, measured end-to-end hook time on the dev machine (not estimated, 2026-08-09): roughly 17.6s warm-cache, up to 26s cold - migration check ~1.6s, compose config ~0.6s, build ~9.9s, full test+coverage ~13.9s.