@forestadmin/agent 1.95.2 → 1.97.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.
Files changed (34) hide show
  1. package/dist/agent.d.ts +4 -0
  2. package/dist/agent.js +57 -6
  3. package/dist/audit-trail/action-capture.d.ts +17 -0
  4. package/dist/audit-trail/action-capture.js +97 -0
  5. package/dist/audit-trail/index.d.ts +8 -0
  6. package/dist/audit-trail/index.js +44 -0
  7. package/dist/audit-trail/instrument.d.ts +12 -0
  8. package/dist/audit-trail/instrument.js +393 -0
  9. package/dist/audit-trail/migrations.d.ts +34 -0
  10. package/dist/audit-trail/migrations.js +213 -0
  11. package/dist/audit-trail/revert.d.ts +8 -0
  12. package/dist/audit-trail/revert.js +81 -0
  13. package/dist/audit-trail/scope.d.ts +20 -0
  14. package/dist/audit-trail/scope.js +33 -0
  15. package/dist/audit-trail/sql-store.d.ts +30 -0
  16. package/dist/audit-trail/sql-store.js +316 -0
  17. package/dist/audit-trail/types.d.ts +129 -0
  18. package/dist/audit-trail/types.js +3 -0
  19. package/dist/routes/access/audit-trail-correlation.d.ts +18 -0
  20. package/dist/routes/access/audit-trail-correlation.js +84 -0
  21. package/dist/routes/access/audit-trail.d.ts +23 -0
  22. package/dist/routes/access/audit-trail.js +293 -0
  23. package/dist/routes/capabilities.js +5 -1
  24. package/dist/routes/index.js +14 -1
  25. package/dist/routes/modification/action/action.d.ts +3 -0
  26. package/dist/routes/modification/action/action.js +106 -2
  27. package/dist/types.d.ts +39 -1
  28. package/dist/types.js +1 -1
  29. package/dist/utils/correlation-id.d.ts +5 -0
  30. package/dist/utils/correlation-id.js +26 -0
  31. package/dist/utils/options-validator.js +19 -1
  32. package/dist/utils/query-string.d.ts +3 -1
  33. package/dist/utils/query-string.js +5 -5
  34. package/package.json +8 -7
package/dist/types.d.ts CHANGED
@@ -1,7 +1,34 @@
1
+ import type { AuditStore } from './audit-trail/types';
1
2
  import type { CompositeId, Logger, LoggerLevel } from '@forestadmin/datasource-toolkit';
2
3
  import type { ForestAdminClient } from '@forestadmin/forestadmin-client';
3
4
  import type { WorkflowExecutorTuningOptions } from '@forestadmin/workflow-executor';
4
5
  import type { IncomingMessage, ServerResponse } from 'http';
6
+ export type AuditTrailConfig = {
7
+ /**
8
+ * Postgres / SQL connection string for the audit database. May point at an empty database, the
9
+ * database already used by the agent, or one that already contains the `forest` schema — the
10
+ * schema and table are created on the fly when missing.
11
+ */
12
+ connectionString: string;
13
+ /** Defaults to `forest`. */
14
+ schema?: string;
15
+ /** Defaults to `audit_logs`. */
16
+ tableName?: string;
17
+ /**
18
+ * Fields to mask, keyed by collection name. Redacted fields still produce an audit entry when
19
+ * they change, but their value is replaced with a sentinel instead of being stored.
20
+ */
21
+ redact?: Record<string, string[]>;
22
+ /**
23
+ * `true` refuses a write when its pending audit entry fails to record: nothing is written, no
24
+ * compensating write is issued. `false` (default) swallows the failure and lets the write proceed
25
+ * unaudited. What this buys is no unaudited write, not every row holding exact after-values — a
26
+ * row left `pending` means the write may or may not have landed, and that residue is evidence a
27
+ * write was attempted and never confirmed, which is the point.
28
+ * @default false
29
+ */
30
+ critical?: boolean;
31
+ };
5
32
  /** Options to configure behavior of an agent's forestadmin driver */
6
33
  export type AgentOptions = {
7
34
  authSecret: string;
@@ -55,6 +82,11 @@ export type AgentOptions = {
55
82
  * @example 'http://localhost:4001'
56
83
  */
57
84
  workflowExecutorUrl?: string | null;
85
+ /**
86
+ * Records every create/update/delete and exposes `/_audit-trail/{collection}/:id` and
87
+ * `/_audit-trail/correlation*` routes. Disabled when `null` or unset.
88
+ */
89
+ auditTrail?: AuditTrailConfig | null;
58
90
  };
59
91
  /**
60
92
  * Options for an embedded workflow executor, started in the same process as the agent
@@ -104,7 +136,13 @@ export type WorkflowExecutorEmbedOptions = Omit<WorkflowExecutorTuningOptions, '
104
136
  */
105
137
  encryptionKey?: string;
106
138
  };
107
- export type AgentOptionsWithDefaults = Readonly<Required<AgentOptions>>;
139
+ export type AuditTrailRuntime = AuditTrailConfig & {
140
+ store: AuditStore;
141
+ close: () => Promise<void>;
142
+ };
143
+ export type AgentOptionsWithDefaults = Readonly<Required<Omit<AgentOptions, 'auditTrail'>> & {
144
+ auditTrail: AuditTrailRuntime | null;
145
+ }>;
108
146
  export type HttpCallback = (req: IncomingMessage, res: ServerResponse, next?: () => void) => void;
109
147
  export type McpRouteMatcher = (url: string) => boolean;
110
148
  export declare enum HttpCode {
package/dist/types.js CHANGED
@@ -22,4 +22,4 @@ var RouteType;
22
22
  RouteType[RouteType["Authentication"] = 3] = "Authentication";
23
23
  RouteType[RouteType["PrivateRoute"] = 4] = "PrivateRoute";
24
24
  })(RouteType || (exports.RouteType = RouteType = {}));
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMkdBLElBQVksUUFVWDtBQVZELFdBQVksUUFBUTtJQUNsQixxREFBZ0IsQ0FBQTtJQUNoQix5REFBa0IsQ0FBQTtJQUNsQixtREFBZSxDQUFBO0lBQ2YsaURBQWMsQ0FBQTtJQUNkLDJEQUFtQixDQUFBO0lBQ25CLCtEQUFxQixDQUFBO0lBQ3JCLHVFQUF5QixDQUFBO0lBQ3pCLG1EQUFlLENBQUE7SUFDZixxQ0FBUSxDQUFBO0FBQ1YsQ0FBQyxFQVZXLFFBQVEsd0JBQVIsUUFBUSxRQVVuQjtBQUVELElBQVksU0FPWDtBQVBELFdBQVksU0FBUztJQUNuQixpR0FBaUc7SUFDakcsMkRBQWlCLENBQUE7SUFDakIseURBQWdCLENBQUE7SUFDaEIsdURBQWUsQ0FBQTtJQUNmLDZEQUFrQixDQUFBO0lBQ2xCLHlEQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFQVyxTQUFTLHlCQUFULFNBQVMsUUFPcEIifQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUpBLElBQVksUUFVWDtBQVZELFdBQVksUUFBUTtJQUNsQixxREFBZ0IsQ0FBQTtJQUNoQix5REFBa0IsQ0FBQTtJQUNsQixtREFBZSxDQUFBO0lBQ2YsaURBQWMsQ0FBQTtJQUNkLDJEQUFtQixDQUFBO0lBQ25CLCtEQUFxQixDQUFBO0lBQ3JCLHVFQUF5QixDQUFBO0lBQ3pCLG1EQUFlLENBQUE7SUFDZixxQ0FBUSxDQUFBO0FBQ1YsQ0FBQyxFQVZXLFFBQVEsd0JBQVIsUUFBUSxRQVVuQjtBQUVELElBQVksU0FPWDtBQVBELFdBQVksU0FBUztJQUNuQixpR0FBaUc7SUFDakcsMkRBQWlCLENBQUE7SUFDakIseURBQWdCLENBQUE7SUFDaEIsdURBQWUsQ0FBQTtJQUNmLDZEQUFrQixDQUFBO0lBQ2xCLHlEQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFQVyxTQUFTLHlCQUFULFNBQVMsUUFPcEIifQ==
@@ -0,0 +1,5 @@
1
+ import type { Context, Next } from 'koa';
2
+ export declare const CORRELATION_ID_HEADER = "x-forest-correlation-id";
3
+ export declare function getRequestId(context: Context): string;
4
+ export declare function correlationIdMiddleware(context: Context, next: Next): Promise<void>;
5
+ //# sourceMappingURL=correlation-id.d.ts.map
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CORRELATION_ID_HEADER = void 0;
4
+ exports.getRequestId = getRequestId;
5
+ exports.correlationIdMiddleware = correlationIdMiddleware;
6
+ const uuid_1 = require("uuid");
7
+ exports.CORRELATION_ID_HEADER = 'x-forest-correlation-id';
8
+ // Namespaced so it cannot collide with an identifier a host application places on `context.state`.
9
+ const STATE_KEY = 'forestRequestId';
10
+ function getRequestId(context) {
11
+ if (!context.state[STATE_KEY]) {
12
+ context.state[STATE_KEY] = (0, uuid_1.v4)();
13
+ }
14
+ return context.state[STATE_KEY];
15
+ }
16
+ async function correlationIdMiddleware(context, next) {
17
+ try {
18
+ await next();
19
+ }
20
+ finally {
21
+ if (context.state[STATE_KEY]) {
22
+ context.response.set(exports.CORRELATION_ID_HEADER, context.state[STATE_KEY]);
23
+ }
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVsYXRpb24taWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29ycmVsYXRpb24taWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0Esb0NBTUM7QUFFRCwwREFRQztBQXZCRCwrQkFBb0M7QUFFdkIsUUFBQSxxQkFBcUIsR0FBRyx5QkFBeUIsQ0FBQztBQUUvRCxtR0FBbUc7QUFDbkcsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUM7QUFFcEMsU0FBZ0IsWUFBWSxDQUFDLE9BQWdCO0lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFBLFNBQU0sR0FBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFXLENBQUM7QUFDNUMsQ0FBQztBQUVNLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxPQUFnQixFQUFFLElBQVU7SUFDeEUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7WUFBUyxDQUFDO1FBQ1QsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsNkJBQXFCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQVcsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const forestadmin_client_1 = __importDefault(require("@forestadmin/forestadmin-client"));
7
7
  const fs_1 = require("fs");
8
8
  const path_1 = __importDefault(require("path"));
9
+ const audit_trail_1 = require("../audit-trail");
9
10
  const DEFAULT_MINIMUM_CACHE_DURATION = 60;
10
11
  // One year cache duration when using events
11
12
  const DEFAULT_CACHE_DURATION_WITH_EVENTS = 31560000;
@@ -30,6 +31,7 @@ class OptionsValidator {
30
31
  copyOptions.skipSchemaUpdate = copyOptions.skipSchemaUpdate || false;
31
32
  copyOptions.instantCacheRefresh = copyOptions.instantCacheRefresh ?? true;
32
33
  copyOptions.workflowExecutorUrl = copyOptions.workflowExecutorUrl ?? null;
34
+ copyOptions.auditTrail = copyOptions.auditTrail ?? null;
33
35
  copyOptions.maxBodySize = copyOptions.maxBodySize || '50mb';
34
36
  copyOptions.bodyParserOptions = copyOptions.bodyParserOptions || {
35
37
  jsonLimit: '50mb',
@@ -60,9 +62,25 @@ class OptionsValidator {
60
62
  instantCacheRefresh: copyOptions.instantCacheRefresh,
61
63
  experimental: copyOptions.experimental,
62
64
  });
65
+ const auditTrail = copyOptions.auditTrail
66
+ ? (() => {
67
+ const { store, close } = (0, audit_trail_1.createSqlAuditStore)({
68
+ connectionString: copyOptions.auditTrail.connectionString,
69
+ schema: copyOptions.auditTrail.schema,
70
+ tableName: copyOptions.auditTrail.tableName,
71
+ });
72
+ return {
73
+ ...copyOptions.auditTrail,
74
+ critical: copyOptions.auditTrail.critical ?? false,
75
+ store,
76
+ close,
77
+ };
78
+ })()
79
+ : null;
63
80
  return {
64
81
  loggerLevel: 'Info',
65
82
  ...copyOptions,
83
+ auditTrail,
66
84
  };
67
85
  }
68
86
  static validate(options) {
@@ -128,4 +146,4 @@ OptionsValidator.loggerPrefix = {
128
146
  Error: '\x1b[31merror:\x1b[0m',
129
147
  };
130
148
  exports.default = OptionsValidator;
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvb3B0aW9ucy12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx5RkFBc0U7QUFDdEUsMkJBQWdDO0FBQ2hDLGdEQUF3QjtBQUV4QixNQUFNLDhCQUE4QixHQUFHLEVBQUUsQ0FBQztBQUMxQyw0Q0FBNEM7QUFDNUMsTUFBTSxrQ0FBa0MsR0FBRyxRQUFRLENBQUM7QUFFcEQsTUFBcUIsZ0JBQWdCO0lBUW5DLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBcUI7UUFDdkMsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBRW5DLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO1lBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTlDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixXQUFXLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDO1FBQ3pELFdBQVcsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsSUFBSSwwQkFBMEIsQ0FBQztRQUM5RSxXQUFXLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQyxlQUFlLElBQUksNkJBQTZCLENBQUM7UUFDM0YsV0FBVyxDQUFDLFlB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
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvb3B0aW9ucy12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx5RkFBc0U7QUFDdEUsMkJBQWdDO0FBQ2hDLGdEQUF3QjtBQUV4QixnREFBcUQ7QUFFckQsTUFBTSw4QkFBOEIsR0FBRyxFQUFFLENBQUM7QUFDMUMsNENBQTRDO0FBQzVDLE1BQU0sa0NBQWtDLEdBQUcsUUFBUSxDQUFDO0FBRXBELE1BQXFCLGdCQUFnQjtJQVFuQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQXFCO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUVuQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztZQUNsRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUU5QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsV0FBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQztRQUN6RCxXQUFXLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLElBQUksMEJBQTBCLENBQUM7UUFDOUUsV0FBVyxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsZUFBZSxJQUFJLDZCQUE2QixDQUFDO1FBQzNG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
@@ -14,7 +14,9 @@ export default class QueryStringParser {
14
14
  query: any;
15
15
  connectionName: any;
16
16
  };
17
- static parseCaller(context: Context): Caller;
17
+ static parseCaller(context: Context, options?: {
18
+ defaultTimezone?: string;
19
+ }): Caller;
18
20
  static parseChartParameters(context: Context): Record<string, string>;
19
21
  static parsePagination(context: Context): Page;
20
22
  static parseSort(collection: Collection, context: Context): Sort;
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
7
- const uuid_1 = require("uuid");
8
7
  const condition_tree_parser_1 = __importDefault(require("./condition-tree-parser"));
8
+ const correlation_id_1 = require("./correlation-id");
9
9
  const DEFAULT_ITEMS_PER_PAGE = 15;
10
10
  const DEFAULT_PAGE_TO_SKIP = 1;
11
11
  class QueryStringParser {
@@ -105,8 +105,8 @@ class QueryStringParser {
105
105
  }
106
106
  return { query: segmentQuery, connectionName };
107
107
  }
108
- static parseCaller(context) {
109
- const timezone = context.request.query.timezone?.toString();
108
+ static parseCaller(context, options) {
109
+ const timezone = context.request.query.timezone?.toString() || options?.defaultTimezone;
110
110
  const { ip } = context.request;
111
111
  if (!timezone) {
112
112
  throw new datasource_toolkit_1.ValidationError('Missing timezone');
@@ -138,7 +138,7 @@ class QueryStringParser {
138
138
  return {
139
139
  ...context.state.user,
140
140
  timezone,
141
- requestId: (0, uuid_1.v4)(),
141
+ requestId: (0, correlation_id_1.getRequestId)(context),
142
142
  project,
143
143
  environment,
144
144
  request: { ip },
@@ -195,4 +195,4 @@ class QueryStringParser {
195
195
  }
196
196
  QueryStringParser.VALID_TIMEZONES = new Set();
197
197
  exports.default = QueryStringParser;
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LXN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLHdFQVd5QztBQUN6QywrQkFBb0M7QUFFcEMsb0ZBQTBEO0FBRTFELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRS9CLE1BQXFCLGlCQUFpQjtJQUdwQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsVUFBc0IsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFjLENBQUM7UUFFL0MsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQ1gsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsT0FBTztnQkFDekQsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLE1BQU07Z0JBQ1osS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUVqQixJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUUxQixNQUFNLElBQUksR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRixNQUFNLGFBQWEsR0FBRywrQkFBbUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVFLDJDQUFzQixDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFM0QsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksb0NBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9B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
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LXN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLHdFQVd5QztBQUV6QyxvRkFBMEQ7QUFDMUQscURBQWdEO0FBRWhELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRS9CLE1BQXFCLGlCQUFpQjtJQUdwQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsVUFBc0IsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFjLENBQUM7UUFFL0MsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQ1gsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsT0FBTztnQkFDekQsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLE1BQU07Z0JBQ1osS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUVqQixJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUUxQixNQUFNLElBQUksR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRixNQUFNLGFBQWEsR0FBRywrQkFBbUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVFLDJDQUFzQixDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFM0QsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksb0NBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9B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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/agent",
3
- "version": "1.95.2",
3
+ "version": "1.97.0",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {
@@ -14,10 +14,10 @@
14
14
  "dependencies": {
15
15
  "@fast-csv/format": "^4.3.5",
16
16
  "@forestadmin/agent-toolkit": "1.2.0",
17
- "@forestadmin/datasource-customizer": "1.70.1",
17
+ "@forestadmin/datasource-customizer": "1.71.0",
18
18
  "@forestadmin/datasource-toolkit": "1.55.0",
19
- "@forestadmin/forestadmin-client": "1.42.1",
20
- "@forestadmin/mcp-server": "1.22.1",
19
+ "@forestadmin/forestadmin-client": "1.43.0",
20
+ "@forestadmin/mcp-server": "1.23.0",
21
21
  "@koa/bodyparser": "^6.0.0",
22
22
  "@koa/cors": "^5.0.0",
23
23
  "@koa/router": "^13.1.0",
@@ -31,7 +31,9 @@
31
31
  "light-my-request": "^5.14.0",
32
32
  "luxon": "^3.2.1",
33
33
  "object-hash": "^3.0.0",
34
+ "sequelize": "^6.37.8",
34
35
  "superagent": "^10.3.0",
36
+ "umzug": "^3.8.2",
35
37
  "uuid": "11.1.1"
36
38
  },
37
39
  "files": [
@@ -48,13 +50,12 @@
48
50
  "devDependencies": {
49
51
  "@fastify/express": "^1.1.0",
50
52
  "@forestadmin/datasource-sql": "1.17.13",
51
- "@forestadmin/workflow-executor": "1.24.0",
53
+ "@forestadmin/workflow-executor": "1.25.0",
52
54
  "@nestjs/common": "^11.1.24",
53
55
  "@nestjs/core": "^11.1.24",
54
56
  "@nestjs/platform-express": "^11.1.24",
55
57
  "@nestjs/platform-fastify": "^11.1.24",
56
58
  "@shopify/jest-koa-mocks": "^3.1.0",
57
- "sequelize": "^6.37.8",
58
59
  "sqlite3": "^5.1.7",
59
60
  "@types/json-api-serializer": "^2.6.3",
60
61
  "@types/jsonwebtoken": "^9.0.1",
@@ -71,7 +72,7 @@
71
72
  },
72
73
  "peerDependencies": {
73
74
  "@fastify/express": "^1.1.0 || ^2.0.0 || ^3.0.0 || ^4.0.0",
74
- "@forestadmin/workflow-executor": "1.24.0"
75
+ "@forestadmin/workflow-executor": "1.25.0"
75
76
  },
76
77
  "peerDependenciesMeta": {
77
78
  "@fastify/express": {