@drivelock/n8n-nodes-drivelock 0.2.4 → 0.2.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.
Files changed (26) hide show
  1. package/dist/nodes/Drivelock/Drivelock.node.js +19 -464
  2. package/dist/nodes/Drivelock/Drivelock.node.js.map +1 -1
  3. package/dist/nodes/Drivelock/handlers/computerHandler.d.ts +2 -0
  4. package/dist/nodes/Drivelock/handlers/computerHandler.js +84 -0
  5. package/dist/nodes/Drivelock/handlers/computerHandler.js.map +1 -0
  6. package/dist/nodes/Drivelock/handlers/controlRuleHandler.d.ts +5 -0
  7. package/dist/nodes/Drivelock/handlers/controlRuleHandler.js +72 -0
  8. package/dist/nodes/Drivelock/handlers/controlRuleHandler.js.map +1 -0
  9. package/dist/nodes/Drivelock/handlers/customPropertyHandler.d.ts +2 -0
  10. package/dist/nodes/Drivelock/handlers/customPropertyHandler.js +104 -0
  11. package/dist/nodes/Drivelock/handlers/customPropertyHandler.js.map +1 -0
  12. package/dist/nodes/Drivelock/handlers/entityHandler.d.ts +2 -0
  13. package/dist/nodes/Drivelock/handlers/entityHandler.js +143 -0
  14. package/dist/nodes/Drivelock/handlers/entityHandler.js.map +1 -0
  15. package/dist/nodes/Drivelock/handlers/groupHandler.d.ts +2 -0
  16. package/dist/nodes/Drivelock/handlers/groupHandler.js +33 -0
  17. package/dist/nodes/Drivelock/handlers/groupHandler.js.map +1 -0
  18. package/dist/nodes/Drivelock/helper/GenericFunctions.d.ts +1 -0
  19. package/dist/nodes/Drivelock/helper/GenericFunctions.js +32 -0
  20. package/dist/nodes/Drivelock/helper/GenericFunctions.js.map +1 -1
  21. package/dist/package.json +1 -1
  22. package/dist/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +1 -1
  24. package/dist/nodes/Drivelock/operations/PolicyOperations.d.ts +0 -2
  25. package/dist/nodes/Drivelock/operations/PolicyOperations.js +0 -96
  26. package/dist/nodes/Drivelock/operations/PolicyOperations.js.map +0 -1
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeComputerOperation = executeComputerOperation;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const GenericFunctions_1 = require("../helper/GenericFunctions");
6
+ const ValidationHelpers_1 = require("../helper/ValidationHelpers");
7
+ async function executeComputerOperation(ctx, operation, i) {
8
+ if (operation === 'delete') {
9
+ const computerIdsStr = ctx.getNodeParameter('computerIds', i);
10
+ const computerIds = (0, ValidationHelpers_1.validateCommaSeparatedIds)(computerIdsStr, ctx.getNode(), i, 'computerIds');
11
+ const deleteRecoveryData = ctx.getNodeParameter('deleteRecoveryData', i);
12
+ const deleteEvents = ctx.getNodeParameter('deleteEvents', i);
13
+ const deleteGroupDefinitions = ctx.getNodeParameter('deleteGroupDefinitions', i);
14
+ const body = { computerIds, deleteRecoveryData, deleteEvents, deleteGroupDefinitions };
15
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/delete', body);
16
+ return (0, GenericFunctions_1.extractResponseData)(response);
17
+ }
18
+ if (operation === 'executeActions') {
19
+ const computerIdsStr = ctx.getNodeParameter('computerIds', i);
20
+ const computerIds = (0, ValidationHelpers_1.validateCommaSeparatedIds)(computerIdsStr, ctx.getNode(), i, 'computerIds');
21
+ const actionsStr = ctx.getNodeParameter('actions', i);
22
+ const notifyAgent = ctx.getNodeParameter('notifyAgent', i);
23
+ const actions = (0, ValidationHelpers_1.parseJsonParameter)(actionsStr, ctx.getNode(), i, 'actions');
24
+ const body = { computerIds, actions, notifyAgent };
25
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/actions', body);
26
+ return (0, GenericFunctions_1.extractResponseData)(response);
27
+ }
28
+ if (operation === 'onlineUnlock') {
29
+ const computerId = ctx.getNodeParameter('computerId', i);
30
+ const unlockDataStr = ctx.getNodeParameter('unlockData', i);
31
+ const data = (0, ValidationHelpers_1.parseJsonParameter)(unlockDataStr, ctx.getNode(), i, 'unlockData');
32
+ const body = { computerId, data };
33
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/online/unlock', body);
34
+ return (0, GenericFunctions_1.extractResponseData)(response);
35
+ }
36
+ if (operation === 'stopOnlineUnlock') {
37
+ const computerId = ctx.getNodeParameter('computerId', i);
38
+ const body = { computerId };
39
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/online/stopUnlock', body);
40
+ return (0, GenericFunctions_1.extractResponseData)(response);
41
+ }
42
+ if (operation === 'markForRejoin') {
43
+ const computerIdsStr = ctx.getNodeParameter('computerIds', i);
44
+ const computerIds = (0, ValidationHelpers_1.validateCommaSeparatedIds)(computerIdsStr, ctx.getNode(), i, 'computerIds');
45
+ const allowToRejoin = ctx.getNodeParameter('allowToRejoin', i);
46
+ const body = { computerIds, allowToRejoin };
47
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/markAgentForRejoin', body);
48
+ return (0, GenericFunctions_1.extractResponseData)(response);
49
+ }
50
+ if (operation === 'clearAgentIdToken') {
51
+ const computerId = ctx.getNodeParameter('computerId', i);
52
+ const body = { computerId };
53
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/clearAgentIdToken', body);
54
+ return (0, GenericFunctions_1.extractResponseData)(response);
55
+ }
56
+ if (operation === 'setImageFlag') {
57
+ const computerId = ctx.getNodeParameter('computerId', i);
58
+ const imageFlag = ctx.getNodeParameter('imageFlag', i);
59
+ const body = { computerId, imageFlag };
60
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/setImageFlag', body);
61
+ return (0, GenericFunctions_1.extractResponseData)(response);
62
+ }
63
+ if (operation === 'stopOnlineUnlocks') {
64
+ const computerIdsStr = ctx.getNodeParameter('computerIds', i);
65
+ const computerIds = computerIdsStr.split(',').map((id) => id.trim()).filter(Boolean);
66
+ const body = { computerIds };
67
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/stopOnlineUnlocks', body);
68
+ return (0, GenericFunctions_1.extractResponseData)(response);
69
+ }
70
+ if (operation === 'bitlockerRecovery') {
71
+ const recoveryId = ctx.getNodeParameter('recoveryId', i);
72
+ const body = { recoveryId };
73
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/recovery/bitlockerRecovery', body);
74
+ return (0, GenericFunctions_1.extractResponseData)(response);
75
+ }
76
+ if (operation === 'bitlocker2goRecovery') {
77
+ const recoveryId = ctx.getNodeParameter('recoveryId', i);
78
+ const body = { recoveryId };
79
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/computer/recovery/bitlocker2goRecovery', body);
80
+ return (0, GenericFunctions_1.extractResponseData)(response);
81
+ }
82
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Unknown operation: ${operation}`);
83
+ }
84
+ //# sourceMappingURL=computerHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computerHandler.js","sourceRoot":"","sources":["../../../../nodes/Drivelock/handlers/computerHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
+ export declare function executeControlRuleOperation(ctx: IExecuteFunctions, controlPath: string, dataParamName: string, operation: string, i: number): Promise<IDataObject>;
3
+ export declare function executeApplicationRulesOperation(ctx: IExecuteFunctions, operation: string, i: number): Promise<IDataObject>;
4
+ export declare function executeDeviceRulesOperation(ctx: IExecuteFunctions, operation: string, i: number): Promise<IDataObject>;
5
+ export declare function executeDriveRulesOperation(ctx: IExecuteFunctions, operation: string, i: number): Promise<IDataObject>;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeControlRuleOperation = executeControlRuleOperation;
4
+ exports.executeApplicationRulesOperation = executeApplicationRulesOperation;
5
+ exports.executeDeviceRulesOperation = executeDeviceRulesOperation;
6
+ exports.executeDriveRulesOperation = executeDriveRulesOperation;
7
+ const n8n_workflow_1 = require("n8n-workflow");
8
+ const GenericFunctions_1 = require("../helper/GenericFunctions");
9
+ const ValidationHelpers_1 = require("../helper/ValidationHelpers");
10
+ function getControlRuleConfig(operation) {
11
+ if (operation.includes('Collection')) {
12
+ return { ruleSubPath: 'collections', bodyKey: 'collections' };
13
+ }
14
+ if (operation.includes('Behavior')) {
15
+ return { ruleSubPath: 'behaviorRules', bodyKey: 'rules' };
16
+ }
17
+ return { ruleSubPath: 'rules', bodyKey: 'rules' };
18
+ }
19
+ async function executeControlRuleOperation(ctx, controlPath, dataParamName, operation, i) {
20
+ const configId = ctx.getNodeParameter('configId', i);
21
+ const configVersion = ctx.getNodeParameter('configVersion', i);
22
+ const { ruleSubPath, bodyKey } = getControlRuleConfig(operation);
23
+ const basePath = `/api/administration/${controlPath}/${ruleSubPath}`;
24
+ if (operation.startsWith('get')) {
25
+ const qs = {};
26
+ if (configVersion > 0)
27
+ qs.configVersion = configVersion;
28
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'GET', `${basePath}/${configId}`, {}, qs);
29
+ return (0, GenericFunctions_1.extractResponseData)(response);
30
+ }
31
+ if (operation.startsWith('create') || operation.startsWith('update')) {
32
+ const dataStr = ctx.getNodeParameter(dataParamName, i);
33
+ const parsedData = (0, ValidationHelpers_1.parseJsonParameter)(dataStr, ctx.getNode(), i, dataParamName);
34
+ const body = { configId };
35
+ if (configVersion > 0)
36
+ body.configVersion = configVersion;
37
+ body[bodyKey] = parsedData;
38
+ const method = operation.startsWith('create') ? 'POST' : 'PATCH';
39
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, method, basePath, body);
40
+ return (0, GenericFunctions_1.extractResponseData)(response);
41
+ }
42
+ if (operation.startsWith('delete')) {
43
+ const ruleIdsStr = ctx.getNodeParameter('ruleIds', i);
44
+ const ruleIds = (0, ValidationHelpers_1.validateCommaSeparatedIds)(ruleIdsStr, ctx.getNode(), i, 'ruleIds');
45
+ const body = { configId, ruleIds };
46
+ if (configVersion > 0)
47
+ body.configVersion = configVersion;
48
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'DELETE', basePath, body);
49
+ return (0, GenericFunctions_1.extractResponseData)(response);
50
+ }
51
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Unknown operation: ${operation}`);
52
+ }
53
+ async function executeApplicationRulesOperation(ctx, operation, i) {
54
+ return executeControlRuleOperation(ctx, 'applicationControl', 'rules', operation, i);
55
+ }
56
+ async function executeDeviceRulesOperation(ctx, operation, i) {
57
+ if (operation === 'getRule') {
58
+ const ruleId = ctx.getNodeParameter('ruleId', i);
59
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'GET', `/api/administration/deviceControl/rules/${ruleId}`);
60
+ return (0, GenericFunctions_1.extractResponseData)(response);
61
+ }
62
+ return executeControlRuleOperation(ctx, 'deviceControl', 'rulesData', operation, i);
63
+ }
64
+ async function executeDriveRulesOperation(ctx, operation, i) {
65
+ if (operation === 'getRule') {
66
+ const ruleId = ctx.getNodeParameter('ruleId', i);
67
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'GET', `/api/administration/driveControl/rules/${ruleId}`);
68
+ return (0, GenericFunctions_1.extractResponseData)(response);
69
+ }
70
+ return executeControlRuleOperation(ctx, 'driveControl', 'rulesData', operation, i);
71
+ }
72
+ //# sourceMappingURL=controlRuleHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlRuleHandler.js","sourceRoot":"","sources":["../../../../nodes/Drivelock/handlers/controlRuleHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
+ export declare function executeCustomPropertyOperation(ctx: IExecuteFunctions, operation: string, i: number): Promise<IDataObject>;
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.executeCustomPropertyOperation = executeCustomPropertyOperation;
37
+ const n8n_workflow_1 = require("n8n-workflow");
38
+ const GenericFunctions_1 = require("../helper/GenericFunctions");
39
+ const customPropHelper = __importStar(require("../helper/CustomPropertyHelper"));
40
+ async function executeCustomPropertyOperation(ctx, operation, i) {
41
+ const schema = ctx.getNodeParameter('schema', i);
42
+ const schemaExtention = `${schema}Extensions`;
43
+ if (operation === 'check') {
44
+ const createOrUpdateIfNotExists = ctx.getNodeParameter('createOrUpdateIfNotExists', i);
45
+ const customProperties = ctx.getNodeParameter('customProperties', i).customPropertyValues;
46
+ let customSchemes = await (GenericFunctions_1.driveLockApiRequest).call(ctx, 'GET', '/api/administration/entity/customSchema/getCustomSchemas', {});
47
+ if (Array.isArray(customSchemes.data)) {
48
+ throw new n8n_workflow_1.NodeApiError(ctx.getNode(), { message: 'invalid API response. data should be an object' });
49
+ }
50
+ else if (!customSchemes.data.customProps) {
51
+ throw new n8n_workflow_1.NodeApiError(ctx.getNode(), { message: 'invalid API response. object is missing' });
52
+ }
53
+ let checkResult = customPropHelper.checkPropsAndTypes(customSchemes.data.customProps[schemaExtention], customProperties);
54
+ let allPropertiesFound = Object.values(checkResult).every((v) => v.name === true);
55
+ let allDataTypesCorrect = Object.values(checkResult).every((v) => v.datatype === true);
56
+ let allNotChanged = Object.values(checkResult).every((v) => v.changed === false);
57
+ if (allDataTypesCorrect && createOrUpdateIfNotExists) {
58
+ const adjustedProps = customPropHelper.adjustProps(checkResult, schemaExtention, customSchemes.data.customProps, customProperties);
59
+ const endpoint = '/api/administration/entity/customSchema/setCustomSchemas';
60
+ const body = { customProps: adjustedProps };
61
+ const updateResult = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', endpoint, body, {}, { returnFullResponse: true });
62
+ const statusCode = updateResult.statusCode;
63
+ if (statusCode !== undefined && statusCode !== 200) {
64
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `The update errored - returned status-code ${statusCode}. ${JSON.stringify(updateResult.body)}`, { itemIndex: i });
65
+ }
66
+ customSchemes = await (GenericFunctions_1.driveLockApiRequest).call(ctx, 'GET', '/api/administration/entity/customSchema/getCustomSchemas', {});
67
+ if (Array.isArray(customSchemes.data)) {
68
+ throw new n8n_workflow_1.NodeApiError(ctx.getNode(), { message: 'invalid API response. data should be an object' });
69
+ }
70
+ else if (!customSchemes.data.customProps) {
71
+ throw new n8n_workflow_1.NodeApiError(ctx.getNode(), { message: 'invalid API response. object is missing' });
72
+ }
73
+ checkResult = customPropHelper.checkPropsAndTypes(customSchemes.data.customProps[schemaExtention], customProperties);
74
+ allPropertiesFound = Object.values(checkResult).every((v) => v.name === true);
75
+ allDataTypesCorrect = Object.values(checkResult).every((v) => v.datatype === true);
76
+ allNotChanged = Object.values(checkResult).every((v) => v.changed === false);
77
+ }
78
+ const success = allPropertiesFound && allDataTypesCorrect;
79
+ const responseData = { allPropertiesFound, allDataTypesCorrect, allNotChanged, details: checkResult };
80
+ if (success) {
81
+ return responseData;
82
+ }
83
+ const outputData = JSON.stringify(responseData);
84
+ if (!createOrUpdateIfNotExists) {
85
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Please configure the Custom properties proper here or in DOC. Tick the 'Create properties ...' Button to create missing entries here (or in DOC).\n\nCheck says ${outputData}`, { itemIndex: i });
86
+ }
87
+ else if (!allPropertiesFound) {
88
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `While trying to create: Some custom properties are missing or have incorrect data types. Details: ${outputData}`, { itemIndex: i });
89
+ }
90
+ else {
91
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Some custom properties have incorrect data types. Details: ${outputData}`, { itemIndex: i });
92
+ }
93
+ }
94
+ if (operation === 'update') {
95
+ const customPropertyId = ctx.getNodeParameter('customPropertyId', i);
96
+ const updateProperties = ctx.getNodeParameter('updateProperties', i).customPropertiesValues;
97
+ const payload = customPropHelper.createSetPayload(customPropertyId.value, updateProperties);
98
+ const url = `/api/administration/entity/customSchema/setCustomData/${schemaExtention}`;
99
+ await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', url, payload);
100
+ return { success: true, payload };
101
+ }
102
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Unknown operation: ${operation}`);
103
+ }
104
+ //# sourceMappingURL=customPropertyHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customPropertyHandler.js","sourceRoot":"","sources":["../../../../nodes/Drivelock/handlers/customPropertyHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
+ export declare function executeEntityOperation(ctx: IExecuteFunctions, operation: string, i: number): Promise<IDataObject>;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeEntityOperation = executeEntityOperation;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const GenericFunctions_1 = require("../helper/GenericFunctions");
6
+ const FilterBuilder_1 = require("../helper/FilterBuilder");
7
+ async function executeEntityOperation(ctx, operation, i) {
8
+ const entityName = ctx.getNodeParameter('entityName', i);
9
+ const STANDARD_ENTITIES = [
10
+ 'AcBinaries', 'Computers', 'Users', 'Devices', 'Softwares',
11
+ 'DefinedGroupMemberships', 'DriveLockConfigs', 'Drives', 'Events', 'Groups', 'WhiteLists',
12
+ ];
13
+ function applyFilterQuery(qs) {
14
+ const filterMode = ctx.getNodeParameter('filterMode', i, 'builder');
15
+ const filterRaw = ctx.getNodeParameter('filterRaw', i, '');
16
+ const filterCombinator = ctx.getNodeParameter('filterCombinator', i, 'and');
17
+ const filterGroupsParam = ctx.getNodeParameter('filterGroups', i, { groups: [] });
18
+ const builtQuery = (0, FilterBuilder_1.buildFilterQuery)(filterMode, filterRaw, filterCombinator, filterGroupsParam);
19
+ if (builtQuery)
20
+ qs.query = builtQuery;
21
+ }
22
+ function applyPropertiesAndSort(qs) {
23
+ var _a;
24
+ const propertiesMode = ctx.getNodeParameter('propertiesMode', i, 'builder');
25
+ if (propertiesMode === 'raw') {
26
+ const propertiesRaw = ctx.getNodeParameter('propertiesRaw', i, '');
27
+ if (propertiesRaw)
28
+ qs.select = `id,${propertiesRaw}`;
29
+ }
30
+ else {
31
+ const propertiesToInclude = ctx.getNodeParameter('properties', i, []);
32
+ if (Array.isArray(propertiesToInclude) && propertiesToInclude.length) {
33
+ qs.select = `id,${propertiesToInclude.join(',')}`;
34
+ }
35
+ }
36
+ const sortMode = ctx.getNodeParameter('sortMode', i, 'builder');
37
+ if (sortMode === 'raw') {
38
+ const sortRaw = ctx.getNodeParameter('sortRaw', i, '');
39
+ if (sortRaw)
40
+ qs.sortBy = sortRaw;
41
+ }
42
+ else {
43
+ const sortFieldsParam = ctx.getNodeParameter('sortFields', i, { fields: [] });
44
+ if ((_a = sortFieldsParam.fields) === null || _a === void 0 ? void 0 : _a.length) {
45
+ qs.sortBy = sortFieldsParam.fields.map((f) => `${f.direction}${f.field}`).join(',');
46
+ }
47
+ }
48
+ }
49
+ if (operation === 'getList') {
50
+ const additionalFields = ctx.getNodeParameter('additionalFields', i);
51
+ const qs = {};
52
+ if (STANDARD_ENTITIES.includes(entityName)) {
53
+ applyPropertiesAndSort(qs);
54
+ if (additionalFields.getFullObjects !== undefined)
55
+ qs.getFullObjects = additionalFields.getFullObjects;
56
+ }
57
+ else {
58
+ if (additionalFields.select)
59
+ qs.select = additionalFields.select;
60
+ if (additionalFields.sortBy)
61
+ qs.sortBy = additionalFields.sortBy;
62
+ }
63
+ if (additionalFields.groupBy)
64
+ qs.groupBy = additionalFields.groupBy;
65
+ if (additionalFields.skip !== undefined)
66
+ qs.skip = additionalFields.skip;
67
+ if (additionalFields.take !== undefined)
68
+ qs.take = additionalFields.take;
69
+ if (additionalFields.getTotalCount !== undefined)
70
+ qs.getTotalCount = additionalFields.getTotalCount;
71
+ if (additionalFields.includeLinkedObjects !== undefined)
72
+ qs.includeLinkedObjects = additionalFields.includeLinkedObjects;
73
+ if (additionalFields.getAsFlattenedList !== undefined)
74
+ qs.getAsFlattenedList = additionalFields.getAsFlattenedList;
75
+ applyFilterQuery(qs);
76
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'GET', `/api/administration/entity/${entityName}`, {}, qs);
77
+ return (0, GenericFunctions_1.extractResponseData)(response);
78
+ }
79
+ if (operation === 'getCount') {
80
+ const additionalFields = ctx.getNodeParameter('additionalFields', i);
81
+ const qs = {};
82
+ if (additionalFields.groupBy)
83
+ qs.groupBy = additionalFields.groupBy;
84
+ applyFilterQuery(qs);
85
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'GET', `/api/administration/entity/${entityName}/count`, {}, qs);
86
+ return (0, GenericFunctions_1.extractResponseData)(response);
87
+ }
88
+ if (operation === 'getById') {
89
+ const entityId = ctx.getNodeParameter('entityId', i);
90
+ const includeLinkedObjects = ctx.getNodeParameter('includeLinkedObjects', i);
91
+ const qs = { includeLinkedObjects };
92
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'GET', `/api/administration/entity/${entityName}/${entityId}`, {}, qs);
93
+ return (0, GenericFunctions_1.extractResponseData)(response);
94
+ }
95
+ if (operation === 'export') {
96
+ const exportFormat = ctx.getNodeParameter('exportFormat', i);
97
+ const additionalFields = ctx.getNodeParameter('additionalFields', i);
98
+ const exportOptions = ctx.getNodeParameter('exportOptions', i);
99
+ const qs = { exportFormat };
100
+ if (STANDARD_ENTITIES.includes(entityName)) {
101
+ applyPropertiesAndSort(qs);
102
+ if (additionalFields.getFullObjects !== undefined)
103
+ qs.getFullObjects = additionalFields.getFullObjects;
104
+ }
105
+ else {
106
+ if (additionalFields.select)
107
+ qs.select = additionalFields.select;
108
+ if (additionalFields.sortBy)
109
+ qs.sortBy = additionalFields.sortBy;
110
+ }
111
+ if (additionalFields.groupBy)
112
+ qs.groupBy = additionalFields.groupBy;
113
+ if (additionalFields.skip !== undefined)
114
+ qs.skip = additionalFields.skip;
115
+ if (additionalFields.take !== undefined)
116
+ qs.take = additionalFields.take;
117
+ if (additionalFields.includeLinkedObjects !== undefined)
118
+ qs.includeLinkedObjects = additionalFields.includeLinkedObjects;
119
+ if (additionalFields.getAsFlattenedList !== undefined)
120
+ qs.getAsFlattenedList = additionalFields.getAsFlattenedList;
121
+ if (additionalFields.maskUserProperties !== undefined)
122
+ qs.maskUserProperties = additionalFields.maskUserProperties;
123
+ if (additionalFields.maskComputerProperties !== undefined)
124
+ qs.maskComputerProperties = additionalFields.maskComputerProperties;
125
+ applyFilterQuery(qs);
126
+ if (exportOptions.readability !== undefined)
127
+ qs.readability = exportOptions.readability;
128
+ if (exportOptions.separator)
129
+ qs.separator = exportOptions.separator;
130
+ if (exportOptions.language)
131
+ qs.language = exportOptions.language;
132
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'GET', `/api/administration/entity/${entityName}/export`, {}, qs, { json: false });
133
+ return (0, GenericFunctions_1.extractResponseData)(response);
134
+ }
135
+ if (operation === 'getPermissions') {
136
+ const entityId = ctx.getNodeParameter('entityId', i);
137
+ const body = { entityName, entityId };
138
+ const permResponse = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/entity/getEntityPermissions', body);
139
+ return (0, GenericFunctions_1.extractResponseData)(permResponse);
140
+ }
141
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Unknown operation: ${operation}`);
142
+ }
143
+ //# sourceMappingURL=entityHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityHandler.js","sourceRoot":"","sources":["../../../../nodes/Drivelock/handlers/entityHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
+ export declare function executeGroupOperation(ctx: IExecuteFunctions, operation: string, i: number): Promise<IDataObject>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeGroupOperation = executeGroupOperation;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const GenericFunctions_1 = require("../helper/GenericFunctions");
6
+ const ValidationHelpers_1 = require("../helper/ValidationHelpers");
7
+ async function executeGroupOperation(ctx, operation, i) {
8
+ var _a;
9
+ if (operation === 'addComputerToGroup' || operation === 'removeComputerFromGroup') {
10
+ const groupId = ctx.getNodeParameter('groupId', i);
11
+ const membershipsParam = ctx.getNodeParameter('memberships', i, {});
12
+ const isExclude = operation === 'removeComputerFromGroup';
13
+ const memberships = ((_a = membershipsParam.membershipValues) !== null && _a !== void 0 ? _a : []).map((m) => {
14
+ var _a;
15
+ return ({
16
+ name: m.computerName,
17
+ isExclude,
18
+ comment: (_a = m.comment) !== null && _a !== void 0 ? _a : '',
19
+ });
20
+ });
21
+ const body = { groupId, memberships };
22
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'POST', '/api/administration/group/definedGroupMemberships/computers', body);
23
+ return (0, GenericFunctions_1.extractResponseData)(response);
24
+ }
25
+ if (operation === 'removeGroupMemberships') {
26
+ const membershipIdsStr = ctx.getNodeParameter('membershipIds', i);
27
+ const membershipIds = (0, ValidationHelpers_1.validateCommaSeparatedIds)(membershipIdsStr, ctx.getNode(), i, 'membershipIds');
28
+ const response = await GenericFunctions_1.driveLockApiRequest.call(ctx, 'DELETE', '/api/administration/group/definedGroupMemberships', membershipIds);
29
+ return (0, GenericFunctions_1.extractResponseData)(response);
30
+ }
31
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Unknown operation: ${operation}`);
32
+ }
33
+ //# sourceMappingURL=groupHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupHandler.js","sourceRoot":"","sources":["../../../../nodes/Drivelock/handlers/groupHandler.ts"],"names":[],"mappings":";;AAKA,sDAmCC;AAvCD,+CAAkD;AAClD,iEAAsF;AACtF,mEAAwE;AAEjE,KAAK,UAAU,qBAAqB,CAC1C,GAAsB,EACtB,SAAiB,EACjB,CAAS;;IAET,IAAI,SAAS,KAAK,oBAAoB,IAAI,SAAS,KAAK,yBAAyB,EAAE,CAAC;QACnF,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAW,CAAC;QAC7D,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAEjE,CAAC;QACF,MAAM,SAAS,GAAG,SAAS,KAAK,yBAAyB,CAAC;QAC1D,MAAM,WAAW,GAAG,CAAC,MAAA,gBAAgB,CAAC,gBAAgB,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;YAAC,OAAA,CAAC;gBACzE,IAAI,EAAE,CAAC,CAAC,YAAY;gBACpB,SAAS;gBACT,OAAO,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,EAAE;aACxB,CAAC,CAAA;SAAA,CAAC,CAAC;QAEJ,MAAM,IAAI,GAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,sCAAmB,CAAC,IAAI,CAC9C,GAAG,EAAE,MAAM,EAAE,6DAA6D,EAAE,IAAI,CAChF,CAAC;QACF,OAAO,IAAA,sCAAmB,EAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,KAAK,wBAAwB,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAW,CAAC;QAC5E,MAAM,aAAa,GAAG,IAAA,6CAAyB,EAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;QAErG,MAAM,QAAQ,GAAG,MAAM,sCAAmB,CAAC,IAAI,CAC9C,GAAG,EAAE,QAAQ,EAAE,mDAAmD,EAAE,aAAa,CACjF,CAAC;QACF,OAAO,IAAA,sCAAmB,EAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,IAAI,iCAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,sBAAsB,SAAS,EAAE,CAAC,CAAC;AAChF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { IExecuteFunctions, IHookFunctions, IDataObject, ILoadOptionsFunctions, IHttpRequestMethods } from 'n8n-workflow';
2
+ export declare function extractResponseData(response: unknown): IDataObject;
2
3
  import { DriveLockApiResponse } from './utils';
3
4
  export declare function driveLockApiRequest<T = unknown>(this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: string, body?: unknown, query?: IDataObject, option?: IDataObject): Promise<DriveLockApiResponse<T>>;
4
5
  export declare function isBase64(content: string): boolean;
@@ -1,8 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractResponseData = extractResponseData;
3
4
  exports.driveLockApiRequest = driveLockApiRequest;
4
5
  exports.isBase64 = isBase64;
5
6
  exports.validateJSON = validateJSON;
7
+ function extractResponseData(response) {
8
+ if (!response)
9
+ return { success: true };
10
+ if (typeof response === 'string')
11
+ return { data: response };
12
+ if (typeof response === 'object' && response !== null) {
13
+ const responseObj = response;
14
+ const { errorId, error, data, total, additionalInfo, ...rest } = responseObj;
15
+ const result = {
16
+ success: !error,
17
+ };
18
+ if (errorId !== undefined && errorId !== null)
19
+ result.errorId = errorId;
20
+ if (error !== undefined && error !== null)
21
+ result.error = error;
22
+ if (data !== undefined)
23
+ result.data = data;
24
+ if (total !== undefined)
25
+ result.total = total;
26
+ if (additionalInfo !== undefined && additionalInfo !== null) {
27
+ result.additionalInfo = additionalInfo;
28
+ }
29
+ for (const key of Object.keys(rest)) {
30
+ if (rest[key] !== undefined && rest[key] !== null) {
31
+ result[key] = rest[key];
32
+ }
33
+ }
34
+ return result;
35
+ }
36
+ return { success: true, data: response };
37
+ }
6
38
  const n8n_workflow_1 = require("n8n-workflow");
7
39
  const MAX_RETRIES = 3;
8
40
  const BASE_DELAY_MS = 1000;
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../../nodes/Drivelock/helper/GenericFunctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../../nodes/Drivelock/helper/GenericFunctions.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drivelock/n8n-nodes-drivelock",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Control the DriveLock API with n8n.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://www.drivelock.com",