feat(core): Standardize S3 storage config using @tsclass/tsclass IS3Descriptor and wire it into RegistryStorage and plugins exports; update README and package dependencies.
This commit is contained in:
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartregistry',
|
||||
version: '1.6.0',
|
||||
version: '1.7.0',
|
||||
description: 'A composable TypeScript library implementing OCI, NPM, Maven, Cargo, Composer, PyPI, and RubyGems registries for building unified container and package registries'
|
||||
}
|
||||
|
||||
@@ -18,14 +18,8 @@ export class RegistryStorage implements IStorageBackend {
|
||||
* Initialize the storage backend
|
||||
*/
|
||||
public async init(): Promise<void> {
|
||||
this.smartBucket = new plugins.smartbucket.SmartBucket({
|
||||
accessKey: this.config.accessKey,
|
||||
accessSecret: this.config.accessSecret,
|
||||
endpoint: this.config.endpoint,
|
||||
port: this.config.port || 443,
|
||||
useSsl: this.config.useSsl !== false,
|
||||
region: this.config.region || 'us-east-1',
|
||||
});
|
||||
// Pass config as IS3Descriptor to SmartBucket (bucketName is extra, SmartBucket ignores it)
|
||||
this.smartBucket = new plugins.smartbucket.SmartBucket(this.config as plugins.tsclass.storage.IS3Descriptor);
|
||||
|
||||
// Ensure bucket exists
|
||||
await this.smartBucket.createBucket(this.bucketName).catch(() => {
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
* Core interfaces for the composable registry system
|
||||
*/
|
||||
|
||||
import type * as plugins from '../plugins.js';
|
||||
|
||||
/**
|
||||
* Registry protocol types
|
||||
*/
|
||||
@@ -40,14 +42,9 @@ export interface ICredentials {
|
||||
|
||||
/**
|
||||
* Storage backend configuration
|
||||
* Extends IS3Descriptor from @tsclass/tsclass with bucketName
|
||||
*/
|
||||
export interface IStorageConfig {
|
||||
accessKey: string;
|
||||
accessSecret: string;
|
||||
endpoint: string;
|
||||
port?: number;
|
||||
useSsl?: boolean;
|
||||
region?: string;
|
||||
export interface IStorageConfig extends plugins.tsclass.storage.IS3Descriptor {
|
||||
bucketName: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,3 +9,8 @@ import * as smartlog from '@push.rocks/smartlog';
|
||||
import * as smartpath from '@push.rocks/smartpath';
|
||||
|
||||
export { smartbucket, smartlog, smartpath };
|
||||
|
||||
// @tsclass scope
|
||||
import * as tsclass from '@tsclass/tsclass';
|
||||
|
||||
export { tsclass };
|
||||
|
||||
Reference in New Issue
Block a user