Feature: Storage Anchor#164
Closed
sephynox wants to merge 35 commits intofeat/encrypted-container-v3from
Closed
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Introduces a new Storage Anchor service with HTTP server + client support, including path-based object storage, quota reporting, namespace validation, and public access via pre-signed URLs. It also extends the resolver metadata model and enhances EncryptedContainer with structured error handling and optional signing.
Changes:
- Added Storage Anchor server routes (put/get/delete/search/quota/public) with quota/validator hooks and service metadata publishing.
- Added Storage Anchor client/provider for discovery via resolver, CRUD operations, search/quota, and pre-signed public URLs.
- Extended core libraries: resolver types/lookup, error deserialization mapping, and
EncryptedContainererror/signing support (with tests).
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/services/storage/server.ts | Implements Storage Anchor HTTP API endpoints and publishes storage service metadata |
| src/services/storage/server.test.ts | Adds basic server/serviceMetadata and error-path tests |
| src/services/storage/lib/validators.ts | Adds namespace validator framework + built-in icon validator |
| src/services/storage/lib/validators.test.ts | Tests validator matching and icon validation logic |
| src/services/storage/common.ts | Defines storage types, requests/responses, signing data, and storage-specific errors |
| src/services/storage/common.test.ts | Adds path utility tests and an in-memory backend for test usage |
| src/services/storage/client.ts | Adds resolver-driven client/provider with signed requests and public URL generation |
| src/services/storage/client.test.ts | Adds integration-style tests for provider discovery and CRUD/search/quota/public flows |
| src/lib/utils/tests/node.ts | Adds helper to publish resolver metadata in tests |
| src/lib/resolver.ts | Extends resolver metadata schema and lookup logic for storage services |
| src/lib/resolver.test.ts | Refactors to reuse shared resolver-metadata helper |
| src/lib/error.ts | Registers storage service errors for JSON deserialization |
| src/lib/encrypted-container.ts | Adds structured error type/codes and optional signing (v3) support |
| src/lib/encrypted-container.test.ts | Updates tests for buffer conversions + adds error/signing coverage |
| src/client/index.ts | Exposes Storage client entrypoint alongside other service clients |
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
This PR introduces a new storage anchor service:
Key Changes
Encrypted Container (src/lib/encrypted-container.ts)
Storage Service (src/services/storage/)