Files
corestore/ts/corestore.interfaces.ts
T
2026-05-02 15:01:41 +00:00

68 lines
1.6 KiB
TypeScript

export type TCoreStoreCapability = 'database' | 'objectstorage';
export interface ICoreStoreProvisionRequest {
serviceId: string;
serviceName?: string;
capabilities?: TCoreStoreCapability[];
database?: boolean;
db?: boolean;
objectstorage?: boolean;
s3?: boolean;
}
export interface ICoreStoreDeprovisionRequest {
serviceId: string;
}
export interface ICoreStoreResourceBase {
capability: TCoreStoreCapability;
provider: string;
resourceName: string;
env: Record<string, string>;
createdAt: number;
}
export interface ICoreStoreDatabaseResource extends ICoreStoreResourceBase {
capability: 'database';
provider: 'smartdb';
databaseName: string;
username: string;
}
export interface ICoreStoreObjectStorageResource extends ICoreStoreResourceBase {
capability: 'objectstorage';
provider: 'smartstorage';
bucketName: string;
accessKeyId: string;
}
export type TCoreStoreResource = ICoreStoreDatabaseResource | ICoreStoreObjectStorageResource;
export interface ICoreStoreServiceManifestEntry {
serviceId: string;
serviceName?: string;
resources: Partial<Record<TCoreStoreCapability, TCoreStoreResource>>;
env: Record<string, string>;
createdAt: number;
updatedAt: number;
}
export interface ICoreStoreManifest {
version: 1;
services: Record<string, ICoreStoreServiceManifestEntry>;
}
export interface ICoreStoreProvisionResponse {
serviceId: string;
serviceName?: string;
resources: TCoreStoreResource[];
env: Record<string, string>;
}
export interface ICoreStoreSecretFile {
masterSecret: string;
dbRootPassword: string;
s3AdminAccessKeyId: string;
s3AdminSecretAccessKey: string;
}