forked from ryyst/kalzu-value-store
Add API endpoints for resource metadata management (ownership & permissions)
New types: UpdateResourceMetadataRequest and GetResourceMetadataResponse in types.go AuthService methods: StoreResourceMetadata and GetResourceMetadata in auth/auth.go Handlers: getResourceMetadataHandler and updateResourceMetadataHandler in server/handlers.go Routes: /kv/{path}/metadata (GET for read, PUT for update) with auth middleware in server/routes.go Enables fine-grained control over KV path ownership, group assignments, and POSIX-inspired permissions.
This commit is contained in:
@@ -131,6 +131,23 @@ type CreateTokenResponse struct {
|
||||
ExpiresAt int64 `json:"expires_at"`
|
||||
}
|
||||
|
||||
// Resource Metadata Management API structures
|
||||
type UpdateResourceMetadataRequest struct {
|
||||
OwnerUUID string `json:"owner_uuid,omitempty"`
|
||||
GroupUUID string `json:"group_uuid,omitempty"`
|
||||
Permissions int `json:"permissions,omitempty"`
|
||||
TTL string `json:"ttl,omitempty"`
|
||||
}
|
||||
|
||||
type GetResourceMetadataResponse struct {
|
||||
OwnerUUID string `json:"owner_uuid"`
|
||||
GroupUUID string `json:"group_uuid"`
|
||||
Permissions int `json:"permissions"`
|
||||
TTL string `json:"ttl"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
UpdatedAt int64 `json:"updated_at"`
|
||||
}
|
||||
|
||||
// Cluster and member management types
|
||||
type Member struct {
|
||||
ID string `json:"id"`
|
||||
@@ -277,4 +294,4 @@ type Config struct {
|
||||
// Anonymous access control (Issue #5)
|
||||
AllowAnonymousRead bool `yaml:"allow_anonymous_read"` // Allow unauthenticated read access to KV endpoints
|
||||
AllowAnonymousWrite bool `yaml:"allow_anonymous_write"` // Allow unauthenticated write access to KV endpoints
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user