@manablox/jobs 0.3.0 → 0.4.0

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/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
+ import { Manablox } from "@manablox/core";
1
2
  import { Database, Repositories } from "@manablox/db";
2
3
  import { JobsOptions } from "bullmq";
3
- import { Manablox } from "@manablox/core";
4
4
  //#region src/index.d.ts
5
5
  export interface JobPayloads {
6
6
  'webhook:deliver': {
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { runAsActor, systemActor } from "@manablox/core";
1
2
  import { schema } from "@manablox/db";
2
3
  import { Queue, Worker } from "bullmq";
3
4
  import { sql } from "drizzle-orm";
@@ -9,14 +10,14 @@ function createJobRunner(manablox, db, repos, handlers = {}) {
9
10
  if (!redisUrl) return {
10
11
  inline: true,
11
12
  async enqueue(name, payload) {
12
- await runJob(name, payload, db, repos, handlers, manablox);
13
+ await runAsActor(systemActor(`job:${name}`), () => runJob(name, payload, db, repos, handlers, manablox));
13
14
  },
14
15
  async close() {}
15
16
  };
16
17
  const connection = new Redis(redisUrl, { maxRetriesPerRequest: null });
17
18
  const queue = new Queue("manablox", { connection });
18
19
  const worker = new Worker("manablox", async (job) => {
19
- await runJob(job.name, job.data, db, repos, handlers, manablox);
20
+ await runAsActor(systemActor(`job:${job.name}`), () => runJob(job.name, job.data, db, repos, handlers, manablox));
20
21
  }, {
21
22
  connection,
22
23
  concurrency: 8,
@@ -75,7 +76,18 @@ async function runJob(name, payload, db, repos, handlers, manablox) {
75
76
  await handlers.workflowRun?.(data.runId);
76
77
  break;
77
78
  }
78
- case "maintenance:pruneApiKeys": await db.delete(schema.apikeys).where(sql`${schema.apikeys.expiresAt} is not null and ${schema.apikeys.expiresAt} < now()`);
79
+ case "maintenance:pruneApiKeys": {
80
+ const deleted = await db.delete(schema.apikeys).where(sql`${schema.apikeys.expiresAt} is not null and ${schema.apikeys.expiresAt} < now()`).returning({
81
+ id: schema.apikeys.id,
82
+ name: schema.apikeys.name
83
+ });
84
+ if (deleted.length) await repos.audit.record({
85
+ action: "apiKey.prune",
86
+ targetKind: "apiKey",
87
+ meta: { removed: deleted }
88
+ });
89
+ break;
90
+ }
79
91
  }
80
92
  }
81
93
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manablox/jobs",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -11,8 +11,8 @@
11
11
  "main": "./dist/index.js",
12
12
  "types": "./dist/index.d.ts",
13
13
  "dependencies": {
14
- "@manablox/core": "0.3.0",
15
- "@manablox/db": "0.3.0",
14
+ "@manablox/core": "0.4.0",
15
+ "@manablox/db": "0.4.0",
16
16
  "bullmq": "^6.3.4",
17
17
  "ioredis": "^6.0.0",
18
18
  "drizzle-orm": "^0.45.2"