Ctrl K
ComunidadGuías…

CHANGELOG.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Changelog

All notable changes to the OpenLicensd server are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

Server releases use `vX.Y.Z` tags. The [Go SDK](https://github.com/alvarorg14/openlicensd/releases?q=sdk%2Fgo) is versioned independently (`sdk/go/vX.Y.Z`).

Release notes are drafted by [Release Drafter](https://github.com/release-drafter/release-drafter) on GitHub. Before publishing a server release, move the draft body from `Unreleased` into a dated version section below (see [CONTRIBUTING.md](CONTRIBUTING.md#server)).

## [Unreleased]

## [1.0.0] - 2026-09-14

### CI

- ci: gate Helm chart publish on successful image job; SDK drafts do not steal GitHub Latest (#128)

### Documentation

- docs: document Linux amd64/arm64 platform scope for published server artifacts (#127)
- docs: define support window, EOL schedule, and v1 LTS policy in SECURITY.md (#126)
- docs: add API stability and deprecation policy (COMPATIBILITY.md) (#125)

### Bug Fixes

- fix(helm): render integer ConfigMap env vars as decimal strings so large values (e.g. `requestBodyMaxBytes: 1048576`) are not quoted in scientific notation
- fix(helm): allow `global` in values schema so the chart works as a subchart in umbrella and Argo CD proxy charts
- fix(config): fail startup on invalid boolean and integer env values instead of silently using defaults (#290)
- fix(oidc): require verified email before SSO provisioning and account linking (#289)
- fix(store): make last-admin demote/disable/delete atomic (#287)

## [0.9.0] - 2026-09-14

### Breaking Changes

- feat(server): replace database URL with discrete connection variables (#280) — removes `OPENLICENSD_DATABASE_URL` and Helm `secret.data.databaseUrl`; originally filed under Enhancements

### New Features

- feat(api): add GET by id for products, policies, and users (#258)

### Enhancements
- enhancement(ui): add confirm dialogs for unrevoke and disable (#277)
- feat(ui): standardize API errors and add success toasts (#276)
- perf(server): trim /validate hot path database round-trips (#275)
- feat(store): add nullable licenses.metadata JSONB column (#274)
- feat(server): add CHECK constraints for policy and license numeric fields (#273)
- feat(server): add cleanup indexes for sessions and rate limit buckets (#272)
- feat(server): audit log DELETE protection and optional retention (#271)
- feat(server): make postgres rate limit fail-open configurable (#269)
- feat(server): add HTTP request body size limits (#268)
- enhancement(server): rename machine path param to machine_id (#257)
- enhancement(server): rate limit authenticated admin endpoints (#253)

### Bug Fixes

- fix: make BootstrapAdmin idempotent for multi-replica startup (#270)
- fix(api): revoke sessions on admin password reset (#267)
- fix(api): reject demote/disable/delete of the last admin (#266)
- fix(docs): align OpenAPI spec with server implementation (#259)
- fix(server): normalize API response timestamps to RFC3339 strings (#256)
- fix(server): support true partial PATCH updates for licenses, products, and policies (#255)
- fix(api): stabilize GET /auth/me with typed oneOf contract (#254)

### Updated Dependencies

- chore(deps): update dependency @iconify-json/lucide to v1.2.132 (#263)
- fix(deps): update module golang.org/x/crypto to v0.57.0 (#251)
- fix(deps): update module golang.org/x/time to v0.16.0 (#217)

### Documentation

- docs: defer UI typecheck in CI until vue-tsc supports TypeScript 7 (#284)
- docs: pin deployment examples to semver tags (#283)
- docs: fix stale SDK admin-auth documentation (#282)
- docs: add security hardening guide and production checklist (#281)
- docs: document live vs snapshotted policy fields (#262)
- docs: freeze and document validation error model (#261)
- docs: add v0.9.0 hardening phase to ROADMAP (#249)

### CI

- chore(deps): update dependency @redocly/cli to v2.53.0 (#265)
- chore(deps): update github/codeql-action digest to b96794f (#252)
- ci(ui): expand Playwright E2E beyond admin happy path (#278)
- ci(server): add OpenAPI contract test to CI (#260)
- chore(deps): update module golang.org/x/vuln to v1.8.0 (#250)

## [0.8.0] - 2026-09-08

### New Features

- feat(server): add append-only audit log for admin mutations (#178)
- feat(server): add scoped Bearer API tokens for admin automation (#177)

### Bug Fixes

- fix(test): stabilize flaky postgres rate limit tests (#190)
- fix(docs): correct dark logo, API outline, and Mermaid diagrams (#186)

### Updated Dependencies

- fix(deps): update module golang.org/x/oauth2 to v0.37.0 (#216)
- fix(deps): update module github.com/jackc/pgx/v5 to v5.11.0 (#215)
- chore(deps): update dependency @nuxt/ui to v4.11.1 (#199)
- chore(deps): update dependency @iconify-json/lucide to v1.2.130 (#198)
- fix(deps): update module github.com/go-jose/go-jose/v4 to v4.1.5 (#196)
- fix(deps): update module golang.org/x/crypto to v0.56.0 (#195)
- chore(deps): update dependency @iconify-json/lucide to v1.2.129 (#194)
- chore(deps): update dependency vue-router to v5.3.1 (#189)
- fix(deps): update module github.com/coreos/go-oidc/v3 to v3.21.0 (#179)

### Documentation

- docs: add NOTICE and Apache-2.0 license metadata (#209)
- docs: add SUPPORT.md with support channels and version guidance (#208)
- docs: add CHANGELOG.md and re-enable GoReleaser changelog (#207)
- docs(ci): add GitHub pull request description template (#206)
- docs: publish docs/ as VitePress site on GitHub Pages (#183)
- docs(readme): defer API catalog to OpenAPI spec (#182)
- docs(readme): add comparison with Keygen, Cryptlex, and LicenseSpring (#181)
- docs(readme): add admin UI licenses screenshot (#180)

### CI

- ci(ui): add Playwright smoke test for admin happy path (#205)
- ci: upload Go coverage to Codecov from server and SDK CI (#204)
- ci: pin GitHub Actions to SHAs and Redocly CLI version (#203)
- ci: scope GITHUB_TOKEN permissions across all workflows (#202)
- ci(release): sign GHCR images with Cosign and publish SLSA provenance (#201)
- ci: add Syft SBOM generation for server releases (#200)
- chore(deps): update dependency goreleaser/goreleaser to v2.18.1 (#197)
- chore(deps): update docker/build-push-action action to v7 (#193)
- chore(deps): update aquasecurity/trivy-action digest to ed142fd (#192)
- chore(deps): update actions/upload-pages-artifact action to v5 (#187)
- chore(deps): update actions/deploy-pages action to v5 (#185)
- chore(deps): update actions/configure-pages action to v6 (#184)
- ci: add Trivy container image scanning (#191)
- ci: add CodeQL static analysis workflow (#188)

## [0.7.0] - 2026-09-01

### New Features

- feat(server): Prometheus /metrics endpoint on dedicated listener (#160)

### Improvements

- enhancement(helm): add optional ServiceMonitor for Prometheus (#171)
- enhancement(helm): add optional topologySpreadConstraints to deployment (#170)
- enhancement(helm): add optional NetworkPolicy template (#169)
- enhancement(helm): add optional HorizontalPodAutoscaler template (#168)
- enhancement(helm): add optional PodDisruptionBudget template (#167)
- enhancement(server): document and test liveness/readiness health split (#166)
- enhancement(server): opt-in postgres rate limit backend for multi-replica deploys (#165)
- perf(store): replace correlated activation_count subquery in license list (#164)
- enhancement(server): configurable per-request context deadlines (#163)
- enhancement(server): configurable pgxpool limits and statement timeout (#162)
- enhancement(server): structured slog logging with request IDs (#159)

### Updated Dependencies

- fix(deps): update module github.com/prometheus/client_golang to v1.24.1 (#161)
- chore(deps): update dependency @iconify-json/lucide to v1.2.128 (#158)

### Documentation

- docs(docs): add operator troubleshooting runbook (#175)
- docs(docs): add HA, scaling, and multi-replica runbook (#174)
- docs(docs): add upgrade procedure and migration notes runbook (#173)
- docs(docs): add PostgreSQL backup and restore runbook (#172)

## [0.6.0] - 2026-08-31

### New Features

- feat(api): add GET /api/v1/licenses/{id} (#149)

### Improvements

- enhancement(api): add security headers to embedded UI responses (#155)
- refactor(oidc): remove dead InsecureSkipVerify field (#154)
- enhancement(ui): wire admin password reset into Users page (#153)
- enhancement(api): paginate GET /api/v1/users (#152)
- enhancement(api): rename license activate to unrevoke (#151)
- enhancement(store): drop unused archived_at from products and policies (#148)
- feat(api): enforce shared 8-character password minimum (#147)
- ci(release): stamp Chart and OpenAPI versions at publish time (#144)

### Bug Fixes

- ci(release): fix goreleaser dirty git on openapi stamp (#157)
- fix(ui): bundle embedded icons and complete docker stack env (#156)
- fix(api): increment validation_count only on successful validations (#150)
- fix(server): align module path with the GitHub repository (#143)
- fix(static): serve a stub UI when Nuxt assets are not built (#139)

### Updated Dependencies

- chore(deps): update dependency vue-router to v5.3.0 (#140)

### Documentation

- docs: normalize git tag prefixes to vX.Y.Z (#146)

### CI

- chore(deps): update dependency golangci/golangci-lint to v2.13.2 (#141)
- fix(ci): quote OpenAPI grep pattern to fix YAML parse error (#145)
- chore(cursor): add openlicensd-issue agent skill (#142)

## [0.5.0] - 2026-08-27

### New Features

- feat: add max concurrent machine activations per license (#64)

### Improvements

- feat(ui): collapsible sidebar and OIDC profile photos (#52)
- feat(ui): show deployed version and GitHub link in sidebar (#48)

### Bug Fixes

- fix(ci): roll Go toolchain back to 1.26.6 (#60)

### Updated Dependencies

- chore(deps): update dependency vue to v3.5.42 (#65)
- chore(deps): update dependency @nuxt/ui to v4.11.0 (#62)
- fix(deps): update module github.com/go-chi/chi/v5 to v5.3.2 (#59)
- chore(deps): update go toolchain directive to v1.27.0 (#56)
- chore(deps): update go toolchain directive to v1.26.6 (#54)
- fix(deps): update module golang.org/x/crypto to v0.55.0 (#53)
- chore(deps): update dependency nuxt to v4.5.2 (#51)
- chore(deps): update dependency vue to v3.5.41 (#49)

### Documentation

- docs: add public v1.0 roadmap with GitHub milestone links (#138)

### CI

- chore(deps): update dependency goreleaser/goreleaser to v2.18.0 (#63)
- ci: add CODEOWNERS with default repository owner (#61)
- chore(deps): update dependency golangci/golangci-lint to v2.13.1 (#58)
- chore(deps): update module golang.org/x/vuln to v1.7.0 (#55)
- ci: scope Makefile to server workflows only (#50)
- ci(sdk): simplify CI to Go 1.26 only (#47)
- ci(sdk): split SDK workflows and scope release drafts (#46)

## [0.4.0] - 2026-08-03

### New Features

- feat(sdk): add Go client SDK with release drafter automation (#45)

## [0.3.0] - 2026-08-03

### New Features

- feat(ui): implement OpenLicensd brand redesign (#43)
- feat(maintenance): add periodic expired session cleanup (#38)

### Improvements

- feat(ui): enlarge stat icons and default form controls to full width (#44)
- refactor(helm): move config env vars to ConfigMap (#42)
- feat(server): add per-IP rate limiting for unauthenticated endpoints (#41)
- feat(ui): show license creator in details modal (#39)

### Documentation

- docs(api): complete OpenAPI spec with users, RBAC, and schema fixes (#40)

### CI

- chore(deps): update actions/cache action to v6 (#36)

## [0.2.0] - 2026-07-31

### New Features

- feat(auth): add self-service password change (#34)
- feat(oidc): add generic OIDC SSO with PKCE and JIT provisioning (#30)
- feat(auth): add database-backed users, roles, and session cookies (#29)
- feat: add products and policies for license management (#27)

### Improvements

- feat(docker): add compose stack and fix static root redirect (#37)
- feat(ui): move account controls to sidebar user menu (#33)
- feat(api): add server-side pagination for list endpoints (#32)
- feat(ui): add table filters, details modal, and description truncation (#28)

### Updated Dependencies

- chore(deps): update npm to v12.0.2 (#26)

### Documentation

- docs(deployment): align Helm install and release instructions (#31)

### CI

- ci: align lint with CI, pin tools, and fix release drafter (#35)

## [0.1.1] - 2026-07-29

### Bug Fixes

- fix(docker): mount postgres volume at /var/lib/postgresql for PG 18 (#25)

### Updated Dependencies

- chore(deps): update npm to v12 (#19)
- chore(deps): update dependency typescript to v7 (#18)
- fix(deps): update dependency @nuxt/ui to v4 (#21)
- fix(deps): update dependency vue-router to v5 (#23)
- fix(deps): update dependency nuxt to v4 (#22)
- fix(deps): update module golang.org/x/crypto to v0.54.0 (#15)
- fix(deps): update module github.com/jackc/pgx/v5 to v5.10.0 (#14)
- fix(deps): update module github.com/golang-jwt/jwt/v5 to v5.3.1 (#13)
- fix(deps): update module github.com/go-chi/chi/v5 to v5.3.1 (#12)
- chore(deps): update npm to v11.18.0 (#10)

### Documentation

- docs: update Nuxt 4 and @nuxt/ui v4 references (#24)

### CI

- chore(deps): update postgres docker tag to v18 (#20)
- chore(deps): update actions/setup-node action to v7 (#17)
- chore(deps): update actions/checkout action to v7 (#16)
- chore(deps): update release-drafter/release-drafter digest to 34d8067 (#9)

## [0.1.0] - 2026-07-29

### New Features

- feat(helm): add kubernetes deployment chart with health probes (#7)
- feat(api): add optional Harbor registry credentials endpoint (#5)
- feat: extend license management with edit, delete, activate, and usage tracking (#3)
- feat: initial open source license server implementation (#1)

### Improvements

- feat(ui): modernize dashboard with indigo theme and redesigned login (#4)

### Documentation

- docs: overhaul project documentation and OpenAPI spec (#8)

### CI

- ci(release): add docker release pipeline with goreleaser (#6)
- ci(release-drafter): migrate config to unified category schema (#2)

## [0.0.1] - 2026-07-28

- Initial release

[Unreleased]: https://github.com/alvarorg14/openlicensd/compare/v0.8.0...HEAD
[0.8.0]: https://github.com/alvarorg14/openlicensd/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/alvarorg14/openlicensd/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/alvarorg14/openlicensd/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/alvarorg14/openlicensd/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/alvarorg14/openlicensd/compare/0.3.0...v0.4.0
[0.3.0]: https://github.com/alvarorg14/openlicensd/compare/0.2.0...0.3.0
[0.2.0]: https://github.com/alvarorg14/openlicensd/compare/0.1.1...0.2.0
[0.1.1]: https://github.com/alvarorg14/openlicensd/compare/0.1.0...0.1.1
[0.1.0]: https://github.com/alvarorg14/openlicensd/compare/0.0.1...0.1.0
[0.0.1]: https://github.com/alvarorg14/openlicensd/releases/tag/0.0.1