Documentation
¶
Index ¶
- Variables
- type Controller
- type DSLOption
- type DynamicValues
- type GetDto
- type KV
- type Option
- type RemoveDto
- type Service
- func (x *Service) Get(keys map[string]int64) (values map[string]interface{}, err error)
- func (x *Service) Load() (err error)
- func (x *Service) Remove(key string) (err error)
- func (x *Service) Set(update map[string]interface{}) (err error)
- func (x *Service) Sync(option *SyncOption) (err error)
- func (x *Service) Update(values map[string]interface{}) (err error)
- type SetDto
- type SyncOption
Constants ¶
This section is empty.
Variables ¶
View Source
var DEFAULT = DynamicValues{ SessionTTL: time.Hour, LoginTTL: time.Minute * 15, LoginFailures: 5, IpLoginFailures: 10, IpWhitelist: []string{}, IpBlacklist: []string{}, PwdStrategy: 1, PwdTTL: time.Hour * 24 * 365, }
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
KVService *Service
}
func (*Controller) Get ¶
func (x *Controller) Get(_ context.Context, c *app.RequestContext)
func (*Controller) Remove ¶
func (x *Controller) Remove(_ context.Context, c *app.RequestContext)
func (*Controller) Set ¶
func (x *Controller) Set(_ context.Context, c *app.RequestContext)
type DynamicValues ¶
type DynamicValues struct {
// session period (seconds)
// User inactivity for 1 hour, session will end
SessionTTL time.Duration `json:"session_ttl"`
// login lockout time
// Locked for 15 minutes
LoginTTL time.Duration `json:"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 `json:"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 `json:"ip_login_failures"`
// IP whitelist
// Whitelisting IPs does not restrict login failure lockouts
IpWhitelist []string `json:"ip_whitelist"`
// IP blacklist
// will ban all access
IpBlacklist []string `json:"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 `json:"pwd_strategy"`
// password validity period
// After the password expires, it is mandatory to change the password, 0: permanently valid
PwdTTL time.Duration `json:"pwd_ttl"`
// Public Cloud
// Supported: Tencent Cloud `tencent`
// Plan: AWS `aws`, Alibaba Cloud `aliyun`
Cloud string `json:"cloud"`
// Tencent Cloud API Secret Id
// It is recommended to use CAM to assign the required permissions
TencentSecretId string `json:"tencent_secret_id"`
// Tencent Cloud API Secret Key
TencentSecretKey string `json:"tencent_secret_key,omitempty"`
// Tencent Cloud COS bucket name
TencentCosBucket string `json:"tencent_cos_bucket,omitempty"`
// Tencent Cloud COS bucket region, for example: ap-guangzhou
TencentCosRegion string `json:"tencent_cos_region"`
// Tencent Cloud COS bucket pre-signature validity period, unit: second
TencentCosExpired int `json:"tencent_cos_expired"`
// Tencent Cloud COS bucket upload size limit, unit: KB
TencentCosLimit int64 `json:"tencent_cos_limit"`
// Enterprise Collaboration
// Feishu App ID
FeishuAppId string `json:"feishu_app_id"`
// Feishu application key
FeishuAppSecret string `json:"feishu_app_secret,omitempty"`
// Feishu event subscription security verification data key
FeishuEncryptKey string `json:"feishu_encrypt_key,omitempty"`
// Feishu Event Subscription Verification Token
FeishuVerificationToken string `json:"feishu_verification_token,omitempty"`
// Third-party registration-free authorization code redirection address
RedirectUrl string `json:"redirect_url"`
// Public email service SMTP address
EmailHost string `json:"email_host"`
// Public email SMTP port number (SSL)
EmailPort string `json:"email_port"`
// Public email username
EmailUsername string `json:"email_username"`
// Public email password
EmailPassword string `json:"email_password,omitempty"`
// Openapi url
OpenapiUrl string `json:"openapi_url"`
// Openapi application authentication key
// API gateway application authentication https://cloud.tencent.com/document/product/628/55088
OpenapiKey string `json:"openapi_key"`
// Openapi Application Authentication Secret
OpenapiSecret string `json:"openapi_secret,omitempty"`
// DSL Control Variables
DSL map[string]*DSLOption `json:"dsl,omitempty"`
}
type Option ¶
type Option func(x *KV)
func SetDynamicValues ¶
func SetDynamicValues(v *DynamicValues) Option
func SetKeyValue ¶
func SetNamespace ¶
type RemoveDto ¶
type RemoveDto struct {
Key string `path:"key,required" vd:"regexp('^[a-z_]+$');msg:'Keys must be lowercase letters with underscores'"`
}
type Service ¶
type Service struct {
*KV
}
func (*Service) Sync ¶
func (x *Service) Sync(option *SyncOption) (err error)
type SetDto ¶
type SetDto struct {
Data map[string]interface{} `json:"data,required" vd:"len($)>0 && range($,regexp('^[a-z_]+$',#k));msg:'Keys must be lowercase letters with underscores'"`
}
type SyncOption ¶
type SyncOption struct {
Updated chan *DynamicValues
Err chan error
}
Click to show internal directories.
Click to hide internal directories.