12345678910111213141516171819202122232425262728293031323334353637383940 |
- package kvdb
- import "errors"
- var (
- // ErrUserNotFound is returned when a user doesn't exist
- ErrUserNotFound = errors.New("user not found")
- // ErrUserAlreadyExists is returned when trying to create a user that already exists
- ErrUserAlreadyExists = errors.New("user already exists")
- )
- // User represents a user in the system
- type User struct {
- AccessKeyID string `json:"access_key_id"`
- SecretAccessKey string `json:"secret_access_key"`
- AccountID string `json:"account_id"`
- Username string `json:"username"`
- Email string `json:"email"`
- }
- // KVDB defines the interface for key-value database operations
- type KVDB interface {
- // User operations
- GetUser(accessKeyID string) (*User, error)
- CreateUser(user *User) error
- UpdateUser(user *User) error
- DeleteUser(accessKeyID string) error
- ListUsers() ([]*User, error)
- // User validation
- ValidateCredentials(accessKeyID, secretAccessKey string) (*User, error)
- // Bucket operations
- ResolveBucketName(bucketName string) (accountID string, bucketID string, err error)
- GetBucketConfig(accountID, bucketID string) (*BucketConfig, error)
- // Close the database
- Close() error
- }
|