1.0.0 - 2026-08-25
Fixed
-
Refresh the exported API baseline with the repository's Go 1.26 toolchain so
identical JSON types are compared by their current standard-library identity. -
Bind the reviewed zero-mutant
authhttpcompatibility facade to its exact
standalone source identity.
Changed
-
Exclude intentional nested modules from root local-proxy archives so local,
bootstrap, CI, and public module checksums describe the same source
boundary. -
Track the pinned documentation-tool lockfile so clean CI checkouts install
the exact validated cspell dependency. -
Reconcile standalone dependency checksums against deterministic current
module archives so CI, local verification, and release consumers resolve
identical content. -
Harden standalone documentation validation with deterministic spelling and
link checks, package-specific documentation gates, and repository-local
contributor guidance.
Documentation
- Correct stale package, standalone, and authoritative-source links in public
documentation.
Documentation
- Link the package README to the repository-wide Golib documentation portal.
Changed
-
Publish the module from its standalone
github.com/faustbrian/go-authorizationidentity while preserving its documented API and behavior. -
Replace obsolete owned-module pseudo-version pins with the monorepo's local
v0.0.0source-proxy coordinates; release tooling continues to emit exact
v1.0.0dependency versions. -
Delegate package mutation checks to the canonical exact-100 repository
runner instead of permissive package-local Gremlins configuration. -
Require owned sibling modules at local
v0.0.0; clean external consumers
pin each module to an exact main pseudo-version. -
Align the integration-contract module's indirect system dependency with its
resolved graph so clean consumers and CI obtain reproducible module metadata. -
Make synchronizer cancellation coverage deterministic across scheduler timing
differences on local and hosted runners. -
Execute API compatibility tooling against the isolated module graph so owned
dependency source changes cannot conflict with release checksums. -
Refresh owned-module checksums against the final consolidated archives.
-
Normalized standalone module metadata against the canonical owned dependency
graph, including complete checksums for clean consumer resolution. -
Use the repository-pinned current
apidiffrevision for the canonical API
compatibility gate.
Added
- Typed authorization requests, outcomes, reasons, explanations, and limits.
- Four explicit policy combining algorithms with exhaustive truth tables.
- Immutable revisioned snapshots and atomic optimistic engine replacement.
- Tenant-safe typed ACL evaluation, groups, batches, and resource-ID listing.
- Tenant-safe RBAC, bounded inheritance, effective permission inspection, and
revisioned in-memory assignment administration. - Closed typed ABAC conditions with versioned reusable conditions and bounded
cost, depth, match, batch, and collection cardinality. - Snapshot diff and decision dry-run support.
- Strict
authorization.policy/v1JSON envelope and storage-neutral repository
contract. - Bounded manifest compiler with a copied, explicit model decoder registry.
- Strict versioned ACL, RBAC, and ABAC documents and built-in compiler
decoders. - PostgreSQL manifest repository with atomic optimistic updates and a reusable
schema migration. - Monotonic Valkey invalidation with durable revision polling and pub/sub
wakeups. - Repository synchronizer with direct source-of-truth polling and verified
invalidation hints. - Configurable fail-closed repository freshness enforcement for synchronizer
authorization, including explicit stale-policy decisions. - Fail-closed
net/httpintegration with explicit request mapping and separate
denial and internal-error handlers. - Canonical
authhttppackage, dependency-neutral authenticated-principal
mapper, and native fail-closedjsonrpcmiddleware. - Failure-isolated decision instrumentation, bounded
logaudit events,
telemetry-compatible OpenTelemetry metrics and spans, and an explicit
advisorycachemanifest adapter. - Deterministic
authorizationtestrequest builders, evaluators, assertions,
canonical decision snapshots, and authorizer conformance suites. - Independently bounded matched-policy diagnostics with explicit truncation
propagated through engines, dry runs, snapshots, logs, and telemetry. - Fail-closed evaluator panic containment and hostile-input fuzz coverage for
every portable policy decoder. - Positive snapshot revisions and pre-parse model/manifest byte limits, plus
compiler policy-count and aggregate-document limits. - Iterative ABAC condition preflight that enforces configured depth before
descending into typed or portable condition trees. - Pinned whole-module mutation testing with measured efficacy and mutant
coverage gates. - Shared ACL, RBAC, and ABAC model conformance, rolling-revision differential
tests, and cold, warm, batch, inheritance, predicate, reload, compiler, and
policy-size benchmarks. - Complete API, model-selection, application-pattern, lifecycle, operations,
security, troubleshooting, compatibility, and governance guides; a compiled
multi-model example; and dedicated documentation and example automation. - Formal decision tables, tenant-isolation evidence, a maintained hardening
report, explicit stale-policy guidance, and versioned compatibility corpora. - Executable consumer contracts for published
authentication,log,
andtelemetrymodules, including authentication claim collections. - Environment-gated PostgreSQL and Valkey integration tests, manifest fuzzing,
a decision benchmark, exact-coverage enforcement, and CI quality gates. - API compatibility enforcement, reproducible release archives, release
automation, security guidance, and an explicit threat model.
Release integrity
- Source commit:
6c8a6a7160f8b741b859315ecd1dcd667dffd682 - Exact-head CI: https://github.com/faustbrian/go-authorization/actions/runs/32916459481
- Release dry-run: urn:sha256:c1c2471aa2553d8a2ff6bb5042fa40be0b0ceb1f0f63eb6ae046883968c982dc
- Assets include a CycloneDX SBOM, SLSA v1 in-toto provenance, and SSH-signed checksums.
Verify the checksum attestation with:
ssh-keygen -Y verify -f ALLOWED_SIGNERS -I brian@cline.sh -n golib-release -s SHA256SUMS.sig < SHA256SUMS