feat(core): rebrand to @lossless.zone/objectstorage

- Rename from @lossless.zone/s3container to @lossless.zone/objectstorage
- Replace @push.rocks/smarts3 with @push.rocks/smartstorage
- Change env var prefix from S3_ to OBJST_
- Rename S3Container class to ObjectStorageContainer
- Update web component prefix from s3c- to objst-
- Update UI labels, CLI flags, documentation, and Docker config
This commit is contained in:
2026-03-14 23:56:02 +00:00
commit 1f281bd7c8
76 changed files with 16765 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
export interface IIdentity {
jwt: string;
userId: string;
username: string;
expiresAt: number;
role: 'admin';
}

View File

@@ -0,0 +1,6 @@
export interface IBucketInfo {
name: string;
creationDate: number;
objectCount: number;
totalSizeBytes: number;
}

View File

@@ -0,0 +1,5 @@
export * from './auth.ts';
export * from './bucket.ts';
export * from './object.ts';
export * from './policy.ts';
export * from './server.ts';

View File

@@ -0,0 +1,14 @@
export interface IObjectInfo {
key: string;
size: number;
lastModified: number;
etag: string;
contentType: string;
}
export interface IObjectListResult {
objects: IObjectInfo[];
commonPrefixes: string[];
isTruncated: boolean;
currentPrefix: string;
}

View File

@@ -0,0 +1,22 @@
export interface IObjstStatement {
Sid?: string;
Effect: 'Allow' | 'Deny';
Principal: string | Record<string, string | string[]>;
Action: string | string[];
Resource: string | string[];
Condition?: Record<string, Record<string, string | string[]>>;
}
export interface INamedPolicy {
id: string;
name: string;
description: string;
statements: IObjstStatement[];
createdAt: number;
updatedAt: number;
}
export interface IPoliciesData {
namedPolicies: Record<string, INamedPolicy>;
bucketPolicyAttachments: Record<string, string[]>;
}

View File

@@ -0,0 +1,35 @@
export interface IServerStatus {
running: boolean;
objstPort: number;
uiPort: number;
uptime: number;
startedAt: number;
bucketCount: number;
totalObjectCount: number;
totalStorageBytes: number;
storageDirectory: string;
region: string;
authEnabled: boolean;
}
export interface IServerConfig {
objstPort: number;
uiPort: number;
region: string;
storageDirectory: string;
authEnabled: boolean;
corsEnabled: boolean;
}
export interface IObjstCredential {
accessKeyId: string;
secretAccessKey: string;
}
export interface IConnectionInfo {
endpoint: string;
port: number;
useSsl: boolean;
accessKey: string;
region: string;
}