Scanner Verwaltung für Geräte-Agenten ergänzen
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE "instance_agents" ADD COLUMN "preferred_scanner_name" text;
|
||||
--> statement-breakpoint
|
||||
ALTER TABLE "instance_agents" ADD COLUMN "scan_defaults" jsonb DEFAULT '{"format":"pdf","resolution":300,"mode":"Color","source":null}'::jsonb NOT NULL;
|
||||
@@ -29,6 +29,13 @@ export const instanceAgents = pgTable("instance_agents", {
|
||||
capabilities: jsonb("capabilities").notNull().default({ scan: true, print: false }),
|
||||
scannerNames: jsonb("scanner_names").notNull().default([]),
|
||||
printerNames: jsonb("printer_names").notNull().default([]),
|
||||
preferredScannerName: text("preferred_scanner_name"),
|
||||
scanDefaults: jsonb("scan_defaults").notNull().default({
|
||||
format: "pdf",
|
||||
resolution: 300,
|
||||
mode: "Color",
|
||||
source: null,
|
||||
}),
|
||||
|
||||
lastSeenAt: timestamp("last_seen_at", { withTimezone: true }),
|
||||
lastDebugInfo: jsonb("last_debug_info"),
|
||||
|
||||
@@ -13,6 +13,8 @@ const updateAgentSchema = z.object({
|
||||
name: z.string().min(1).optional(),
|
||||
description: z.string().optional().nullable(),
|
||||
active: z.boolean().optional(),
|
||||
preferredScannerName: z.string().optional().nullable(),
|
||||
scanDefaults: z.record(z.string(), z.any()).optional(),
|
||||
})
|
||||
|
||||
const createScanJobSchema = z.object({
|
||||
@@ -52,6 +54,8 @@ export default async function instanceAgentRoutes(server: FastifyInstance) {
|
||||
capabilities: instanceAgents.capabilities,
|
||||
scannerNames: instanceAgents.scannerNames,
|
||||
printerNames: instanceAgents.printerNames,
|
||||
preferredScannerName: instanceAgents.preferredScannerName,
|
||||
scanDefaults: instanceAgents.scanDefaults,
|
||||
lastSeenAt: instanceAgents.lastSeenAt,
|
||||
lastDebugInfo: instanceAgents.lastDebugInfo,
|
||||
})
|
||||
@@ -81,6 +85,8 @@ export default async function instanceAgentRoutes(server: FastifyInstance) {
|
||||
description: instanceAgents.description,
|
||||
tokenPrefix: instanceAgents.tokenPrefix,
|
||||
active: instanceAgents.active,
|
||||
preferredScannerName: instanceAgents.preferredScannerName,
|
||||
scanDefaults: instanceAgents.scanDefaults,
|
||||
createdAt: instanceAgents.createdAt,
|
||||
})
|
||||
|
||||
@@ -106,6 +112,8 @@ export default async function instanceAgentRoutes(server: FastifyInstance) {
|
||||
name: instanceAgents.name,
|
||||
description: instanceAgents.description,
|
||||
active: instanceAgents.active,
|
||||
preferredScannerName: instanceAgents.preferredScannerName,
|
||||
scanDefaults: instanceAgents.scanDefaults,
|
||||
updatedAt: instanceAgents.updatedAt,
|
||||
})
|
||||
|
||||
@@ -127,7 +135,12 @@ export default async function instanceAgentRoutes(server: FastifyInstance) {
|
||||
}
|
||||
|
||||
const [agent] = await server.db
|
||||
.select({ id: instanceAgents.id, active: instanceAgents.active })
|
||||
.select({
|
||||
id: instanceAgents.id,
|
||||
active: instanceAgents.active,
|
||||
preferredScannerName: instanceAgents.preferredScannerName,
|
||||
scanDefaults: instanceAgents.scanDefaults,
|
||||
})
|
||||
.from(instanceAgents)
|
||||
.where(eq(instanceAgents.id, body.agentId))
|
||||
.limit(1)
|
||||
@@ -142,9 +155,12 @@ export default async function instanceAgentRoutes(server: FastifyInstance) {
|
||||
tenantId: requestedTenantId,
|
||||
agentId: body.agentId,
|
||||
requestedBy: req.user?.user_id,
|
||||
scannerName: body.scannerName,
|
||||
scannerName: body.scannerName || agent.preferredScannerName,
|
||||
requestedFilename: body.requestedFilename,
|
||||
settings: body.settings || {},
|
||||
settings: {
|
||||
...((agent.scanDefaults || {}) as Record<string, any>),
|
||||
...(body.settings || {}),
|
||||
},
|
||||
target: body.target || {},
|
||||
})
|
||||
.returning()
|
||||
|
||||
Reference in New Issue
Block a user