models

package
v0.0.0-...-88d0870 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2024 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppConfig

type AppConfig struct {
	App         Application          `yaml:"application"`
	Azure       AppConfigAzure       `yaml:"azure"`
	Kubernetes  AppConfigKubernetes  `yaml:"kubernetes"`
	Permissions AppConfigPermissions `yaml:"permissions"`
	Support     AppConfigSupport     `yaml:"support"`
}

func AppConfigCreateFromYaml

func AppConfigCreateFromYaml(yamlString string) (c *AppConfig, err error)

type AppConfigAzure

type AppConfigAzure struct {
	RoleAssignment struct {
		Filter struct {
			ResourceId AppConfigFilter `yaml:"resourceId"`
		}

		RoleDefinitions []string
		Ttl             []string
	}

	ResourceGroup struct {
		RoleDefinitionName string `yaml:"roleDefinitionName"`

		Filter struct {
			Name AppConfigFilter `yaml:"name"`
		}

		Tags []AppConfigAzureResourceGroupTag
	}
}

type AppConfigAzureResourceGroupTag

type AppConfigAzureResourceGroupTag struct {
	Name           string
	Label          string
	Description    string
	Type           string
	Default        string
	Placeholder    string
	Validation     AppInputValidation
	Transformation AppInputTransformation
}

type AppConfigFilter

type AppConfigFilter struct {
	Allow string

	Deny string
	// contains filtered or unexported fields
}

func (*AppConfigFilter) String

func (f *AppConfigFilter) String() (ret string)

func (*AppConfigFilter) UnmarshalYAML

func (f *AppConfigFilter) UnmarshalYAML(unmarshal func(interface{}) error) error

func (*AppConfigFilter) Validate

func (f *AppConfigFilter) Validate(val string) bool

type AppConfigKubernetes

type AppConfigKubernetes struct {
	ObjectsPath string `yaml:"objectsPath"`

	ObjectsList map[string]KubernetesObjectList

	RoleBinding AppConfigKubernetesRoleBindingMetaData `yaml:"roleBinding"`

	Namespace AppConfigKubernetesNamespace
}

type AppConfigKubernetesEnvironment

type AppConfigKubernetesEnvironment struct {
	Name        string
	Description string
	Template    string
	Quota       string
}

type AppConfigKubernetesNamespace

type AppConfigKubernetesNamespace struct {
	ClusterRoleName string `yaml:"clusterRoleName"`

	LabelSelector string `yaml:"labelSelector"`

	Filter struct {
		Access AppConfigFilter
		Delete AppConfigFilter
	}

	Validation struct {
		Namespace AppConfigFilter
		Team      AppConfigFilter
	}

	Annotations struct {
		Description   string
		Immortal      string
		NetworkPolicy string `yaml:"networkPolicy"`
	}

	Labels struct {
		Team      string
		ManagedBy string `yaml:"managedBy"`
	}

	Quota struct {
		Team int
	}

	Settings      []AppConfigNamespaceSettings
	NetworkPolicy []AppConfigKubernetesNetworkPolicy `yaml:"networkPolicy"`
}

type AppConfigKubernetesNetworkPolicy

type AppConfigKubernetesNetworkPolicy struct {
	Name        string
	Description string
	Path        string
	Default     bool
	// contains filtered or unexported fields
}

func (*AppConfigKubernetesNetworkPolicy) GetKubernetesObject

func (netpol *AppConfigKubernetesNetworkPolicy) GetKubernetesObject() *networkingV1.NetworkPolicy

func (*AppConfigKubernetesNetworkPolicy) SetKubernetesObject

func (netpol *AppConfigKubernetesNetworkPolicy) SetKubernetesObject(obj *networkingV1.NetworkPolicy)

type AppConfigKubernetesRoleBindingMetaData

type AppConfigKubernetesRoleBindingMetaData struct {
	Annotations map[string]string `yaml:"annotations"`
	Labels      map[string]string `yaml:"labels"`
}

type AppConfigNamespaceSettings

type AppConfigNamespaceSettings struct {
	Name           string
	Label          string
	Description    string
	K8sType        string
	K8sName        string
	K8sValue       string
	Type           string
	Default        string
	Placeholder    string
	Validation     AppInputValidation
	Transformation AppInputTransformation
}

type AppConfigPermissions

type AppConfigPermissions struct {
	AdminGroups []string                  `yaml:"adminGroups"`
	Teams       map[string]*AppConfigTeam `yaml:"teams"`
}

type AppConfigSupport

type AppConfigSupport struct {
	Pagerduty AppConfigSupportPagerduty `yaml:"pagerduty"`
}

type AppConfigSupportPagerduty

type AppConfigSupportPagerduty struct {
	AuthToken                 string                              `yaml:"authToken"`
	ClientURL                 string                              `yaml:"clientURL"`
	Services                  []AppConfigSupportPagerdutyServices `yaml:"services"`
	EndpointNameTemplate      string                              `yaml:"endpointNameTemplate"`
	EndpointServiceRegexp     string                              `yaml:"endpointServiceRegexp"`
	EndpointIntegrationRegexp string                              `yaml:"endpointIntegrationRegexp"`
}

type AppConfigSupportPagerdutyEndpoint

type AppConfigSupportPagerdutyEndpoint struct {
	RoutingKey string `yaml:"routingKey"`
}

type AppConfigSupportPagerdutyServices

type AppConfigSupportPagerdutyServices struct {
	Name           string `yaml:"name"`
	IntegrationKey string `yaml:"integrationKey"`
}

type AppConfigTeam

type AppConfigTeam struct {
	Name    string `yaml:"name"`
	IsAdmin bool   `yaml:"isAdmin"`
	Azure   struct {
		Group            *string `yaml:"group"`
		ServicePrincipal *string `yaml:"servicePrincipal"`
	} `yaml:"azure"`
}

type AppInputTransformation

type AppInputTransformation struct {
	Convert string `yaml:"convert"`
}

func (*AppInputTransformation) Transform

func (v *AppInputTransformation) Transform(value string) (ret *string)

type AppInputValidation

type AppInputValidation struct {
	Regexp   string
	Required bool
}

func (*AppInputValidation) HumanizeString

func (v *AppInputValidation) HumanizeString() (ret string)

func (*AppInputValidation) Validate

func (v *AppInputValidation) Validate(value string) (status bool)

type Application

type Application struct {
	Features map[string]bool

	Session struct {
		Type           string
		Expiry         time.Duration
		CookieName     string `yaml:"cookieName"`
		CookieSecure   bool   `yaml:"cookieSecure"`
		CookieDomain   string `yaml:"cookieDomain"`
		CookieSameSite string `yaml:"cookieSameSite"`

		Internal struct {
		} `yaml:"internal"`

		SecureCookie struct {
			HashKey  string `yaml:"hashKey"`
			BlockKey string `yaml:"blockKey"`
		} `yaml:"secureCookie"`

		Redis struct {
			Addr      string        `yaml:"addr"`
			Timeout   time.Duration `yaml:"timeout"`
			MaxActive int           `yaml:"maxActive"`
			Password  string        `yaml:"password"`
			Database  string        `yaml:"database"`
			Delim     string        `yaml:"delim"`
		} `yaml:"redis"`
	}

	Csrf struct {
		Secret string `yaml:"secret"`
	} `yaml:"csrf"`

	Oauth OAuthConfig `yaml:"oauth"`

	Notification struct {
		Channels []string
		Message  string
	}
}

func (*Application) FeatureIsEnabled

func (a *Application) FeatureIsEnabled(main, branch string) bool

func (*Application) MainFeatureIsEnabled

func (a *Application) MainFeatureIsEnabled(main string) bool

type ApplicationFeatures

type ApplicationFeatures map[string]bool

type ApplicationKubernetesNetworkPolicy

type ApplicationKubernetesNetworkPolicy struct {
	Name        string
	Description string
}

type KubernetesNamespace

type KubernetesNamespace struct {
	*v1.Namespace
}

func (*KubernetesNamespace) SettingsApply

func (n *KubernetesNamespace) SettingsApply(settings map[string]string, config AppConfigKubernetes)

func (*KubernetesNamespace) SettingsExtract

func (n *KubernetesNamespace) SettingsExtract(config AppConfigKubernetes) (ret map[string]string)

type KubernetesObject

type KubernetesObject struct {
	Name   string
	Path   string
	Object runtime.Object
}

type KubernetesObjectList

type KubernetesObjectList []KubernetesObject

type OAuthConfig

type OAuthConfig struct {
	Provider string `yaml:"provider"`

	UsernamePrefix string `yaml:"usernamePrefix"`
	GroupPrefix    string `yaml:"groupPrefix"`

	RedirectUrl string `yaml:"redirectUrl"`

	Azure struct {
		Tenant       string `yaml:"tenant"`
		ClientId     string `yaml:"clientId"`
		ClientSecret string `yaml:"clientSecret"`
	} `yaml:"azuread"`

	Filter struct {
		UsernameWhitelist string `yaml:"usernameWhitelist"`
		UsernameBlacklist string `yaml:"usernameBlacklist"`
	} `yaml:"filter"`
}

type PagerDutyEndpoint

type PagerDutyEndpoint struct {
	Name       string `json:"name"`
	RoutingKey string `json:"routingKey"`
}

type Team

type Team struct {
	Name                 string                     `json:"-"`
	K8sPermissions       []TeamK8sPermissions       `json:"-"`
	AzureRoleAssignments []TeamAzureRoleAssignments `json:"-"`
}

func (*Team) String

func (t *Team) String() string

type TeamAzureRoleAssignments

type TeamAzureRoleAssignments struct {
	PrincipalId string `yaml:"principalid"`
	Role        string `yaml:"role"`
}

type TeamK8sPermissions

type TeamK8sPermissions struct {
	Name            string                          `yaml:"name"`
	Groups          []string                        `yaml:"groups"`
	Users           []string                        `yaml:"users"`
	ServiceAccounts []TeamPermissionsServiceAccount `yaml:"serviceaccounts"`
	ClusterRole     string                          `yaml:"clusterrole"`
}

type TeamPermissionsServiceAccount

type TeamPermissionsServiceAccount struct {
	Name      string `yaml:"name"`
	Namespace string `yaml:"namespace"`
}

type TeamServiceConnections

type TeamServiceConnections struct {
	Token string `yaml:"token"`
}

type User

type User struct {
	Uuid     string   `json:"Uuid"`
	Id       string   `json:"id"`
	Username string   `json:"upn"`
	Email    string   `json:"mail"`
	Groups   []string `json:"groups"`
	IsAdmin  bool     `json:"isAdmin"`
	// contains filtered or unexported fields
}

func UserCreateFromJson

func UserCreateFromJson(jsonString string, config *AppConfig) (u *User, err error)

func (*User) ApplyAppConfig

func (u *User) ApplyAppConfig(config *AppConfig)

func (*User) GetTeam

func (u *User) GetTeam(name string) (*AppConfigTeam, error)

func (*User) GetTeams

func (u *User) GetTeams() (teamList []*AppConfigTeam)

func (*User) IsMemberOf

func (u *User) IsMemberOf(name string) bool

func (*User) LoggedIn

func (u *User) LoggedIn() bool

func (*User) String

func (u *User) String() string

func (*User) ToJson

func (u *User) ToJson() (jsonString string, error error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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