Epic: License & Feature Gating #7

Open
opened 2026-03-29 23:17:24 +02:00 by claude · 1 comment
Owner

Overview

Unified license module that enforces tier entitlements in both SaaS and air-gapped deployment modes. Same feature flags, different validation backends.

Architecture

  • License module embedded in cameleer3-server
  • Two validation modes:
    • SaaS mode: Checks entitlements against SaaS platform API (real-time, cached)
    • Air-gapped mode: Validates against signed license file (offline)
  • License defines: tier, feature flags, resource limits, expiry, tenant ID

Feature Gating Dimensions

  • MOAT features (debugger, lineage, correlation)
  • Agent count limits
  • Data retention periods
  • Environment count
  • SSO/OIDC availability
  • Concurrent debug session limits
  • Lineage capture scope limits

License Format

  • Signed JWT or similar cryptographic token
  • Ed25519 signature (consistent with existing config signing)
  • Contains: tenant ID, tier, feature entitlements, resource limits, expiry date
  • Air-gapped licenses issued through management platform, delivered as downloadable file

Enforcement

  • Server checks license on startup and periodically
  • Feature endpoints return 403 when not entitled
  • Graceful degradation (features disabled, not errors)
  • License expiry grace period before hard cutoff
## Overview Unified license module that enforces tier entitlements in both SaaS and air-gapped deployment modes. Same feature flags, different validation backends. ## Architecture - License module embedded in cameleer3-server - Two validation modes: - **SaaS mode**: Checks entitlements against SaaS platform API (real-time, cached) - **Air-gapped mode**: Validates against signed license file (offline) - License defines: tier, feature flags, resource limits, expiry, tenant ID ## Feature Gating Dimensions - MOAT features (debugger, lineage, correlation) - Agent count limits - Data retention periods - Environment count - SSO/OIDC availability - Concurrent debug session limits - Lineage capture scope limits ## License Format - Signed JWT or similar cryptographic token - Ed25519 signature (consistent with existing config signing) - Contains: tenant ID, tier, feature entitlements, resource limits, expiry date - Air-gapped licenses issued through management platform, delivered as downloadable file ## Enforcement - Server checks license on startup and periodically - Feature endpoints return 403 when not entitled - Graceful degradation (features disabled, not errors) - License expiry grace period before hard cutoff
claude added the epiclicensing labels 2026-03-29 23:18:01 +02:00
Author
Owner

Status Update (2026-04-07)

License page complete:

  • Tier display with badge color
  • Feature flags: topology, lineage, correlation, debugger, replay
  • Limits: max_agents, retention_days, max_environments (snake_case keys, fixed in c96faa4)
  • Validity: issued/expires dates, days remaining
  • License token display with show/hide toggle
  • LicenseDefaults.java provides tier-specific defaults (LOW/MID/HIGH/ENTERPRISE)
  • BootstrapDataSeeder creates 365-day LOW tier license on first boot

Remaining:

  • License upgrade/downgrade (requires billing integration)
  • Feature gating enforcement (checking limits before creating environments/apps — partially done in AppService/EnvironmentService)
## Status Update (2026-04-07) ### License page complete: - Tier display with badge color - Feature flags: topology, lineage, correlation, debugger, replay - Limits: max_agents, retention_days, max_environments (snake_case keys, fixed in c96faa4) - Validity: issued/expires dates, days remaining - License token display with show/hide toggle - `LicenseDefaults.java` provides tier-specific defaults (LOW/MID/HIGH/ENTERPRISE) - `BootstrapDataSeeder` creates 365-day LOW tier license on first boot ### Remaining: - License upgrade/downgrade (requires billing integration) - Feature gating enforcement (checking limits before creating environments/apps — partially done in AppService/EnvironmentService)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cameleer/cameleer-saas#7