Files
coder/enterprise/coderd/coderd.go
Spike Curtis cc346afce6 Use licenses to populate the Entitlements API (#3715)
* 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>
2022-08-29 16:45:40 -07:00

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)
}