Files
coder/enterprise/coderd/license/doc.go
Steven Masley 15fda232b7 feat: implement premium vs enterprise licenses (#13907)
* feat: implement premium vs enterprise licenses

Implement different sets of licensed features.
2024-07-24 12:07:59 -05:00

33 lines
1.8 KiB
Go

// Package license provides the license parsing and validation logic for Coderd.
// Licensing in Coderd defines what features are allowed to be used in a
// given deployment. Without a license, or with a license that grants 0 features,
// Coderd will refuse to execute some feature code paths. These features are
// typically gated with a middleware that checks the license before allowing
// the http request to proceed.
//
// Terms:
// - FeatureName: A specific functionality that Coderd provides, such as
// external provisioners.
//
// - Feature: Entitlement definition for a FeatureName. A feature can be:
// - "entitled": The feature is allowed to be used by the deployment.
// - "grace period": The feature is allowed to be used by the deployment,
// but the license is expired. There is a grace period
// before the feature is disabled.
// - "not entitled": The deployment is not allowed to use the feature.
// Either by expiration, or by not being included
// in the license.
// A feature can also be "disabled" that prevents usage of the feature
// even if entitled. This is usually a deployment configuration option.
//
// - License: A signed JWT that lists the features that are allowed to be used by
// a given deployment. A license can have extra properties like,
// `IsTrial`, `DeploymentIDs`, etc that can be used to further define
// usage of the license.
/**/
// - Entitlements: A parsed set of licenses. Yes you can have more than 1 license
// on a deployment! Entitlements will enumerate all features that
// are allowed to be used.
//
package license