feat(core,storage,oci,registry-config): add streaming response support and configurable registry URLs across protocols
This commit is contained in:
@@ -88,6 +88,7 @@ export interface IAuthConfig {
|
||||
export interface IProtocolConfig {
|
||||
enabled: boolean;
|
||||
basePath: string;
|
||||
registryUrl?: string;
|
||||
features?: Record<string, boolean>;
|
||||
}
|
||||
|
||||
@@ -160,6 +161,21 @@ export interface IStorageBackend {
|
||||
* Get object metadata
|
||||
*/
|
||||
getMetadata(key: string): Promise<Record<string, string> | null>;
|
||||
|
||||
/**
|
||||
* Get an object as a ReadableStream. Returns null if not found.
|
||||
*/
|
||||
getObjectStream?(key: string): Promise<{ stream: ReadableStream<Uint8Array>; size: number } | null>;
|
||||
|
||||
/**
|
||||
* Store an object from a ReadableStream.
|
||||
*/
|
||||
putObjectStream?(key: string, stream: ReadableStream<Uint8Array>): Promise<void>;
|
||||
|
||||
/**
|
||||
* Get object size without reading data (S3 HEAD request).
|
||||
*/
|
||||
getObjectSize?(key: string): Promise<number | null>;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -215,10 +231,13 @@ export interface IRequestContext {
|
||||
}
|
||||
|
||||
/**
|
||||
* Base response structure
|
||||
* Base response structure.
|
||||
* `body` is always a `ReadableStream<Uint8Array>` at the public API boundary.
|
||||
* Internal handlers may return Buffer/string/object — the SmartRegistry orchestrator
|
||||
* auto-wraps them via `toReadableStream()` before returning to the caller.
|
||||
*/
|
||||
export interface IResponse {
|
||||
status: number;
|
||||
headers: Record<string, string>;
|
||||
body?: any;
|
||||
body?: ReadableStream<Uint8Array> | any;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user