configuration

package
v0.5.3 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultHostKeyLocation = "/etc/engity/bifroest/key"
)

Variables

View Source
var (
	DefaultAlternativesDownloadUrl = template.MustNewUrl("https://github.com/engity-com/bifroest/releases/download/v{{.version}}/bifroest-{{.os}}-{{.arch}}-{{.edition}}{{.packageExt}}")
	DefaultAlternativesLocation    = template.MustNewString(defaultAlternativesLocation)
)
View Source
var (
	DefaultAuthorizationLocalPamService     = defaultAuthorizationLocalPamService
	DefaultAuthorizationLocalAuthorizedKeys = template.MustNewStrings("{{.user.homeDir}}/.ssh/authorized_keys")
)
View Source
var (
	DefaultAuthorizationOidcDefaultIssuer       = template.MustNewUrl("")
	DefaultAuthorizationOidcDefaultClientId     = template.MustNewString("")
	DefaultAuthorizationOidcDefaultClientSecret = template.MustNewString("")
	DefaultAuthorizationOidcScopes              = template.MustNewStrings(oidc.ScopeOpenID, "profile", "email")
	DefaultAuthorizationOidcRetrieveIdToken     = true
	DefaultAuthorizationOidcRetrieveUserInfo    = false
)
View Source
var (
	DefaultEnvironmentDockerLoginAllowed = template.BoolOf(true)

	DefaultEnvironmentDockerHost       = template.MustNewString("{{ env `DOCKER_HOST` }}")
	DefaultEnvironmentDockerApiVersion = template.MustNewString("{{ env `DOCKER_API_VERSION` }}")
	DefaultEnvironmentDockerCertPath   = template.MustNewString("{{ env `DOCKER_CERT_PATH` }}")
	DefaultEnvironmentDockerTlsVerify  = template.MustNewBool("{{ env `DOCKER_TLS_VERIFY` | ne `` }}")

	DefaultEnvironmentDockerImage                = template.MustNewString("alpine")
	DefaultEnvironmentDockerImagePullPolicy      = PullPolicyIfAbsent
	DefaultEnvironmentDockerImagePullCredentials = template.MustNewString("")
	DefaultEnvironmentDockerNetworks             = template.MustNewStrings(network.NetworkDefault)
	DefaultEnvironmentDockerVolumes              = template.MustNewStrings()
	DefaultEnvironmentDockerMounts               = template.MustNewStrings()
	DefaultEnvironmentDockerCapabilities         = template.MustNewStrings()
	DefaultEnvironmentDockerPrivileged           = template.BoolOf(false)
	DefaultEnvironmentDockerDnsServers           = template.MustNewStrings()
	DefaultEnvironmentDockerDnsSearch            = template.MustNewStrings()
	DefaultEnvironmentDockerShellCommand         = template.MustNewStrings()
	DefaultEnvironmentDockerExecCommand          = template.MustNewStrings()
	DefaultEnvironmentDockerSftpCommand          = template.MustNewStrings()
	DefaultEnvironmentDockerDirectory            = template.MustNewString("")
	DefaultEnvironmentDockerUser                 = template.MustNewString("")

	DefaultEnvironmentDockerBanner                = template.MustNewString("")
	DefaultEnvironmentDockerPortForwardingAllowed = template.BoolOf(true)
	DefaultEnvironmentDockerImpPublishHost        = net.MustNewHost("")

	DefaultEnvironmentDockerCleanOrphan = template.BoolOf(true)
)
View Source
var (
	DefaultEnvironmentDummyExitCode = template.Int64Of(0)
	DefaultEnvironmentDummyBanner   = template.MustNewString("")
)
View Source
var (
	DefaultEnvironmentKubernetesLoginAllowed = template.BoolOf(true)

	DefaultEnvironmentKubernetesConfig  = template.MustNewTextMarshaller[kubernetes.Kubeconfig, *kubernetes.Kubeconfig]("")
	DefaultEnvironmentKubernetesContext = template.MustNewString("")

	DefaultEnvironmentKubernetesName                 = template.MustNewString("bifroest-{{.session.id}}")
	DefaultEnvironmentKubernetesNamespace            = template.MustNewString("")
	DefaultEnvironmentKubernetesOs                   = sys.OsLinux
	DefaultEnvironmentKubernetesArch                 = sys.ArchAmd64
	DefaultEnvironmentKubernetesServiceAccountName   = template.MustNewString("")
	DefaultEnvironmentKubernetesImage                = template.MustNewString("alpine")
	DefaultEnvironmentKubernetesImagePullPolicy      = PullPolicyIfAbsent
	DefaultEnvironmentKubernetesImagePullSecretName  = template.MustNewString("")
	DefaultEnvironmentKubernetesImagePullCredentials = template.MustNewString("")
	DefaultEnvironmentKubernetesReadyTimeout         = template.DurationOf(5 * time.Minute)
	DefaultEnvironmentKubernetesRemoveTimeout        = 1 * time.Minute

	DefaultEnvironmentKubernetesCapabilities = template.MustNewStrings()
	DefaultEnvironmentKubernetesPrivileged   = template.BoolOf(false)
	DefaultEnvironmentKubernetesDnsServers   = template.MustNewStrings()
	DefaultEnvironmentKubernetesDnsSearch    = template.MustNewStrings()
	DefaultEnvironmentKubernetesShellCommand = template.MustNewStrings()
	DefaultEnvironmentKubernetesExecCommand  = template.MustNewStrings()
	DefaultEnvironmentKubernetesSftpCommand  = template.MustNewStrings()
	DefaultEnvironmentKubernetesDirectory    = template.MustNewString("")
	DefaultEnvironmentKubernetesUser         = template.MustNewString("")
	DefaultEnvironmentKubernetesGroup        = template.MustNewString("")

	DefaultEnvironmentKubernetesBanner                = template.MustNewString("")
	DefaultEnvironmentKubernetesPortForwardingAllowed = template.BoolOf(true)

	DefaultEnvironmentKubernetesCleanOrphan = template.BoolOf(true)
)
View Source
var (
	DefaultEnvironmentLocalDisposeDeleteManagedUser        = template.BoolOf(true)
	DefaultEnvironmentLocalDisposeDeleteManagedUserHomeDir = template.BoolOf(true)
	DefaultEnvironmentLocalDisposeKillManagedUserProcesses = template.BoolOf(true)
)
View Source
var (
	DefaultEnvironmentLocalLoginAllowed          = template.BoolOf(true)
	DefaultEnvironmentLocalBanner                = template.MustNewString("")
	DefaultEnvironmentLocalPortForwardingAllowed = template.BoolOf(true)
)
View Source
var (
	DefaultEnvironmentLocalCreateIfAbsent    = template.BoolOf(false)
	DefaultEnvironmentLocalUpdateIfDifferent = template.BoolOf(false)
)
View Source
var (
	DefaultHouseKeepingEvery        = common.DurationOf(time.Minute * 10)
	DefaultHouseKeepingInitialDelay = common.DurationOf(0)
	DefaultHouseKeepingAutoRepair   = true

	// DefaultHouseKeepingKeepExpiredFor is the default setting for HouseKeeping.KeepExpiredFor.
	DefaultHouseKeepingKeepExpiredFor = common.DurationOf(14 * 24 * time.Hour)
)
View Source
var (
	DefaultHostKeyLocations       = template.MustNewStrings(DefaultHostKeyLocation)
	DefaultRememberMeNotification = template.MustNewString("\nIf you return until {{.session.validUntil | format `dateTimeT`}} with the same public key ({{.key | fingerprint}}), you can seamlessly login again.\n\n")
)
View Source
var (
	DefaultPasswordAllowed            = template.BoolOf(true)
	DefaultPasswordInteractiveAllowed = template.BoolOf(true)
	DefaultPasswordEmptyAllowed       = template.BoolOf(false)
)
View Source
var (
	DefaultPreparationMessageId     = common.MustNewRegexp(`.*`)
	DefaultPreparationMessageFlow   = common.MustNewRegexp(`.*`)
	DefaultPreparationMessageStart  = template.MustNewString("{{.title}}...")
	DefaultPreparationMessageUpdate = template.MustNewString("\r{{.title}}... {{.percentage | printf `%.0f%%`}}")
	DefaultPreparationMessageEnd    = template.MustNewString("\r{{.title}}... DONE!\n")
	DefaultPreparationMessageError  = template.MustNewString("\r{{.title}}... FAILED! Contact server operator for more information. Disconnecting now...\n")
)
View Source
var (
	DefaultRequirementIncludedRequestingName = common.MustNewRegexp("")
	DefaultRequirementExcludedRequestingName = common.MustNewRegexp("")
)
View Source
var (
	// DefaultSessionFsStorage is the default setting for SessionFs.Storage.
	DefaultSessionFsStorage = defaultSessionFsStorage
	// DefaultSessionFsFileMode is the default setting for SessionFs.FileMode.
	DefaultSessionFsFileMode = sys.FileMode(0600)
)
View Source
var (
	// DefaultSessionIdleTimeout is the default setting for Session.IdleTimeout.
	DefaultSessionIdleTimeout = common.DurationOf(30 * time.Minute)

	// DefaultSessionMaxTimeout is the default setting for Session.MaxTimeout.
	DefaultSessionMaxTimeout = common.DurationOf(0)

	// DefaultSessionMaxConnections is the default setting for Session.MaxConnections.
	DefaultSessionMaxConnections uint16 = 10
)
View Source
var (
	// DefaultSshAddresses is the default setting for Ssh.Addresses.
	DefaultSshAddresses = []net.Address{net.MustNewAddress(":22")}

	// DefaultSshIdleTimeout is the default setting for Ssh.IdleTimeout.
	DefaultSshIdleTimeout = common.DurationOf(10 * time.Minute)

	// DefaultSshMaxTimeout is the default setting for Ssh.MaxTimeout.
	DefaultSshMaxTimeout = common.DurationOf(0)

	// DefaultSshMaxAuthTries is the default setting for Ssh.MaxAuthTries.
	DefaultSshMaxAuthTries = uint8(6)

	// DefaultSshMaxConnections is the default setting for Ssh.MaxConnections.
	DefaultSshMaxConnections = uint32(255)

	// DefaultSshBanner is the default setting for Ssh.Banner.
	DefaultSshBanner = template.MustNewString("{{`/etc/ssh/sshd-banner` | file `optional` | default `Transcend with Engity's Bifröst\n\n` }}")
)
View Source
var (
	DefaultAuthorizationHtpasswdFile = defaultAuthorizationHtpasswdFile
)
View Source
var (
	DefaultGroupRequirementName = template.MustNewString("managed")
)
View Source
var (
	DefaultStartMessage = template.MustNewString("")
)

Functions

func GetSupportedAuthorizationFeatureFlags added in v0.2.0

func GetSupportedAuthorizationFeatureFlags() []string

func GetSupportedEnvironmentFeatureFlags added in v0.2.0

func GetSupportedEnvironmentFeatureFlags() []string

func GetSupportedSessionFeatureFlags added in v0.2.0

func GetSupportedSessionFeatureFlags() []string

Types

type Alternatives added in v0.4.0

type Alternatives struct {
	DownloadUrl template.Url    `yaml:"downloadUrl,omitempty"`
	Location    template.String `yaml:"location,omitempty"`
}

func (Alternatives) IsEqualTo added in v0.4.0

func (this Alternatives) IsEqualTo(other any) bool

func (*Alternatives) SetDefaults added in v0.4.0

func (this *Alternatives) SetDefaults() error

func (*Alternatives) Trim added in v0.4.0

func (this *Alternatives) Trim() error

func (*Alternatives) UnmarshalYAML added in v0.4.0

func (this *Alternatives) UnmarshalYAML(node *yaml.Node) error

func (*Alternatives) Validate added in v0.4.0

func (this *Alternatives) Validate() error

type Authorization

type Authorization struct {
	V AuthorizationV
}

func (Authorization) IsEqualTo

func (this Authorization) IsEqualTo(other any) bool

func (*Authorization) MarshalYAML

func (this *Authorization) MarshalYAML() (any, error)

func (*Authorization) SetDefaults

func (this *Authorization) SetDefaults() error

func (*Authorization) Trim

func (this *Authorization) Trim() error

func (*Authorization) UnmarshalYAML

func (this *Authorization) UnmarshalYAML(node *yaml.Node) error

func (*Authorization) Validate

func (this *Authorization) Validate() error

type AuthorizationHtpasswd added in v0.2.0

type AuthorizationHtpasswd struct {
	File    crypto.HtpasswdFile `yaml:"file,omitempty"`
	Entries crypto.Htpasswd     `yaml:"entries,omitempty"`
}

func (AuthorizationHtpasswd) FeatureFlags added in v0.2.0

func (this AuthorizationHtpasswd) FeatureFlags() []string

func (AuthorizationHtpasswd) IsEqualTo added in v0.2.0

func (this AuthorizationHtpasswd) IsEqualTo(other any) bool

func (*AuthorizationHtpasswd) SetDefaults added in v0.2.0

func (this *AuthorizationHtpasswd) SetDefaults() error

func (*AuthorizationHtpasswd) Trim added in v0.2.0

func (this *AuthorizationHtpasswd) Trim() error

func (AuthorizationHtpasswd) Types added in v0.2.0

func (this AuthorizationHtpasswd) Types() []string

func (*AuthorizationHtpasswd) UnmarshalYAML added in v0.2.0

func (this *AuthorizationHtpasswd) UnmarshalYAML(node *yaml.Node) error

func (*AuthorizationHtpasswd) Validate added in v0.2.0

func (this *AuthorizationHtpasswd) Validate() error

type AuthorizationLocal

type AuthorizationLocal struct {
	AuthorizedKeys template.Strings   `yaml:"authorizedKeys,omitempty"`
	Password       PasswordProperties `yaml:"password,omitempty"`
	PamService     string             `yaml:"pamService,omitempty"`
}

func (AuthorizationLocal) FeatureFlags added in v0.2.0

func (this AuthorizationLocal) FeatureFlags() []string

func (AuthorizationLocal) IsEqualTo

func (this AuthorizationLocal) IsEqualTo(other any) bool

func (*AuthorizationLocal) SetDefaults

func (this *AuthorizationLocal) SetDefaults() error

func (*AuthorizationLocal) Trim

func (this *AuthorizationLocal) Trim() error

func (AuthorizationLocal) Types added in v0.2.0

func (this AuthorizationLocal) Types() []string

func (*AuthorizationLocal) UnmarshalYAML

func (this *AuthorizationLocal) UnmarshalYAML(node *yaml.Node) error

func (*AuthorizationLocal) Validate

func (this *AuthorizationLocal) Validate() error

type AuthorizationNone added in v0.4.0

type AuthorizationNone struct{}

func (AuthorizationNone) FeatureFlags added in v0.4.0

func (this AuthorizationNone) FeatureFlags() []string

func (AuthorizationNone) IsEqualTo added in v0.4.0

func (this AuthorizationNone) IsEqualTo(other any) bool

func (*AuthorizationNone) SetDefaults added in v0.4.0

func (this *AuthorizationNone) SetDefaults() error

func (*AuthorizationNone) Trim added in v0.4.0

func (this *AuthorizationNone) Trim() error

func (AuthorizationNone) Types added in v0.4.0

func (this AuthorizationNone) Types() []string

func (*AuthorizationNone) UnmarshalYAML added in v0.4.0

func (this *AuthorizationNone) UnmarshalYAML(node *yaml.Node) error

func (*AuthorizationNone) Validate added in v0.4.0

func (this *AuthorizationNone) Validate() error

type AuthorizationOidcDeviceAuth

type AuthorizationOidcDeviceAuth struct {
	Issuer       template.Url     `yaml:"issuer"`
	ClientId     template.String  `yaml:"clientId"`
	ClientSecret template.String  `yaml:"clientSecret"`
	Scopes       template.Strings `yaml:"scopes"`

	RetrieveIdToken  bool `yaml:"retrieveIdToken,omitempty"`
	RetrieveUserInfo bool `yaml:"retrieveUserInfo,omitempty"`
}

func (AuthorizationOidcDeviceAuth) FeatureFlags added in v0.2.0

func (this AuthorizationOidcDeviceAuth) FeatureFlags() []string

func (AuthorizationOidcDeviceAuth) IsEqualTo

func (this AuthorizationOidcDeviceAuth) IsEqualTo(other any) bool

func (*AuthorizationOidcDeviceAuth) SetDefaults

func (this *AuthorizationOidcDeviceAuth) SetDefaults() error

func (*AuthorizationOidcDeviceAuth) Trim

func (this *AuthorizationOidcDeviceAuth) Trim() error

func (AuthorizationOidcDeviceAuth) Types added in v0.2.0

func (this AuthorizationOidcDeviceAuth) Types() []string

func (*AuthorizationOidcDeviceAuth) UnmarshalYAML

func (this *AuthorizationOidcDeviceAuth) UnmarshalYAML(node *yaml.Node) error

func (*AuthorizationOidcDeviceAuth) Validate

func (this *AuthorizationOidcDeviceAuth) Validate() error

type AuthorizationSimple added in v0.2.0

type AuthorizationSimple struct {
	Entries AuthorizationSimpleEntries `yaml:"entries,omitempty"`
}

func (AuthorizationSimple) FeatureFlags added in v0.2.0

func (this AuthorizationSimple) FeatureFlags() []string

func (AuthorizationSimple) IsEqualTo added in v0.2.0

func (this AuthorizationSimple) IsEqualTo(other any) bool

func (*AuthorizationSimple) SetDefaults added in v0.2.0

func (this *AuthorizationSimple) SetDefaults() error

func (*AuthorizationSimple) Trim added in v0.2.0

func (this *AuthorizationSimple) Trim() error

func (AuthorizationSimple) Types added in v0.2.0

func (this AuthorizationSimple) Types() []string

func (*AuthorizationSimple) UnmarshalYAML added in v0.2.0

func (this *AuthorizationSimple) UnmarshalYAML(node *yaml.Node) error

func (*AuthorizationSimple) Validate added in v0.2.0

func (this *AuthorizationSimple) Validate() error

type AuthorizationSimpleEntries added in v0.2.0

type AuthorizationSimpleEntries []AuthorizationSimpleEntry

func (AuthorizationSimpleEntries) IsEqualTo added in v0.2.0

func (this AuthorizationSimpleEntries) IsEqualTo(other any) bool

func (*AuthorizationSimpleEntries) SetDefaults added in v0.2.0

func (this *AuthorizationSimpleEntries) SetDefaults() error

func (*AuthorizationSimpleEntries) Trim added in v0.2.0

func (this *AuthorizationSimpleEntries) Trim() error

func (*AuthorizationSimpleEntries) UnmarshalYAML added in v0.4.0

func (this *AuthorizationSimpleEntries) UnmarshalYAML(node *yaml.Node) error

func (AuthorizationSimpleEntries) Validate added in v0.2.0

func (this AuthorizationSimpleEntries) Validate() error

type AuthorizationSimpleEntry added in v0.2.0

type AuthorizationSimpleEntry struct {
	Name               string                    `yaml:"name"`
	AuthorizedKeys     crypto.AuthorizedKeys     `yaml:"authorizedKeys,omitempty"`
	AuthorizedKeysFile crypto.AuthorizedKeysFile `yaml:"authorizedKeysFile,omitempty"`
	Password           crypto.Password           `yaml:"password,omitempty"`
	PasswordFile       crypto.PasswordFile       `yaml:"passwordFile,omitempty"`

	CreatePasswordFileIfAbsentOfType *crypto.PasswordType `yaml:"createPasswordFileIfAbsentOfType,omitempty"`
}

func (*AuthorizationSimpleEntry) GetField added in v0.2.0

func (this *AuthorizationSimpleEntry) GetField(name string) (any, bool, error)

func (AuthorizationSimpleEntry) GetPassword added in v0.4.0

func (this AuthorizationSimpleEntry) GetPassword() (crypto.Password, error)

func (AuthorizationSimpleEntry) IsEqualTo added in v0.2.0

func (this AuthorizationSimpleEntry) IsEqualTo(other any) bool

func (*AuthorizationSimpleEntry) SetDefaults added in v0.2.0

func (this *AuthorizationSimpleEntry) SetDefaults() error

func (*AuthorizationSimpleEntry) Trim added in v0.2.0

func (this *AuthorizationSimpleEntry) Trim() error

func (*AuthorizationSimpleEntry) UnmarshalYAML added in v0.2.0

func (this *AuthorizationSimpleEntry) UnmarshalYAML(node *yaml.Node) error

func (*AuthorizationSimpleEntry) Validate added in v0.2.0

func (this *AuthorizationSimpleEntry) Validate() error

type AuthorizationV

type AuthorizationV interface {
	Types() []string
	FeatureFlags() []string
	// contains filtered or unexported methods
}

type AuthorizationVFactory added in v0.2.0

type AuthorizationVFactory func() AuthorizationV

func RegisterAuthorizationV added in v0.2.0

func RegisterAuthorizationV(factory AuthorizationVFactory) AuthorizationVFactory

type Configuration

type Configuration struct {
	Ssh Ssh `yaml:"ssh"`

	// Session defines how new and existing sessions (a connection relates to) should be treated by the service.
	// These session should not be mixed up with [ssh sessions].
	//
	// [ssh sessions]: https://datatracker.ietf.org/doc/html/rfc4254#section-6
	Session Session `yaml:"session"`

	Flows Flows `yaml:"flows"`

	HouseKeeping HouseKeeping `yaml:"housekeeping"`

	Alternatives Alternatives `yaml:"alternatives"`

	StartMessage template.String `yaml:"startMessage,omitempty"`
}

func (Configuration) IsEqualTo

func (this Configuration) IsEqualTo(other any) bool

func (*Configuration) LoadFromFile

func (this *Configuration) LoadFromFile(fn string) error

func (*Configuration) LoadFromYaml

func (this *Configuration) LoadFromYaml(reader io.Reader, fn string) error

func (*Configuration) SetDefaults

func (this *Configuration) SetDefaults() error

func (*Configuration) Trim

func (this *Configuration) Trim() error

func (*Configuration) UnmarshalYAML

func (this *Configuration) UnmarshalYAML(node *yaml.Node) error

func (*Configuration) Validate

func (this *Configuration) Validate() error

type Environment

type Environment struct {
	V EnvironmentV
}

func (Environment) IsEqualTo

func (this Environment) IsEqualTo(other any) bool

func (*Environment) MarshalYAML

func (this *Environment) MarshalYAML() (any, error)

func (*Environment) SetDefaults

func (this *Environment) SetDefaults() error

func (*Environment) Trim

func (this *Environment) Trim() error

func (*Environment) UnmarshalYAML

func (this *Environment) UnmarshalYAML(node *yaml.Node) error

func (*Environment) Validate

func (this *Environment) Validate() error

type EnvironmentDocker added in v0.4.0

type EnvironmentDocker struct {
	LoginAllowed template.Bool `yaml:"loginAllowed,omitempty"`

	Host       template.String `yaml:"host,omitempty"`
	ApiVersion template.String `yaml:"apiVersion,omitempty"`
	CertPath   template.String `yaml:"certPath,omitempty"`
	TlsVerify  template.Bool   `yaml:"tlsVerify,omitempty"`

	Image                template.String  `yaml:"image"`
	ImagePullPolicy      PullPolicy       `yaml:"imagePullPolicy,omitempty"`
	ImagePullCredentials template.String  `yaml:"imagePullCredentials,omitempty"`
	Networks             template.Strings `yaml:"networks"`
	Volumes              template.Strings `yaml:"volumes,omitempty"`
	Mounts               template.Strings `yaml:"mounts,omitempty"`
	Capabilities         template.Strings `yaml:"capabilities,omitempty"`
	Privileged           template.Bool    `yaml:"privileged,omitempty"`
	DnsServers           template.Strings `yaml:"dnsServers,omitempty"`
	DnsSearch            template.Strings `yaml:"dnsSearch,omitempty"`

	ShellCommand template.Strings `yaml:"shellCommand,omitempty"`
	ExecCommand  template.Strings `yaml:"execCommand,omitempty"`
	SftpCommand  template.Strings `yaml:"sftpCommand,omitempty"`
	Directory    template.String  `yaml:"directory"`
	User         template.String  `yaml:"user,omitempty"`

	Banner template.String `yaml:"banner,omitempty"`

	PortForwardingAllowed template.Bool `yaml:"portForwardingAllowed,omitempty"`
	ImpPublishHost        net.Host      `yaml:"impPublishHost,omitempty"`

	CleanOrphan template.Bool `yaml:"cleanOrphan,omitempty"`
}

func (EnvironmentDocker) FeatureFlags added in v0.4.0

func (this EnvironmentDocker) FeatureFlags() []string

func (EnvironmentDocker) IsEqualTo added in v0.4.0

func (this EnvironmentDocker) IsEqualTo(other any) bool

func (*EnvironmentDocker) SetDefaults added in v0.4.0

func (this *EnvironmentDocker) SetDefaults() error

func (*EnvironmentDocker) Trim added in v0.4.0

func (this *EnvironmentDocker) Trim() error

func (EnvironmentDocker) Types added in v0.4.0

func (this EnvironmentDocker) Types() []string

func (*EnvironmentDocker) UnmarshalYAML added in v0.4.0

func (this *EnvironmentDocker) UnmarshalYAML(node *yaml.Node) error

func (*EnvironmentDocker) Validate added in v0.4.0

func (this *EnvironmentDocker) Validate() error

type EnvironmentDummy added in v0.4.0

type EnvironmentDummy struct {
	ExitCode template.Int64  `yaml:"exitCode,omitempty"`
	Banner   template.String `yaml:"banner,omitempty"`
}

func (EnvironmentDummy) FeatureFlags added in v0.4.0

func (this EnvironmentDummy) FeatureFlags() []string

func (EnvironmentDummy) IsEqualTo added in v0.4.0

func (this EnvironmentDummy) IsEqualTo(other any) bool

func (*EnvironmentDummy) SetDefaults added in v0.4.0

func (this *EnvironmentDummy) SetDefaults() error

func (*EnvironmentDummy) Trim added in v0.4.0

func (this *EnvironmentDummy) Trim() error

func (EnvironmentDummy) Types added in v0.4.0

func (this EnvironmentDummy) Types() []string

func (*EnvironmentDummy) UnmarshalYAML added in v0.4.0

func (this *EnvironmentDummy) UnmarshalYAML(node *yaml.Node) error

func (*EnvironmentDummy) Validate added in v0.4.0

func (this *EnvironmentDummy) Validate() error

type EnvironmentKubernetes added in v0.5.0

type EnvironmentKubernetes struct {
	LoginAllowed template.Bool `yaml:"loginAllowed,omitempty"`

	Config  template.TextMarshaller[kubernetes.Kubeconfig, *kubernetes.Kubeconfig] `yaml:"config,omitempty"`
	Context template.String                                                        `yaml:"context,omitempty"`

	Name                 template.String   `yaml:"name"`
	Namespace            template.String   `yaml:"namespace,omitempty"`
	Os                   sys.Os            `yaml:"os"`
	Arch                 sys.Arch          `yaml:"arch"`
	ServiceAccountName   template.String   `yaml:"serviceAccountName,omitempty"`
	Image                template.String   `yaml:"image"`
	ImagePullPolicy      PullPolicy        `yaml:"imagePullPolicy,omitempty"`
	ImagePullSecretName  template.String   `yaml:"imagePullSecretName,omitempty"`
	ImagePullCredentials template.String   `yaml:"imagePullCredentials,omitempty"`
	ReadyTimeout         template.Duration `yaml:"readyTimeout,omitempty"`
	RemoveTimeout        time.Duration     `yaml:"removeTimeout,omitempty"`
	Capabilities         template.Strings  `yaml:"capabilities,omitempty"`
	Privileged           template.Bool     `yaml:"privileged,omitempty"`
	DnsServers           template.Strings  `yaml:"dnsServers,omitempty"`
	DnsSearch            template.Strings  `yaml:"dnsSearch,omitempty"`

	ShellCommand template.Strings `yaml:"shellCommand,omitempty"`
	ExecCommand  template.Strings `yaml:"execCommand,omitempty"`
	SftpCommand  template.Strings `yaml:"sftpCommand,omitempty"`
	Directory    template.String  `yaml:"directory"`
	User         template.String  `yaml:"user,omitempty"`
	Group        template.String  `yaml:"group,omitempty"`

	Banner                template.String `yaml:"banner,omitempty"`
	PortForwardingAllowed template.Bool   `yaml:"portForwardingAllowed,omitempty"`

	CleanOrphan template.Bool `yaml:"cleanOrphan,omitempty"`
}

func (EnvironmentKubernetes) FeatureFlags added in v0.5.0

func (this EnvironmentKubernetes) FeatureFlags() []string

func (EnvironmentKubernetes) IsEqualTo added in v0.5.0

func (this EnvironmentKubernetes) IsEqualTo(other any) bool

func (*EnvironmentKubernetes) SetDefaults added in v0.5.0

func (this *EnvironmentKubernetes) SetDefaults() error

func (*EnvironmentKubernetes) Trim added in v0.5.0

func (this *EnvironmentKubernetes) Trim() error

func (EnvironmentKubernetes) Types added in v0.5.0

func (this EnvironmentKubernetes) Types() []string

func (*EnvironmentKubernetes) UnmarshalYAML added in v0.5.0

func (this *EnvironmentKubernetes) UnmarshalYAML(node *yaml.Node) error

func (*EnvironmentKubernetes) Validate added in v0.5.0

func (this *EnvironmentKubernetes) Validate() error

type EnvironmentLocal

type EnvironmentLocal struct {
	User UserRequirementTemplate `yaml:",inline"`

	LoginAllowed template.Bool `yaml:"loginAllowed,omitempty"`

	CreateIfAbsent    template.Bool           `yaml:"createIfAbsent,omitempty"`
	UpdateIfDifferent template.Bool           `yaml:"updateIfDifferent,omitempty"`
	Dispose           EnvironmentLocalDispose `yaml:"dispose"`

	Banner template.String `yaml:"banner,omitempty"`

	PortForwardingAllowed template.Bool `yaml:"portForwardingAllowed,omitempty"`
}

func (EnvironmentLocal) FeatureFlags added in v0.2.0

func (this EnvironmentLocal) FeatureFlags() []string

func (EnvironmentLocal) IsEqualTo

func (this EnvironmentLocal) IsEqualTo(other any) bool

func (*EnvironmentLocal) SetDefaults

func (this *EnvironmentLocal) SetDefaults() error

func (*EnvironmentLocal) Trim

func (this *EnvironmentLocal) Trim() error

func (EnvironmentLocal) Types added in v0.2.0

func (this EnvironmentLocal) Types() []string

func (*EnvironmentLocal) UnmarshalYAML

func (this *EnvironmentLocal) UnmarshalYAML(node *yaml.Node) error

func (*EnvironmentLocal) Validate

func (this *EnvironmentLocal) Validate() error

type EnvironmentLocalDispose

type EnvironmentLocalDispose struct {
	DeleteManagedUser        template.Bool `yaml:"deleteManagedUser,omitempty"`
	DeleteManagedUserHomeDir template.Bool `yaml:"deleteManagedUserHomeDir,omitempty"`
	KillManagedUserProcesses template.Bool `yaml:"killManagedUserProcesses,omitempty"`
}

func (EnvironmentLocalDispose) IsEqualTo

func (this EnvironmentLocalDispose) IsEqualTo(other any) bool

func (*EnvironmentLocalDispose) SetDefaults

func (this *EnvironmentLocalDispose) SetDefaults() error

func (*EnvironmentLocalDispose) Trim

func (this *EnvironmentLocalDispose) Trim() error

func (*EnvironmentLocalDispose) UnmarshalYAML

func (this *EnvironmentLocalDispose) UnmarshalYAML(node *yaml.Node) error

func (*EnvironmentLocalDispose) Validate

func (this *EnvironmentLocalDispose) Validate() error

type EnvironmentV

type EnvironmentV interface {
	Types() []string
	FeatureFlags() []string
	// contains filtered or unexported methods
}

type EnvironmentVFactory added in v0.2.0

type EnvironmentVFactory func() EnvironmentV

func RegisterEnvironmentV added in v0.2.0

func RegisterEnvironmentV(factory EnvironmentVFactory) EnvironmentVFactory

type Flow

type Flow struct {
	// Name unique name within the while configuration which identifies the Flow.
	Name FlowName `yaml:"name"`

	// Requirement represents all rules the connection has to meet to be able to be accepted by this flow.
	Requirement Requirement `yaml:"requirement,omitempty"`

	// Authorization defines how a connection can be authorized to get access to this flow.
	Authorization Authorization `yaml:"authorization"`

	// Environment defines to which Environment the connection will be connected ones every step before was successful.
	Environment Environment `yaml:"environment"`
}

Flow represents a dedicated flow within the service.

Each flow has a unique Name where it can be identified with.

Steps

It follows the follows steps:

  1. Check if the current connection meet the defined Requirement.
  2. Register a new session or use an existing one based on Session configuration (configured via root Configuration - because is used by every flow together).
  3. Try to authorize the current connection based on Authorization.
  4. If it was successfully authorized create and run a new Environment.

func (Flow) IsEqualTo

func (this Flow) IsEqualTo(other any) bool

func (*Flow) SetDefaults

func (this *Flow) SetDefaults() error

func (*Flow) Trim

func (this *Flow) Trim() error

func (*Flow) UnmarshalYAML

func (this *Flow) UnmarshalYAML(node *yaml.Node) error

func (*Flow) Validate

func (this *Flow) Validate() error

type FlowName

type FlowName string

func (FlowName) Clone

func (this FlowName) Clone() FlowName

func (FlowName) IsEqualTo

func (this FlowName) IsEqualTo(other any) bool

func (FlowName) IsZero

func (this FlowName) IsZero() bool

func (FlowName) MarshalText

func (this FlowName) MarshalText() (text []byte, err error)

func (*FlowName) Set

func (this *FlowName) Set(text string) error

func (FlowName) String

func (this FlowName) String() string

func (*FlowName) UnmarshalText

func (this *FlowName) UnmarshalText(text []byte) error

func (FlowName) Validate

func (this FlowName) Validate() error

type Flows

type Flows []Flow

Flows defines a set of Flow instances.

func (Flows) IsEqualTo

func (this Flows) IsEqualTo(other any) bool

func (Flows) IsZero added in v0.4.0

func (this Flows) IsZero() bool

func (*Flows) SetDefaults

func (this *Flows) SetDefaults() error

func (*Flows) Trim

func (this *Flows) Trim() error

func (*Flows) UnmarshalYAML added in v0.4.0

func (this *Flows) UnmarshalYAML(node *yaml.Node) error

func (Flows) Validate

func (this Flows) Validate() error

type GroupRequirementTemplate

type GroupRequirementTemplate struct {
	Gid  *template.TextMarshaller[user.GroupId, *user.GroupId] `yaml:"gid,omitempty"`
	Name template.String                                       `yaml:"name,omitempty"`
}

func (GroupRequirementTemplate) IsEqualTo

func (this GroupRequirementTemplate) IsEqualTo(other any) bool

func (GroupRequirementTemplate) Render

func (this GroupRequirementTemplate) Render(key common.StructuredKey, data any) (result user.GroupRequirement, err error)

func (*GroupRequirementTemplate) SetDefaults

func (this *GroupRequirementTemplate) SetDefaults() error

func (*GroupRequirementTemplate) Trim

func (this *GroupRequirementTemplate) Trim() error

func (*GroupRequirementTemplate) UnmarshalYAML

func (this *GroupRequirementTemplate) UnmarshalYAML(node *yaml.Node) error

func (*GroupRequirementTemplate) Validate

func (this *GroupRequirementTemplate) Validate() error

type GroupRequirementTemplates

type GroupRequirementTemplates []GroupRequirementTemplate

func (GroupRequirementTemplates) IsEqualTo

func (this GroupRequirementTemplates) IsEqualTo(other any) bool

func (GroupRequirementTemplates) Render

func (this GroupRequirementTemplates) Render(key common.StructuredKey, data any) (result user.GroupRequirements, err error)

func (*GroupRequirementTemplates) SetDefaults

func (this *GroupRequirementTemplates) SetDefaults() error

func (*GroupRequirementTemplates) Trim

func (this *GroupRequirementTemplates) Trim() error

func (*GroupRequirementTemplates) UnmarshalYAML added in v0.4.0

func (this *GroupRequirementTemplates) UnmarshalYAML(node *yaml.Node) error

func (GroupRequirementTemplates) Validate

func (this GroupRequirementTemplates) Validate() error

type HouseKeeping

type HouseKeeping struct {
	Every        common.Duration `yaml:"every"`
	InitialDelay common.Duration `yaml:"initialDelay"`

	// AutoRepair tells the housekeeping service to repair/cleanup broken or
	// unwanted stuff automatically, if possible. Defaults to DefaultHouseKeepingAutoRepair.
	AutoRepair bool `yaml:"autoRepair"`

	// KeepExpiredFor defines for how long a session should be kept before it will finally delete, although it
	// is already expired. In case of 0 it will be deleted immediately.
	// Defaults to DefaultHouseKeepingKeepExpiredFor
	KeepExpiredFor common.Duration `yaml:"keepExpiredFor"`
}

func (HouseKeeping) IsEqualTo

func (this HouseKeeping) IsEqualTo(other any) bool

func (*HouseKeeping) SetDefaults

func (this *HouseKeeping) SetDefaults() error

func (*HouseKeeping) Trim

func (this *HouseKeeping) Trim() error

func (*HouseKeeping) UnmarshalYAML

func (this *HouseKeeping) UnmarshalYAML(node *yaml.Node) error

func (*HouseKeeping) Validate

func (this *HouseKeeping) Validate() error

type Keys

type Keys struct {
	HostKeys               template.Strings          `yaml:"hostKeys"`
	RsaRestriction         crypto.RsaRestriction     `yaml:"rsaRestriction"`
	DsaRestriction         crypto.DsaRestriction     `yaml:"dsaRestriction"`
	EcdsaRestriction       crypto.EcdsaRestriction   `yaml:"ecdsaRestriction"`
	Ed25519Restriction     crypto.Ed25519Restriction `yaml:"ed25519Restriction"`
	RememberMeNotification template.String           `yaml:"rememberMeNotification"`
}

func (Keys) IsEqualTo

func (this Keys) IsEqualTo(other any) bool

func (Keys) KeyAllowed

func (this Keys) KeyAllowed(in any) (bool, error)

func (*Keys) SetDefaults

func (this *Keys) SetDefaults() error

func (*Keys) Trim

func (this *Keys) Trim() error

func (*Keys) UnmarshalYAML

func (this *Keys) UnmarshalYAML(node *yaml.Node) error

func (*Keys) Validate

func (this *Keys) Validate() error

type LocationError

type LocationError struct {
	File   string
	Line   int
	Column int
	Cause  error
}

func (*LocationError) Error

func (this *LocationError) Error() string

func (*LocationError) Unwrap

func (this *LocationError) Unwrap() error

type PasswordProperties added in v0.2.0

type PasswordProperties struct {
	Allowed            template.Bool `yaml:"allowed"`
	InteractiveAllowed template.Bool `yaml:"interactiveAllowed"`
	EmptyAllowed       template.Bool `yaml:"emptyAllowed"`
}

func (PasswordProperties) IsEqualTo added in v0.2.0

func (this PasswordProperties) IsEqualTo(other any) bool

func (*PasswordProperties) SetDefaults added in v0.2.0

func (this *PasswordProperties) SetDefaults() error

func (*PasswordProperties) Trim added in v0.2.0

func (this *PasswordProperties) Trim() error

func (*PasswordProperties) UnmarshalYAML added in v0.2.0

func (this *PasswordProperties) UnmarshalYAML(node *yaml.Node) error

func (*PasswordProperties) Validate added in v0.2.0

func (this *PasswordProperties) Validate() error

type PreparationMessage added in v0.4.0

type PreparationMessage struct {
	Id   common.Regexp `yaml:"id,omitempty"`
	Flow common.Regexp `yaml:"flow,omitempty"`

	Start  template.String `yaml:"start,omitempty"`
	Update template.String `yaml:"update,omitempty"`
	End    template.String `yaml:"end,omitempty"`
	Error  template.String `yaml:"error,omitempty"`
}

func (PreparationMessage) IsEqualTo added in v0.4.0

func (this PreparationMessage) IsEqualTo(other any) bool

func (*PreparationMessage) SetDefaults added in v0.4.0

func (this *PreparationMessage) SetDefaults() error

func (*PreparationMessage) Trim added in v0.4.0

func (this *PreparationMessage) Trim() error

func (*PreparationMessage) UnmarshalYAML added in v0.4.0

func (this *PreparationMessage) UnmarshalYAML(node *yaml.Node) error

func (*PreparationMessage) Validate added in v0.4.0

func (this *PreparationMessage) Validate() error

type PreparationMessages added in v0.4.0

type PreparationMessages []PreparationMessage

PreparationMessages defines a set of PreparationMessage instances.

func (PreparationMessages) IsEqualTo added in v0.4.0

func (this PreparationMessages) IsEqualTo(other any) bool

func (*PreparationMessages) SetDefaults added in v0.4.0

func (this *PreparationMessages) SetDefaults() error

func (*PreparationMessages) Trim added in v0.4.0

func (this *PreparationMessages) Trim() error

func (*PreparationMessages) UnmarshalYAML added in v0.4.0

func (this *PreparationMessages) UnmarshalYAML(node *yaml.Node) error

func (PreparationMessages) Validate added in v0.4.0

func (this PreparationMessages) Validate() error

type PullPolicy added in v0.4.0

type PullPolicy uint8
const (
	PullPolicyIfAbsent PullPolicy = iota
	PullPolicyAlways
	PullPolicyNever
)

func (PullPolicy) Clone added in v0.4.0

func (this PullPolicy) Clone() PullPolicy

func (PullPolicy) IsEqualTo added in v0.4.0

func (this PullPolicy) IsEqualTo(other any) bool

func (PullPolicy) IsZero added in v0.4.0

func (this PullPolicy) IsZero() bool

func (PullPolicy) MarshalText added in v0.4.0

func (this PullPolicy) MarshalText() (text []byte, err error)

func (*PullPolicy) Set added in v0.4.0

func (this *PullPolicy) Set(text string) error

func (PullPolicy) String added in v0.4.0

func (this PullPolicy) String() string

func (*PullPolicy) UnmarshalText added in v0.4.0

func (this *PullPolicy) UnmarshalText(text []byte) error

func (PullPolicy) Validate added in v0.4.0

func (this PullPolicy) Validate() error

type Ref added in v0.5.0

type Ref struct {
	// contains filtered or unexported fields
}

func (*Ref) Get added in v0.5.0

func (this *Ref) Get() *Configuration

func (*Ref) GetFilename added in v0.5.0

func (this *Ref) GetFilename() string

func (Ref) IsEqualTo added in v0.5.0

func (this Ref) IsEqualTo(other any) bool

func (Ref) IsZero added in v0.5.0

func (this Ref) IsZero() bool

func (*Ref) MakeAbsolute added in v0.5.0

func (this *Ref) MakeAbsolute() error

func (Ref) MarshalText added in v0.5.0

func (this Ref) MarshalText() (text []byte, err error)

func (*Ref) Set added in v0.5.0

func (this *Ref) Set(text string) error

func (Ref) String added in v0.5.0

func (this Ref) String() string

func (*Ref) UnmarshalText added in v0.5.0

func (this *Ref) UnmarshalText(text []byte) error

type Requirement

type Requirement struct {
	IncludedRequestingName common.Regexp `yaml:"includedRequestingName,omitempty"`
	ExcludedRequestingName common.Regexp `yaml:"excludedRequestingName,omitempty"`
}

func (Requirement) IsEqualTo

func (this Requirement) IsEqualTo(other any) bool

func (*Requirement) SetDefaults

func (this *Requirement) SetDefaults() error

func (*Requirement) Trim

func (this *Requirement) Trim() error

func (*Requirement) UnmarshalYAML

func (this *Requirement) UnmarshalYAML(node *yaml.Node) error

func (*Requirement) Validate

func (this *Requirement) Validate() error

type Session

type Session struct {
	V SessionV
}

func (Session) IsEqualTo

func (this Session) IsEqualTo(other any) bool

func (*Session) MarshalYAML

func (this *Session) MarshalYAML() (any, error)

func (*Session) SetDefaults

func (this *Session) SetDefaults() error

func (*Session) Trim

func (this *Session) Trim() error

func (*Session) UnmarshalYAML

func (this *Session) UnmarshalYAML(node *yaml.Node) error

func (*Session) Validate

func (this *Session) Validate() error

type SessionFs

type SessionFs struct {
	// IdleTimeout represents the duration a session can be idle until it will be forcibly closed,
	// cleaned up and no new access is possible. 0 means no limitation at all.
	// Defaults to DefaultSessionIdleTimeout
	IdleTimeout common.Duration `yaml:"idleTimeout"`

	// MaxTimeout represents the maximum duration a whole session can last, regardless if it is idle
	// or active until it will be forcibly closed, cleaned up and no new access is possible. 0 means
	// no limitation at all. Defaults to DefaultSessionMaxTimeout
	MaxTimeout common.Duration `yaml:"maxTimeout"`

	// MaxConnections represents the maximum amount of connections that are related to one session. More than
	// this amount means that all new connections will be forcibly closed while connection process.
	// 0 means no limitation at all. Defaults to DefaultSessionMaxConnections
	MaxConnections uint16 `yaml:"maxConnections"`

	// Storage defines where are session.Fs are stored. Defaults to DefaultSessionFsStorage
	Storage string `yaml:"storage"`

	// FileMode defines with which permissions the files should be stored. Defaults to DefaultSessionFsFileMode.
	FileMode sys.FileMode `yaml:"fileMode"`
}

SessionFs defines an implementation of Session on file system base.

func (SessionFs) FeatureFlags added in v0.2.0

func (this SessionFs) FeatureFlags() []string

func (SessionFs) IsEqualTo

func (this SessionFs) IsEqualTo(other any) bool

func (*SessionFs) SetDefaults

func (this *SessionFs) SetDefaults() error

func (*SessionFs) Trim

func (this *SessionFs) Trim() error

func (SessionFs) Types added in v0.2.0

func (this SessionFs) Types() []string

func (*SessionFs) UnmarshalYAML

func (this *SessionFs) UnmarshalYAML(node *yaml.Node) error

func (*SessionFs) Validate

func (this *SessionFs) Validate() error

type SessionV

type SessionV interface {
	Types() []string
	FeatureFlags() []string
	// contains filtered or unexported methods
}

type SessionVFactory added in v0.2.0

type SessionVFactory func() SessionV

func RegisterSessionV added in v0.2.0

func RegisterSessionV(factory SessionVFactory) SessionVFactory

type Ssh

type Ssh struct {
	// Addresses which the service will bind to. This can be more than one but at least one.
	// Defaults to DefaultSshAddresses.
	Addresses net.NetAddresses `yaml:"addresses"`

	// Keys represents all key related settings of the service.
	Keys Keys `yaml:"keys"`

	// IdleTimeout represents the duration a connection can be idle until it will be forcibly closed.
	// 0 means no limitation at all. Defaults to DefaultSshIdleTimeout.
	IdleTimeout common.Duration `yaml:"idleTimeout"`

	// MaxTimeout represents the maximum duration a whole connection can last, regardless if it is idle or active
	// until it will be forcibly closed. 0 means no limitation at all. Defaults to DefaultSshMaxTimeout.
	MaxTimeout common.Duration `yaml:"maxTimeout"`

	// MaxAuthTries represents the maximum amount of tries a client can do while a connection with different
	// authorizations before the connection will be forcibly closed. 0 means no limitation at all.
	// Defaults to DefaultSshMaxAuthTries.
	MaxAuthTries uint8 `yaml:"maxAuthTries"`

	// MaxConnections defines how many connection can be connected to this service in parallel. If there is a new
	// connection created which exceeds this number, this will be closed immediately.
	// Defaults to DefaultSshMaxConnections.
	MaxConnections uint32 `yaml:"maxConnections"`

	// Banner will be displayed if the clients connects to the server before any other action takes place.
	Banner template.String `yaml:"banner,omitempty"`

	// PreparationMessages will be displayed if any kind of preparation is required before the ssh session can
	// finally be used.
	PreparationMessages PreparationMessages `yaml:"preparationMessages,omitempty"`
}

Ssh defines how the ssh part of the service should be defined.

func (Ssh) IsEqualTo

func (this Ssh) IsEqualTo(other any) bool

func (*Ssh) SetDefaults

func (this *Ssh) SetDefaults() error

func (*Ssh) Trim

func (this *Ssh) Trim() error

func (*Ssh) UnmarshalYAML

func (this *Ssh) UnmarshalYAML(node *yaml.Node) error

func (*Ssh) Validate

func (this *Ssh) Validate() error

type UserRequirementTemplate

type UserRequirementTemplate struct {
	Name        template.String                             `yaml:"name,omitempty"`
	DisplayName template.String                             `yaml:"displayName,omitempty"`
	Uid         *template.TextMarshaller[user.Id, *user.Id] `yaml:"uid,omitempty"`
	Group       GroupRequirementTemplate                    `yaml:"group,omitempty"`
	Groups      GroupRequirementTemplates                   `yaml:"groups,omitempty"`
	Shell       template.String                             `yaml:"shell,omitempty"`
	HomeDir     template.String                             `yaml:"homeDir,omitempty"`
	Skel        template.String                             `yaml:"skel,omitempty"`
}

func (UserRequirementTemplate) IsEqualTo

func (this UserRequirementTemplate) IsEqualTo(other any) bool

func (UserRequirementTemplate) Render

func (this UserRequirementTemplate) Render(key common.StructuredKey, data any) (_ *user.Requirement, err error)

func (*UserRequirementTemplate) SetDefaults

func (this *UserRequirementTemplate) SetDefaults() error

func (*UserRequirementTemplate) Trim

func (this *UserRequirementTemplate) Trim() error

func (*UserRequirementTemplate) UnmarshalYAML

func (this *UserRequirementTemplate) UnmarshalYAML(node *yaml.Node) error

func (*UserRequirementTemplate) Validate

func (this *UserRequirementTemplate) Validate() error

Jump to

Keyboard shortcuts

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