Files
knowledge-governance/web/src/sourceSettingsAudit.ts
T
姚章浩 7448d130ec
build / build (push) Successful in 1m13s
feat(settings): 汇总全部数据源配置操作审计
2026-10-27 10:42:30 +08:00

49 lines
1.5 KiB
TypeScript

export type SourceAuditItem = {
id: string
connection_id: string
source_name: string
action: string
actor: string
created_at: string
detail: string
}
export type SourceAuditPage = { items: SourceAuditItem[]; total: number; limit: number; offset: number }
export async function fetchSourceAudit(offset = 0, signal?: AbortSignal): Promise<SourceAuditPage> {
const response = await fetch(`/api/v1/source-connections/audit?limit=100&offset=${offset}`, {
signal,
headers: { Accept: 'application/json' },
})
if (!response.ok) throw new Error('无法读取数据源操作记录,请重试')
const { data } = await response.json()
if (
!data ||
!Array.isArray(data.items) ||
!Number.isInteger(data.total) ||
data.total < 0 ||
data.offset !== offset ||
!Number.isInteger(data.limit) ||
data.limit < 1
)
throw new Error('数据源操作记录格式无效')
for (const item of data.items) {
if (
!item ||
['id', 'connection_id', 'source_name', 'action', 'actor', 'created_at', 'detail'].some(
(key) => typeof item[key] !== 'string'
) ||
!Number.isFinite(Date.parse(item.created_at))
)
throw new Error('数据源操作记录格式无效')
}
return data
}
export const sourceAuditActions: Record<string, string> = {
created: '添加连接',
settings_updated: '修改配置',
paused: '暂停自动刷新',
resumed: '恢复自动刷新',
archived: '移除连接',
restored: '恢复连接',
historical_settings: '历史设置记录',
}