package metastore import "time" const AdminTagName = "admin" type User struct { ID string `json:"id"` Username string `json:"username"` Email string `json:"email,omitempty"` PasswordHash string `json:"password_hash"` TagIDs []string `json:"tag_ids"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Disabled bool `json:"disabled"` MaxFileSizeBytes *int64 `json:"max_file_size_bytes,omitempty"` MaxBoxSizeBytes *int64 `json:"max_box_size_bytes,omitempty"` MaxExpirySeconds *int64 `json:"max_expiry_seconds,omitempty"` } type Tag struct { ID string `json:"id"` Name string `json:"name"` Description string `json:"description,omitempty"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Protected bool `json:"protected"` Permissions TagPermissions `json:"permissions"` } type TagPermissions struct { UploadAllowed bool `json:"upload_allowed"` AllowedExpirySeconds []int64 `json:"allowed_expiry_seconds,omitempty"` MaxFileSizeBytes *int64 `json:"max_file_size_bytes,omitempty"` MaxBoxSizeBytes *int64 `json:"max_box_size_bytes,omitempty"` OneTimeDownloadAllowed bool `json:"one_time_download_allowed"` ZipDownloadAllowed bool `json:"zip_download_allowed"` RenewableAllowed bool `json:"renewable_allowed"` RenewOnAccessSeconds int64 `json:"renew_on_access_seconds,omitempty"` RenewOnDownloadSeconds int64 `json:"renew_on_download_seconds,omitempty"` AdminAccess bool `json:"admin_access"` AdminUsersManage bool `json:"admin_users_manage"` AdminSettingsManage bool `json:"admin_settings_manage"` AdminBoxesView bool `json:"admin_boxes_view"` } type Session struct { Token string `json:"token"` CSRFToken string `json:"csrf_token"` UserID string `json:"user_id"` CreatedAt time.Time `json:"created_at"` ExpiresAt time.Time `json:"expires_at"` } type EffectivePermissions struct { UploadAllowed bool AllowedExpirySeconds []int64 MaxFileSizeBytes int64 MaxBoxSizeBytes int64 MaxExpirySeconds int64 OneTimeDownloadAllowed bool ZipDownloadAllowed bool RenewableAllowed bool RenewOnAccessSeconds int64 RenewOnDownloadSeconds int64 AdminAccess bool AdminUsersManage bool AdminSettingsManage bool AdminBoxesView bool } type BootstrapResult struct { AdminTag Tag AdminUser *User AdminLoginEnabled bool }