license

package
v0.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// LicenseKeyPropertyKey is the database property key used to persist the Keygen license key.
	LicenseKeyPropertyKey = "obot-license-key"

	// LicenseMachineIDPropertyKey is the database property key used to persist the Keygen machine fingerprint.
	LicenseMachineIDPropertyKey = "obot-license-machine-id"

	// EnterpriseAuthProvidersEntitlement is required to enable enterprise auth providers.
	EnterpriseAuthProvidersEntitlement = "OBOT_ENTERPRISE_AUTH_PROVIDERS"

	// EnterpriseModelProvidersEntitlement is required to enable enterprise model providers.
	EnterpriseModelProvidersEntitlement = "OBOT_ENTERPRISE_MODEL_PROVIDERS"
)

Variables

View Source
var (
	// ErrNotConfigured indicates license validation was requested without enough Keygen configuration.
	ErrNotConfigured = errors.New("license provider is not configured")

	// ErrLicenseKeyViaConfiguration indicates the license key is managed by startup configuration.
	ErrLicenseKeyViaConfiguration = errors.New("license key is configured at startup")

	// ErrInvalidLicense indicates the provided license key could not be validated.
	ErrInvalidLicense = errors.New("license key is invalid")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	LicenseKey string `usage:"Keygen license key for this Obot installation"`
}

Config contains the Keygen settings needed to validate an Obot license.

type Provider

type Provider struct {
	// contains filtered or unexported fields
}

func NewProvider

func NewProvider(ctx context.Context, gatewayClient *client.Client, config Config) (*Provider, error)

NewProvider creates a Keygen-backed license provider.

func (*Provider) ConfiguredProviderViolations

func (p *Provider) ConfiguredProviderViolations(ctx context.Context, c kclient.Client) ([]ProviderViolation, error)

ConfiguredProviderViolations returns any globally configured auth/model providers that are currently missing required license entitlements.

func (*Provider) Entitlements

func (p *Provider) Entitlements() []string

func (*Provider) HasValidLicense

func (p *Provider) HasValidLicense() bool

func (*Provider) LicenseKey

func (p *Provider) LicenseKey() string

func (*Provider) LicenseKeyViaConfiguration

func (p *Provider) LicenseKeyViaConfiguration() bool

func (*Provider) MissingEntitlements

func (p *Provider) MissingEntitlements(requiredEntitlements []string) []string

Missing returns the required entitlements that are unavailable from the current license.

func (*Provider) RemoveLicenseKey

func (p *Provider) RemoveLicenseKey(ctx context.Context) error

func (*Provider) RequireEntitlements

func (p *Provider) RequireEntitlements(requiredEntitlements []string) error

Require returns Payment Required if any required entitlements are unavailable.

func (*Provider) SetLicenseKey

func (p *Provider) SetLicenseKey(ctx context.Context, licenseKey string) error

type ProviderEntitlementGate

type ProviderEntitlementGate struct {
	// contains filtered or unexported fields
}

func NewProviderEntitlementGate

func NewProviderEntitlementGate(licenseProvider *Provider, client kclient.Client) *ProviderEntitlementGate

func (*ProviderEntitlementGate) Check

func (g *ProviderEntitlementGate) Check(req *http.Request) error

type ProviderMeta

type ProviderMeta struct {
	RequiredEntitlements []string                               `json:"requiredEntitlements"`
	EnvVars              []types.ProviderConfigurationParameter `json:"envVars"`
}

type ProviderViolation

type ProviderViolation struct {
	Type                 string   `json:"type"`
	Namespace            string   `json:"namespace"`
	Name                 string   `json:"name"`
	RequiredEntitlements []string `json:"requiredEntitlements"`
	MissingEntitlements  []string `json:"missingEntitlements"`
}

ProviderViolation describes a configured provider that requires license entitlements that are not currently available.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL