mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
feat: implement premium vs enterprise licenses (#13907)
* feat: implement premium vs enterprise licenses Implement different sets of licensed features.
This commit is contained in:
32
enterprise/coderd/license/doc.go
Normal file
32
enterprise/coderd/license/doc.go
Normal file
@ -0,0 +1,32 @@
|
||||
// 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
|
Reference in New Issue
Block a user