68 lines
1.6 KiB
TypeScript
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;
|
|
}
|