@binalyze/air-sdk 5.4.1 → 5.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @binalyze/air-sdk
2
2
 
3
- AIR SDK (typescript-axios) bundled with an ergonomic API surface.
3
+ AIR SDK (typescript-axios) bundled with an API surface.
4
4
 
5
5
  ## Requirements
6
6
  - Node >= 18
@@ -17,20 +17,62 @@ import { AIR } from '@binalyze/air-sdk';
17
17
 
18
18
  const air = new AIR(process.env.AIR_BASE_URL, process.env.AIR_TOKEN);
19
19
 
20
- const organizationId = 0;
21
- const users = await air.users.getMany(organizationId);
22
-
23
- const baseline = await air.baseline.acquire("a123cde-f5ec-51fb-9b3a-e5e0ak65c3a1", organizationId, "C-2025");
24
-
25
- const commands = await air.interact.getCommands();
20
+ const baseUrl = process.env.AIR_DEV_URL;
21
+ const token = process.env.AIR_API_TOKEN;
22
+
23
+ if (!baseUrl || !token) {
24
+ throw new Error('AIR_DEV_URL and AIR_API_TOKEN must be set in .env file');
25
+ }
26
+
27
+ const air = new AIR(baseUrl, token);
28
+
29
+ // List users (paginated array with optional _pagination metadata)
30
+ const users = await air.users.getMany({ pageNumber: 1, pageSize: 10 });
31
+ console.log('Users count:', users.length);
26
32
  ```
27
33
 
28
- ## Notes
34
+ ## Usage notes
29
35
  - The package exposes only `AIR` as the public entry.
30
36
  - Under the hood it configures:
31
37
  - Authorization header
32
38
  - deepObject query serialization
33
39
  - success/error response normalization
40
+ - List endpoints return arrays that also carry pagination metadata via an optional `_pagination` property.
41
+ - When organization scoping is omitted, defaults may apply (e.g., `organizationIds` default to `[0]`).
42
+
43
+ ## Examples
44
+
45
+ ```ts
46
+ // Acquire baseline evidence for specific endpoints and an optional case
47
+ const baseline = await air.baseline.acquire({
48
+ caseId: 'C-2025-0007',
49
+ filter: {
50
+ includedEndpointIds: ['f9032a34-8e6d-4875-b1c3-a60d23506746'],
51
+ // organizationIds will default to [0] if omitted
52
+ },
53
+ });
54
+ console.log('Baseline:', baseline);
55
+
56
+ // Get case activities (paginated array)
57
+ const getActivities = await air.cases.getActivities({ id: 'C-2025-0007' });
58
+ console.log(
59
+ 'First activity case ID for C-2025-0007:',
60
+ getActivities[0].data.caseId,
61
+ );
62
+
63
+ // List API tokens (paginated array)
64
+ const getApiTokens = await air.apiTokens.getMany();
65
+ console.log('API Tokens:', getApiTokens);
66
+
67
+ // List users with simple pagination and sorting
68
+ const usersPage = await air.users.getMany({
69
+ pageNumber: 1,
70
+ pageSize: 20,
71
+ sortBy: 'createdAt',
72
+ sortType: 'DESC',
73
+ });
74
+ console.log('Users (latest first):', usersPage);
75
+ ```
34
76
 
35
77
  ## Support
36
78
  Please open an internal ticket or contact the maintainers.
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createInteractAPI = createInteractAPI;
4
4
  const bindings_1 = require("../generated/bindings");
5
5
  const utils_1 = require("../utils");
6
+ const bindings_2 = require("../generated/bindings");
6
7
  function createInteractAPI() {
7
8
  return {
8
9
  getCommands: async () => {
@@ -77,6 +78,112 @@ function createInteractAPI() {
77
78
  return failure;
78
79
  }
79
80
  },
81
+ waitForSession: async ({ sessionId, taskId, timeoutSeconds, pollIntervalMs }) => {
82
+ const startedAt = Date.now();
83
+ const pollEveryMs = typeof pollIntervalMs === 'number' && pollIntervalMs > 0 ? pollIntervalMs : 60000;
84
+ const hasTimedOut = () => {
85
+ if (!timeoutSeconds || timeoutSeconds <= 0)
86
+ return false;
87
+ const elapsedSeconds = (Date.now() - startedAt) / 1000;
88
+ return elapsedSeconds >= timeoutSeconds;
89
+ };
90
+ // eslint-disable-next-line no-constant-condition
91
+ while (true) {
92
+ try {
93
+ const res = await (0, bindings_2.tasksGetById)({ path: { id: taskId } });
94
+ const task = (0, utils_1.unwrapResponse)(res);
95
+ if (task && task.type === 'interact-shell') {
96
+ if (task.status === 'processing') {
97
+ const result = {
98
+ sessionId,
99
+ taskId,
100
+ status: 'live',
101
+ message: 'InterACT session is ready - task is processing',
102
+ taskStatus: task.status,
103
+ taskType: task.type,
104
+ organizationId: task.organizationId,
105
+ createdAt: task.createdAt,
106
+ updatedAt: task.updatedAt,
107
+ };
108
+ return result;
109
+ }
110
+ if (task.status === 'completed') {
111
+ const result = {
112
+ sessionId,
113
+ taskId,
114
+ status: 'completed',
115
+ message: 'InterACT session task completed',
116
+ taskStatus: task.status,
117
+ taskType: task.type,
118
+ organizationId: task.organizationId,
119
+ createdAt: task.createdAt,
120
+ updatedAt: task.updatedAt,
121
+ };
122
+ return result;
123
+ }
124
+ if (task.status === 'cancelled') {
125
+ const result = {
126
+ sessionId,
127
+ taskId,
128
+ status: 'cancelled',
129
+ message: 'InterACT session task was cancelled',
130
+ error: 'Task was cancelled before becoming live',
131
+ taskStatus: task.status,
132
+ taskType: task.type,
133
+ organizationId: task.organizationId,
134
+ createdAt: task.createdAt,
135
+ updatedAt: task.updatedAt,
136
+ };
137
+ return result;
138
+ }
139
+ if (task.status === 'failed') {
140
+ const result = {
141
+ sessionId,
142
+ taskId,
143
+ status: 'failed',
144
+ message: 'InterACT session task failed',
145
+ error: 'Task failed during execution',
146
+ taskStatus: task.status,
147
+ taskType: task.type,
148
+ organizationId: task.organizationId,
149
+ createdAt: task.createdAt,
150
+ updatedAt: task.updatedAt,
151
+ };
152
+ return result;
153
+ }
154
+ }
155
+ else {
156
+ // Invalid task type for InterACT session
157
+ return {
158
+ sessionId,
159
+ taskId,
160
+ status: 'failed',
161
+ message: `Invalid task: Task ID ${taskId} is not an InterACT session task or was not found`,
162
+ error: 'Invalid task type',
163
+ taskStatus: task?.status,
164
+ taskType: task?.type,
165
+ organizationId: task?.organizationId,
166
+ createdAt: task?.createdAt,
167
+ updatedAt: task?.updatedAt,
168
+ };
169
+ }
170
+ }
171
+ catch (error) {
172
+ // swallow and continue polling
173
+ }
174
+ if (hasTimedOut()) {
175
+ return {
176
+ sessionId,
177
+ taskId,
178
+ status: 'timeout',
179
+ message: `InterACT session did not become live within ${timeoutSeconds} seconds`,
180
+ error: 'Timeout exceeded. Task is still waiting to become live',
181
+ taskStatus: 'unknown',
182
+ };
183
+ }
184
+ await new Promise((resolve) => setTimeout(resolve, pollEveryMs));
185
+ }
186
+ },
80
187
  };
81
188
  }
82
189
  function readSessionId(payload) {
@@ -1 +1 @@
1
- {"version":3,"file":"interact.js","sourceRoot":"","sources":["../../src/domains/interact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interact.js","sourceRoot":"","sources":["../../src/domains/interact.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ function createInvestigationHubAPI() {
28
28
  body,
29
29
  });
30
30
  const dto = (0, utils_1.unwrapResponse)(res);
31
- return (dto && dto.result) ? dto.result : dto;
31
+ return (0, utils_1.normalizePage)(dto);
32
32
  },
33
33
  getFindingsSummary: async (options) => {
34
34
  const resolvedAssignmentIds = await resolveAssignmentIds(options.investigationId, options.assignmentIds ?? options.includedEndpointIds);
@@ -1 +1 @@
1
- {"version":3,"file":"investigation.js","sourceRoot":"","sources":["../../src/domains/investigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"investigation.js","sourceRoot":"","sources":["../../src/domains/investigation.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,81 @@ function createTasksAPI() {
50
50
  });
51
51
  return (0, utils_1.normalizePage)(res, (entity) => entity);
52
52
  },
53
+ waitForCompletion: async ({ taskId, timeoutSeconds, pollIntervalMs }) => {
54
+ const startedAt = Date.now();
55
+ const defaultInterval = !timeoutSeconds || timeoutSeconds === 0 ? 300000 : 60000;
56
+ const pollEveryMs = typeof pollIntervalMs === 'number' && pollIntervalMs > 0 ? pollIntervalMs : defaultInterval;
57
+ const hasTimedOut = () => {
58
+ if (!timeoutSeconds || timeoutSeconds <= 0)
59
+ return false;
60
+ const elapsedSeconds = (Date.now() - startedAt) / 1000;
61
+ return elapsedSeconds >= timeoutSeconds;
62
+ };
63
+ // eslint-disable-next-line no-constant-condition
64
+ while (true) {
65
+ try {
66
+ const res = await (0, bindings_1.tasksGetById)({ path: { id: taskId } });
67
+ const task = (0, utils_1.unwrapResponse)(res);
68
+ if (task) {
69
+ if (task.status === 'completed') {
70
+ const result = {
71
+ taskId,
72
+ status: 'completed',
73
+ message: 'Task completed successfully',
74
+ taskStatus: task.status,
75
+ taskType: task.type,
76
+ organizationId: task.organizationId,
77
+ createdAt: task.createdAt,
78
+ updatedAt: task.updatedAt,
79
+ };
80
+ return result;
81
+ }
82
+ if (task.status === 'cancelled') {
83
+ const result = {
84
+ taskId,
85
+ status: 'cancelled',
86
+ message: 'Task was cancelled',
87
+ error: 'Task was cancelled before completion',
88
+ taskStatus: task.status,
89
+ taskType: task.type,
90
+ organizationId: task.organizationId,
91
+ createdAt: task.createdAt,
92
+ updatedAt: task.updatedAt,
93
+ };
94
+ return result;
95
+ }
96
+ if (task.status === 'failed') {
97
+ const result = {
98
+ taskId,
99
+ status: 'failed',
100
+ message: 'Task failed',
101
+ error: 'Task failed during execution',
102
+ taskStatus: task.status,
103
+ taskType: task.type,
104
+ organizationId: task.organizationId,
105
+ createdAt: task.createdAt,
106
+ updatedAt: task.updatedAt,
107
+ };
108
+ return result;
109
+ }
110
+ }
111
+ }
112
+ catch (error) {
113
+ // swallow and continue polling
114
+ }
115
+ if (hasTimedOut()) {
116
+ const timeoutResult = {
117
+ taskId,
118
+ status: 'timeout',
119
+ message: `Task did not complete within ${timeoutSeconds} seconds`,
120
+ error: 'Timeout exceeded. Task is still waiting to complete',
121
+ taskStatus: 'unknown',
122
+ };
123
+ return timeoutResult;
124
+ }
125
+ await new Promise((resolve) => setTimeout(resolve, pollEveryMs));
126
+ }
127
+ },
53
128
  };
54
129
  }
55
130
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/domains/tasks.ts"],"names":[],"mappings":";;AAmCA,wCAyDC;AA1ED,oDAI+B;AAC/B,oCAAgF;AAEhF,SAAS,aAAa,CAAC,MAAoB;IACzC,OAAO,MAAmC,CAAC;AAC7C,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAA8B;IAE9B,OAAO,MAA6C,CAAC;AACvD,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAmB,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAY,EAAC;gBAC7B,IAAI,EAAE,EAAE,EAAE,EAAE;aACb,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAA,sBAAc,EAA6B,GAAG,CAAC,CAAC;YAC5D,OAAO,GAAW,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAA0B,EAAE,EAAE;YAC5C,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;YAC/B,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;YACnC,MAAM,kBAAkB,GAAG,IAAA,6BAAqB,EAC9C,OAAO,EAAE,MAAqE,CAC/E,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAY,EAAC;gBAC7B,KAAK,EAAE;oBACL,UAAU;oBACV,QAAQ;oBACR,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,MAAM,EAAE,aAAa,CAAC,kBAAkC,CAAC;iBAC1D;aACF,CAAC,CAAC;YAEH,OAAO,IAAA,qBAAa,EAA0B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAqB,CAAC,CAAC;QACxF,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,EACrB,EAAE,EACF,UAAU,GAAG,CAAC,EACd,QAAQ,GAAG,EAAE,EACb,MAAM,EACN,QAAQ,EACR,MAAM,GACqB,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,MAAM,IAAA,kCAAuB,EAAC;gBACxC,IAAI,EAAE,EAAE,EAAE,EAAE;gBACZ,KAAK,EAAE;oBACL,UAAU;oBACV,QAAQ;oBACR,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,MAAM;wBACR,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE;wBAC7C,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC;iBAC7C;aACF,CAAC,CAAC;YACH,OAAO,IAAA,qBAAa,EAClB,GAAG,EACH,CAAC,MAAM,EAAE,EAAE,CAAC,MAA+B,CAC5C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/domains/tasks.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,31 @@ export interface IInterruptInteractCommandOptions {
50
50
  export interface ICloseInteractSessionOptions {
51
51
  sessionId: InteractSessionCloseData['path']['sessionId'];
52
52
  }
53
+ export interface IWaitForSessionOptions {
54
+ sessionId: string;
55
+ taskId: string;
56
+ /**
57
+ * Timeout in seconds. If 0 or undefined, waits indefinitely.
58
+ */
59
+ timeoutSeconds?: number;
60
+ /**
61
+ * Poll interval in milliseconds. Defaults to 60000 (1 minute).
62
+ */
63
+ pollIntervalMs?: number;
64
+ }
65
+ export type WaitForSessionStatus = 'live' | 'completed' | 'cancelled' | 'failed' | 'timeout';
66
+ export interface IWaitForSessionResult {
67
+ sessionId: string;
68
+ taskId: string;
69
+ status: WaitForSessionStatus;
70
+ message: string;
71
+ taskStatus?: string;
72
+ taskType?: string;
73
+ organizationId?: number;
74
+ createdAt?: string;
75
+ updatedAt?: string;
76
+ error?: string;
77
+ }
53
78
  export interface IInteractAPI {
54
79
  getCommands: () => Promise<IInteractCommand[]>;
55
80
  createShellSession: (options: CreateInteractShellSessionOptions) => Promise<InteractShellSession>;
@@ -58,5 +83,6 @@ export interface IInteractAPI {
58
83
  getCommandMessage: (options: IGetInteractCommandMessageOptions) => Promise<InteractCommandMessage>;
59
84
  interruptCommand: (options: IInterruptInteractCommandOptions) => Promise<InteractInterruptCommandResult>;
60
85
  closeSession: (options: ICloseInteractSessionOptions) => Promise<ICloseSessionResult>;
86
+ waitForSession: (options: IWaitForSessionOptions) => Promise<IWaitForSessionResult>;
61
87
  }
62
88
  export {};
@@ -1,8 +1,8 @@
1
- import type { FilterInvestigationFindingsDtoWritable, FilterInvestigationActivitiesDtoWritable, InvestigationFindingsStructureResponseDto, InvestigationFindingsSummaryResponseDto, InvestigationMitreTacticDto, InvestigationActivityDto, InvestigationFindingsPageDto } from '../generated/bindings';
1
+ import type { FilterInvestigationFindingsDtoWritable, FilterInvestigationActivitiesDtoWritable, InvestigationFindingsStructureResponseDto, InvestigationFindingsSummaryResponseDto, InvestigationMitreTacticDto, InvestigationActivityDto, InvestigationFindingDto } from '../generated/bindings';
2
2
  import type { PageWithPagination } from '../utils';
3
3
  export type InvestigationHubFindingsStructure = InvestigationFindingsStructureResponseDto;
4
- export type InvestigationHubFinding = InvestigationFindingsPageDto['entities'][number];
5
- export type InvestigationHubFindings = InvestigationFindingsPageDto;
4
+ export type InvestigationHubFinding = InvestigationFindingDto;
5
+ export type InvestigationHubFindings = PageWithPagination<InvestigationHubFinding>;
6
6
  export type InvestigationHubFindingsSummary = InvestigationFindingsSummaryResponseDto;
7
7
  export type InvestigationHubMitreTactic = InvestigationMitreTacticDto;
8
8
  export type InvestigationActivityData = {
@@ -122,4 +122,29 @@ export interface ITasksAPI {
122
122
  get: (options: IGetTaskOptions) => Promise<Task>;
123
123
  getMany: (options?: IGetTasksOptions) => Promise<ITasksPage>;
124
124
  getAssignments: (options: IGetTaskAssignmentsOptions) => Promise<ITaskAssignmentsPage>;
125
+ waitForCompletion: (options: IWaitForCompletionOptions) => Promise<IWaitForCompletionResult>;
126
+ }
127
+ export interface IWaitForCompletionOptions {
128
+ taskId: string;
129
+ /**
130
+ * Timeout in seconds. If 0 or undefined, waits indefinitely.
131
+ */
132
+ timeoutSeconds?: number;
133
+ /**
134
+ * Poll interval in milliseconds. If not provided, defaults to 300000 when waiting indefinitely,
135
+ * otherwise 60000.
136
+ */
137
+ pollIntervalMs?: number;
138
+ }
139
+ export type WaitForCompletionStatus = 'completed' | 'cancelled' | 'failed' | 'timeout';
140
+ export interface IWaitForCompletionResult {
141
+ taskId: string;
142
+ status: WaitForCompletionStatus;
143
+ message: string;
144
+ taskStatus?: string;
145
+ taskType?: string;
146
+ organizationId?: number;
147
+ createdAt?: string;
148
+ updatedAt?: string;
149
+ error?: string;
125
150
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@binalyze/air-sdk",
3
- "version": "5.4.1",
3
+ "version": "5.4.3",
4
4
  "private": false,
5
5
  "description": "Binalyze AIR - Typescript Axios SDK",
6
6
  "license": "MIT",