@forestadmin/forestadmin-client 1.1.3 → 1.1.5
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/auth/index.d.ts +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/types.d.ts +1 -1
- package/dist/build-application-services.d.ts +19 -0
- package/dist/build-application-services.js +38 -0
- package/dist/charts/chart-handler.d.ts +2 -2
- package/dist/charts/types.d.ts +3 -3
- package/dist/index.d.ts +5 -4
- package/dist/index.js +14 -33
- package/dist/ip-whitelist/index.d.ts +1 -1
- package/dist/ip-whitelist/index.js +1 -1
- package/dist/ip-whitelist/types.d.ts +1 -1
- package/dist/permissions/action-permission.d.ts +4 -4
- package/dist/permissions/action-permission.js +10 -19
- package/dist/permissions/forest-http-api.d.ts +6 -6
- package/dist/permissions/forest-http-api.js +4 -4
- package/dist/permissions/generate-actions-from-permissions.d.ts +2 -2
- package/dist/permissions/permission-with-cache.d.ts +2 -2
- package/dist/permissions/permission-with-cache.js +2 -5
- package/dist/permissions/rendering-permission.d.ts +5 -4
- package/dist/permissions/rendering-permission.js +6 -6
- package/dist/permissions/types.d.ts +17 -17
- package/dist/permissions/user-permission.d.ts +3 -2
- package/dist/permissions/user-permission.js +6 -7
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.js +1 -1
- package/dist/schema/types.d.ts +6 -6
- package/dist/types.d.ts +10 -5
- package/dist/utils/context-variables-injector.d.ts +1 -1
- package/dist/utils/context-variables-instantiator.d.ts +1 -1
- package/dist/utils/context-variables-instantiator.js +1 -1
- package/dist/utils/context-variables.d.ts +1 -1
- package/dist/utils/server.d.ts +1 -1
- package/package.json +9 -9
package/dist/auth/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client } from 'openid-client';
|
|
2
|
-
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
3
2
|
import { UserInfo } from './types';
|
|
3
|
+
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
4
4
|
export default class AuthService {
|
|
5
5
|
private options;
|
|
6
6
|
constructor(options: ForestAdminClientOptionsWithDefaults);
|
package/dist/auth/index.js
CHANGED
|
@@ -36,4 +36,4 @@ class AuthService {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
exports.default = AuthService;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXV0aC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlEQUFpRjtBQUlqRiw2REFBMEM7QUFFMUMsTUFBcUIsV0FBVztJQUM5QixZQUFvQixPQUE2QztRQUE3QyxZQUFPLEdBQVAsT0FBTyxDQUFzQztJQUFHLENBQUM7SUFFckUsS0FBSyxDQUFDLGVBQWU7UUFDbkIsaUZBQWlGO1FBQ2pGLE1BQU0sR0FBRyxHQUFHLHdDQUF3QyxDQUFDO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE1BQU0sZ0JBQVcsQ0FBQyxLQUFLLENBQWlCLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sTUFBTSxHQUFHLElBQUksc0JBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxNQUFNLFlBQVksR0FBRyxFQUFFLDBCQUEwQixFQUFFLE1BQTBCLEVBQUUsQ0FBQztRQUVoRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxXQUFtQixFQUFFLFdBQW1CO1FBQ3hELE1BQU0sR0FBRyxHQUFHLHdCQUF3QixXQUFXLGdCQUFnQixDQUFDO1FBQ2hFLE1BQU0sT0FBTyxHQUFHLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRWhELDhEQUE4RDtRQUM5RCxNQUFNLFFBQVEsR0FBRyxNQUFNLGdCQUFXLENBQUMsS0FBSyxDQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqRixPQUFPO1lBQ0wsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSztZQUNyQyxTQUFTLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTtZQUM5QyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztZQUM1QyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2QyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTtZQUNuQyxlQUFlLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO1lBQzFELFdBQVc7WUFDWCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FDekMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQ3JELEVBQUUsQ0FDSDtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuQ0QsOEJBbUNDIn0=
|
package/dist/auth/types.d.ts
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import AuthService from './auth';
|
|
2
|
+
import ChartHandler from './charts/chart-handler';
|
|
3
|
+
import IpWhiteListService from './ip-whitelist';
|
|
4
|
+
import PermissionService from './permissions/permission-with-cache';
|
|
5
|
+
import RenderingPermissionService from './permissions/rendering-permission';
|
|
6
|
+
import SchemaService from './schema';
|
|
7
|
+
import { ForestAdminClientOptions, ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from './types';
|
|
8
|
+
import ContextVariablesInstantiator from './utils/context-variables-instantiator';
|
|
9
|
+
export default function buildApplicationServices(forestAdminServerInterface: ForestAdminServerInterface, options: ForestAdminClientOptions): {
|
|
10
|
+
optionsWithDefaults: ForestAdminClientOptionsWithDefaults;
|
|
11
|
+
renderingPermission: RenderingPermissionService;
|
|
12
|
+
schema: SchemaService;
|
|
13
|
+
contextVariables: ContextVariablesInstantiator;
|
|
14
|
+
ipWhitelist: IpWhiteListService;
|
|
15
|
+
permission: PermissionService;
|
|
16
|
+
chartHandler: ChartHandler;
|
|
17
|
+
auth: AuthService;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=build-application-services.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const auth_1 = __importDefault(require("./auth"));
|
|
7
|
+
const chart_handler_1 = __importDefault(require("./charts/chart-handler"));
|
|
8
|
+
const ip_whitelist_1 = __importDefault(require("./ip-whitelist"));
|
|
9
|
+
const action_permission_1 = __importDefault(require("./permissions/action-permission"));
|
|
10
|
+
const permission_with_cache_1 = __importDefault(require("./permissions/permission-with-cache"));
|
|
11
|
+
const rendering_permission_1 = __importDefault(require("./permissions/rendering-permission"));
|
|
12
|
+
const user_permission_1 = __importDefault(require("./permissions/user-permission"));
|
|
13
|
+
const schema_1 = __importDefault(require("./schema"));
|
|
14
|
+
const context_variables_instantiator_1 = __importDefault(require("./utils/context-variables-instantiator"));
|
|
15
|
+
const default_logger_1 = __importDefault(require("./utils/default-logger"));
|
|
16
|
+
function buildApplicationServices(forestAdminServerInterface, options) {
|
|
17
|
+
const optionsWithDefaults = {
|
|
18
|
+
forestServerUrl: 'https://api.forestadmin.com',
|
|
19
|
+
permissionsCacheDurationInSeconds: 15 * 60,
|
|
20
|
+
logger: default_logger_1.default,
|
|
21
|
+
...options,
|
|
22
|
+
};
|
|
23
|
+
const renderingPermission = new rendering_permission_1.default(optionsWithDefaults, new user_permission_1.default(optionsWithDefaults, forestAdminServerInterface), forestAdminServerInterface);
|
|
24
|
+
const contextVariables = new context_variables_instantiator_1.default(renderingPermission);
|
|
25
|
+
const permission = new permission_with_cache_1.default(new action_permission_1.default(optionsWithDefaults, forestAdminServerInterface), renderingPermission);
|
|
26
|
+
return {
|
|
27
|
+
renderingPermission,
|
|
28
|
+
optionsWithDefaults,
|
|
29
|
+
permission,
|
|
30
|
+
contextVariables,
|
|
31
|
+
chartHandler: new chart_handler_1.default(contextVariables),
|
|
32
|
+
ipWhitelist: new ip_whitelist_1.default(optionsWithDefaults),
|
|
33
|
+
schema: new schema_1.default(optionsWithDefaults),
|
|
34
|
+
auth: new auth_1.default(optionsWithDefaults),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.default = buildApplicationServices;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtYXBwbGljYXRpb24tc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQtYXBwbGljYXRpb24tc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBaUM7QUFDakMsMkVBQWtEO0FBQ2xELGtFQUFnRDtBQUNoRCx3RkFBc0U7QUFDdEUsZ0dBQW9FO0FBQ3BFLDhGQUE0RTtBQUM1RSxvRkFBa0U7QUFDbEUsc0RBQXFDO0FBTXJDLDRHQUFrRjtBQUNsRiw0RUFBbUQ7QUFFbkQsU0FBd0Isd0JBQXdCLENBQzlDLDBCQUFzRCxFQUN0RCxPQUFpQztJQVdqQyxNQUFNLG1CQUFtQixHQUFHO1FBQzFCLGVBQWUsRUFBRSw2QkFBNkI7UUFDOUMsaUNBQWlDLEVBQUUsRUFBRSxHQUFHLEVBQUU7UUFDMUMsTUFBTSxFQUFFLHdCQUFhO1FBQ3JCLEdBQUcsT0FBTztLQUNYLENBQUM7SUFFRixNQUFNLG1CQUFtQixHQUFHLElBQUksOEJBQTBCLENBQ3hELG1CQUFtQixFQUNuQixJQUFJLHlCQUFxQixDQUFDLG1CQUFtQixFQUFFLDBCQUEwQixDQUFDLEVBQzFFLDBCQUEwQixDQUMzQixDQUFDO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLHdDQUE0QixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFL0UsTUFBTSxVQUFVLEdBQUcsSUFBSSwrQkFBaUIsQ0FDdEMsSUFBSSwyQkFBdUIsQ0FBQyxtQkFBbUIsRUFBRSwwQkFBMEIsQ0FBQyxFQUM1RSxtQkFBbUIsQ0FDcEIsQ0FBQztJQUVGLE9BQU87UUFDTCxtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsWUFBWSxFQUFFLElBQUksdUJBQVksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxXQUFXLEVBQUUsSUFBSSxzQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztRQUN4RCxNQUFNLEVBQUUsSUFBSSxnQkFBYSxDQUFDLG1CQUFtQixDQUFDO1FBQzlDLElBQUksRUFBRSxJQUFJLGNBQVcsQ0FBQyxtQkFBbUIsQ0FBQztLQUMzQyxDQUFDO0FBQ0osQ0FBQztBQTFDRCwyQ0EwQ0MifQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import type { Chart, QueryChart } from './types';
|
|
1
2
|
import type { ChartHandlerInterface } from '../types';
|
|
2
3
|
import type { RequestContextVariables } from '../utils/context-variables';
|
|
3
4
|
import type ContextVariablesInstantiator from '../utils/context-variables-instantiator';
|
|
4
|
-
|
|
5
|
-
export declare type ChartRequest<C extends Chart = Chart> = C & {
|
|
5
|
+
export type ChartRequest<C extends Chart = Chart> = C & {
|
|
6
6
|
contextVariables?: RequestContextVariables;
|
|
7
7
|
};
|
|
8
8
|
export default class ChartHandlerService implements ChartHandlerInterface {
|
package/dist/charts/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RawTree } from '../permissions/types';
|
|
2
|
-
export
|
|
2
|
+
export type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
3
3
|
export interface BaseChart {
|
|
4
4
|
type: ChartType;
|
|
5
5
|
}
|
|
@@ -62,6 +62,6 @@ export interface PieChart extends BaseChart, FilterableChart, AggregatedChart, C
|
|
|
62
62
|
export interface ValueChart extends BaseChart, FilterableChart, AggregatedChart, CollectionChart {
|
|
63
63
|
type: ChartType.Value;
|
|
64
64
|
}
|
|
65
|
-
export
|
|
66
|
-
export
|
|
65
|
+
export type Chart = ApiRouteChart | QueryChart | SmartRouteChart | LeaderboardChart | LineChart | ObjectiveChart | PercentageChart | PieChart | ValueChart;
|
|
66
|
+
export type ChartKeys = KeysOfUnion<Chart>;
|
|
67
67
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import ForestAdminClient from './
|
|
2
|
-
import { ForestAdminClientOptions } from './types';
|
|
1
|
+
import { ForestAdminClient, ForestAdminClientOptions } from './types';
|
|
3
2
|
export { default as JTWTokenExpiredError } from './permissions/errors/jwt-token-expired-error';
|
|
4
3
|
export { default as JTWUnableToVerifyError } from './permissions/errors/jwt-unable-to-verify-error';
|
|
5
4
|
export { default as ChainedSQLQueryError } from './permissions/errors/chained-sql-query-error';
|
|
6
5
|
export { default as EmptySQLQueryError } from './permissions/errors/empty-sql-query-error';
|
|
7
6
|
export { default as NonSelectSQLQueryError } from './permissions/errors/non-select-sql-query-error';
|
|
8
|
-
export { ForestAdminClientOptions, Logger, LoggerLevel, ForestAdminClient, ChartHandlerInterface, ContextVariablesInstantiatorInterface, RawTree, RawTreeWithSources, } from './types';
|
|
7
|
+
export { ForestAdminClientOptions, Logger, LoggerLevel, ForestAdminClient, ChartHandlerInterface, ContextVariablesInstantiatorInterface, RawTree, RawTreeWithSources, ForestAdminServerInterface, } from './types';
|
|
9
8
|
export { IpWhitelistConfiguration } from './ip-whitelist/types';
|
|
10
|
-
export { CollectionActionEvent, RenderingPermissionV4, UserPermissionV4, } from './permissions/types';
|
|
9
|
+
export { CollectionActionEvent, EnvironmentPermissionsV4, RenderingPermissionV4, UserPermissionV4, } from './permissions/types';
|
|
11
10
|
export { UserInfo } from './auth/types';
|
|
12
11
|
export default function createForestAdminClient(options: ForestAdminClientOptions): ForestAdminClient;
|
|
13
12
|
export * from './charts/types';
|
|
@@ -15,5 +14,7 @@ export * from './schema/types';
|
|
|
15
14
|
export { default as ContextVariablesInjector } from './utils/context-variables-injector';
|
|
16
15
|
export { default as ContextVariables } from './utils/context-variables';
|
|
17
16
|
export { default as ChartHandler } from './charts/chart-handler';
|
|
17
|
+
export { default as ForestAdminClientWithCache } from './forest-admin-client-with-cache';
|
|
18
|
+
export { default as buildApplicationServices } from './build-application-services';
|
|
18
19
|
export { default as SchemaService } from './schema';
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -17,18 +17,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.SchemaService = exports.ChartHandler = exports.ContextVariables = exports.ContextVariablesInjector = exports.CollectionActionEvent = exports.NonSelectSQLQueryError = exports.EmptySQLQueryError = exports.ChainedSQLQueryError = exports.JTWUnableToVerifyError = exports.JTWTokenExpiredError = void 0;
|
|
21
|
-
const
|
|
22
|
-
const chart_handler_1 = __importDefault(require("./charts/chart-handler"));
|
|
20
|
+
exports.SchemaService = exports.buildApplicationServices = exports.ForestAdminClientWithCache = exports.ChartHandler = exports.ContextVariables = exports.ContextVariablesInjector = exports.CollectionActionEvent = exports.NonSelectSQLQueryError = exports.EmptySQLQueryError = exports.ChainedSQLQueryError = exports.JTWUnableToVerifyError = exports.JTWTokenExpiredError = void 0;
|
|
21
|
+
const build_application_services_1 = __importDefault(require("./build-application-services"));
|
|
23
22
|
const forest_admin_client_with_cache_1 = __importDefault(require("./forest-admin-client-with-cache"));
|
|
24
|
-
const
|
|
25
|
-
const action_permission_1 = __importDefault(require("./permissions/action-permission"));
|
|
26
|
-
const permission_with_cache_1 = __importDefault(require("./permissions/permission-with-cache"));
|
|
27
|
-
const rendering_permission_1 = __importDefault(require("./permissions/rendering-permission"));
|
|
28
|
-
const user_permission_1 = __importDefault(require("./permissions/user-permission"));
|
|
29
|
-
const schema_1 = __importDefault(require("./schema"));
|
|
30
|
-
const context_variables_instantiator_1 = __importDefault(require("./utils/context-variables-instantiator"));
|
|
31
|
-
const default_logger_1 = __importDefault(require("./utils/default-logger"));
|
|
23
|
+
const forest_http_api_1 = __importDefault(require("./permissions/forest-http-api"));
|
|
32
24
|
var jwt_token_expired_error_1 = require("./permissions/errors/jwt-token-expired-error");
|
|
33
25
|
Object.defineProperty(exports, "JTWTokenExpiredError", { enumerable: true, get: function () { return __importDefault(jwt_token_expired_error_1).default; } });
|
|
34
26
|
var jwt_unable_to_verify_error_1 = require("./permissions/errors/jwt-unable-to-verify-error");
|
|
@@ -43,23 +35,8 @@ Object.defineProperty(exports, "NonSelectSQLQueryError", { enumerable: true, get
|
|
|
43
35
|
var types_1 = require("./permissions/types");
|
|
44
36
|
Object.defineProperty(exports, "CollectionActionEvent", { enumerable: true, get: function () { return types_1.CollectionActionEvent; } });
|
|
45
37
|
function createForestAdminClient(options) {
|
|
46
|
-
const optionsWithDefaults =
|
|
47
|
-
|
|
48
|
-
permissionsCacheDurationInSeconds: 15 * 60,
|
|
49
|
-
// eslint-disable-next-line no-console
|
|
50
|
-
logger: default_logger_1.default,
|
|
51
|
-
...options,
|
|
52
|
-
};
|
|
53
|
-
const actionPermission = new action_permission_1.default(optionsWithDefaults);
|
|
54
|
-
const userPermission = new user_permission_1.default(optionsWithDefaults);
|
|
55
|
-
const renderingPermission = new rendering_permission_1.default(optionsWithDefaults, userPermission);
|
|
56
|
-
const permissionService = new permission_with_cache_1.default(actionPermission, renderingPermission);
|
|
57
|
-
const contextVariablesInstantiator = new context_variables_instantiator_1.default(renderingPermission);
|
|
58
|
-
const chartHandler = new chart_handler_1.default(contextVariablesInstantiator);
|
|
59
|
-
const ipWhitelistPermission = new ip_whitelist_1.default(optionsWithDefaults);
|
|
60
|
-
const schemaService = new schema_1.default(optionsWithDefaults);
|
|
61
|
-
const authService = new auth_1.default(optionsWithDefaults);
|
|
62
|
-
return new forest_admin_client_with_cache_1.default(optionsWithDefaults, permissionService, renderingPermission, contextVariablesInstantiator, chartHandler, ipWhitelistPermission, schemaService, authService);
|
|
38
|
+
const { optionsWithDefaults, permission, renderingPermission, contextVariables, chartHandler, ipWhitelist, schema, auth, } = (0, build_application_services_1.default)(new forest_http_api_1.default(), options);
|
|
39
|
+
return new forest_admin_client_with_cache_1.default(optionsWithDefaults, permission, renderingPermission, contextVariables, chartHandler, ipWhitelist, schema, auth);
|
|
63
40
|
}
|
|
64
41
|
exports.default = createForestAdminClient;
|
|
65
42
|
__exportStar(require("./charts/types"), exports);
|
|
@@ -68,9 +45,13 @@ var context_variables_injector_1 = require("./utils/context-variables-injector")
|
|
|
68
45
|
Object.defineProperty(exports, "ContextVariablesInjector", { enumerable: true, get: function () { return __importDefault(context_variables_injector_1).default; } });
|
|
69
46
|
var context_variables_1 = require("./utils/context-variables");
|
|
70
47
|
Object.defineProperty(exports, "ContextVariables", { enumerable: true, get: function () { return __importDefault(context_variables_1).default; } });
|
|
71
|
-
var
|
|
72
|
-
Object.defineProperty(exports, "ChartHandler", { enumerable: true, get: function () { return __importDefault(
|
|
48
|
+
var chart_handler_1 = require("./charts/chart-handler");
|
|
49
|
+
Object.defineProperty(exports, "ChartHandler", { enumerable: true, get: function () { return __importDefault(chart_handler_1).default; } });
|
|
50
|
+
var forest_admin_client_with_cache_2 = require("./forest-admin-client-with-cache");
|
|
51
|
+
Object.defineProperty(exports, "ForestAdminClientWithCache", { enumerable: true, get: function () { return __importDefault(forest_admin_client_with_cache_2).default; } });
|
|
52
|
+
var build_application_services_2 = require("./build-application-services");
|
|
53
|
+
Object.defineProperty(exports, "buildApplicationServices", { enumerable: true, get: function () { return __importDefault(build_application_services_2).default; } });
|
|
73
54
|
// export is necessary for the agent-generator package
|
|
74
|
-
var
|
|
75
|
-
Object.defineProperty(exports, "SchemaService", { enumerable: true, get: function () { return __importDefault(
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
var schema_1 = require("./schema");
|
|
56
|
+
Object.defineProperty(exports, "SchemaService", { enumerable: true, get: function () { return __importDefault(schema_1).default; } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4RkFBb0U7QUFDcEUsc0dBQTBFO0FBQzFFLG9GQUEwRDtBQUcxRCx3RkFBK0Y7QUFBdEYsZ0pBQUEsT0FBTyxPQUF3QjtBQUN4Qyw4RkFBb0c7QUFBM0YscUpBQUEsT0FBTyxPQUEwQjtBQUMxQyx3RkFBK0Y7QUFBdEYsZ0pBQUEsT0FBTyxPQUF3QjtBQUN4QyxvRkFBMkY7QUFBbEYsNElBQUEsT0FBTyxPQUFzQjtBQUN0Qyw4RkFBb0c7QUFBM0YscUpBQUEsT0FBTyxPQUEwQjtBQWMxQyx1REFBdUQ7QUFDdkQsNkNBSzZCO0FBSjNCLDhHQUFBLHFCQUFxQixPQUFBO0FBT3ZCLFNBQXdCLHVCQUF1QixDQUM3QyxPQUFpQztJQUVqQyxNQUFNLEVBQ0osbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLElBQUksR0FDTCxHQUFHLElBQUEsb0NBQXdCLEVBQUMsSUFBSSx5QkFBYSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFM0QsT0FBTyxJQUFJLHdDQUEwQixDQUNuQyxtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sSUFBSSxDQUNMLENBQUM7QUFDSixDQUFDO0FBeEJELDBDQXdCQztBQUVELGlEQUErQjtBQUMvQixpREFBK0I7QUFDL0IsaUZBQXlGO0FBQWhGLHVKQUFBLE9BQU8sT0FBNEI7QUFDNUMsK0RBQXdFO0FBQS9ELHNJQUFBLE9BQU8sT0FBb0I7QUFDcEMsd0RBQWlFO0FBQXhELDhIQUFBLE9BQU8sT0FBZ0I7QUFDaEMsbUZBQXlGO0FBQWhGLDZKQUFBLE9BQU8sT0FBOEI7QUFDOUMsMkVBQW1GO0FBQTFFLHVKQUFBLE9BQU8sT0FBNEI7QUFFNUMsc0RBQXNEO0FBQ3RELG1DQUFvRDtBQUEzQyx3SEFBQSxPQUFPLE9BQWlCIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
2
1
|
import { IpWhitelistConfiguration } from './types';
|
|
2
|
+
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
3
3
|
export default class IpWhiteListService {
|
|
4
4
|
private options;
|
|
5
5
|
constructor(options: ForestAdminClientOptionsWithDefaults);
|
|
@@ -17,4 +17,4 @@ class IpWhiteListService {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
exports.default = IpWhiteListService;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaXAtd2hpdGVsaXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsNkRBQTBDO0FBVzFDLE1BQXFCLGtCQUFrQjtJQUNyQyxZQUFvQixPQUE2QztRQUE3QyxZQUFPLEdBQVAsT0FBTyxDQUFzQztJQUFHLENBQUM7SUFFckUsS0FBSyxDQUFDLGdCQUFnQjtRQUNwQixNQUFNLElBQUksR0FBRyxNQUFNLGdCQUFXLENBQUMsS0FBSyxDQUNsQyxJQUFJLENBQUMsT0FBTyxFQUNaLEtBQUssRUFDTCw4QkFBOEIsQ0FDL0IsQ0FBQztRQUVGLE9BQU87WUFDTCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDdkQsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7U0FDcEMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWZELHFDQWVDIn0=
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import type { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
2
1
|
import type { RawTreeWithSources } from './types';
|
|
2
|
+
import type { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
3
|
+
import { ForestAdminServerInterface } from '../types';
|
|
3
4
|
export default class ActionPermissionService {
|
|
4
5
|
private readonly options;
|
|
6
|
+
private readonly forestAdminServerInterface;
|
|
5
7
|
private permissionsPromise;
|
|
6
8
|
private permissionExpirationTimestamp;
|
|
7
|
-
constructor(options: ForestAdminClientOptionsWithDefaults);
|
|
9
|
+
constructor(options: ForestAdminClientOptionsWithDefaults, forestAdminServerInterface: ForestAdminServerInterface);
|
|
8
10
|
isDevelopmentPermission(): Promise<boolean>;
|
|
9
|
-
canOneOf(roleId: number, actionNames: string[]): Promise<boolean>;
|
|
10
11
|
can(roleId: number, actionName: string): Promise<boolean>;
|
|
11
12
|
private hasPermissionOrRefetch;
|
|
12
|
-
private isAllowedOneOf;
|
|
13
13
|
private isAllowed;
|
|
14
14
|
private getPermissions;
|
|
15
15
|
private fetchEnvironmentPermissions;
|
|
@@ -3,49 +3,40 @@ 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 forest_http_api_1 = __importDefault(require("./forest-http-api"));
|
|
7
6
|
const generate_actions_from_permissions_1 = __importDefault(require("./generate-actions-from-permissions"));
|
|
8
7
|
class ActionPermissionService {
|
|
9
|
-
constructor(options) {
|
|
8
|
+
constructor(options, forestAdminServerInterface) {
|
|
10
9
|
this.options = options;
|
|
10
|
+
this.forestAdminServerInterface = forestAdminServerInterface;
|
|
11
11
|
}
|
|
12
12
|
async isDevelopmentPermission() {
|
|
13
13
|
const permissions = await this.getPermissions();
|
|
14
14
|
// isDevelopment is true only for development environment
|
|
15
15
|
return permissions.isDevelopment;
|
|
16
16
|
}
|
|
17
|
-
canOneOf(roleId, actionNames) {
|
|
18
|
-
return this.hasPermissionOrRefetch({
|
|
19
|
-
roleId,
|
|
20
|
-
actionNames,
|
|
21
|
-
allowRefetch: true,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
17
|
can(roleId, actionName) {
|
|
25
18
|
return this.hasPermissionOrRefetch({
|
|
26
19
|
roleId,
|
|
27
|
-
|
|
20
|
+
actionName,
|
|
28
21
|
allowRefetch: true,
|
|
29
22
|
});
|
|
30
23
|
}
|
|
31
|
-
async hasPermissionOrRefetch({ roleId,
|
|
24
|
+
async hasPermissionOrRefetch({ roleId, actionName, allowRefetch, }) {
|
|
32
25
|
const permissions = await this.getPermissions();
|
|
33
|
-
const isAllowed = this.
|
|
26
|
+
const isAllowed = this.isAllowed({ permissions, actionName, roleId });
|
|
34
27
|
if (!isAllowed && allowRefetch) {
|
|
35
28
|
this.permissionsPromise = undefined;
|
|
36
29
|
this.permissionExpirationTimestamp = undefined;
|
|
37
30
|
return this.hasPermissionOrRefetch({
|
|
38
31
|
roleId,
|
|
39
|
-
|
|
32
|
+
actionName,
|
|
40
33
|
allowRefetch: false,
|
|
41
34
|
});
|
|
42
35
|
}
|
|
43
|
-
this.options.logger('Debug', `User ${roleId} is ${isAllowed ? '' : 'not '}allowed to perform
|
|
36
|
+
this.options.logger('Debug', `User ${roleId} is ${isAllowed ? '' : 'not '}allowed to perform
|
|
37
|
+
}${actionName}`);
|
|
44
38
|
return isAllowed;
|
|
45
39
|
}
|
|
46
|
-
isAllowedOneOf({ permissions, actionNames, roleId, }) {
|
|
47
|
-
return actionNames.some(actionName => this.isAllowed({ permissions, actionName, roleId }));
|
|
48
|
-
}
|
|
49
40
|
isAllowed({ permissions, actionName, roleId, }) {
|
|
50
41
|
// In development everything is allowed
|
|
51
42
|
return Boolean(permissions.isDevelopment ||
|
|
@@ -65,7 +56,7 @@ class ActionPermissionService {
|
|
|
65
56
|
}
|
|
66
57
|
async fetchEnvironmentPermissions() {
|
|
67
58
|
this.options.logger('Debug', 'Fetching environment permissions');
|
|
68
|
-
const rawPermissions = await
|
|
59
|
+
const rawPermissions = await this.forestAdminServerInterface.getEnvironmentPermissions(this.options);
|
|
69
60
|
return (0, generate_actions_from_permissions_1.default)(rawPermissions);
|
|
70
61
|
}
|
|
71
62
|
async getCustomActionCondition(roleId, actionName) {
|
|
@@ -88,4 +79,4 @@ class ActionPermissionService {
|
|
|
88
79
|
}
|
|
89
80
|
}
|
|
90
81
|
exports.default = ActionPermissionService;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXBlcm1pc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGVybWlzc2lvbnMvYWN0aW9uLXBlcm1pc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSw0R0FFNkM7QUFHN0MsTUFBcUIsdUJBQXVCO0lBSTFDLFlBQ21CLE9BQTZDLEVBQzdDLDBCQUFzRDtRQUR0RCxZQUFPLEdBQVAsT0FBTyxDQUFzQztRQUM3QywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO0lBQ3RFLENBQUM7SUFFRyxLQUFLLENBQUMsdUJBQXVCO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRWhELHlEQUF5RDtRQUN6RCxPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxNQUFjLEVBQUUsVUFBa0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDakMsTUFBTTtZQUNOLFVBQVU7WUFDVixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLHNCQUFzQixDQUFDLEVBQ25DLE1BQU0sRUFDTixVQUFVLEVBQ1YsWUFBWSxHQUtiO1FBQ0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsU0FBUyxJQUFJLFlBQVksRUFBRTtZQUM5QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1lBQ3BDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxTQUFTLENBQUM7WUFFL0MsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7Z0JBQ2pDLE1BQU07Z0JBQ04sVUFB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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
2
1
|
import { EnvironmentPermissionsV4, RenderingPermissionV4, UserPermissionV4 } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types';
|
|
3
|
+
type HttpOptions = Pick<ForestAdminClientOptionsWithDefaults, 'envSecret' | 'forestServerUrl'>;
|
|
4
|
+
export default class ForestHttpApi implements ForestAdminServerInterface {
|
|
5
|
+
getEnvironmentPermissions(options: HttpOptions): Promise<EnvironmentPermissionsV4>;
|
|
6
|
+
getUsers(options: HttpOptions): Promise<UserPermissionV4[]>;
|
|
7
|
+
getRenderingPermissions(renderingId: number, options: HttpOptions): Promise<RenderingPermissionV4>;
|
|
8
8
|
}
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=forest-http-api.d.ts.map
|
|
@@ -5,15 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const server_1 = __importDefault(require("../utils/server"));
|
|
7
7
|
class ForestHttpApi {
|
|
8
|
-
|
|
8
|
+
async getEnvironmentPermissions(options) {
|
|
9
9
|
return server_1.default.query(options, 'get', '/liana/v4/permissions/environment');
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
async getUsers(options) {
|
|
12
12
|
return server_1.default.query(options, 'get', '/liana/v4/permissions/users');
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
async getRenderingPermissions(renderingId, options) {
|
|
15
15
|
return server_1.default.query(options, 'get', `/liana/v4/permissions/renderings/${renderingId}`);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
exports.default = ForestHttpApi;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWh0dHAtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL2ZvcmVzdC1odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLDZEQUEwQztBQUkxQyxNQUFxQixhQUFhO0lBQ2hDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxPQUFvQjtRQUNsRCxPQUFPLGdCQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFvQjtRQUNqQyxPQUFPLGdCQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixXQUFtQixFQUNuQixPQUFvQjtRQUVwQixPQUFPLGdCQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsb0NBQW9DLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztDQUNGO0FBZkQsZ0NBZUMifQ==
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { EnvironmentPermissionsV4, RawTreeWithSources } from './types';
|
|
2
|
-
export
|
|
2
|
+
export type ActionPermissions = {
|
|
3
3
|
isDevelopment: boolean;
|
|
4
4
|
actionsGloballyAllowed: Set<string>;
|
|
5
5
|
actionsByRole: Map<string, ActionPermission>;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
7
|
+
export type ActionPermission = {
|
|
8
8
|
allowedRoles: Set<number>;
|
|
9
9
|
conditionsByRole?: Map<number, RawTreeWithSources>;
|
|
10
10
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Chart } from '../charts/types';
|
|
2
|
-
import { PermissionService } from '../types';
|
|
3
1
|
import ActionPermission from './action-permission';
|
|
4
2
|
import RenderingPermissionService from './rendering-permission';
|
|
5
3
|
import { CollectionActionEvent } from './types';
|
|
4
|
+
import { Chart } from '../charts/types';
|
|
5
|
+
import { PermissionService } from '../types';
|
|
6
6
|
export default class PermissionServiceWithCache implements PermissionService {
|
|
7
7
|
private readonly actionPermissionService;
|
|
8
8
|
private readonly renderingPermissionService;
|
|
@@ -54,10 +54,7 @@ class PermissionServiceWithCache {
|
|
|
54
54
|
}
|
|
55
55
|
async canRequestCustomActionParameters({ userId, collectionName, customActionName, }) {
|
|
56
56
|
const roleId = await this.getRoleIdForUserId(userId);
|
|
57
|
-
return this.actionPermissionService.
|
|
58
|
-
(0, generate_action_identifier_1.generateCustomActionIdentifier)(types_1.CustomActionEvent.Trigger, customActionName, collectionName),
|
|
59
|
-
(0, generate_action_identifier_1.generateCustomActionIdentifier)(types_1.CustomActionEvent.RequireApproval, customActionName, collectionName),
|
|
60
|
-
]);
|
|
57
|
+
return this.actionPermissionService.can(roleId, (0, generate_action_identifier_1.generateCustomActionIdentifier)(types_1.CustomActionEvent.Trigger, customActionName, collectionName));
|
|
61
58
|
}
|
|
62
59
|
async canExecuteChart({ renderingId, userId, chartRequest, }) {
|
|
63
60
|
return this.renderingPermissionService.canExecuteChart({
|
|
@@ -71,4 +68,4 @@ class PermissionServiceWithCache {
|
|
|
71
68
|
}
|
|
72
69
|
}
|
|
73
70
|
exports.default = PermissionServiceWithCache;
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi13aXRoLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL3Blcm1pc3Npb24td2l0aC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZFQUdzQztBQUV0QyxtQ0FBbUU7QUFJbkUsTUFBcUIsMEJBQTBCO0lBQzdDLFlBQ21CLHVCQUF5QyxFQUN6QywwQkFBc0Q7UUFEdEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFrQjtRQUN6QywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO0lBQ3RFLENBQUM7SUFFRyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQzNCLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxHQUtOO1FBQ0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckQsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUNyQyxNQUFNLEVBQ04sSUFBQSwrREFBa0MsRUFBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQzFELENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLE1BS25DO1FBQ0MsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxFQUNsQyxNQUFNLEVBQ04sY0FBYyxFQUNkLGdCQUFnQixHQUtqQjtRQUNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FDckMsTUFBTSxFQUNOLElBQUEsMkRBQThCLEVBQUMseUJBQWlCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUM1RixDQUFDO0lBQ0osQ0FB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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Chart } from '../charts/types';
|
|
2
|
-
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
3
1
|
import { CollectionRenderingPermissionV4, RawTree, Team, UserPermissionV4 } from './types';
|
|
4
2
|
import UserPermissionService from './user-permission';
|
|
5
|
-
|
|
3
|
+
import { Chart } from '../charts/types';
|
|
4
|
+
import { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types';
|
|
5
|
+
export type RenderingPermission = {
|
|
6
6
|
team: Team;
|
|
7
7
|
collections: Record<string, CollectionRenderingPermissionV4>;
|
|
8
8
|
charts: Set<string>;
|
|
@@ -10,8 +10,9 @@ export declare type RenderingPermission = {
|
|
|
10
10
|
export default class RenderingPermissionService {
|
|
11
11
|
private readonly options;
|
|
12
12
|
private readonly userPermissions;
|
|
13
|
+
private readonly forestAdminServerInterface;
|
|
13
14
|
private readonly permissionsByRendering;
|
|
14
|
-
constructor(options: ForestAdminClientOptionsWithDefaults, userPermissions: UserPermissionService);
|
|
15
|
+
constructor(options: ForestAdminClientOptionsWithDefaults, userPermissions: UserPermissionService, forestAdminServerInterface: ForestAdminServerInterface);
|
|
15
16
|
getScope({ renderingId, collectionName, userId, }: {
|
|
16
17
|
renderingId: number | string;
|
|
17
18
|
collectionName: string;
|
|
@@ -4,17 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const lru_cache_1 = __importDefault(require("lru-cache"));
|
|
7
|
-
const context_variables_1 = __importDefault(require("../utils/context-variables"));
|
|
8
|
-
const context_variables_injector_1 = __importDefault(require("../utils/context-variables-injector"));
|
|
9
|
-
const forest_http_api_1 = __importDefault(require("./forest-http-api"));
|
|
10
7
|
const hash_chart_1 = require("./hash-chart");
|
|
11
8
|
const is_segment_query_authorized_1 = __importDefault(require("./is-segment-query-authorized"));
|
|
12
9
|
const types_1 = require("./types");
|
|
13
10
|
const verify_sql_query_1 = __importDefault(require("./verify-sql-query"));
|
|
11
|
+
const context_variables_1 = __importDefault(require("../utils/context-variables"));
|
|
12
|
+
const context_variables_injector_1 = __importDefault(require("../utils/context-variables-injector"));
|
|
14
13
|
class RenderingPermissionService {
|
|
15
|
-
constructor(options, userPermissions) {
|
|
14
|
+
constructor(options, userPermissions, forestAdminServerInterface) {
|
|
16
15
|
this.options = options;
|
|
17
16
|
this.userPermissions = userPermissions;
|
|
17
|
+
this.forestAdminServerInterface = forestAdminServerInterface;
|
|
18
18
|
this.permissionsByRendering = new lru_cache_1.default({
|
|
19
19
|
max: 256,
|
|
20
20
|
ttl: this.options.permissionsCacheDurationInSeconds * 1000,
|
|
@@ -69,7 +69,7 @@ class RenderingPermissionService {
|
|
|
69
69
|
}
|
|
70
70
|
async loadPermissions(renderingId) {
|
|
71
71
|
this.options.logger('Debug', `Loading rendering permissions for rendering ${renderingId}`);
|
|
72
|
-
const rawPermissions = await
|
|
72
|
+
const rawPermissions = await this.forestAdminServerInterface.getRenderingPermissions(renderingId, this.options);
|
|
73
73
|
const charts = (0, hash_chart_1.hashServerCharts)(rawPermissions.stats);
|
|
74
74
|
return {
|
|
75
75
|
team: rawPermissions.team,
|
|
@@ -126,4 +126,4 @@ class RenderingPermissionService {
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
exports.default = RenderingPermissionService;
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLXBlcm1pc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGVybWlzc2lvbnMvcmVuZGVyaW5nLXBlcm1pc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBaUM7QUFFakMsNkNBQWtFO0FBQ2xFLGdHQUFrRTtBQUNsRSxtQ0FNaUI7QUFFakIsMEVBQWdEO0FBR2hELG1GQUEwRDtBQUMxRCxxR0FBMkU7QUFRM0UsTUFBcUIsMEJBQTBCO0lBRzdDLFlBQ21CLE9BQTZDLEVBQzdDLGVBQXNDLEVBQ3RDLDBCQUFzRDtRQUZ0RCxZQUFPLEdBQVAsT0FBTyxDQUFzQztRQUM3QyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDdEMsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQUV2RSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxtQkFBUSxDQUFDO1lBQ3pDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsaUNBQWlDLEdBQUcsSUFBSTtZQUMxRCxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN0RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUNwQixXQUFXLEVBQ1gsY0FBYyxFQUNkLE1BQU0sR0FLUDtRQUNDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQzVCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsTUFBTSxFQUNOLFVBQVUsR0FNWDtRQUNDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEdBQTRDLE1BQU0sT0FB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
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import type { Chart } from '../charts/types';
|
|
2
|
-
|
|
3
|
-
export
|
|
2
|
+
type GenericRawTree<RawLeaf, RawBranch> = RawBranch | RawLeaf;
|
|
3
|
+
export type RawTreeBranch = {
|
|
4
4
|
aggregator: string;
|
|
5
5
|
conditions: Array<RawTreeBranch | RawTreeLeaf>;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
7
|
+
export type RawTreeLeaf = {
|
|
8
8
|
field: string;
|
|
9
9
|
operator: string;
|
|
10
10
|
value?: unknown;
|
|
11
11
|
};
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
12
|
+
export type RawTree = GenericRawTree<RawTreeLeaf, RawTreeBranch>;
|
|
13
|
+
export type CustomActionRawTreeLeafSource = 'data' | 'input';
|
|
14
|
+
export type RawTreeLeafWithSources = RawTreeLeaf & {
|
|
15
15
|
source: CustomActionRawTreeLeafSource;
|
|
16
16
|
};
|
|
17
|
-
export
|
|
17
|
+
export type RawTreeBranchWithSources = {
|
|
18
18
|
aggregator: RawTreeBranch['aggregator'];
|
|
19
19
|
conditions: Array<RawTreeBranchWithSources | RawTreeLeafWithSources>;
|
|
20
20
|
};
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
21
|
+
export type RawTreeWithSources = GenericRawTree<RawTreeLeafWithSources, RawTreeBranchWithSources>;
|
|
22
|
+
export type EnvironmentPermissionsV4 = EnvironmentPermissionsV4Remote | true;
|
|
23
|
+
export type RightDescriptionWithRolesV4 = {
|
|
24
24
|
roles: number[];
|
|
25
25
|
};
|
|
26
|
-
export
|
|
27
|
-
export
|
|
26
|
+
export type RightDescriptionV4 = boolean | RightDescriptionWithRolesV4;
|
|
27
|
+
export type RightConditionByRolesV4 = {
|
|
28
28
|
roleId: number;
|
|
29
29
|
filter: RawTreeWithSources;
|
|
30
30
|
};
|
|
@@ -64,7 +64,7 @@ export declare enum PermissionLevel {
|
|
|
64
64
|
Editor = "editor",
|
|
65
65
|
User = "user"
|
|
66
66
|
}
|
|
67
|
-
export
|
|
67
|
+
export type UserPermissionV4 = {
|
|
68
68
|
id: number;
|
|
69
69
|
firstName: string;
|
|
70
70
|
lastName: string;
|
|
@@ -130,18 +130,18 @@ export interface Filter {
|
|
|
130
130
|
type: 'and' | 'or';
|
|
131
131
|
conditions: FilterCondition[] | null;
|
|
132
132
|
}
|
|
133
|
-
export
|
|
133
|
+
export type DynamicScopesValues = {
|
|
134
134
|
users: Record<string, Record<string, string | number>>;
|
|
135
135
|
};
|
|
136
|
-
export
|
|
136
|
+
export type CollectionRenderingPermissionV4 = {
|
|
137
137
|
scope: RawTree | null;
|
|
138
138
|
segments: string[];
|
|
139
139
|
};
|
|
140
|
-
export
|
|
140
|
+
export type Team = {
|
|
141
141
|
id: number;
|
|
142
142
|
name: string;
|
|
143
143
|
};
|
|
144
|
-
export
|
|
144
|
+
export type RenderingPermissionV4 = {
|
|
145
145
|
team: Team;
|
|
146
146
|
collections: Record<string, CollectionRenderingPermissionV4>;
|
|
147
147
|
stats: Chart[];
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
2
1
|
import { UserPermissionV4 } from './types';
|
|
2
|
+
import { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types';
|
|
3
3
|
export default class UserPermissionService {
|
|
4
4
|
private readonly options;
|
|
5
|
+
private readonly forestAdminServerInterface;
|
|
5
6
|
private cacheExpirationTimestamp;
|
|
6
7
|
private userInfoById;
|
|
7
|
-
constructor(options: ForestAdminClientOptionsWithDefaults);
|
|
8
|
+
constructor(options: ForestAdminClientOptionsWithDefaults, forestAdminServerInterface: ForestAdminServerInterface);
|
|
8
9
|
getUserInfo(userId: number | string): Promise<UserPermissionV4 | undefined>;
|
|
9
10
|
clearCache(): void;
|
|
10
11
|
}
|
|
@@ -1,12 +1,9 @@
|
|
|
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 forest_http_api_1 = __importDefault(require("./forest-http-api"));
|
|
7
3
|
class UserPermissionService {
|
|
8
|
-
constructor(options) {
|
|
4
|
+
constructor(options, forestAdminServerInterface) {
|
|
9
5
|
this.options = options;
|
|
6
|
+
this.forestAdminServerInterface = forestAdminServerInterface;
|
|
10
7
|
this.cacheExpirationTimestamp = 0;
|
|
11
8
|
// The trick here is to keep the cache as a Promise and not a Map
|
|
12
9
|
// in order to avoid doing the same HTTP request twice when
|
|
@@ -23,7 +20,9 @@ class UserPermissionService {
|
|
|
23
20
|
// The response here is not awaited in order to be set in the cache
|
|
24
21
|
// allowing subsequent calls to getUserInfo to use the cache even if
|
|
25
22
|
// the response is not yet available.
|
|
26
|
-
this.userInfoById =
|
|
23
|
+
this.userInfoById = this.forestAdminServerInterface
|
|
24
|
+
.getUsers(this.options)
|
|
25
|
+
.then(users => new Map(users.map(user => [`${user.id}`, user])));
|
|
27
26
|
}
|
|
28
27
|
return (await this.userInfoById).get(`${userId}`);
|
|
29
28
|
}
|
|
@@ -33,4 +32,4 @@ class UserPermissionService {
|
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
34
|
exports.default = UserPermissionService;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJtaXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Blcm1pc3Npb25zL3VzZXItcGVybWlzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE1BQXFCLHFCQUFxQjtJQVF4QyxZQUNtQixPQUE2QyxFQUM3QywwQkFBc0Q7UUFEdEQsWUFBTyxHQUFQLE9BQU8sQ0FBc0M7UUFDN0MsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQVRqRSw2QkFBd0IsR0FBRyxDQUFDLENBQUM7UUFFckMsaUVBQWlFO1FBQ2pFLDJEQUEyRDtRQUMzRCxvREFBb0Q7UUFDNUMsaUJBQVksR0FBMkMsSUFBSSxDQUFDO0lBS2pFLENBQUM7SUFFRyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQXVCO1FBQzlDLElBQ0UsQ0FBQyxJQUFJLENBQUMsd0JBQXdCO1lBQzlCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUMzQztZQUNBLElBQUksQ0FBQyx3QkFBd0I7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQztZQUVyRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztZQUVsRSxtRUFBbUU7WUFDbkUsb0VBQW9FO1lBQ3BFLHFDQUFxQztZQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQywwQkFBMEI7aUJBQ2hELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2lCQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUF2Q0Qsd0NBdUNDIn0=
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
2
1
|
import { ForestServerCollection } from './types';
|
|
3
|
-
|
|
2
|
+
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
3
|
+
type SerializedSchema = {
|
|
4
4
|
meta: {
|
|
5
5
|
schemaFileHash: string;
|
|
6
6
|
};
|
package/dist/schema/index.js
CHANGED
|
@@ -58,4 +58,4 @@ class SchemaService {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
exports.default = SchemaService;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLDhFQUFvRDtBQUlwRCw2REFBMEM7QUFJMUMsTUFBcUIsYUFBYTtJQUNoQyxZQUFvQixPQUE2QztRQUE3QyxZQUFPLEdBQVAsT0FBTyxDQUFzQztJQUFHLENBQUM7SUFFckUsS0FBSyxDQUFDLFVBQVUsQ0FDZCxNQUFnQyxFQUNoQyxTQUFpQixFQUNqQixZQUFvQjtRQUVwQixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDeEUsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU5RSxJQUFJLFVBQVUsRUFBRTtZQUNkLE1BQU0sZ0JBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzlFO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQ2QsTUFBZ0MsRUFDaEMsU0FBaUIsRUFDakIsWUFBb0I7UUFFcEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRztZQUNYLEtBQUssRUFBRSxTQUFTO1lBQ2hCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2FBQzFEO1NBQ0YsQ0FBQztRQUVGLE1BQU0sY0FBYyxHQUFHLGdCQUFNO2FBQzFCLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUU7WUFDN0QsR0FBRyxJQUFJO1lBQ1AsY0FBYztTQUNmLENBQXFCLENBQUM7SUFDekIsQ0FBQztJQUVPLE1BQU0sS0FBSyxVQUFVO1FBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksNkJBQWlCLEVBQUUsQ0FBQztRQUMzQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUNqQyxxREFBcUQ7WUFDckQsWUFBWSxFQUFFLENBQUMsU0FBa0IsRUFBRSxFQUFFLENBQUMsU0FBUztZQUMvQyxhQUFhLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDOUIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTthQUM3QjtTQUNGLENBQUMsQ0FBQztRQUNILFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBWTtRQUM1Qyx3REFBd0Q7UUFDeEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sZ0JBQVcsQ0FBQyxLQUFLLENBQzVDLElBQUksQ0FBQyxPQUFPLEVBQ1osTUFBTSxFQUNOLDJCQUEyQixFQUMzQixFQUFFLEVBQ0YsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQ3pCLENBQUM7UUFFRixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUF4RUQsZ0NBd0VDIn0=
|
package/dist/schema/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { PrimitiveTypes } from '@forestadmin/datasource-toolkit';
|
|
2
|
-
export
|
|
2
|
+
export type ForestServerColumnType = PrimitiveTypes | [ForestServerColumnType] | {
|
|
3
3
|
fields: Array<{
|
|
4
4
|
field: string;
|
|
5
5
|
type: ForestServerColumnType;
|
|
6
6
|
}>;
|
|
7
7
|
};
|
|
8
|
-
export
|
|
8
|
+
export type ForestServerCollection = {
|
|
9
9
|
name: string;
|
|
10
10
|
icon: null;
|
|
11
11
|
integration: null;
|
|
@@ -18,7 +18,7 @@ export declare type ForestServerCollection = {
|
|
|
18
18
|
fields: Array<ForestServerField>;
|
|
19
19
|
segments: Array<ForestServerSegment>;
|
|
20
20
|
};
|
|
21
|
-
export
|
|
21
|
+
export type ForestServerAction = {
|
|
22
22
|
id: string;
|
|
23
23
|
name: string;
|
|
24
24
|
type: 'single' | 'bulk' | 'global';
|
|
@@ -33,7 +33,7 @@ export declare type ForestServerAction = {
|
|
|
33
33
|
change: Array<unknown>;
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
|
-
export
|
|
36
|
+
export type ForestServerActionField = {
|
|
37
37
|
value: unknown;
|
|
38
38
|
defaultValue: unknown;
|
|
39
39
|
description: string | null;
|
|
@@ -46,7 +46,7 @@ export declare type ForestServerActionField = {
|
|
|
46
46
|
type: ForestServerColumnType;
|
|
47
47
|
widget: null | 'belongsto select' | 'file picker';
|
|
48
48
|
};
|
|
49
|
-
export
|
|
49
|
+
export type ForestServerField = Partial<{
|
|
50
50
|
field: string;
|
|
51
51
|
type: ForestServerColumnType;
|
|
52
52
|
defaultValue: unknown;
|
|
@@ -67,7 +67,7 @@ export declare type ForestServerField = Partial<{
|
|
|
67
67
|
value: unknown;
|
|
68
68
|
}>;
|
|
69
69
|
}>;
|
|
70
|
-
export
|
|
70
|
+
export type ForestServerSegment = {
|
|
71
71
|
id: string;
|
|
72
72
|
name: string;
|
|
73
73
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -3,19 +3,19 @@ import type { Chart, QueryChart } from './charts/types';
|
|
|
3
3
|
import type { Client } from 'openid-client';
|
|
4
4
|
import { UserInfo } from './auth/types';
|
|
5
5
|
import { IpWhitelistConfiguration } from './ip-whitelist/types';
|
|
6
|
-
import { CollectionActionEvent, RawTree, RawTreeWithSources } from './permissions/types';
|
|
6
|
+
import { CollectionActionEvent, EnvironmentPermissionsV4, RawTree, RawTreeWithSources, RenderingPermissionV4, UserPermissionV4 } from './permissions/types';
|
|
7
7
|
import { ForestServerCollection } from './schema/types';
|
|
8
8
|
import ContextVariables, { RequestContextVariables } from './utils/context-variables';
|
|
9
9
|
export type { CollectionActionEvent, RawTree, RawTreeWithSources } from './permissions/types';
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
10
|
+
export type LoggerLevel = 'Debug' | 'Info' | 'Warn' | 'Error';
|
|
11
|
+
export type Logger = (level: LoggerLevel, message: unknown) => void;
|
|
12
|
+
export type ForestAdminClientOptions = {
|
|
13
13
|
envSecret: string;
|
|
14
14
|
forestServerUrl?: string;
|
|
15
15
|
logger?: Logger;
|
|
16
16
|
permissionsCacheDurationInSeconds?: number;
|
|
17
17
|
};
|
|
18
|
-
export
|
|
18
|
+
export type ForestAdminClientOptionsWithDefaults = Required<ForestAdminClientOptions>;
|
|
19
19
|
export interface ForestAdminClient {
|
|
20
20
|
readonly permissionService: PermissionService;
|
|
21
21
|
readonly contextVariablesInstantiator: ContextVariablesInstantiatorInterface;
|
|
@@ -116,4 +116,9 @@ export interface ContextVariablesInstantiatorInterface {
|
|
|
116
116
|
userId: string | number;
|
|
117
117
|
}): Promise<ContextVariables>;
|
|
118
118
|
}
|
|
119
|
+
export interface ForestAdminServerInterface {
|
|
120
|
+
getEnvironmentPermissions: (...args: any[]) => Promise<EnvironmentPermissionsV4>;
|
|
121
|
+
getUsers: (...args: any[]) => Promise<UserPermissionV4[]>;
|
|
122
|
+
getRenderingPermissions: (renderingId: number, ...args: any[]) => Promise<RenderingPermissionV4>;
|
|
123
|
+
}
|
|
119
124
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { RawTree } from '../permissions/types';
|
|
2
1
|
import ContextVariables from './context-variables';
|
|
2
|
+
import { RawTree } from '../permissions/types';
|
|
3
3
|
export default class ContextVariablesInjector {
|
|
4
4
|
private static isTreeBranch;
|
|
5
5
|
static injectContextInValueCustom<ValueType>(value: ValueType, replaceFunction: (contextVariableName: string) => string): ValueType;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import ContextVariables, { RequestContextVariables } from './context-variables';
|
|
1
2
|
import RenderingPermissionService from '../permissions/rendering-permission';
|
|
2
3
|
import { ContextVariablesInstantiatorInterface } from '../types';
|
|
3
|
-
import ContextVariables, { RequestContextVariables } from './context-variables';
|
|
4
4
|
export default class ContextVariablesInstantiator implements ContextVariablesInstantiatorInterface {
|
|
5
5
|
private readonly renderingPermissionService;
|
|
6
6
|
constructor(renderingPermissionService: RenderingPermissionService);
|
|
@@ -15,4 +15,4 @@ class ContextVariablesInstantiator {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
exports.default = ContextVariablesInstantiator;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC12YXJpYWJsZXMtaW5zdGFudGlhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbnRleHQtdmFyaWFibGVzLWluc3RhbnRpYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRFQUFnRjtBQUloRixNQUFxQiw0QkFBNEI7SUFDL0MsWUFBNkIsMEJBQXNEO1FBQXRELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7SUFBRyxDQUFDO0lBRWhGLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxFQUNqQyx1QkFBdUIsR0FBRyxFQUFFLEVBQzVCLFdBQVcsRUFDWCxNQUFNLEdBS1A7UUFDQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLE9BQU8sSUFBSSwyQkFBZ0IsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7Q0FDRjtBQWpCRCwrQ0FpQkMifQ==
|
package/dist/utils/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ForestAdminClientOptionsWithDefaults } from '../types';
|
|
2
|
-
|
|
2
|
+
type HttpOptions = Pick<ForestAdminClientOptionsWithDefaults, 'envSecret' | 'forestServerUrl'>;
|
|
3
3
|
export default class ServerUtils {
|
|
4
4
|
/** Query Forest-Admin server */
|
|
5
5
|
static query<T = unknown>(options: HttpOptions, method: 'get' | 'post' | 'put' | 'delete', path: string, headers?: Record<string, string>, body?: string | object): Promise<T>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/forestadmin-client",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"json-api-serializer": "^2.6.6",
|
|
16
|
-
"jsonwebtoken": "^
|
|
17
|
-
"lru-cache": "^7.
|
|
16
|
+
"jsonwebtoken": "^9.0.0",
|
|
17
|
+
"lru-cache": "^7.14.1",
|
|
18
18
|
"object-hash": "^3.0.0",
|
|
19
|
-
"openid-client": "5.
|
|
19
|
+
"openid-client": "^5.3.1",
|
|
20
20
|
"superagent": "^8.0.6"
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"test": "jest"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@forestadmin/datasource-toolkit": "1.2.
|
|
35
|
-
"@types/json-api-serializer": "2.6.3",
|
|
36
|
-
"@types/jsonwebtoken": "^
|
|
37
|
-
"@types/lru-cache": "^7.
|
|
38
|
-
"@types/superagent": "^4.1.
|
|
34
|
+
"@forestadmin/datasource-toolkit": "1.2.1",
|
|
35
|
+
"@types/json-api-serializer": "^2.6.3",
|
|
36
|
+
"@types/jsonwebtoken": "^9.0.1",
|
|
37
|
+
"@types/lru-cache": "^7.10.10",
|
|
38
|
+
"@types/superagent": "^4.1.16"
|
|
39
39
|
}
|
|
40
40
|
}
|