config

package
v1.3.3 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2023 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetupEnv

func SetupEnv()

Types

type Config added in v1.3.1

type Config struct {
	Environment string `envconfig:"GO_ENV"`
	Mongo       struct {
		Uri    string `envconfig:"MONGO_URI"`
		Timout int64  `envconfig:"MONGO_TIMEOUT"`
	}
	Headscale struct {
		Url     string `envconfig:"HEADSCALE_URL"`
		Key     string `envconfig:"HEADSCALE_KEY"`
		Timeout int64  `envconfig:"HEADSCALE_TIMEOUT"`
	}
	Endpoints struct {
		GraphQL           string `envconfig:"ENDPOINT_GRAPHQL"`
		GraphQLPlayground string `envconfig:"ENDPOINT_GRAPHQL_PLAYGROUND"`
		UI                string `envconfig:"ENDPOINT_UI"`
		OidcCallback      string `envconfig:"ENDPOINT_OIDC_CALLBACK"`
		ACL               string `envconfig:"ENDPOINT_ACL"`
	}
	Oidc struct {
		Enable           bool     `envconfig:"OIDC_ENABLE"`
		ClientId         string   `envconfig:"OIDC_CLIENT_ID"`
		ClientSecret     string   `envconfig:"OIDC_CLIENT_SECRET"`
		IssuerUrl        string   `envconfig:"OIDC_ISSUER_URL"`
		RedirectUrl      string   `envconfig:"OIDC_REDIRECT_URL"`
		Scopes           []string `envconfig:"OIDC_SCOPES"`
		OriginCookie     string   `envconfig:"OIDC_ORIGIN_COOKIE"`
		DefaultUser      string   `envconfig:"OIDC_DEFAULT_USER"`
		StripEmailDomain bool     `envconfig:"OIDC_STRIP_EMAIL_DOMAIN"`
	}
	Auth struct {
		CookieKey string `envconfig:"AUTH_COOKIE_KEY"`
		HeaderKey string `envconfig:"AUTH_HEADER_KEY"`
	}
	Admin struct {
		Groups []string `envconfig:"ADMIN_GROUPS"`
		Users  []string `envconfig:"ADMIN_USERS"`
	}
	ACL struct {
		Enable   bool   `envconfig:"ACL_ENABLE"`
		Base     string `envconfig:"ACL_BASE"`
		Password string `envconfig:"ACL_PASSWORD"`
		Features struct {
			UserSelf   bool `envconfig:"ACL_FEATURE_USER_SELF"`   // user can access device owned by himself
			UserPeer   bool `envconfig:"ACL_FEATURE_USER_PEER"`   // tag:peer-<username> will be seen as user's device
			UserShare  bool `envconfig:"ACL_FEATURE_USER_SHARE"`  // user can share device by tag:share-<username>
			ProjectTag bool `envconfig:"ACL_FEATURE_PROJECT_TAG"` // tag:prj-acc-<project> allows access tag:prj-use-<project> and project routes
		}
		Trigger struct {
			Enable  bool   `envconfig:"ACL_TRIGGER_ENABLE"`
			Cmd     string `envconfig:"ACL_TRIGGER_CMD"`
			Webhook string `envconfig:"ACL_TRIGGER_WEBHOOK"`
		}
	}
}

func GetConfig added in v1.3.1

func GetConfig() *Config

type EnvKey

type EnvKey = string
const (
	GO_ENV EnvKey = "GO_ENV"
)

Jump to

Keyboard shortcuts

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