Summary
Story 4.6 adds a maxJoins: Option[Int] field to the Quota case class (default Some(0)) to enforce maximum cross-index JOINs per query. Community license is expanded to include Feature.Federation with maxClusters = Some(1) and maxJoins = Some(1).
Changes
Quota case class: new maxJoins: Option[Int] = Some(0) field
Quota.Community: maxClusters changed from Some(0) to Some(1), maxJoins = Some(1), Feature.Federation added
Quota.Pro: maxJoins = Some(5)
Quota.Enterprise: maxJoins = None (unlimited, explicit)
LicenseKey.Community.features: added Feature.Federation
Files
licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala
licensing/src/test/scala/app/softnetwork/elastic/licensing/QuotaSpec.scala
licensing/src/test/scala/app/softnetwork/elastic/licensing/LicenseManagerSpec.scala
Backward Compatibility
- Default
Some(0) is restrictive — existing code without explicit maxJoins gets zero JOINs unless configured
- Adding
Feature.Federation to Community is a capability expansion
maxClusters change from Some(0) to Some(1) for Community: previously denied at feature check, now allowed with 1 cluster
Summary
Story 4.6 adds a
maxJoins: Option[Int]field to theQuotacase class (defaultSome(0)) to enforce maximum cross-index JOINs per query. Community license is expanded to includeFeature.FederationwithmaxClusters = Some(1)andmaxJoins = Some(1).Changes
Quotacase class: newmaxJoins: Option[Int] = Some(0)fieldQuota.Community:maxClusterschanged fromSome(0)toSome(1),maxJoins = Some(1),Feature.FederationaddedQuota.Pro:maxJoins = Some(5)Quota.Enterprise:maxJoins = None(unlimited, explicit)LicenseKey.Community.features: addedFeature.FederationFiles
licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scalalicensing/src/test/scala/app/softnetwork/elastic/licensing/QuotaSpec.scalalicensing/src/test/scala/app/softnetwork/elastic/licensing/LicenseManagerSpec.scalaBackward Compatibility
Some(0)is restrictive — existing code without explicitmaxJoinsgets zero JOINs unless configuredFeature.Federationto Community is a capability expansionmaxClusterschange fromSome(0)toSome(1)for Community: previously denied at feature check, now allowed with 1 cluster