Skip to content

Commit 1b2ac2d

Browse files
committed
feat(subscription): guard managed entitlements
1 parent 2cd7d94 commit 1b2ac2d

File tree

24 files changed

+267
-101
lines changed

24 files changed

+267
-101
lines changed

openmeter/ent/db/entitlement.go

Lines changed: 12 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openmeter/ent/db/entitlement/entitlement.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openmeter/ent/db/entitlement/where.go

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openmeter/ent/db/entitlement_create.go

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openmeter/ent/db/entitlement_update.go

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openmeter/ent/db/migrate/schema.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openmeter/ent/db/mutation.go

Lines changed: 74 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openmeter/ent/schema/entitlement.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package schema
22

33
import (
4+
"fmt"
5+
46
"entgo.io/ent"
57
"entgo.io/ent/dialect"
68
"entgo.io/ent/schema/edge"
79
"entgo.io/ent/schema/field"
810
"entgo.io/ent/schema/index"
11+
"github.com/oklog/ulid/v2"
912

1013
"github.com/openmeterio/openmeter/openmeter/entitlement"
1114
"github.com/openmeterio/openmeter/pkg/framework/entutils"
@@ -33,7 +36,12 @@ func (Entitlement) Fields() []ent.Field {
3336
}),
3437
field.Time("active_from").Optional().Nillable().Immutable(),
3538
field.Time("active_to").Optional().Nillable(),
36-
field.String("feature_key").NotEmpty().Immutable(),
39+
field.String("feature_key").NotEmpty().Validate(func(fK string) error {
40+
if _, err := ulid.Parse(fK); err == nil {
41+
return fmt.Errorf("selected feature key cannot be a valid ULID")
42+
}
43+
return nil
44+
}).Immutable(),
3745
field.String("subject_key").NotEmpty().Immutable(),
3846
field.Time("measure_usage_from").Optional().Nillable().Immutable(),
3947
field.Float("issue_after_reset").Optional().Nillable().Immutable(),
@@ -47,6 +55,7 @@ func (Entitlement) Fields() []ent.Field {
4755
field.Time("usage_period_anchor").Optional().Nillable(),
4856
field.Time("current_usage_period_start").Optional().Nillable(),
4957
field.Time("current_usage_period_end").Optional().Nillable(),
58+
field.Bool("subscription_managed").Optional().Immutable(),
5059
}
5160
}
5261

0 commit comments

Comments
 (0)