-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Epic 5: Licensing Infrastructure
User Story
As a developer integrating with the licensing module,
I want the Feature and Quota types to include federation and Flight SQL capabilities,
So that downstream consumers (MV extension, federation server) can check for these features and quotas.
Acceptance Criteria
Given the Feature sealed trait in package.scala
When Feature.FlightSql and Feature.Federation are added
Then they are available as new Feature case objects
And Feature.values includes both new features
Given the Quota case class in package.scala
When a maxClusters: Option[Int] field is added (default Some(2))
Then Quota.Community has maxClusters = Some(2)
And Quota.Pro has maxClusters = Some(5)
And Quota.Enterprise has maxClusters = None (unlimited)
Given the existing LicenseManager trait
When JwtLicenseManager implements it
Then the trait API remains unchanged — no breaking changes for existing consumers (MaterializedViewExtension, FederationLicenseGuard)
Given the LicenseKey case class
When a JWT is parsed
Then LicenseKey.features includes FlightSql and/or Federation based on the JWT features claim
And LicenseKey.metadata can store additional JWT claims (org_name, jti, trial)
Requirements
- FR30: Feature set extensions (
FlightSql,Federation) and quota extensions (maxClusters) in JWT claims