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.
- Add AllowAnonymousRead and AllowAnonymousWrite config parameters
- Set both to false by default for security
- Apply conditional authentication middleware to KV endpoints:
- GET requires auth if AllowAnonymousRead is false
- PUT requires auth if AllowAnonymousWrite is false
- DELETE always requires authentication (no anonymous delete)
- Update integration tests to enable anonymous access for testing
- Maintain backward compatibility when AuthEnabled is false
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Move 300+ lines of type definitions to types package
- Update all type references throughout main.go
- Extract all structs: StoredValue, User, Group, APIToken, etc.
- Include all API request/response types
- Move permission constants and configuration types
- Maintain zero functional changes
Reduced main.go from ~3990 to ~3650 lines
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>