@forestadmin/agent 1.0.0-beta.55 → 1.0.0-beta.57
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/CHANGELOG.md +17 -0
- package/dist/agent/routes/security/authentication.d.ts +0 -1
- package/dist/agent/routes/security/authentication.js +6 -14
- package/dist/agent/utils/forest-schema/action-values.d.ts +2 -2
- package/dist/agent/utils/forest-schema/action-values.js +2 -2
- package/dist/builder/agent.d.ts +0 -1
- package/dist/builder/agent.js +1 -2
- package/dist/builder/utils/options-validator.js +1 -16
- package/dist/types.d.ts +0 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
# @forestadmin/agent [1.0.0-beta.57](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent@1.0.0-beta.56...@forestadmin/agent@1.0.0-beta.57) (2022-09-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **oidc:** users don't need to provide agentUrl anymore ([#387](https://github.com/ForestAdmin/agent-nodejs/issues/387)) ([39d6ac7](https://github.com/ForestAdmin/agent-nodejs/commit/39d6ac72409081a1fe5748a67f5c1f4e146d7b01))
|
|
7
|
+
|
|
8
|
+
# @forestadmin/agent [1.0.0-beta.56](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent@1.0.0-beta.55...@forestadmin/agent@1.0.0-beta.56) (2022-09-12)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Dependencies
|
|
15
|
+
|
|
16
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.32
|
|
17
|
+
|
|
1
18
|
# @forestadmin/agent [1.0.0-beta.55](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent@1.0.0-beta.54...@forestadmin/agent@1.0.0-beta.55) (2022-09-08)
|
|
2
19
|
|
|
3
20
|
|
|
@@ -6,7 +6,6 @@ import BaseRoute from '../base-route';
|
|
|
6
6
|
export default class Authentication extends BaseRoute {
|
|
7
7
|
readonly type = RouteType.Authentication;
|
|
8
8
|
private client;
|
|
9
|
-
private get redirectUrl();
|
|
10
9
|
bootstrap(): Promise<void>;
|
|
11
10
|
setupRoutes(router: Router): void;
|
|
12
11
|
handleAuthentication(context: Context): Promise<void>;
|
|
@@ -7,7 +7,6 @@ const openid_client_1 = require("openid-client");
|
|
|
7
7
|
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
8
8
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
9
9
|
const koa_jwt_1 = __importDefault(require("koa-jwt"));
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
10
|
const types_1 = require("../../types");
|
|
12
11
|
const base_route_1 = __importDefault(require("../base-route"));
|
|
13
12
|
const forest_http_api_1 = __importDefault(require("../../utils/forest-http-api"));
|
|
@@ -16,24 +15,17 @@ class Authentication extends base_route_1.default {
|
|
|
16
15
|
super(...arguments);
|
|
17
16
|
this.type = types_1.RouteType.Authentication;
|
|
18
17
|
}
|
|
19
|
-
get redirectUrl() {
|
|
20
|
-
const externalUrl = new URL(this.options.agentUrl);
|
|
21
|
-
return (externalUrl.origin +
|
|
22
|
-
path_1.default.posix.join('/', externalUrl.pathname, '/forest/authentication/callback'));
|
|
23
|
-
}
|
|
24
18
|
async bootstrap() {
|
|
25
19
|
// Retrieve OpenId Issuer from forestadmin-server
|
|
26
20
|
// We can't use 'Issuer.discover' because the oidc config is behind an auth-wall.
|
|
27
21
|
const issuer = new openid_client_1.Issuer(await forest_http_api_1.default.getOpenIdIssuerMetadata(this.options));
|
|
28
|
-
// Either instanciate or create a new oidc client.
|
|
29
22
|
const registration = {
|
|
30
|
-
client_id: this.options.clientId,
|
|
31
23
|
token_endpoint_auth_method: 'none',
|
|
32
|
-
redirect_uris: [this.redirectUrl],
|
|
33
24
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
25
|
+
// Register a new oidc client
|
|
26
|
+
this.client = await issuer.Client.register(registration, {
|
|
27
|
+
initialAccessToken: this.options.envSecret,
|
|
28
|
+
});
|
|
37
29
|
}
|
|
38
30
|
setupRoutes(router) {
|
|
39
31
|
router.post('/authentication', this.handleAuthentication.bind(this));
|
|
@@ -62,7 +54,7 @@ class Authentication extends base_route_1.default {
|
|
|
62
54
|
throw new datasource_toolkit_1.ValidationError('Failed to retrieve renderingId from query[state]');
|
|
63
55
|
}
|
|
64
56
|
// Retrieve user
|
|
65
|
-
const tokenSet = await this.client.callback(
|
|
57
|
+
const tokenSet = await this.client.callback(undefined, query, { state });
|
|
66
58
|
const accessToken = tokenSet.access_token;
|
|
67
59
|
const user = await forest_http_api_1.default.getUserInformation(this.options, renderingId, accessToken);
|
|
68
60
|
// Generate final token.
|
|
@@ -79,4 +71,4 @@ class Authentication extends base_route_1.default {
|
|
|
79
71
|
}
|
|
80
72
|
}
|
|
81
73
|
exports.default = Authentication;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWdlbnQvcm91dGVzL3NlY3VyaXR5L2F1dGhlbnRpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQWlFO0FBQ2pFLHdFQUFrRTtBQUVsRSxnRUFBd0M7QUFDeEMsc0RBQTBCO0FBRzFCLHVDQUF3QztBQUN4QywrREFBc0M7QUFDdEMsa0ZBQXdEO0FBRXhELE1BQXFCLGNBQWUsU0FBUSxvQkFBUztJQUFyRDs7UUFDVyxTQUFJLEdBQUcsaUJBQVMsQ0FBQyxjQUFjLENBQUM7SUFzRTNDLENBQUM7SUFsRVUsS0FBSyxDQUFDLFNBQVM7UUFDdEIsaURBQWlEO1FBQ2pELGlGQUFpRjtRQUNqRixNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFNLENBQUMsTUFBTSx5QkFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXJGLE1BQU0sWUFBWSxHQUFHO1lBQ25CLDBCQUEwQixFQUFFLE1BQTBCO1NBQ3ZELENBQUM7UUFFRiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtZQUN2RCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXJGLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBQSxpQkFBRyxFQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQWdCO1FBQ2hELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5RCxjQUFjLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3BELEtBQUssRUFBRSxzQkFBc0I7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFnQjtRQUN4RCx1QkFBdUI7UUFDdkIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxJQUFJLFdBQW1CLENBQUM7UUFFeEIsSUFBSTtZQUNGLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUM1QyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUM7UUFBQyxNQUFNO1lBQ04sTUFBTSxJQUFJLG9DQUFlLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUMvRTtRQUVELGdCQUFnQjtRQUNoQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsTUFBTSx5QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTVGLHdCQUF3QjtRQUN4QixNQUFNLEtBQUssR0FBRyxzQkFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUV6RixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRztZQUN0QixLQUFLO1lBQ0wsU0FBUyxFQUFFLHNCQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUNqRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxJQUFJLG9DQUFlLENBQUMsK0JBQStCLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7Q0FDRjtBQXZFRCxpQ0F1RUMifQ==
|
|
@@ -2,11 +2,11 @@ import { ActionField, DataSource } from '@forestadmin/datasource-toolkit';
|
|
|
2
2
|
declare type FormData = Record<string, unknown>;
|
|
3
3
|
/**
|
|
4
4
|
* This utility class converts form values from our internal format to the format that is
|
|
5
|
-
* used in the frontend for
|
|
5
|
+
* used in the frontend for action forms.
|
|
6
6
|
*/
|
|
7
7
|
export default class ForestValueConverter {
|
|
8
8
|
/**
|
|
9
|
-
* Proper form data parser which converts data from
|
|
9
|
+
* Proper form data parser which converts data from an action form result to the format
|
|
10
10
|
* that is internally used in datasources.
|
|
11
11
|
*/
|
|
12
12
|
static makeFormData(dataSource: DataSource, rawData: FormData, fields: ActionField[]): FormData;
|
|
@@ -7,11 +7,11 @@ const id_1 = __importDefault(require("../id"));
|
|
|
7
7
|
const generator_actions_1 = __importDefault(require("./generator-actions"));
|
|
8
8
|
/**
|
|
9
9
|
* This utility class converts form values from our internal format to the format that is
|
|
10
|
-
* used in the frontend for
|
|
10
|
+
* used in the frontend for action forms.
|
|
11
11
|
*/
|
|
12
12
|
class ForestValueConverter {
|
|
13
13
|
/**
|
|
14
|
-
* Proper form data parser which converts data from
|
|
14
|
+
* Proper form data parser which converts data from an action form result to the format
|
|
15
15
|
* that is internally used in datasources.
|
|
16
16
|
*/
|
|
17
17
|
static makeFormData(dataSource, rawData, fields) {
|
package/dist/builder/agent.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export default class AgentBuilder<S extends TSchema = TSchema> {
|
|
|
23
23
|
* Create a new Agent Builder.
|
|
24
24
|
* If any options are missing, the default will be applied:
|
|
25
25
|
* ```
|
|
26
|
-
* clientId: null,
|
|
27
26
|
* forestServerUrl: 'https://api.forestadmin.com',
|
|
28
27
|
* logger: (level, data) => console.error(level, data),
|
|
29
28
|
* prefix: 'api/v1',
|
package/dist/builder/agent.js
CHANGED
|
@@ -51,7 +51,6 @@ class AgentBuilder {
|
|
|
51
51
|
* Create a new Agent Builder.
|
|
52
52
|
* If any options are missing, the default will be applied:
|
|
53
53
|
* ```
|
|
54
|
-
* clientId: null,
|
|
55
54
|
* forestServerUrl: 'https://api.forestadmin.com',
|
|
56
55
|
* logger: (level, data) => console.error(level, data),
|
|
57
56
|
* prefix: 'api/v1',
|
|
@@ -257,4 +256,4 @@ class AgentBuilder {
|
|
|
257
256
|
}
|
|
258
257
|
}
|
|
259
258
|
exports.default = AgentBuilder;
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlci9hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0VBUXlDO0FBQ3pDLDhDQUFzQjtBQUN0Qix5REFBaUM7QUFDakMsZ0RBQXdCO0FBQ3hCLGdEQUF3QjtBQUl4Qiw4REFBNkM7QUFDN0MsMEVBQWlEO0FBQ2pELCtGQUFxRTtBQUNyRSxrRkFBeUQ7QUFDekQsZ0ZBQXVEO0FBRXZEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQXFCLFlBQVk7SUFRL0I7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsWUFBWSxPQUFxQjtRQXBCekIsbUJBQWMsR0FBNEIsRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBMEMsRUFBRSxDQUFDO1FBQ25ELGdCQUFXLEdBQTRCLEVBQUUsQ0FBQztRQW1CaEQsSUFBSSxDQUFDLE9BQU8sR0FBRywyQkFBZ0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksd0NBQW1CLEVBQWMsQ0FBQztRQUNqRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksMEJBQWUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUEwQixFQUFFLE9BQTJCO1FBQ25FLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2xDLE1BQU0sVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLHdEQUFtQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdFLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZ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
|
|
@@ -5,8 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const DOCUMENTATION_URL = 'https://docs.forestadmin.com/beta-developer-guide-agents-v2/';
|
|
9
|
-
const RUNNING_ON_MULTIPLE_INSTANCES_PATH = 'extra-helps/running-forest-admin-on-multiple-instances';
|
|
10
8
|
class OptionsValidator {
|
|
11
9
|
static withDefaults(options) {
|
|
12
10
|
const copyOptions = { ...options };
|
|
@@ -23,7 +21,6 @@ class OptionsValidator {
|
|
|
23
21
|
copyOptions.typingsMaxDepth = copyOptions.typingsMaxDepth ?? 5;
|
|
24
22
|
copyOptions.prefix = copyOptions.prefix || '';
|
|
25
23
|
return {
|
|
26
|
-
clientId: null,
|
|
27
24
|
loggerLevel: 'Info',
|
|
28
25
|
permissionsCacheDurationInSeconds: 15 * 60,
|
|
29
26
|
...copyOptions,
|
|
@@ -54,22 +51,10 @@ class OptionsValidator {
|
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
53
|
static checkAuthOptions(options) {
|
|
57
|
-
if (!OptionsValidator.isUrl(options.agentUrl)) {
|
|
58
|
-
throw new Error('options.agentUrl is invalid. It should contain an url where your agent is reachable ' +
|
|
59
|
-
'(i.e. "https://api-forestadmin.mycompany.com")');
|
|
60
|
-
}
|
|
61
54
|
if (typeof options.authSecret !== 'string') {
|
|
62
55
|
throw new Error('options.authSecret is invalid. Any long random string should work ' +
|
|
63
56
|
'(i.e. "OfpssLrbgF3P4vHJTTpb"');
|
|
64
57
|
}
|
|
65
|
-
if (options.clientId === null) {
|
|
66
|
-
options.logger?.('Warn', 'options.clientId was not provided. Using Node.js cluster mode, ' +
|
|
67
|
-
'or multiple instances of the agent will break authentication ' +
|
|
68
|
-
`(For more information: ${DOCUMENTATION_URL}${RUNNING_ON_MULTIPLE_INSTANCES_PATH})`);
|
|
69
|
-
}
|
|
70
|
-
else if (typeof options.clientId !== 'string') {
|
|
71
|
-
throw new Error('options.clientId is invalid.');
|
|
72
|
-
}
|
|
73
58
|
}
|
|
74
59
|
static checkOtherOptions(options) {
|
|
75
60
|
if (typeof options.prefix !== 'string' || !/^[-~/\w]*$/i.test(options.prefix)) {
|
|
@@ -104,4 +89,4 @@ OptionsValidator.loggerPrefix = {
|
|
|
104
89
|
Warn: '\x1b[33mwarning:\x1b[0m',
|
|
105
90
|
Error: '\x1b[31merror:\x1b[0m',
|
|
106
91
|
};
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbGRlci91dGlscy9vcHRpb25zLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJCQUFnQztBQUNoQyxnREFBd0I7QUFLeEIsTUFBcUIsZ0JBQWdCO0lBUW5DLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBcUI7UUFDdkMsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBRW5DLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO1lBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTlDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN4RCxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUMzRDtRQUNILENBQUMsQ0FBQztRQUVGLFdBQVcsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUM7UUFDekQsV0FBVyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxJQUFJLDBCQUEwQixDQUFDO1FBQzlFLFdBQVcsQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsSUFBSSw2QkFBNkIsQ0FBQztRQUMzRixXQUFXLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO1FBQy9ELFdBQVcsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sSUFBSSxFQUFFLENB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
|
package/dist/types.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Logger, LoggerLevel } from '@forestadmin/datasource-toolkit';
|
|
2
2
|
/** Options to configure behavior of an agent's forestadmin driver */
|
|
3
3
|
export declare type AgentOptions = {
|
|
4
|
-
agentUrl: string;
|
|
5
4
|
authSecret: string;
|
|
6
|
-
clientId?: string | null;
|
|
7
5
|
envSecret: string;
|
|
8
6
|
customizeErrorMessage?: ((error: Error) => string | null) | null;
|
|
9
7
|
forestServerUrl?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/agent",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.57",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@fast-csv/format": "^4.3.5",
|
|
16
16
|
"@fastify/express": "^1.1.0",
|
|
17
|
-
"@forestadmin/datasource-toolkit": "1.0.0-beta.
|
|
17
|
+
"@forestadmin/datasource-toolkit": "1.0.0-beta.32",
|
|
18
18
|
"@koa/cors": "^3.3.0",
|
|
19
19
|
"@koa/router": "^10.1.1",
|
|
20
20
|
"forest-ip-utils": "^1.0.1",
|