@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
89 lines • 3.2 kB
TypeScript
import type { CloudDatabaseDto, ICloudDatabase } from "../entities/CloudDatabase";
import type { ICloudDatabaseBackup } from "../entities/CloudDatabaseBackup";
import type { CronjobRepeat, CronjonRepeatCondition } from "../entities/Cronjob";
import type { IQueryFilter, IQueryOptions, IQueryPagination } from "../interfaces";
import type { CloudDatabaseType, Ownership } from "../interfaces/SystemTypes";
import BaseService from "./BaseService";
export type DatabaseConnectionInfo = {
type: CloudDatabaseType;
host: string;
port?: string;
/**
* @default root
*/
user?: string;
pass: string;
};
export type DatabaseBackupParams = DatabaseConnectionInfo & {
/**
* @default all-databases
*/
dbName?: string;
/**
* For MongoDB only
* @default admin
*/
authDb?: string;
/**
* Output directory
*/
outDir?: string;
};
export type DatabaseRestoreParams = {
/**
* @default all-databases
*/
dbName?: string;
/**
* For MongoDB only
* @default admin
*/
authDb?: string;
/**
* Backup path
*/
path?: string;
};
export declare class CloudDatabaseService extends BaseService<ICloudDatabase> {
constructor(ownership?: Ownership);
create(data: CloudDatabaseDto): Promise<ICloudDatabase>;
find(filter?: IQueryFilter<ICloudDatabase>, options?: IQueryOptions & IQueryPagination, pagination?: IQueryPagination): Promise<ICloudDatabase[]>;
update(filter: IQueryFilter<ICloudDatabase>, data: any, options?: IQueryOptions): Promise<ICloudDatabase[]>;
updateOne(filter: IQueryFilter<ICloudDatabase>, data: any, options?: IQueryOptions): Promise<ICloudDatabase>;
delete(filter?: IQueryFilter<ICloudDatabase>, options?: IQueryOptions): Promise<{
ok: boolean;
affected: number;
}>;
softDelete(filter?: IQueryFilter<ICloudDatabase>, options?: IQueryOptions): Promise<{
ok: boolean;
affected: number;
}>;
checkHealthById(id: string): Promise<boolean>;
checkHealth(db: ICloudDatabase): Promise<boolean>;
backupById(id: string): Promise<ICloudDatabaseBackup>;
backup(db: ICloudDatabase, options?: {
dbName?: string;
authDb?: string;
}): Promise<ICloudDatabaseBackup>;
restoreFromBackupId(backupId: string, dbId: string): Promise<import("../interfaces").ResponseData | {
name: string;
path: string;
}>;
restoreFromBackup(backup: ICloudDatabaseBackup, db: ICloudDatabase): Promise<import("../interfaces").ResponseData | {
name: string;
path: string;
}>;
restoreById(options: DatabaseRestoreParams, id: string): Promise<import("../interfaces").ResponseData | {
name: string;
path: string;
}>;
restore(options: DatabaseRestoreParams, toDatabase: ICloudDatabase): Promise<import("../interfaces").ResponseData | {
name: string;
path: string;
}>;
scheduleAutoBackup(id: string, repeat: CronjobRepeat, condition?: CronjonRepeatCondition, ownership?: {
owner: string;
workspace: string;
}): Promise<ICloudDatabase>;
}
//# sourceMappingURL=CloudDatabaseService.d.ts.map