Skip to content

Commit 86b28ab

Browse files
committed
Add all features property
1 parent 152f695 commit 86b28ab

File tree

6 files changed

+17
-4
lines changed

6 files changed

+17
-4
lines changed

enterprise/coderd/coderdenttest/coderdenttest.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ type LicenseOptions struct {
8888
AccountType string
8989
AccountID string
9090
Trial bool
91+
AllFeatures bool
9192
GraceAt time.Time
9293
ExpiresAt time.Time
9394
UserLimit int64
@@ -143,6 +144,7 @@ func GenerateLicense(t *testing.T, options LicenseOptions) string {
143144
AccountID: options.AccountID,
144145
Trial: options.Trial,
145146
Version: license.CurrentVersion,
147+
AllFeatures: options.AllFeatures,
146148
Features: license.Features{
147149
UserLimit: options.UserLimit,
148150
AuditLog: auditLog,

enterprise/coderd/license/license.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ func Entitlements(ctx context.Context, db database.Store, logger slog.Logger, ke
4141
return entitlements, xerrors.Errorf("query active user count: %w", err)
4242
}
4343

44+
allFeatures := false
45+
4446
// Here we loop through licenses to detect enabled features.
4547
for _, l := range licenses {
4648
claims, err := validateDBLicense(l, keys)
@@ -94,9 +96,12 @@ func Entitlements(ctx context.Context, db database.Store, logger slog.Logger, ke
9496
Enabled: enablements[codersdk.FeatureWorkspaceQuota],
9597
}
9698
}
99+
if claims.AllFeatures {
100+
allFeatures = true
101+
}
97102
}
98103

99-
if entitlements.Trial {
104+
if allFeatures {
100105
for _, featureName := range codersdk.FeatureNames {
101106
// No user limit!
102107
if featureName == codersdk.FeatureUserLimit {
@@ -171,6 +176,7 @@ type Claims struct {
171176
AccountType string `json:"account_type,omitempty"`
172177
AccountID string `json:"account_id,omitempty"`
173178
Trial bool `json:"trial"`
179+
AllFeatures bool `json:"all_features"`
174180
Version uint64 `json:"version"`
175181
Features Features `json:"features"`
176182
}

enterprise/coderd/license/license_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,19 +165,19 @@ func TestEntitlements(t *testing.T) {
165165
require.False(t, entitlements.Trial)
166166
})
167167

168-
t.Run("TrialEntitledAll", func(t *testing.T) {
168+
t.Run("AllFeatures", func(t *testing.T) {
169169
t.Parallel()
170170
db := databasefake.New()
171171
db.InsertLicense(context.Background(), database.InsertLicenseParams{
172172
Exp: time.Now().Add(time.Hour),
173173
JWT: coderdenttest.GenerateLicense(t, coderdenttest.LicenseOptions{
174-
Trial: true,
174+
AllFeatures: true,
175175
}),
176176
})
177177
entitlements, err := license.Entitlements(context.Background(), db, slog.Logger{}, coderdenttest.Keys, all)
178178
require.NoError(t, err)
179179
require.True(t, entitlements.HasLicense)
180-
require.True(t, entitlements.Trial)
180+
require.False(t, entitlements.Trial)
181181
for _, featureName := range codersdk.FeatureNames {
182182
if featureName == codersdk.FeatureUserLimit {
183183
continue

site/src/api/api.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export const defaultEntitlements = (): TypesGen.Entitlements => {
3030
has_license: false,
3131
warnings: [],
3232
experimental: false,
33+
trial: false,
3334
}
3435
}
3536

site/src/testHelpers/entities.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -777,12 +777,14 @@ export const MockEntitlements: TypesGen.Entitlements = {
777777
has_license: false,
778778
features: {},
779779
experimental: false,
780+
trial: false,
780781
}
781782

782783
export const MockEntitlementsWithWarnings: TypesGen.Entitlements = {
783784
warnings: ["You are over your active user limit.", "And another thing."],
784785
has_license: true,
785786
experimental: false,
787+
trial: false,
786788
features: {
787789
user_limit: {
788790
enabled: true,
@@ -805,6 +807,7 @@ export const MockEntitlementsWithAuditLog: TypesGen.Entitlements = {
805807
warnings: [],
806808
has_license: true,
807809
experimental: false,
810+
trial: false,
808811
features: {
809812
audit_log: {
810813
enabled: true,

site/src/xServices/entitlements/entitlementsXService.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const emptyEntitlements = {
2424
features: {},
2525
has_license: false,
2626
experimental: false,
27+
trial: false,
2728
}
2829

2930
export const entitlementsMachine = createMachine(

0 commit comments

Comments
 (0)