mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-20 21:39:11 +08:00

* chore(feature): drop the feature set table * chore(feature): cleanup the types and remove unused flags * chore(feature): some more cleanup * chore(feature): add codeowners file * chore(feature): init to basic plan for failed validations * chore(feature): cleanup * chore(feature): pkg handler cleanup * chore(feature): pkg handler cleanup * chore(feature): address review comments * chore(feature): address review comments * chore(feature): address review comments --------- Co-authored-by: Vibhu Pandey <vibhupandey28@gmail.com>
45 lines
1.8 KiB
Go
45 lines
1.8 KiB
Go
package licensing
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"github.com/SigNoz/signoz/pkg/errors"
|
|
"github.com/SigNoz/signoz/pkg/factory"
|
|
"github.com/SigNoz/signoz/pkg/types/licensetypes"
|
|
"github.com/SigNoz/signoz/pkg/valuer"
|
|
)
|
|
|
|
var (
|
|
ErrCodeUnsupported = errors.MustNewCode("licensing_unsupported")
|
|
ErrCodeFeatureUnavailable = errors.MustNewCode("feature_unavailable")
|
|
)
|
|
|
|
type Licensing interface {
|
|
factory.Service
|
|
|
|
// Validate validates the license with the upstream server
|
|
Validate(ctx context.Context) error
|
|
// Activate validates and enables the license
|
|
Activate(ctx context.Context, organizationID valuer.UUID, key string) error
|
|
// GetActive fetches the current active license in org
|
|
GetActive(ctx context.Context, organizationID valuer.UUID) (*licensetypes.License, error)
|
|
// Refresh refreshes the license state from upstream server
|
|
Refresh(ctx context.Context, organizationID valuer.UUID) error
|
|
// Checkout creates a checkout session via upstream server and returns the redirection link
|
|
Checkout(ctx context.Context, organizationID valuer.UUID, postableSubscription *licensetypes.PostableSubscription) (*licensetypes.GettableSubscription, error)
|
|
// Portal creates a portal session via upstream server and return the redirection link
|
|
Portal(ctx context.Context, organizationID valuer.UUID, postableSubscription *licensetypes.PostableSubscription) (*licensetypes.GettableSubscription, error)
|
|
// GetFeatureFlags fetches all the defined feature flags
|
|
GetFeatureFlags(ctx context.Context, organizationID valuer.UUID) ([]*licensetypes.Feature, error)
|
|
}
|
|
|
|
type API interface {
|
|
Activate(http.ResponseWriter, *http.Request)
|
|
Refresh(http.ResponseWriter, *http.Request)
|
|
GetActive(http.ResponseWriter, *http.Request)
|
|
|
|
Checkout(http.ResponseWriter, *http.Request)
|
|
Portal(http.ResponseWriter, *http.Request)
|
|
}
|