mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
feat: database health logs
This commit is contained in:
@@ -67,12 +67,24 @@ export async function handleDatabases(body: Body, agent: Agent, lastContact: Dat
|
|||||||
name: db.name,
|
name: db.name,
|
||||||
dbms: db.dbms as EDbmsSchema,
|
dbms: db.dbms as EDbmsSchema,
|
||||||
agentDatabaseId: db.generatedId,
|
agentDatabaseId: db.generatedId,
|
||||||
lastContact: lastContact,
|
lastContact: db.pingStatus ? lastContact : null,
|
||||||
})
|
})
|
||||||
.returning();
|
.returning();
|
||||||
|
|
||||||
|
|
||||||
if (databaseCreated) {
|
if (databaseCreated) {
|
||||||
|
|
||||||
|
|
||||||
|
await dbClient
|
||||||
|
.insert(drizzleDb.schemas.healthcheckLog)
|
||||||
|
.values({
|
||||||
|
kind: "database",
|
||||||
|
status: db.pingStatus ? "success" : "failed",
|
||||||
|
objectId: databaseCreated.id,
|
||||||
|
date: lastContact
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
const storages = await getDatabaseStorageChannels(databaseCreated.id)
|
const storages = await getDatabaseStorageChannels(databaseCreated.id)
|
||||||
|
|
||||||
databasesResponse.push(formatDatabase(databaseCreated, backupAction, restoreAction, urlBackup, storages, null));
|
databasesResponse.push(formatDatabase(databaseCreated, backupAction, restoreAction, urlBackup, storages, null));
|
||||||
@@ -84,11 +96,22 @@ export async function handleDatabases(body: Body, agent: Agent, lastContact: Dat
|
|||||||
.set(withUpdatedAt({
|
.set(withUpdatedAt({
|
||||||
name: db.name,
|
name: db.name,
|
||||||
agentId: agent.id,
|
agentId: agent.id,
|
||||||
lastContact: lastContact
|
lastContact: db.pingStatus ? lastContact : null,
|
||||||
}))
|
}))
|
||||||
.where(eq(drizzleDb.schemas.database.id, existingDatabase.id))
|
.where(eq(drizzleDb.schemas.database.id, existingDatabase.id))
|
||||||
.returning();
|
.returning();
|
||||||
|
|
||||||
|
|
||||||
|
await dbClient
|
||||||
|
.insert(drizzleDb.schemas.healthcheckLog)
|
||||||
|
.values({
|
||||||
|
kind: "database",
|
||||||
|
status: db.pingStatus ? "success" : "failed",
|
||||||
|
objectId: databaseUpdated.id,
|
||||||
|
date: lastContact
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
const activeBackup = await dbClient.query.backup.findFirst({
|
const activeBackup = await dbClient.query.backup.findFirst({
|
||||||
where: and(
|
where: and(
|
||||||
eq(drizzleDb.schemas.backup.databaseId, databaseUpdated.id),
|
eq(drizzleDb.schemas.backup.databaseId, databaseUpdated.id),
|
||||||
@@ -180,7 +203,6 @@ export async function handleDatabases(body: Body, agent: Agent, lastContact: Dat
|
|||||||
databasesResponse.push(formatDatabase(databaseUpdated, backupAction, restoreAction, urlBackup, storages, urlMeta));
|
databasesResponse.push(formatDatabase(databaseUpdated, backupAction, restoreAction, urlBackup, storages, urlMeta));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return databasesResponse;
|
return databasesResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ export type databaseAgent = {
|
|||||||
name: string,
|
name: string,
|
||||||
dbms: EDbmsSchema,
|
dbms: EDbmsSchema,
|
||||||
generatedId: string
|
generatedId: string
|
||||||
|
pingStatus: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Body = {
|
export type Body = {
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TYPE "public"."event_kind" ADD VALUE 'error_health_agent';
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -309,6 +309,13 @@
|
|||||||
"when": 1774643615673,
|
"when": 1774643615673,
|
||||||
"tag": "0043_peaceful_chat",
|
"tag": "0043_peaceful_chat",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 44,
|
||||||
|
"version": "7",
|
||||||
|
"when": 1774648872657,
|
||||||
|
"tag": "0044_steep_wiccan",
|
||||||
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user