Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func StoreMigrate ¶
Types ¶
type KeyPair ¶
type KeyPair struct {
Name string `gorm:"column:name;type:varchar(50);NOT NULL"`
Perm string `gorm:"column:perm;type:varchar(50);NOT NULL"`
Secret string `gorm:"column:secret;type:varchar(255);NOT NULL"`
Extra string `gorm:"column:extra;type:varchar(255);"`
Token Token `gorm:"column:token;type:varchar(512);uniqueIndex:token_token_IDX,type:hash;not null"`
CreateTime time.Time `gorm:"column:createTime;type:datetime;NOT NULL"`
IsDeleted int `gorm:"column:is_deleted;index;default:0;NOT NULL"`
}
func (*KeyPair) CreateTimeBytes ¶
type Miner ¶
type Miner struct {
ID uint64 `gorm:"column:id;primary_key;bigint(20) unsigned AUTO_INCREMENT"`
Miner storedAddress `gorm:"column:miner;type:varchar(128);uniqueIndex:miner_idx;NOT NULL"`
User string `gorm:"column:user;type:varchar(50);NOT NULL"`
OpenMining *bool `gorm:"column:open_mining;default:1;comment:0-false,1-true"`
OrmTimestamp
}
type OrmTimestamp ¶
type Signer ¶
type Signer struct {
ID uint64 `gorm:"column:id;primary_key;bigint(20) unsigned AUTO_INCREMENT;"`
Signer storedAddress `gorm:"column:signer;type:varchar(128);uniqueIndex:user_signer_idx,priority:2;NOT NULL"`
User string `gorm:"column:user;type:varchar(50);uniqueIndex:user_signer_idx,priority:1;NOT NULL"`
OrmTimestamp
}
type Store ¶
type Store interface {
// token
Get(token Token) (*KeyPair, error)
ByName(name string) ([]*KeyPair, error)
Put(kp *KeyPair) error
Delete(token Token) error
Recover(token Token) error
Has(token Token) (bool, error)
List(skip, limit int64) ([]*KeyPair, error)
UpdateToken(kp *KeyPair) error
// user
HasUser(name string) (bool, error)
GetUser(name string) (*User, error)
VerifyUsers(names []string) error
PutUser(*User) error
UpdateUser(*User) error
ListUsers(skip, limit int64, state core.UserState) ([]*User, error)
DeleteUser(name string) error
RecoverUser(name string) error
// rate limit
GetRateLimits(name, id string) ([]*UserRateLimit, error)
PutRateLimit(limit *UserRateLimit) (string, error)
DelRateLimit(name, id string) error
// miner-user(1-1)
// first returned bool, 'miner' is created(true) or updated(false)
UpsertMiner(mAddr address.Address, userName string, openMining *bool) (bool, error)
HasMiner(mAddr address.Address) (bool, error)
MinerExistInUser(mAddr address.Address, userName string) (bool, error)
GetUserByMiner(mAddr address.Address) (*User, error)
ListMiners(user string) ([]*Miner, error)
// first returned bool, if miner exists(true) or false
DelMiner(mAddr address.Address) (bool, error)
// signer-user(n-n)
RegisterSigner(addr address.Address, userName string) error
SignerExistInUser(addr address.Address, userName string) (bool, error)
ListSigner(userName string) ([]*Signer, error)
UnregisterSigner(addr address.Address, userName string) error
// has signer in system
HasSigner(addr address.Address) (bool, error)
// delete all signers
DelSigner(addr address.Address) (bool, error)
// all users including the specified signer
GetUserBySigner(addr address.Address) ([]*User, error)
Version() (uint64, error)
MigrateToV1() error
MigrateToV2() error
MigrateToV3() error
}
type StoreVersion ¶
func (*StoreVersion) Bytes ¶
func (s *StoreVersion) Bytes() ([]byte, error)
func (*StoreVersion) FromBytes ¶
func (s *StoreVersion) FromBytes(bytes []byte) error
type User ¶
type User struct {
Id string `gorm:"column:id;type:varchar(64);primary_key"`
Name string `gorm:"column:name;type:varchar(50);uniqueIndex:users_name_IDX,type:btree;not null"`
Comment string `gorm:"column:comment;type:varchar(255);"`
State core.UserState `gorm:"column:state;type:tinyint(4);default:0;NOT NULL"`
CreateTime time.Time `gorm:"column:createTime;type:datetime;NOT NULL"`
UpdateTime time.Time `gorm:"column:updateTime;type:datetime;NOT NULL"`
IsDeleted int `gorm:"column:is_deleted;index;default:0;NOT NULL"`
}
func (*User) CreateTimeBytes ¶
type UserRateLimit ¶
type UserRateLimit struct {
Id string `gorm:"column:id;type:varchar(64);primary_key"`
Name string `gorm:"column:name;type:varchar(50);index:user_service_api_IDX;not null" binding:"required"`
Service string `gorm:"column:service;type:varchar(50);index:user_service_api_IDX"`
API string `gorm:"column:api;type:varchar(50);index:user_service_api_IDX"`
ReqLimit ReqLimit `gorm:"column:reqLimit;type:varchar(256)"`
}
we are perpose to support limit user requests with `Service`/`Service.API` ferther, so we add their declar in `UserRateLimit`
func (*UserRateLimit) LimitKey ¶
func (l *UserRateLimit) LimitKey() string
Click to show internal directories.
Click to hide internal directories.