mirror of
https://github.com/coder/coder.git
synced 2025-07-06 15:41:45 +00:00
* Use licenses for entitlements API Signed-off-by: Spike Curtis <spike@coder.com> * Tests for entitlements API Signed-off-by: Spike Curtis <spike@coder.com> * Add commentary about FeatureService Signed-off-by: Spike Curtis <spike@coder.com> * Lint Signed-off-by: Spike Curtis <spike@coder.com> * Quiet down the logs Signed-off-by: Spike Curtis <spike@coder.com> * Tell revive it's ok Signed-off-by: Spike Curtis <spike@coder.com> Signed-off-by: Spike Curtis <spike@coder.com>
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package coderd
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"strings"
|
|
|
|
"golang.org/x/xerrors"
|
|
|
|
"github.com/coder/coder/coderd"
|
|
"github.com/coder/coder/coderd/rbac"
|
|
)
|
|
|
|
const EnvAuditLogEnable = "CODER_AUDIT_LOG_ENABLE"
|
|
|
|
func NewEnterprise(options *coderd.Options) *coderd.API {
|
|
var eOpts = *options
|
|
if eOpts.Authorizer == nil {
|
|
var err error
|
|
eOpts.Authorizer, err = rbac.NewAuthorizer()
|
|
if err != nil {
|
|
// This should never happen, as the unit tests would fail if the
|
|
// default built in authorizer failed.
|
|
panic(xerrors.Errorf("rego authorize panic: %w", err))
|
|
}
|
|
}
|
|
eOpts.LicenseHandler = newLicenseAPI(
|
|
eOpts.Logger,
|
|
eOpts.Database,
|
|
eOpts.Pubsub,
|
|
&coderd.HTTPAuthorizer{
|
|
Authorizer: eOpts.Authorizer,
|
|
Logger: eOpts.Logger,
|
|
}).handler()
|
|
en := Enablements{AuditLogs: true}
|
|
auditLog := os.Getenv(EnvAuditLogEnable)
|
|
auditLog = strings.ToLower(auditLog)
|
|
if auditLog == "disable" || auditLog == "false" || auditLog == "0" || auditLog == "no" {
|
|
en.AuditLogs = false
|
|
}
|
|
eOpts.FeaturesService = newFeaturesService(
|
|
context.Background(),
|
|
eOpts.Logger,
|
|
eOpts.Database,
|
|
eOpts.Pubsub,
|
|
en,
|
|
)
|
|
return coderd.New(&eOpts)
|
|
}
|