values

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2024 License: BSD-3-Clause Imports: 8 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Controller

type Controller struct {
	Service *Service
}

func (*Controller) Get

func (*Controller) Remove

func (x *Controller) Remove(_ context.Context, c *app.RequestContext)

func (*Controller) Set

type DynamicValues

type DynamicValues struct {
	// session period (seconds)
	// User inactivity for 1 hour, session will end
	SessionTTL time.Duration `yaml:"session_ttl"`
	// login lockout time
	// Locked for 15 minutes
	LoginTTL time.Duration `yaml:"login_ttl"`
	// Maximum number of login failures for a user
	// If you fail to log in 5 times consecutively within a limited time (lockout time),
	// your account will be locked
	LoginFailures int64 `yaml:"login_failures"`
	// Maximum number of login failures for the user's host IP
	// If the same host IP fails to log in 10 times continuously, the IP will be locked (period is the login_ttl)
	IpLoginFailures int64 `yaml:"ip_login_failures"`
	// IP whitelist
	// Whitelisting IPs does not restrict login failure lockouts
	IpWhitelist []string `yaml:"ip_whitelist"`
	// IP blacklist
	// will ban all access
	IpBlacklist []string `yaml:"ip_blacklist"`
	// password strength
	// 0: unlimited
	// 1: uppercase and lowercase letters
	// 2: uppercase and lowercase letters, numbers
	// 3: uppercase and lowercase letters, numbers, special characters
	PwdStrategy int `yaml:"pwd_strategy"`
	// password validity period
	// After the password expires, it is mandatory to change the password, 0: permanently valid
	PwdTTL time.Duration `yaml:"pwd_ttl"`
	// Public Cloud
	// Supported: Tencent Cloud `tencent`
	// Plan: AWS `aws`
	Cloud string `yaml:"cloud"`
	// Tencent Cloud API Secret Id
	// It is recommended to use CAM to assign the required permissions
	TencentSecretId string `yaml:"tencent_secret_id"`
	// Tencent Cloud API Secret Key
	TencentSecretKey string `yaml:"tencent_secret_key" secret:"*"`
	// Tencent Cloud COS bucket name
	TencentCosBucket string `yaml:"tencent_cos_bucket"`
	// Tencent Cloud COS bucket region, for example: ap-guangzhou
	TencentCosRegion string `yaml:"tencent_cos_region"`
	// Tencent Cloud COS bucket pre-signature validity period, unit: second
	TencentCosExpired int64 `yaml:"tencent_cos_expired"`
	// Tencent Cloud COS bucket upload size limit, unit: KB
	TencentCosLimit int64 `yaml:"tencent_cos_limit"`
	// Office collaboration platform
	Collaboration string `yaml:"collaboration"`
	// Enterprise Collaboration
	// Lark App ID
	LarkAppId string `yaml:"lark_app_id"`
	// Lark application key
	LarkAppSecret string `yaml:"lark_app_secret" secret:"*"`
	// Lark event subscription security verification data key
	LarkEncryptKey string `yaml:"lark_encrypt_key" secret:"*"`
	// Lark Event Subscription Verification Token
	LarkVerificationToken string `yaml:"lark_verification_token" secret:"*"`
	// Third-party registration-free authorization code redirection address
	RedirectUrl string `yaml:"redirect_url"`
	// Public email service SMTP address
	EmailHost string `yaml:"email_host"`
	// Public email SMTP port number (SSL)
	EmailPort int `yaml:"email_port"`
	// Public email username
	EmailUsername string `yaml:"email_username"`
	// Public email password
	EmailPassword string `yaml:"email_password" secret:"*"`
	// ApiGateway url
	ApiGatewayUrl string `yaml:"api_gateway_url"`
	// Openapi application authentication key
	// API gateway application authentication https://cloud.tencent.com/document/product/628/55088
	ApiGatewayKey string `yaml:"api_gateway_key"`
	// Openapi Application Authentication Secret
	ApiGatewaySecret string `yaml:"api_gateway_secret" secret:"*"`
	// RestControls
	RestControls map[string]*RestControl `yaml:"rest_controls"`
	// Rest Txn Timeout
	RestTxnTimeout time.Duration `yaml:"rest_txn_timeout"`
}

type GetDto

type GetDto struct {
	Keys []string `query:"keys" vd:"omitempty,dive,alphanum"`
}

type Option

type Option func(x *Service)

func SetCipher

func SetCipher(v *cipher.Cipher) Option

func SetKeyValue

func SetKeyValue(v nats.KeyValue) Option

func SetType added in v0.4.5

func SetType(v reflect.Type) Option

type RemoveDto

type RemoveDto struct {
	Key string `path:"key,required" vd:"alphanum"`
}

type RestControl

type RestControl struct {
	Keys       []string `yaml:"keys"`
	Sensitives []string `yaml:"sensitives"`
	Status     bool     `yaml:"status"`
	Event      bool     `yaml:"event"`
}

type Service

type Service struct {
	Type     reflect.Type
	KeyValue nats.KeyValue
	Cipher   *cipher.Cipher
}

func New

func New(options ...Option) *Service

func (*Service) Fetch

func (x *Service) Fetch(v interface{}) (err error)

func (*Service) Get

func (x *Service) Get(keys ...string) (data map[string]interface{}, err error)

func (*Service) Remove

func (x *Service) Remove(keys ...string) (err error)

func (*Service) Set

func (x *Service) Set(update map[string]interface{}) (err error)

func (*Service) Sync

func (x *Service) Sync(v interface{}, update chan interface{}) (err error)

func (*Service) Update

func (x *Service) Update(data interface{}) (err error)

type SetDto

type SetDto struct {
	Update map[string]interface{} `json:"update" vd:"gt=0,dive,keys,alphanum,endkeys,required"`
}

Jump to

Keyboard shortcuts

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