worker-que 1.0.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/DASHBOARD.md CHANGED
@@ -80,11 +80,19 @@ View the most recent failed jobs with:
80
80
 
81
81
  ```typescript
82
82
  interface DashboardOptions {
83
- title?: string; // Dashboard title (default: 'Que Dashboard')
84
- basePath?: string; // Base path for API routes (default: '/que')
85
- refreshInterval?: number; // Auto-refresh interval in ms (default: 5000)
86
- maxRecentFailures?: number; // Max failures to show (default: 50)
87
- auth?: (req, res, next) => boolean | Promise<boolean>; // Auth function
83
+ title?: string; // Dashboard title (default: 'Que Dashboard')
84
+ basePath?: string; // Base path for API routes (default: '/que')
85
+ refreshInterval?: number; // Auto-refresh interval in ms (default: 5000)
86
+ maxRecentFailures?: number; // Max failures to show (default: 50)
87
+
88
+ // Built-in authentication (email/password)
89
+ auth?: {
90
+ email: string; // Login email
91
+ password: string; // Login password
92
+ };
93
+
94
+ // Custom authentication middleware
95
+ customAuth?: (req, res, next) => boolean | Promise<boolean>;
88
96
  }
89
97
  ```
90
98
 
@@ -111,13 +119,62 @@ app.use('/jobs', createDashboard(pool, {
111
119
 
112
120
  ## Authentication
113
121
 
114
- The dashboard supports flexible authentication through the `auth` function.
122
+ The dashboard provides **built-in email/password authentication** and supports custom authentication middleware.
115
123
 
116
- ### API Key Authentication
124
+ ### Built-in Email/Password Authentication (Recommended)
125
+
126
+ The easiest way to secure your dashboard is with the built-in authentication:
117
127
 
118
128
  ```typescript
119
129
  app.use('/admin/queue', createDashboard(pool, {
120
- auth: (req) => {
130
+ title: 'My Queue Dashboard',
131
+ basePath: '/admin/queue',
132
+ auth: {
133
+ email: 'admin@example.com',
134
+ password: 'your-secure-password'
135
+ }
136
+ }));
137
+ ```
138
+
139
+ **Features:**
140
+ - Secure login page with Microsoft Fluent Design
141
+ - Session management with cookies
142
+ - "Remember me" functionality (extends session to 30 days)
143
+ - Automatic logout
144
+ - User email displayed in dashboard header
145
+
146
+ **Security Notes:**
147
+ - Store credentials in environment variables (never commit passwords)
148
+ - Use HTTPS in production
149
+ - Use strong, unique passwords
150
+ - Consider using bcrypt for password hashing in production
151
+
152
+ **Environment Variables Example:**
153
+
154
+ ```typescript
155
+ app.use('/admin/queue', createDashboard(pool, {
156
+ auth: {
157
+ email: process.env.DASHBOARD_EMAIL!,
158
+ password: process.env.DASHBOARD_PASSWORD!
159
+ }
160
+ }));
161
+ ```
162
+
163
+ `.env`:
164
+ ```bash
165
+ DASHBOARD_EMAIL=admin@example.com
166
+ DASHBOARD_PASSWORD=SecurePassword123!
167
+ ```
168
+
169
+ ### Custom Authentication
170
+
171
+ For integration with existing auth systems, use `customAuth`:
172
+
173
+ #### API Key Authentication
174
+
175
+ ```typescript
176
+ app.use('/admin/queue', createDashboard(pool, {
177
+ customAuth: (req) => {
121
178
  return req.headers['x-api-key'] === process.env.DASHBOARD_API_KEY;
122
179
  }
123
180
  }));
@@ -128,7 +185,7 @@ app.use('/admin/queue', createDashboard(pool, {
128
185
  curl -H "X-API-Key: your-secret-key" http://localhost:3000/admin/queue/api/stats
129
186
  ```
130
187
 
131
- ### Session-Based Authentication
188
+ #### Session-Based Authentication
132
189
 
133
190
  ```typescript
134
191
  import session from 'express-session';
@@ -140,19 +197,19 @@ app.use(session({
140
197
  }));
141
198
 
142
199
  app.use('/admin/queue', createDashboard(pool, {
143
- auth: (req) => {
200
+ customAuth: (req) => {
144
201
  return req.session?.user?.isAdmin === true;
145
202
  }
146
203
  }));
147
204
  ```
148
205
 
149
- ### JWT Authentication
206
+ #### JWT Authentication
150
207
 
151
208
  ```typescript
152
209
  import jwt from 'jsonwebtoken';
153
210
 
154
211
  app.use('/admin/queue', createDashboard(pool, {
155
- auth: (req) => {
212
+ customAuth: (req) => {
156
213
  try {
157
214
  const token = req.headers.authorization?.split(' ')[1];
158
215
  if (!token) return false;
@@ -166,11 +223,11 @@ app.use('/admin/queue', createDashboard(pool, {
166
223
  }));
167
224
  ```
168
225
 
169
- ### Async Database Authentication
226
+ #### Async Database Authentication
170
227
 
171
228
  ```typescript
172
229
  app.use('/admin/queue', createDashboard(pool, {
173
- auth: async (req) => {
230
+ customAuth: async (req) => {
174
231
  const token = req.headers.authorization;
175
232
  const user = await verifyUserToken(token);
176
233
  return user?.hasPermission('view-queue');
@@ -178,6 +235,17 @@ app.use('/admin/queue', createDashboard(pool, {
178
235
  }));
179
236
  ```
180
237
 
238
+ ### No Authentication (Development Only)
239
+
240
+ For local development only, you can omit authentication:
241
+
242
+ ```typescript
243
+ // ⚠️ WARNING: NOT SECURE - Development only
244
+ app.use('/admin/queue', createDashboard(pool, {
245
+ title: 'Dev Queue'
246
+ }));
247
+ ```
248
+
181
249
  ## API Reference
182
250
 
183
251
  The dashboard exposes REST API endpoints for programmatic access.
package/README.md CHANGED
@@ -89,7 +89,7 @@ psql -U postgres -d myapp -f node_modules/worker-que/migrations/schema.sql
89
89
 
90
90
  ## Web Dashboard
91
91
 
92
- Monitor and manage your jobs with the built-in web dashboard:
92
+ Monitor and manage your jobs with the built-in web dashboard featuring **Microsoft Fluent Design** and **secure authentication**:
93
93
 
94
94
  ```typescript
95
95
  import express from 'express';
@@ -99,9 +99,13 @@ import { createDashboard } from 'worker-que/dist/dashboard';
99
99
  const app = express();
100
100
  const pool = new Pool({ /* your config */ });
101
101
 
102
+ // Built-in email/password authentication
102
103
  app.use('/admin/queue', createDashboard(pool, {
103
104
  title: 'My Job Queue',
104
- auth: (req) => req.isAuthenticated() // Optional authentication
105
+ auth: {
106
+ email: 'admin@example.com',
107
+ password: 'your-secure-password'
108
+ }
105
109
  }));
106
110
 
107
111
  app.listen(3000);
@@ -109,12 +113,14 @@ app.listen(3000);
109
113
  ```
110
114
 
111
115
  **Dashboard Features:**
112
- - 📊 Real-time job statistics
116
+ - 📊 Real-time job statistics with auto-refresh
113
117
  - 📈 Visual analytics by queue and class
114
118
  - 🔍 Filter and search jobs
115
119
  - 🔄 Retry failed jobs
116
120
  - 🗑️ Delete jobs
117
- - 📱 Responsive design
121
+ - 🔐 Built-in secure authentication with sessions
122
+ - 🎨 Modern Microsoft Fluent Design UI
123
+ - 📱 Fully responsive design
118
124
 
119
125
  [**→ Complete Dashboard Documentation**](./DASHBOARD.md)
120
126
 
@@ -3,31 +3,48 @@ import { Pool } from 'pg';
3
3
  import { DashboardService, DashboardOptions } from './service';
4
4
  export interface DashboardMiddlewareOptions extends DashboardOptions {
5
5
  /**
6
- * Optional authentication middleware
7
- * Return true to allow access, false to deny
6
+ * Optional custom authentication middleware
7
+ * If provided, built-in auth is disabled
8
8
  */
9
- auth?: (req: Request, res: Response, next: NextFunction) => boolean | Promise<boolean>;
9
+ customAuth?: (req: Request, res: Response, next: NextFunction) => boolean | Promise<boolean>;
10
+ }
11
+ declare module 'express-session' {
12
+ interface SessionData {
13
+ user?: {
14
+ email: string;
15
+ authenticated: boolean;
16
+ };
17
+ }
10
18
  }
11
19
  /**
12
20
  * Creates an Express router with the Que dashboard
13
21
  *
14
22
  * @example
23
+ * Basic setup with built-in auth:
15
24
  * ```typescript
16
25
  * import express from 'express';
17
26
  * import { Pool } from 'pg';
18
- * import { createDashboard } from 'que-ts/dashboard';
27
+ * import { createDashboard } from 'worker-que/dist/dashboard';
19
28
  *
20
29
  * const app = express();
21
30
  * const pool = new Pool({ ... });
22
31
  *
23
32
  * app.use('/admin/queue', createDashboard(pool, {
24
33
  * title: 'My App Queue',
25
- * auth: (req, res, next) => {
26
- * // Add your authentication logic
27
- * return req.isAuthenticated();
34
+ * auth: {
35
+ * email: 'admin@example.com',
36
+ * password: 'your-secure-password'
28
37
  * }
29
38
  * }));
30
39
  * ```
40
+ *
41
+ * @example
42
+ * Custom auth:
43
+ * ```typescript
44
+ * app.use('/admin/queue', createDashboard(pool, {
45
+ * customAuth: (req) => req.isAuthenticated()
46
+ * }));
47
+ * ```
31
48
  */
32
49
  export declare function createDashboard(pool: Pool, options?: DashboardMiddlewareOptions): Router;
33
50
  export { DashboardService, DashboardOptions };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG/D,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,0BAA+B,GACvC,MAAM,CAqJR;AAED,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG/D,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9F;AAGD,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,WAAW;QACnB,IAAI,CAAC,EAAE;YACL,KAAK,EAAE,MAAM,CAAC;YACd,aAAa,EAAE,OAAO,CAAC;SACxB,CAAC;KACH;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,0BAA+B,GACvC,MAAM,CAqQR;AAED,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.DashboardService = void 0;
4
7
  exports.createDashboard = createDashboard;
5
8
  const express_1 = require("express");
9
+ const express_2 = __importDefault(require("express"));
10
+ const express_session_1 = __importDefault(require("express-session"));
6
11
  const service_1 = require("./service");
7
12
  Object.defineProperty(exports, "DashboardService", { enumerable: true, get: function () { return service_1.DashboardService; } });
8
13
  const views_1 = require("./views");
@@ -10,32 +15,59 @@ const views_1 = require("./views");
10
15
  * Creates an Express router with the Que dashboard
11
16
  *
12
17
  * @example
18
+ * Basic setup with built-in auth:
13
19
  * ```typescript
14
20
  * import express from 'express';
15
21
  * import { Pool } from 'pg';
16
- * import { createDashboard } from 'que-ts/dashboard';
22
+ * import { createDashboard } from 'worker-que/dist/dashboard';
17
23
  *
18
24
  * const app = express();
19
25
  * const pool = new Pool({ ... });
20
26
  *
21
27
  * app.use('/admin/queue', createDashboard(pool, {
22
28
  * title: 'My App Queue',
23
- * auth: (req, res, next) => {
24
- * // Add your authentication logic
25
- * return req.isAuthenticated();
29
+ * auth: {
30
+ * email: 'admin@example.com',
31
+ * password: 'your-secure-password'
26
32
  * }
27
33
  * }));
28
34
  * ```
35
+ *
36
+ * @example
37
+ * Custom auth:
38
+ * ```typescript
39
+ * app.use('/admin/queue', createDashboard(pool, {
40
+ * customAuth: (req) => req.isAuthenticated()
41
+ * }));
42
+ * ```
29
43
  */
30
44
  function createDashboard(pool, options = {}) {
31
45
  const router = (0, express_1.Router)();
32
46
  const service = new service_1.DashboardService(pool, options);
33
- const authMiddleware = options.auth;
34
- // Authentication middleware wrapper
47
+ const dashboardOptions = service.getOptions();
48
+ const useBuiltInAuth = !!options.auth?.email && !!options.auth?.password;
49
+ const customAuthMiddleware = options.customAuth;
50
+ // Setup session middleware if using built-in auth
51
+ if (useBuiltInAuth) {
52
+ router.use((0, express_session_1.default)({
53
+ secret: options.auth?.password + '-session-secret',
54
+ resave: false,
55
+ saveUninitialized: false,
56
+ cookie: {
57
+ secure: process.env.NODE_ENV === 'production',
58
+ httpOnly: true,
59
+ maxAge: 24 * 60 * 60 * 1000, // 24 hours
60
+ }
61
+ }));
62
+ // Parse form data for login
63
+ router.use(express_2.default.urlencoded({ extended: true }));
64
+ }
65
+ // Authentication middleware
35
66
  const requireAuth = async (req, res, next) => {
36
- if (authMiddleware) {
67
+ // Custom auth takes precedence
68
+ if (customAuthMiddleware) {
37
69
  try {
38
- const allowed = await authMiddleware(req, res, next);
70
+ const allowed = await customAuthMiddleware(req, res, next);
39
71
  if (!allowed) {
40
72
  res.status(403).json({ error: 'Access denied' });
41
73
  return;
@@ -45,15 +77,73 @@ function createDashboard(pool, options = {}) {
45
77
  res.status(500).json({ error: 'Authentication error' });
46
78
  return;
47
79
  }
80
+ next();
81
+ return;
48
82
  }
83
+ // Built-in auth
84
+ if (useBuiltInAuth) {
85
+ if (req.session?.user?.authenticated) {
86
+ next();
87
+ return;
88
+ }
89
+ // Redirect to login page
90
+ if (req.accepts('html')) {
91
+ const loginHtml = (0, views_1.getLoginHTML)(dashboardOptions);
92
+ res.type('html').send(loginHtml);
93
+ return;
94
+ }
95
+ res.status(401).json({ error: 'Authentication required' });
96
+ return;
97
+ }
98
+ // No auth configured
49
99
  next();
50
100
  };
51
- // Apply auth to all routes
101
+ // Login page (only for built-in auth)
102
+ if (useBuiltInAuth) {
103
+ router.get('/login', (req, res) => {
104
+ if (req.session?.user?.authenticated) {
105
+ res.redirect(dashboardOptions.basePath || '/');
106
+ return;
107
+ }
108
+ const loginHtml = (0, views_1.getLoginHTML)(dashboardOptions);
109
+ res.type('html').send(loginHtml);
110
+ });
111
+ // Login handler
112
+ router.post('/login', (req, res) => {
113
+ const { email, password, remember } = req.body;
114
+ if (email === options.auth?.email && password === options.auth?.password) {
115
+ req.session.user = {
116
+ email,
117
+ authenticated: true,
118
+ };
119
+ // Extend session if remember me is checked
120
+ if (remember === 'yes' && req.session.cookie) {
121
+ req.session.cookie.maxAge = 30 * 24 * 60 * 60 * 1000; // 30 days
122
+ }
123
+ res.redirect(dashboardOptions.basePath || '/');
124
+ }
125
+ else {
126
+ const loginHtml = (0, views_1.getLoginHTML)(dashboardOptions, 'Invalid email or password');
127
+ res.type('html').send(loginHtml);
128
+ }
129
+ });
130
+ // Logout handler
131
+ router.post('/logout', (req, res) => {
132
+ req.session.destroy((err) => {
133
+ if (err) {
134
+ console.error('Session destruction error:', err);
135
+ }
136
+ res.redirect(dashboardOptions.basePath + '/login');
137
+ });
138
+ });
139
+ }
140
+ // Apply auth to all API routes and dashboard
52
141
  router.use(requireAuth);
53
142
  // Main dashboard page
54
143
  router.get('/', async (req, res) => {
55
144
  try {
56
- const html = (0, views_1.getDashboardHTML)(service.getOptions());
145
+ const userEmail = req.session?.user?.email;
146
+ const html = (0, views_1.getDashboardHTML)(dashboardOptions, userEmail);
57
147
  res.type('html').send(html);
58
148
  }
59
149
  catch (error) {
@@ -105,6 +195,27 @@ function createDashboard(pool, options = {}) {
105
195
  res.status(500).json({ error: 'Failed to fetch job' });
106
196
  }
107
197
  });
198
+ // API: Update job arguments
199
+ router.put('/api/jobs/:id/args', express_2.default.json(), async (req, res) => {
200
+ try {
201
+ const jobId = parseInt(req.params.id);
202
+ const { args } = req.body;
203
+ if (!Array.isArray(args)) {
204
+ res.status(400).json({ error: 'args must be an array' });
205
+ return;
206
+ }
207
+ const updated = await service.updateJobArgs(jobId, args);
208
+ if (!updated) {
209
+ res.status(404).json({ error: 'Job not found' });
210
+ return;
211
+ }
212
+ res.json({ success: true, message: 'Job arguments updated' });
213
+ }
214
+ catch (error) {
215
+ console.error('Error updating job args:', error);
216
+ res.status(500).json({ error: 'Failed to update job arguments' });
217
+ }
218
+ });
108
219
  // API: Delete a job
109
220
  router.delete('/api/jobs/:id', async (req, res) => {
110
221
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,16 @@ export interface DashboardOptions {
40
40
  basePath?: string;
41
41
  refreshInterval?: number;
42
42
  maxRecentFailures?: number;
43
+ auth?: {
44
+ email: string;
45
+ password: string;
46
+ };
47
+ }
48
+ export interface DashboardInternalOptions {
49
+ title: string;
50
+ basePath: string;
51
+ refreshInterval: number;
52
+ maxRecentFailures: number;
43
53
  }
44
54
  export declare class DashboardService {
45
55
  private pool;
@@ -59,8 +69,9 @@ export declare class DashboardService {
59
69
  getJob(jobId: number): Promise<Job | null>;
60
70
  deleteJob(jobId: number): Promise<boolean>;
61
71
  retryJob(jobId: number): Promise<boolean>;
72
+ updateJobArgs(jobId: number, args: unknown[]): Promise<boolean>;
62
73
  getQueues(): Promise<string[]>;
63
74
  getJobClasses(): Promise<string[]>;
64
- getOptions(): Required<DashboardOptions>;
75
+ getOptions(): DashboardInternalOptions;
65
76
  }
66
77
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/dashboard/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,YAAY,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,cAAc,EAAE,KAAK,CAAC;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,IAAI,CAAC;KACb,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,OAAO,CAA6B;gBAEhC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,gBAAqB;IAUhD,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IA2G/B,OAAO,CAAC,OAAO,GAAE;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;QAClD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAoE1C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IA2B1C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ1C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAczC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAS9B,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IASxC,UAAU,IAAI,QAAQ,CAAC,gBAAgB,CAAC;CAGzC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/dashboard/service.ts"],"names":[],"mappings":"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"}
@@ -169,14 +169,18 @@ class DashboardService {
169
169
  }
170
170
  async retryJob(jobId) {
171
171
  const result = await this.pool.query(`
172
- UPDATE que_jobs
173
- SET error_count = 0,
174
- last_error = NULL,
172
+ UPDATE que_jobs
173
+ SET error_count = 0,
174
+ last_error = NULL,
175
175
  run_at = NOW()
176
176
  WHERE job_id = $1
177
177
  `, [jobId]);
178
178
  return (result.rowCount ?? 0) > 0;
179
179
  }
180
+ async updateJobArgs(jobId, args) {
181
+ const result = await this.pool.query('UPDATE que_jobs SET args = $1::jsonb WHERE job_id = $2', [JSON.stringify(args), jobId]);
182
+ return (result.rowCount ?? 0) > 0;
183
+ }
180
184
  async getQueues() {
181
185
  const result = await this.pool.query(`
182
186
  SELECT DISTINCT queue
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dashboard/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dashboard/service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- import { DashboardOptions } from './service';
2
- export declare function getDashboardHTML(options: Required<DashboardOptions>): string;
1
+ import { DashboardInternalOptions } from './service';
2
+ export declare function getLoginHTML(options: DashboardInternalOptions, error?: string): string;
3
+ export declare function getDashboardHTML(options: DashboardInternalOptions, userEmail?: string): string;
3
4
  //# sourceMappingURL=views.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/dashboard/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,CA6wB5E"}
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/dashboard/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAwPtF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAyrC9F"}