n8n-nodes-binalyze-air
Version:
Binalyze AIR nodes for automating DFIR with n8n workflows
217 lines • 9.27 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Air = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const baselines_1 = require("./resources/baselines");
const cases_1 = require("./resources/cases");
const organizations_1 = require("./resources/organizations");
const repositories_1 = require("./resources/repositories");
const tasks_1 = require("./resources/tasks");
const users_1 = require("./resources/users");
const triagerules_1 = require("./resources/triagerules");
const assets_1 = require("./resources/assets");
const acquisitions_1 = require("./resources/acquisitions");
const interact_1 = require("./resources/interact");
class Air {
constructor() {
this.description = {
displayName: 'AIR',
name: 'air',
icon: {
light: 'file:b-logo-dark.svg',
dark: 'file:b-logo-light.svg',
},
group: ['input'],
version: 1,
subtitle: '={{$parameter["resource"] + ": " + $parameter["operation"]}}',
description: 'Manage Binalyze AIR resources',
defaults: {
name: 'AIR',
},
inputs: ["main"],
outputs: ["main"],
credentials: [
{
name: 'airApi',
required: true,
},
],
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Acquisition',
value: 'acquisitions',
description: 'Manage acquisition profiles and remote acquisitions',
},
{
name: 'Asset',
value: 'assets',
description: 'Manage endpoint assets and their operations',
},
{
name: 'Baseline',
value: 'baselines',
description: 'Manage baselines and comparisons',
},
{
name: 'Case',
value: 'cases',
description: 'Manage cases and case operations',
},
{
name: 'InterACT',
value: 'interact',
description: 'Interactive shell sessions and command execution on devices',
},
{
name: 'Organization',
value: 'organizations',
description: 'Manage organizations',
},
{
name: 'Repository',
value: 'repositories',
description: 'Manage evidence repositories',
},
{
name: 'Task',
value: 'tasks',
description: 'Manage tasks and task assignments',
},
{
name: 'Triage Rule',
value: 'triagerules',
description: 'Manage triage rules',
},
{
name: 'User',
value: 'users',
description: 'Manage users',
},
],
default: 'organizations',
},
...acquisitions_1.AcquisitionsOperations,
...assets_1.AssetsOperations,
...baselines_1.BaselinesOperations,
...cases_1.CasesOperations,
...interact_1.InterACTOperations,
...organizations_1.OrganizationsOperations,
...repositories_1.RepositoriesOperations,
...tasks_1.TasksOperations,
...triagerules_1.TriageRulesOperations,
...users_1.UsersOperations,
],
};
this.methods = {
loadOptions: {
async getAcquisitionProfiles() {
return acquisitions_1.getAcquisitionProfilesOptions.call(this);
},
async getAssets() {
return assets_1.getAssetsOptions.call(this);
},
async getCases() {
return cases_1.getCasesOptions.call(this);
},
async getOrganizations() {
return organizations_1.getOrganizationsOptions.call(this);
},
async getRepositories() {
return repositories_1.getRepositoriesOptions.call(this);
},
async getTasks() {
return tasks_1.getTasksOptions.call(this);
},
async getTriageRules() {
return triagerules_1.getTriageRulesOptions.call(this);
},
async getUsers() {
return users_1.getUsersOptions.call(this);
},
},
listSearch: {
async getAcquisitionProfiles(filter) {
return acquisitions_1.getAcquisitionProfiles.call(this, filter);
},
async getAssets(filter) {
return assets_1.getAssets.call(this, filter);
},
async getAssetsByOrganizationForDeviceActions(filter) {
return assets_1.getAssetsByOrganizationForDeviceActions.call(this, filter);
},
async getAssetsByOrganization(filter) {
return baselines_1.getAssetsByOrganization.call(this, filter);
},
async getTasksByAsset(filter) {
return baselines_1.getTasksByAsset.call(this, filter);
},
async getAssetsByOrganizationForReport(filter) {
return baselines_1.getAssetsByOrganizationForReport.call(this, filter);
},
async getComparisonTasksByAsset(filter) {
return baselines_1.getComparisonTasksByAsset.call(this, filter);
},
async getCases(filter) {
return cases_1.getCases.call(this, filter);
},
async getCasesByOrganization(filter) {
return interact_1.getCasesByOrganization.call(this, filter);
},
async getAssetsByOrganizationForInteract(filter) {
return interact_1.getAssetsByOrganizationForInteract.call(this, filter);
},
async getOrganizations(filter) {
return organizations_1.getOrganizations.call(this, filter);
},
async getRepositories(filter) {
return repositories_1.getRepositories.call(this, filter);
},
async getTasks(filter) {
return tasks_1.getTasks.call(this, filter);
},
async getTriageRules(filter) {
return triagerules_1.getTriageRules.call(this, filter);
},
async getUsers(filter) {
return users_1.getUsers.call(this, filter);
},
},
};
}
async execute() {
const resource = this.getNodeParameter('resource', 0);
this.logger.debug(`Executing: ${this.getNode().name}/${resource} for workflow ${this.getWorkflow().name}`);
switch (resource) {
case 'acquisitions':
return acquisitions_1.executeAcquisitions.call(this);
case 'assets':
return assets_1.executeAssets.call(this);
case 'baselines':
return baselines_1.executeBaselines.call(this);
case 'cases':
return cases_1.executeCases.call(this);
case 'interact':
return interact_1.executeInterACT.call(this);
case 'organizations':
return organizations_1.executeOrganizations.call(this);
case 'repositories':
return repositories_1.executeRepositories.call(this);
case 'tasks':
return tasks_1.executeTasks.call(this);
case 'triagerules':
return triagerules_1.executeTriageRules.call(this);
case 'users':
return users_1.executeUsers.call(this);
default:
throw new n8n_workflow_1.ApplicationError(`Unknown resource: ${resource}`);
}
}
}
exports.Air = Air;
//# sourceMappingURL=Air.node.js.map