@forestadmin/forestadmin-client 1.37.2 → 1.37.3

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.
@@ -1,12 +1,14 @@
1
- import type { ActivityLogResponse, CreateActivityLogParams, UpdateActivityLogStatusParams } from '../types';
1
+ import type { ActivityLogResponse, CreateActivityLogParams, ForestAdminServerInterface, UpdateActivityLogStatusParams } from '../types';
2
2
  export type ActivityLogsOptions = {
3
3
  forestServerUrl: string;
4
4
  headers?: Record<string, string>;
5
5
  };
6
6
  export default class ActivityLogsService {
7
+ private forestAdminServerInterface;
7
8
  private options;
8
- constructor(options: ActivityLogsOptions);
9
+ constructor(forestAdminServerInterface: ForestAdminServerInterface, options: ActivityLogsOptions);
9
10
  createActivityLog(params: CreateActivityLogParams): Promise<ActivityLogResponse>;
10
11
  updateActivityLogStatus(params: UpdateActivityLogStatusParams): Promise<void>;
12
+ private getHttpOptions;
11
13
  }
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1,68 +1,59 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const server_1 = __importDefault(require("../utils/server"));
7
3
  class ActivityLogsService {
8
- constructor(options) {
4
+ constructor(forestAdminServerInterface, options) {
5
+ this.forestAdminServerInterface = forestAdminServerInterface;
9
6
  this.options = options;
10
7
  }
11
8
  async createActivityLog(params) {
12
9
  const { forestServerToken, renderingId, action, type, collectionName, recordId, recordIds, label, } = params;
13
- const { data: activityLog } = await server_1.default.queryWithBearerToken({
14
- forestServerUrl: this.options.forestServerUrl,
15
- method: 'post',
16
- path: '/api/activity-logs-requests',
17
- bearerToken: forestServerToken,
18
- headers: this.options.headers,
19
- body: {
20
- data: {
21
- id: 1,
22
- type: 'activity-logs-requests',
23
- attributes: {
24
- type,
25
- action,
26
- label,
27
- status: 'pending',
28
- // Ensure all record IDs are converted to strings
29
- records: (recordIds || (recordId ? [recordId] : [])).map(String),
30
- },
31
- relationships: {
32
- rendering: {
33
- data: {
34
- id: renderingId,
35
- type: 'renderings',
36
- },
37
- },
38
- collection: {
39
- data: collectionName
40
- ? {
41
- id: collectionName,
42
- type: 'collections',
43
- }
44
- : null,
10
+ const body = {
11
+ data: {
12
+ id: 1,
13
+ type: 'activity-logs-requests',
14
+ attributes: {
15
+ type,
16
+ action,
17
+ label,
18
+ status: 'pending',
19
+ // Ensure all record IDs are converted to strings
20
+ records: (recordIds || (recordId ? [recordId] : [])).map(String),
21
+ },
22
+ relationships: {
23
+ rendering: {
24
+ data: {
25
+ id: renderingId,
26
+ type: 'renderings',
45
27
  },
46
28
  },
29
+ collection: {
30
+ data: collectionName
31
+ ? {
32
+ id: collectionName,
33
+ type: 'collections',
34
+ }
35
+ : null,
36
+ },
47
37
  },
48
38
  },
49
- });
50
- return activityLog;
39
+ };
40
+ return this.forestAdminServerInterface.createActivityLog(this.getHttpOptions(forestServerToken), body);
51
41
  }
52
42
  async updateActivityLogStatus(params) {
53
43
  const { forestServerToken, activityLog, status, errorMessage } = params;
54
- await server_1.default.queryWithBearerToken({
44
+ const body = {
45
+ status,
46
+ ...(errorMessage && { errorMessage }),
47
+ };
48
+ await this.forestAdminServerInterface.updateActivityLogStatus(this.getHttpOptions(forestServerToken), activityLog.attributes.index, activityLog.id, body);
49
+ }
50
+ getHttpOptions(bearerToken) {
51
+ return {
55
52
  forestServerUrl: this.options.forestServerUrl,
56
- method: 'patch',
57
- path: `/api/activity-logs-requests/${activityLog.attributes.index}/${activityLog.id}/status`,
58
- bearerToken: forestServerToken,
53
+ bearerToken,
59
54
  headers: this.options.headers,
60
- body: {
61
- status,
62
- ...(errorMessage && { errorMessage }),
63
- },
64
- });
55
+ };
65
56
  }
66
57
  }
67
58
  exports.default = ActivityLogsService;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aXZpdHktbG9ncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU1BLDZEQUEwQztBQU8xQyxNQUFxQixtQkFBbUI7SUFDdEMsWUFBb0IsT0FBNEI7UUFBNUIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7SUFBRyxDQUFDO0lBRXBELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUErQjtRQUNyRCxNQUFNLEVBQ0osaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxNQUFNLEVBQ04sSUFBSSxFQUNKLGNBQWMsRUFDZCxRQUFRLEVBQ1IsU0FBUyxFQUNULEtBQUssR0FDTixHQUFHLE1BQU0sQ0FBQztRQUVYLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxnQkFBVyxDQUFDLG9CQUFvQixDQUVqRTtZQUNELGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWU7WUFDN0MsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsNkJBQTZCO1lBQ25DLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUM3QixJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFO29CQUNKLEVBQUUsRUFBRSxDQUFDO29CQUNMLElBQUksRUFBRSx3QkFBd0I7b0JBQzlCLFVBQVUsRUFBRTt3QkFDVixJQUFJO3dCQUNKLE1BQU07d0JBQ04sS0FBSzt3QkFDTCxNQUFNLEVBQUUsU0FBUzt3QkFDakIsaURBQWlEO3dCQUNqRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztxQkFDakU7b0JBQ0QsYUFBYSxFQUFFO3dCQUNiLFNBQVMsRUFBRTs0QkFDVCxJQUFJLEVBQUU7Z0NBQ0osRUFBRSxFQUFFLFdBQVc7Z0NBQ2YsSUFBSSxFQUFFLFlBQVk7NkJBQ25CO3lCQUNGO3dCQUNELFVBQVUsRUFBRTs0QkFDVixJQUFJLEVBQUUsY0FBYztnQ0FDbEIsQ0FBQyxDQUFDO29DQUNFLEVBQUUsRUFBRSxjQUFjO29DQUNsQixJQUFJLEVBQUUsYUFBYTtpQ0FDcEI7Z0NBQ0gsQ0FBQyxDQUFDLElBQUk7eUJBQ1Q7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBcUM7UUFDakUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRXhFLE1BQU0sZ0JBQVcsQ0FBQyxvQkFBb0IsQ0FBQztZQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO1lBQzdDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLCtCQUErQixXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsRUFBRSxTQUFTO1lBQzVGLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUM3QixJQUFJLEVBQUU7Z0JBQ0osTUFBTTtnQkFDTixHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7YUFDdEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF6RUQsc0NBeUVDIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aXZpdHktbG9ncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLE1BQXFCLG1CQUFtQjtJQUN0QyxZQUNVLDBCQUFzRCxFQUN0RCxPQUE0QjtRQUQ1QiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBQ25DLENBQUM7SUFFSixLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBK0I7UUFDckQsTUFBTSxFQUNKLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsTUFBTSxFQUNOLElBQUksRUFDSixjQUFjLEVBQ2QsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBQ04sR0FBRyxNQUFNLENBQUM7UUFFWCxNQUFNLElBQUksR0FBRztZQUNYLElBQUksRUFBRTtnQkFDSixFQUFFLEVBQUUsQ0FBQztnQkFDTCxJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixVQUFVLEVBQUU7b0JBQ1YsSUFBSTtvQkFDSixNQUFNO29CQUNOLEtBQUs7b0JBQ0wsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLGlEQUFpRDtvQkFDakQsT0FBTyxFQUFFLENBQUMsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7aUJBQ2pFO2dCQUNELGFBQWEsRUFBRTtvQkFDYixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFOzRCQUNKLEVBQUUsRUFBRSxXQUFXOzRCQUNmLElBQUksRUFBRSxZQUFZO3lCQUNuQjtxQkFDRjtvQkFDRCxVQUFVLEVBQUU7d0JBQ1YsSUFBSSxFQUFFLGNBQWM7NEJBQ2xCLENBQUMsQ0FBQztnQ0FDRSxFQUFFLEVBQUUsY0FBYztnQ0FDbEIsSUFBSSxFQUFFLGFBQWE7NkJBQ3BCOzRCQUNILENBQUMsQ0FBQyxJQUFJO3FCQUNUO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsaUJBQWlCLENBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsRUFDdEMsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLE1BQXFDO1FBQ2pFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUV4RSxNQUFNLElBQUksR0FBRztZQUNYLE1BQU07WUFDTixHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7U0FDdEMsQ0FBQztRQUVGLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLHVCQUF1QixDQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEVBQ3RDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUM1QixXQUFXLENBQUMsRUFBRSxFQUNkLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUFtQjtRQUN4QyxPQUFPO1lBQ0wsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZTtZQUM3QyxXQUFXO1lBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztTQUM5QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBOUVELHNDQThFQyJ9
@@ -42,12 +42,12 @@ function buildApplicationServices(forestAdminServerInterface, options) {
42
42
  eventsSubscription,
43
43
  eventsHandler,
44
44
  chartHandler: new chart_handler_1.default(contextVariables),
45
- ipWhitelist: new ip_whitelist_1.default(optionsWithDefaults),
46
- schema: new schema_1.default(optionsWithDefaults),
47
- activityLogs: new activity_logs_1.default(optionsWithDefaults),
45
+ ipWhitelist: new ip_whitelist_1.default(forestAdminServerInterface, optionsWithDefaults),
46
+ schema: new schema_1.default(forestAdminServerInterface, optionsWithDefaults),
47
+ activityLogs: new activity_logs_1.default(forestAdminServerInterface, optionsWithDefaults),
48
48
  auth: forestAdminServerInterface.makeAuthService(optionsWithDefaults),
49
49
  modelCustomizationService: new model_customization_from_api_1.default(forestAdminServerInterface, optionsWithDefaults),
50
50
  mcpServerConfigService: new mcp_server_config_1.default(forestAdminServerInterface, optionsWithDefaults),
51
51
  };
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtYXBwbGljYXRpb24tc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQtYXBwbGljYXRpb24tc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUF5QkEsMkNBNEVDO0FBM0ZELG9FQUFrRDtBQUNsRCwyRUFBa0Q7QUFDbEQsZ0ZBQThEO0FBQzlELHdJQUE0RztBQUM1RyxrRUFBZ0Q7QUFDaEQsNEVBQWdFO0FBQ2hFLHVIQUFtRztBQUNuRyx3RkFBc0U7QUFDdEUsZ0dBQW9FO0FBQ3BFLDhGQUE0RTtBQUM1RSxvRkFBa0U7QUFDbEUsc0RBQXFDO0FBQ3JDLDRHQUFrRjtBQUNsRiw0RUFBbUQ7QUFFbkQsU0FBd0Isd0JBQXdCLENBQzlDLDBCQUFzRCxFQUN0RCxPQUFpQztJQWdCakMsTUFBTSxtQkFBbUIsR0FBRztRQUMxQixlQUFlLEVBQUUsNkJBQTZCO1FBQzlDLGlDQUFpQyxFQUFFLEVBQUUsR0FBRyxFQUFFO1FBQzFDLE1BQU0sRUFBRSx3QkFBYTtRQUNyQixtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLEdBQUcsT0FBTztLQUNYLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxJQUFJLHlCQUFxQixDQUMvQyxtQkFBbUIsRUFDbkIsMEJBQTBCLENBQzNCLENBQUM7SUFFRixNQUFNLG1CQUFtQixHQUFHLElBQUksOEJBQTBCLENBQ3hELG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsMEJBQTBCLENBQzNCLENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksMkJBQXVCLENBQ2xELG1CQUFtQixFQUNuQiwwQkFBMEIsQ0FDM0IsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSx3Q0FBNEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sVUFBVSxHQUFHLElBQUksK0JBQWlCLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUVoRixNQUFNLGFBQWEsR0FBRyxJQUFJLCtDQUFpQyxDQUN6RCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG1CQUFtQixDQUNwQixDQUFDO0lBRUYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLDZCQUF5QixDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTdGLE9BQU87UUFDTCxtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixZQUFZLEVBQUUsSUFBSSx1QkFBWSxDQUFDLGdCQUFnQixDQUFDO1FBQ2hELFdBQVcsRUFBRSxJQUFJLHNCQUFrQixDQUFDLG1CQUFtQixDQUFDO1FBQ3hELE1BQU0sRUFBRSxJQUFJLGdCQUFhLENBQUMsbUJBQW1CLENBQUM7UUFDOUMsWUFBWSxFQUFFLElBQUksdUJBQW1CLENBQUMsbUJBQW1CLENBQUM7UUFDMUQsSUFBSSxFQUFFLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztRQUNyRSx5QkFBeUIsRUFBRSxJQUFJLHNDQUFnQyxDQUM3RCwwQkFBMEIsRUFDMUIsbUJBQW1CLENBQ3BCO1FBQ0Qsc0JBQXNCLEVBQUUsSUFBSSwyQkFBNkIsQ0FDdkQsMEJBQTBCLEVBQzFCLG1CQUFtQixDQUNwQjtLQUNGLENBQUM7QUFDSixDQUFDIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtYXBwbGljYXRpb24tc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQtYXBwbGljYXRpb24tc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUF5QkEsMkNBNEVDO0FBM0ZELG9FQUFrRDtBQUNsRCwyRUFBa0Q7QUFDbEQsZ0ZBQThEO0FBQzlELHdJQUE0RztBQUM1RyxrRUFBZ0Q7QUFDaEQsNEVBQWdFO0FBQ2hFLHVIQUFtRztBQUNuRyx3RkFBc0U7QUFDdEUsZ0dBQW9FO0FBQ3BFLDhGQUE0RTtBQUM1RSxvRkFBa0U7QUFDbEUsc0RBQXFDO0FBQ3JDLDRHQUFrRjtBQUNsRiw0RUFBbUQ7QUFFbkQsU0FBd0Isd0JBQXdCLENBQzlDLDBCQUFzRCxFQUN0RCxPQUFpQztJQWdCakMsTUFBTSxtQkFBbUIsR0FBRztRQUMxQixlQUFlLEVBQUUsNkJBQTZCO1FBQzlDLGlDQUFpQyxFQUFFLEVBQUUsR0FBRyxFQUFFO1FBQzFDLE1BQU0sRUFBRSx3QkFBYTtRQUNyQixtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLEdBQUcsT0FBTztLQUNYLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxJQUFJLHlCQUFxQixDQUMvQyxtQkFBbUIsRUFDbkIsMEJBQTBCLENBQzNCLENBQUM7SUFFRixNQUFNLG1CQUFtQixHQUFHLElBQUksOEJBQTBCLENBQ3hELG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsMEJBQTBCLENBQzNCLENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksMkJBQXVCLENBQ2xELG1CQUFtQixFQUNuQiwwQkFBMEIsQ0FDM0IsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSx3Q0FBNEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sVUFBVSxHQUFHLElBQUksK0JBQWlCLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUVoRixNQUFNLGFBQWEsR0FBRyxJQUFJLCtDQUFpQyxDQUN6RCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG1CQUFtQixDQUNwQixDQUFDO0lBRUYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLDZCQUF5QixDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTdGLE9BQU87UUFDTCxtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixZQUFZLEVBQUUsSUFBSSx1QkFBWSxDQUFDLGdCQUFnQixDQUFDO1FBQ2hELFdBQVcsRUFBRSxJQUFJLHNCQUFrQixDQUFDLDBCQUEwQixFQUFFLG1CQUFtQixDQUFDO1FBQ3BGLE1BQU0sRUFBRSxJQUFJLGdCQUFhLENBQUMsMEJBQTBCLEVBQUUsbUJBQW1CLENBQUM7UUFDMUUsWUFBWSxFQUFFLElBQUksdUJBQW1CLENBQUMsMEJBQTBCLEVBQUUsbUJBQW1CLENBQUM7UUFDdEYsSUFBSSxFQUFFLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztRQUNyRSx5QkFBeUIsRUFBRSxJQUFJLHNDQUFnQyxDQUM3RCwwQkFBMEIsRUFDMUIsbUJBQW1CLENBQ3BCO1FBQ0Qsc0JBQXNCLEVBQUUsSUFBSSwyQkFBNkIsQ0FDdkQsMEJBQTBCLEVBQzFCLG1CQUFtQixDQUNwQjtLQUNGLENBQUM7QUFDSixDQUFDIn0=
package/dist/index.d.ts CHANGED
@@ -17,7 +17,7 @@ export { default as ContextVariables } from './utils/context-variables';
17
17
  export { default as ChartHandler } from './charts/chart-handler';
18
18
  export { default as ForestAdminClientWithCache } from './forest-admin-client-with-cache';
19
19
  export { default as buildApplicationServices } from './build-application-services';
20
- export { HttpOptions } from './permissions/forest-http-api';
20
+ export { HttpOptions } from './utils/http-options';
21
21
  export { default as ForestHttpApi } from './permissions/forest-http-api';
22
22
  export { default as SchemaService, SchemaServiceOptions } from './schema';
23
23
  export { default as ActivityLogsService, ActivityLogsOptions } from './activity-logs';
@@ -1,8 +1,9 @@
1
1
  import type { IpWhitelistConfiguration } from './types';
2
- import type { ForestAdminClientOptionsWithDefaults } from '../types';
2
+ import type { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types';
3
3
  export default class IpWhiteListService {
4
+ private forestAdminServerInterface;
4
5
  private options;
5
- constructor(options: ForestAdminClientOptionsWithDefaults);
6
+ constructor(forestAdminServerInterface: ForestAdminServerInterface, options: ForestAdminClientOptionsWithDefaults);
6
7
  getConfiguration(): Promise<IpWhitelistConfiguration>;
7
8
  }
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const server_1 = __importDefault(require("../utils/server"));
3
+ const http_options_1 = require("../utils/http-options");
7
4
  class IpWhiteListService {
8
- constructor(options) {
5
+ constructor(forestAdminServerInterface, options) {
6
+ this.forestAdminServerInterface = forestAdminServerInterface;
9
7
  this.options = options;
10
8
  }
11
9
  async getConfiguration() {
12
- const body = await server_1.default.query(this.options, 'get', '/liana/v1/ip-whitelist-rules');
10
+ const body = await this.forestAdminServerInterface.getIpWhitelistRules((0, http_options_1.toHttpOptions)(this.options));
13
11
  return {
14
12
  isFeatureEnabled: body.data.attributes.use_ip_whitelist,
15
13
  ipRules: body.data.attributes.rules,
@@ -17,4 +15,4 @@ class IpWhiteListService {
17
15
  }
18
16
  }
19
17
  exports.default = IpWhiteListService;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaXAtd2hpdGVsaXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsNkRBQTBDO0FBVzFDLE1BQXFCLGtCQUFrQjtJQUNyQyxZQUFvQixPQUE2QztRQUE3QyxZQUFPLEdBQVAsT0FBTyxDQUFzQztJQUFHLENBQUM7SUFFckUsS0FBSyxDQUFDLGdCQUFnQjtRQUNwQixNQUFNLElBQUksR0FBRyxNQUFNLGdCQUFXLENBQUMsS0FBSyxDQUNsQyxJQUFJLENBQUMsT0FBTyxFQUNaLEtBQUssRUFDTCw4QkFBOEIsQ0FDL0IsQ0FBQztRQUVGLE9BQU87WUFDTCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDdkQsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7U0FDcEMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWZELHFDQWVDIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaXAtd2hpdGVsaXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esd0RBQXNEO0FBRXRELE1BQXFCLGtCQUFrQjtJQUNyQyxZQUNVLDBCQUFzRCxFQUN0RCxPQUE2QztRQUQ3QywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELFlBQU8sR0FBUCxPQUFPLENBQXNDO0lBQ3BELENBQUM7SUFFSixLQUFLLENBQUMsZ0JBQWdCO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLG1CQUFtQixDQUNwRSxJQUFBLDRCQUFhLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUM1QixDQUFDO1FBRUYsT0FBTztZQUNMLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQjtZQUN2RCxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSztTQUNwQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaEJELHFDQWdCQyJ9
@@ -1,8 +1,8 @@
1
1
  import type { EnvironmentPermissionsV4, RenderingPermissionV4, UserPermissionV4 } from './types';
2
2
  import type { ModelCustomization } from '../model-customizations/types';
3
- import type { ForestAdminAuthServiceInterface, ForestAdminClientOptions, ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types';
3
+ import type { ActivityLogHttpOptions, ActivityLogResponse, ForestAdminAuthServiceInterface, ForestAdminClientOptions, ForestAdminServerInterface, ForestSchemaCollection, IpWhitelistRulesResponse } from '../types';
4
+ import type { HttpOptions } from '../utils/http-options';
4
5
  import type { McpConfiguration } from '@forestadmin/ai-proxy';
5
- export type HttpOptions = Pick<ForestAdminClientOptionsWithDefaults, 'envSecret' | 'forestServerUrl'>;
6
6
  export default class ForestHttpApi implements ForestAdminServerInterface {
7
7
  getEnvironmentPermissions(options: HttpOptions): Promise<EnvironmentPermissionsV4>;
8
8
  getUsers(options: HttpOptions): Promise<UserPermissionV4[]>;
@@ -10,5 +10,13 @@ export default class ForestHttpApi implements ForestAdminServerInterface {
10
10
  getModelCustomizations(options: HttpOptions): Promise<ModelCustomization[]>;
11
11
  getMcpServerConfigs(options: HttpOptions): Promise<McpConfiguration>;
12
12
  makeAuthService(options: Required<ForestAdminClientOptions>): ForestAdminAuthServiceInterface;
13
+ getSchema(options: HttpOptions): Promise<ForestSchemaCollection[]>;
14
+ postSchema(options: HttpOptions, schema: object): Promise<void>;
15
+ checkSchemaHash(options: HttpOptions, hash: string): Promise<{
16
+ sendSchema: boolean;
17
+ }>;
18
+ getIpWhitelistRules(options: HttpOptions): Promise<IpWhitelistRulesResponse>;
19
+ createActivityLog(options: ActivityLogHttpOptions, body: object): Promise<ActivityLogResponse>;
20
+ updateActivityLogStatus(options: ActivityLogHttpOptions, index: string, id: string, body: object): Promise<void>;
13
21
  }
14
22
  //# sourceMappingURL=forest-http-api.d.ts.map
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const json_api_serializer_1 = __importDefault(require("json-api-serializer"));
6
7
  const auth_1 = __importDefault(require("../auth"));
7
8
  const server_1 = __importDefault(require("../utils/server"));
8
9
  class ForestHttpApi {
@@ -24,6 +25,55 @@ class ForestHttpApi {
24
25
  makeAuthService(options) {
25
26
  return new auth_1.default(options);
26
27
  }
28
+ async getSchema(options) {
29
+ const response = await server_1.default.query(options, 'get', '/liana/forest-schema');
30
+ const serializer = new json_api_serializer_1.default();
31
+ serializer.register('collections', {
32
+ relationships: {
33
+ fields: { type: 'fields' },
34
+ actions: { type: 'actions' },
35
+ segments: { type: 'segments' },
36
+ },
37
+ });
38
+ serializer.register('fields', {});
39
+ serializer.register('actions', {
40
+ relationships: {
41
+ fields: { type: 'fields' },
42
+ },
43
+ });
44
+ serializer.register('segments', {});
45
+ return serializer.deserialize('collections', response);
46
+ }
47
+ async postSchema(options, schema) {
48
+ await server_1.default.query(options, 'post', '/forest/apimaps', {}, schema);
49
+ }
50
+ async checkSchemaHash(options, hash) {
51
+ return server_1.default.query(options, 'post', '/forest/apimaps/hashcheck', {}, { schemaFileHash: hash });
52
+ }
53
+ async getIpWhitelistRules(options) {
54
+ return server_1.default.query(options, 'get', '/liana/v1/ip-whitelist-rules');
55
+ }
56
+ async createActivityLog(options, body) {
57
+ const { data: activityLog } = await server_1.default.queryWithBearerToken({
58
+ forestServerUrl: options.forestServerUrl,
59
+ method: 'post',
60
+ path: '/api/activity-logs-requests',
61
+ bearerToken: options.bearerToken,
62
+ body,
63
+ headers: options.headers,
64
+ });
65
+ return activityLog;
66
+ }
67
+ async updateActivityLogStatus(options, index, id, body) {
68
+ await server_1.default.queryWithBearerToken({
69
+ forestServerUrl: options.forestServerUrl,
70
+ method: 'patch',
71
+ path: `/api/activity-logs-requests/${index}/${id}/status`,
72
+ bearerToken: options.bearerToken,
73
+ body,
74
+ headers: options.headers,
75
+ });
76
+ }
27
77
  }
28
78
  exports.default = ForestHttpApi;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWh0dHAtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL2ZvcmVzdC1odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVVBLG1EQUFrQztBQUNsQyw2REFBMEM7QUFPMUMsTUFBcUIsYUFBYTtJQUNoQyxLQUFLLENBQUMseUJBQXlCLENBQUMsT0FBb0I7UUFDbEQsT0FBTyxnQkFBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLG1DQUFtQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBb0I7UUFDakMsT0FBTyxnQkFBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsV0FBbUIsRUFDbkIsT0FBb0I7UUFFcEIsT0FBTyxnQkFBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLG9DQUFvQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsT0FBb0I7UUFDL0MsT0FBTyxnQkFBVyxDQUFDLEtBQUssQ0FBdUIsT0FBTyxFQUFFLEtBQUssRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBb0I7UUFDNUMsT0FBTyxnQkFBVyxDQUFDLEtBQUssQ0FDdEIsT0FBTyxFQUNQLEtBQUssRUFDTCx3Q0FBd0MsQ0FDekMsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBMkM7UUFDekQsT0FBTyxJQUFJLGNBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUEvQkQsZ0NBK0JDIn0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWh0dHAtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL2ZvcmVzdC1odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWNBLDhFQUFvRDtBQUVwRCxtREFBa0M7QUFDbEMsNkRBQTBDO0FBRTFDLE1BQXFCLGFBQWE7SUFDaEMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLE9BQW9CO1FBQ2xELE9BQU8sZ0JBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQW9CO1FBQ2pDLE9BQU8sZ0JBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLFdBQW1CLEVBQ25CLE9BQW9CO1FBRXBCLE9BQU8sZ0JBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxvQ0FBb0MsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUFDLE9BQW9CO1FBQy9DLE9BQU8sZ0JBQVcsQ0FBQyxLQUFLLENBQXVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQW9CO1FBQzVDLE9BQU8sZ0JBQVcsQ0FBQyxLQUFLLENBQ3RCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsd0NBQXdDLENBQ3pDLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQTJDO1FBQ3pELE9BQU8sSUFBSSxjQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBb0I7UUFDbEMsTUFBTSxR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
@@ -1,5 +1,5 @@
1
+ import type { ForestAdminServerInterface, ForestSchemaCollection } from '../types';
1
2
  import type { ForestSchema } from './types';
2
- import type { ForestSchemaCollection } from '../types';
3
3
  type SerializedSchema = {
4
4
  meta: {
5
5
  schemaFileHash: string;
@@ -12,8 +12,9 @@ export interface SchemaServiceOptions {
12
12
  logger?: (level: 'Info' | 'Warn' | 'Error' | 'Debug', message: string) => void;
13
13
  }
14
14
  export default class SchemaService {
15
+ private forestAdminServerInterface;
15
16
  private options;
16
- constructor(options: SchemaServiceOptions);
17
+ constructor(forestAdminServerInterface: ForestAdminServerInterface, options: SchemaServiceOptions);
17
18
  postSchema(schema: ForestSchema): Promise<boolean>;
18
19
  getSchema(): Promise<ForestSchemaCollection[]>;
19
20
  static serialize(schema: ForestSchema): SerializedSchema;
@@ -5,16 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const crypto_1 = __importDefault(require("crypto"));
7
7
  const json_api_serializer_1 = __importDefault(require("json-api-serializer"));
8
- const server_1 = __importDefault(require("../utils/server"));
8
+ const http_options_1 = require("../utils/http-options");
9
9
  class SchemaService {
10
- constructor(options) {
10
+ constructor(forestAdminServerInterface, options) {
11
+ this.forestAdminServerInterface = forestAdminServerInterface;
11
12
  this.options = options;
12
13
  }
13
14
  async postSchema(schema) {
14
15
  const apimap = SchemaService.serialize(schema);
16
+ const httpOptions = (0, http_options_1.toHttpOptions)(this.options);
15
17
  const shouldSend = await this.doServerWantsSchema(apimap.meta.schemaFileHash);
16
18
  if (shouldSend) {
17
- await server_1.default.query(this.options, 'post', '/forest/apimaps', {}, apimap);
19
+ await this.forestAdminServerInterface.postSchema(httpOptions, apimap);
18
20
  }
19
21
  const message = shouldSend
20
22
  ? 'Schema was updated, sending new version'
@@ -25,23 +27,7 @@ class SchemaService {
25
27
  return shouldSend;
26
28
  }
27
29
  async getSchema() {
28
- const response = await server_1.default.query(this.options, 'get', '/liana/forest-schema');
29
- const serializer = new json_api_serializer_1.default();
30
- serializer.register('collections', {
31
- relationships: {
32
- fields: { type: 'fields' },
33
- actions: { type: 'actions' },
34
- segments: { type: 'segments' },
35
- },
36
- });
37
- serializer.register('fields', {});
38
- serializer.register('actions', {
39
- relationships: {
40
- fields: { type: 'fields' },
41
- },
42
- });
43
- serializer.register('segments', {});
44
- return serializer.deserialize('collections', response);
30
+ return this.forestAdminServerInterface.getSchema((0, http_options_1.toHttpOptions)(this.options));
45
31
  }
46
32
  static serialize(schema) {
47
33
  const data = schema.collections.map(c => ({ id: c.name, ...c }));
@@ -67,9 +53,9 @@ class SchemaService {
67
53
  }
68
54
  async doServerWantsSchema(hash) {
69
55
  // Check if the schema was already sent by another agent
70
- const { sendSchema } = await server_1.default.query(this.options, 'post', '/forest/apimaps/hashcheck', {}, { schemaFileHash: hash });
56
+ const { sendSchema } = await this.forestAdminServerInterface.checkSchemaHash((0, http_options_1.toHttpOptions)(this.options), hash);
71
57
  return sendSchema;
72
58
  }
73
59
  }
74
60
  exports.default = SchemaService;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esb0RBQTRCO0FBQzVCLDhFQUFvRDtBQUVwRCw2REFBMEM7QUFXMUMsTUFBcUIsYUFBYTtJQUNoQyxZQUFvQixPQUE2QjtRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtJQUFHLENBQUM7SUFFckQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFvQjtRQUNuQyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE1BQU0sZ0JBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxVQUFVO1lBQ3hCLENBQUMsQ0FBQyx5Q0FBeUM7WUFDM0MsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDO1FBRTVDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLFdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNLFFBQVEsR0FBRyxNQUFNLGdCQUFXLENBQUMsS0FBSyxDQUdyQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxzQkFBc0Is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
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esb0RBQTRCO0FBQzVCLDhFQUFvRDtBQUVwRCx3REFBc0Q7QUFXdEQsTUFBcUIsYUFBYTtJQUNoQyxZQUNVLDBCQUFzRCxFQUN0RCxPQUE2QjtRQUQ3QiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELFlBQU8sR0FBUCxPQUFPLENBQXNCO0lBQ3BDLENBQUM7SUFFSixLQUFLLENBQUMsVUFBVSxDQUFDLE1BQW9CO1FBQ25DLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTlFLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxVQUFVO1lBQ3hCLENBQUMsQ0FBQyx5Q0FBeUM7WUFDM0MsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDO1FBRTVDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLFdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsSUFBQSw0QkFBYSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQW9CO1FBQ25DLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLGdCQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlGLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRTtZQUM3RCxHQUFHLE1BQU0sQ0FBQyxJQUFJO1lBQ2QsY0FBYztTQUNmLENBQXFCLENBQUM7SUFDekIsQ0FBQztJQUVPLE1BQU0sS0FBSyxVQUFVO1FBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksNkJBQWlCLEVBQUUsQ0FBQztRQUMzQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUNqQyxxREFBcUQ7WUFDckQsWUFBWSxFQUFFLENBQUMsU0FBa0IsRUFBRSxFQUFFLENBQUMsU0FBUztZQUMvQyxhQUFhLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDOUIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTthQUM3QjtTQUNGLENBQUMsQ0FBQztRQUNILFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBWTtRQUM1Qyx3REFBd0Q7UUFDeEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FDMUUsSUFBQSw0QkFBYSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDM0IsSUFBSSxDQUNMLENBQUM7UUFFRixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFqRUQsZ0NBaUVDIn0=
package/dist/types.d.ts CHANGED
@@ -4,11 +4,11 @@ import type { Chart, QueryChart } from './charts/types';
4
4
  import type { IpWhitelistConfiguration } from './ip-whitelist/types';
5
5
  import type { McpServerConfigService } from './mcp-server-config/types';
6
6
  import type { ModelCustomization, ModelCustomizationService } from './model-customizations/types';
7
- import type { HttpOptions } from './permissions/forest-http-api';
8
7
  import type { CollectionActionEvent, EnvironmentPermissionsV4, RawTree, RawTreeWithSources, RenderingPermissionV4, UserPermissionV4 } from './permissions/types';
9
8
  import type { ForestSchema } from './schema/types';
10
9
  import type { RequestContextVariables } from './utils/context-variables';
11
10
  import type ContextVariables from './utils/context-variables';
11
+ import type { HttpOptions } from './utils/http-options';
12
12
  import type { McpConfiguration } from '@forestadmin/ai-proxy';
13
13
  import type { ParsedUrlQuery } from 'querystring';
14
14
  export type { CollectionActionEvent, RawTree, RawTreeWithSources } from './permissions/types';
@@ -238,5 +238,36 @@ export interface ForestAdminServerInterface {
238
238
  getModelCustomizations: (options: HttpOptions) => Promise<ModelCustomization[]>;
239
239
  getMcpServerConfigs: (options: HttpOptions) => Promise<McpConfiguration>;
240
240
  makeAuthService(options: ForestAdminClientOptionsWithDefaults): ForestAdminAuthServiceInterface;
241
+ getSchema: (options: HttpOptions) => Promise<ForestSchemaCollection[]>;
242
+ postSchema: (options: HttpOptions, schema: object) => Promise<void>;
243
+ checkSchemaHash: (options: HttpOptions, hash: string) => Promise<{
244
+ sendSchema: boolean;
245
+ }>;
246
+ getIpWhitelistRules: (options: HttpOptions) => Promise<IpWhitelistRulesResponse>;
247
+ createActivityLog: (options: ActivityLogHttpOptions, body: object) => Promise<ActivityLogResponse>;
248
+ updateActivityLogStatus: (options: ActivityLogHttpOptions, index: string, id: string, body: object) => Promise<void>;
241
249
  }
250
+ export type ActivityLogHttpOptions = {
251
+ forestServerUrl: string;
252
+ bearerToken: string;
253
+ headers?: Record<string, string>;
254
+ };
255
+ export type IpWhitelistRulesResponse = {
256
+ data: {
257
+ attributes: {
258
+ use_ip_whitelist: boolean;
259
+ rules: Array<{
260
+ type: 0;
261
+ ip: string;
262
+ } | {
263
+ type: 1;
264
+ ipMinimum: string;
265
+ ipMaximum: string;
266
+ } | {
267
+ type: 2;
268
+ range: string;
269
+ }>;
270
+ };
271
+ };
272
+ };
242
273
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,7 @@
1
+ import type { ForestAdminClientOptionsWithDefaults } from '../types';
2
+ export type HttpOptions = Pick<ForestAdminClientOptionsWithDefaults, 'envSecret' | 'forestServerUrl'>;
3
+ export declare function toHttpOptions(options: {
4
+ envSecret: string;
5
+ forestServerUrl: string;
6
+ }): HttpOptions;
7
+ //# sourceMappingURL=http-options.d.ts.map
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toHttpOptions = toHttpOptions;
4
+ function toHttpOptions(options) {
5
+ return {
6
+ envSecret: options.envSecret,
7
+ forestServerUrl: options.forestServerUrl,
8
+ };
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2h0dHAtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLHNDQVFDO0FBUkQsU0FBZ0IsYUFBYSxDQUFDLE9BRzdCO0lBQ0MsT0FBTztRQUNMLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixlQUFlLEVBQUUsT0FBTyxDQUFDLGVBQWU7S0FDekMsQ0FBQztBQUNKLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/forestadmin-client",
3
- "version": "1.37.2",
3
+ "version": "1.37.3",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {