mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 15:51:26 +00:00
Add Databases management page and roadmap coverage audit
/databases page (new nav item): expandable managed-DB cards with connection URL + copy, start/stop/restart actions, metrics summary, and backup list with create/restore. Verified e2e against a real postgres:16 container — provision, psql connect, stop/start, seed, 6.4MB backup, drop, restore with data recovered. ROADMAP: marked databases/cron/git-connect/agents done with evidence, corrected stale inventory rows (frontend now consumes 52 API ops), added uncovered items — GitHub App install surfacing, database→service binding, backup export + scheduled backups, service exec console, OAuth e2e w/ real creds, remaining sqlc port, demo-data parity. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
a1e43524f5
commit
18fe56f948
5 files changed
+285
-15
No files matched your search
@@ -1277,6 +1277,37 @@ export async function listGitBranches(
|
||||
|
||||
export type CreateDatabaseInput = components['schemas']['CreateDatabaseRequest'];
|
||||
export type DatabaseEntity = components['schemas']['Database'];
|
||||
export type DatabaseBackupEntity = components['schemas']['DatabaseBackup'];
|
||||
|
||||
export async function listDatabases(): Promise<DatabaseEntity[]> {
|
||||
const payload = await requestJson<{ databases?: DatabaseEntity[] }>('/databases');
|
||||
return payload.databases ?? [];
|
||||
}
|
||||
|
||||
export async function getDatabase(id: string): Promise<DatabaseEntity> {
|
||||
return requestJson<DatabaseEntity>(`/databases/${encodeURIComponent(id)}`);
|
||||
}
|
||||
|
||||
export async function databaseAction(id: string, action: 'start' | 'stop' | 'restart'): Promise<void> {
|
||||
await requestJson(`/databases/${encodeURIComponent(id)}/action`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ action }),
|
||||
});
|
||||
}
|
||||
|
||||
export async function createDatabaseBackup(id: string): Promise<void> {
|
||||
await requestJson(`/databases/${encodeURIComponent(id)}/backup`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ database_id: id }),
|
||||
});
|
||||
}
|
||||
|
||||
export async function restoreDatabaseBackup(id: string, backupId: string): Promise<void> {
|
||||
await requestJson(`/databases/${encodeURIComponent(id)}/restore`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ database_id: id, backup_id: backupId }),
|
||||
});
|
||||
}
|
||||
|
||||
export async function createManagedDatabase(
|
||||
input: CreateDatabaseInput,
|
||||
|
||||
Reference in new issue
Block a user