Files
tenant-registry/CHANGELOG.md
T
sharang ad0b2ef949
ci / image (pull_request) Has been skipped
ci / shared (pull_request) Successful in 7s
ci / test (pull_request) Successful in 1m55s
feat(store): set trial_ends_at on tenant create
CreateTenant now defaults trial_ends_at to NOW() + 14 days when the
new tenant lands in status='trial'. Demo-kind tenants get
status='demo' (per PLATFORM_ARCHITECTURE.md §5d) and trial_ends_at
stays NULL — those flow through the M13.2 demo-provisioning path.

Both store implementations (Memory + Postgres) updated; tests assert
the 14-day window for customers and the absent end for demo kind.

Unblocks M12.1 (portal trial banner can render a real countdown).

Refs: M4.1 + M12.1
2026-05-19 18:18:10 +02:00

1.7 KiB

Changelog

All notable changes to this repo. Format: Keep a Changelog. Generated section is appended on release tag via git-cliff (see .gitea/workflows/release.yaml).

[Unreleased]

Added

  • feat(store): CreateTenant defaults trial_ends_at to NOW()+14d for customer kind; demo kind gets status='demo' and no trial end
  • feat(keycloak): M4.3 — internal/keycloak adapter (Admin API: org create + IT_ADMIN invite + execute-actions-email + attribute sync). admin_email on POST /v1/tenants triggers KC provisioning; failures emit keycloak.provision_failed audit but don't roll back. POST /v1/internal/keycloak/claims resolves the current claim bundle for a tenant.
  • feat(api): M4.2 — full REST surface (tenants CRUD + lifecycle, catalog, entitlements, API keys w/ argon2 hashing, audit query). pgx-backed Postgres store; in-memory fallback when DATABASE_URL is empty. OpenAPI 3.1 spec at openapi.yaml with kin-openapi contract test.
  • feat(schema): M4.1 — golang-migrate migrations for tenants + tenant_projects + tenant_products + tenant_idp_config + api_keys + audit_log; cmd/migrate binary; testcontainers round-trip + seed + slug-constraint tests
  • feat(server): minimal Go service — /healthz + GET /v1/tenants/by-slug/:slug + GET /v1/tenants/:id with in-memory store seeded with the acme tenant

Changed

  • chore(domain): yourplatform.com → breakpilot.com

Fixed

  • ci: rework workflow for Gitea Actions (bash commitlint, inline gitleaks binary, per-stack jobs gated on real code)

Removed

Security