photoncloud-monorepo/docs/por/T016-lightningstor-deepening/task.yaml
centra a7ec7e2158 Add T026 practical test + k8shost to flake + workspace files
- Created T026-practical-test task.yaml for MVP smoke testing
- Added k8shost-server to flake.nix (packages, apps, overlays)
- Staged all workspace directories for nix flake build
- Updated flake.nix shellHook to include k8shost

Resolves: T026.S1 blocker (R8 - nix submodule visibility)
2025-12-09 06:07:50 +09:00

122 lines
4.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

id: T016
name: LightningSTOR Object Storage Deepening
status: complete
goal: Implement functional object storage with dual API (native gRPC + S3-compatible HTTP)
priority: P1
owner: peerA (strategy) + peerB (implementation)
created: 2025-12-08
depends_on: [T015]
context: |
PROJECT.md item 5 specifies LightningSTOR:
"オブジェクトストレージ基盤LightningSTOR
- この基盤の標準的な感じのある程度共通化されており、使いやすいAPIと、S3互換なAPIがあると良いかも"
T008 created scaffold with spec (948L). Current state:
- Workspace structure exists
- Types defined (Bucket, Object, MultipartUpload)
- Proto files defined
- Basic S3 handler scaffold
Need functional implementation for:
- Object CRUD operations
- Bucket management
- S3 API compatibility (PUT/GET/DELETE/LIST)
- ChainFire metadata persistence
- Local filesystem or pluggable storage backend
acceptance:
- Native gRPC API functional (CreateBucket, PutObject, GetObject, DeleteObject, ListObjects)
- S3-compatible HTTP API functional (basic operations)
- Metadata persisted to ChainFire
- Object data stored to configurable backend (local FS initially)
- Integration test proves CRUD lifecycle
steps:
- step: S1
action: Storage backend abstraction
priority: P0
status: complete
owner: peerB
completed: 2025-12-08
notes: |
Design StorageBackend trait for object data.
Implement LocalFsBackend for initial development.
Plan for future backends (distributed, cloud).
deliverables:
- StorageBackend trait
- LocalFsBackend implementation
evidence:
- lightningstor/crates/lightningstor-storage/: StorageBackend traitとLocalFsBackend実装完了、オブジェクト/パート操作、ユニットテスト
- step: S2
action: Implement native gRPC object service
priority: P0
status: complete
owner: peerB
completed: 2025-12-08
notes: |
Implement ObjectService gRPC handlers.
Wire to StorageBackend + ChainFire for metadata.
Support: CreateBucket, PutObject, GetObject, DeleteObject, ListObjects.
deliverables:
- Functional gRPC ObjectService
- Functional gRPC BucketService
- ChainFire metadata persistence
evidence:
- ObjectService: put_object, get_object, delete_object, head_object, list_objects 実装完了
- BucketService: create_bucket, delete_bucket, head_bucket, list_buckets 実装完了
- MetadataStore連携、StorageBackend連携完了
- cargo check -p lightningstor-server 通過
- step: S3
action: Implement S3-compatible HTTP API
priority: P1
status: complete
owner: peerB
completed: 2025-12-08
notes: |
Extend S3 handler with actual implementation.
Map S3 operations to internal ObjectService.
Support: PUT, GET, DELETE, LIST (basic).
deliverables:
- S3 HTTP endpoints functional
- AWS CLI compatibility test
evidence:
- S3State: storage + metadata 共有
- Bucket ops: create_bucket, delete_bucket, head_bucket, list_buckets
- Object ops: put_object, get_object, delete_object, head_object, list_objects
- cargo check -p lightningstor-server 通過
- step: S4
action: Integration test
priority: P1
status: complete
owner: peerB
completed: 2025-12-08
notes: |
End-to-end test for object lifecycle.
Test both gRPC and S3 APIs.
Verify metadata persistence and data integrity.
deliverables:
- Integration tests passing
- Evidence log
evidence:
- tests/integration.rs: 5 tests passing
- test_bucket_lifecycle: bucket CRUD
- test_object_lifecycle: object CRUD with storage
- test_full_crud_cycle: multi-bucket/multi-object lifecycle
- MetadataStore.new_in_memory(): in-memory backend for testing
blockers: []
evidence: []
notes: |
LightningSTOR enables:
- VM image storage for PlasmaVMC
- User object storage (S3-compatible)
- Foundation for block storage later
Risk: S3 API is large; focus on core operations first.
Mitigation: Implement minimal viable S3 subset, expand later.