@superblocksteam/sabs-client 0.684.0 → 0.686.0
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/sabs.d.ts +109 -1
- package/dist/sabs.d.ts.map +1 -1
- package/dist/sabs.js +180 -0
- package/dist/sabs.js.map +1 -1
- package/dist/scan.test.d.ts +2 -0
- package/dist/scan.test.d.ts.map +1 -0
- package/dist/scan.test.js +249 -0
- package/dist/scan.test.js.map +1 -0
- package/package.json +2 -2
package/dist/sabs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApplicationMetadata, BuildResponse, BuildStatus, ListResponse, StatusResponse, TerminateResponse, BulkStatusResponse, CreateLiveEditResponse, TerminateLiveEditResponse } from '@superblocksteam/sabs-types';
|
|
1
|
+
import { ApplicationMetadata, BuildResponse, BuildStatus, ListResponse, StatusResponse, TerminateResponse, BulkStatusResponse, CreateLiveEditResponse, TerminateLiveEditResponse, ScanApplicationMetadata, ScanListResponse, ScanResponse, ScanStatus, ScanStatusResponse, ScanTerminateResponse } from '@superblocksteam/sabs-types';
|
|
2
2
|
/**
|
|
3
3
|
* Optional configuration for retry and backoff behavior.
|
|
4
4
|
* Inject these in tests to exercise retry logic without real delays.
|
|
@@ -223,6 +223,114 @@ export declare class SabsClient {
|
|
|
223
223
|
branch: string;
|
|
224
224
|
};
|
|
225
225
|
}>;
|
|
226
|
+
/**
|
|
227
|
+
* Start a security scan of an application directory
|
|
228
|
+
*
|
|
229
|
+
* @param params - Scan parameters
|
|
230
|
+
* @param params.artifactReadToken - Token the scan pod presents to Bucketeer for artifact presigns
|
|
231
|
+
* @param params.directoryHash - Hash of the application directory to scan
|
|
232
|
+
* @param params.meta - Application metadata (ID and organization ID)
|
|
233
|
+
* @param params.scanKey - Secret scan key, later required to terminate the scan
|
|
234
|
+
* @param params.accessToken - JWT access token for authorization
|
|
235
|
+
* @param params.policyGate - Optional review-run attribution. Omit for an unattributed scan
|
|
236
|
+
* @returns Promise resolving to scan information including scan ID
|
|
237
|
+
* @throws BadRequestError if the directory hash, application metadata, application ID, organization ID, scan key, artifact read token, or access token are empty or invalid
|
|
238
|
+
* @throws UnauthorizedError if the access token is invalid or missing the required scopes
|
|
239
|
+
* @throws InternalServerError if the service has an unexpected error while performing this request
|
|
240
|
+
* @throws HttpError if the request fails for an unknown reason
|
|
241
|
+
*/
|
|
242
|
+
scan({ artifactReadToken, directoryHash, meta, scanKey, accessToken, policyGate }: {
|
|
243
|
+
artifactReadToken: string;
|
|
244
|
+
directoryHash: string;
|
|
245
|
+
meta: ScanApplicationMetadata;
|
|
246
|
+
scanKey: string;
|
|
247
|
+
accessToken?: string;
|
|
248
|
+
policyGate?: {
|
|
249
|
+
aiAgentRunId?: string;
|
|
250
|
+
applicationCommitId?: string;
|
|
251
|
+
executionContext?: string;
|
|
252
|
+
profileId?: string;
|
|
253
|
+
reviewPolicyId?: string;
|
|
254
|
+
reviewPolicyVersionId?: string;
|
|
255
|
+
runnerType?: string;
|
|
256
|
+
runtime?: string;
|
|
257
|
+
token?: string;
|
|
258
|
+
trigger?: string;
|
|
259
|
+
};
|
|
260
|
+
}): Promise<ScanResponse>;
|
|
261
|
+
/**
|
|
262
|
+
* Get the status of a security scan
|
|
263
|
+
*
|
|
264
|
+
* @param params - Status query parameters
|
|
265
|
+
* @param params.scanId - ID of the scan to check
|
|
266
|
+
* @param params.accessToken - JWT access token for authorization
|
|
267
|
+
* @returns Promise resolving to scan status, including a findings summary once terminal
|
|
268
|
+
* @throws BadRequestError if the scan ID or access token is empty or invalid
|
|
269
|
+
* @throws UnauthorizedError if the access token is invalid or missing the required scopes
|
|
270
|
+
* @throws NotFoundError if the scan ID is invalid
|
|
271
|
+
* @throws HttpError if the request fails for an unknown reason
|
|
272
|
+
*/
|
|
273
|
+
scanStatus({ scanId, accessToken }: {
|
|
274
|
+
scanId: string;
|
|
275
|
+
accessToken?: string;
|
|
276
|
+
}): Promise<ScanStatusResponse>;
|
|
277
|
+
/**
|
|
278
|
+
* List the scans recorded for an application directory
|
|
279
|
+
*
|
|
280
|
+
* @param params - List query parameters
|
|
281
|
+
* @param params.organizationId - Organization ID
|
|
282
|
+
* @param params.applicationId - Application ID
|
|
283
|
+
* @param params.directoryHash - Hash of the application directory
|
|
284
|
+
* @param params.accessToken - JWT access token for authorization
|
|
285
|
+
* @returns Promise resolving to the scans for that directory
|
|
286
|
+
* @throws BadRequestError if any parameter is empty or invalid
|
|
287
|
+
* @throws UnauthorizedError if the access token is invalid or missing the required scopes
|
|
288
|
+
* @throws HttpError if the request fails for an unknown reason
|
|
289
|
+
*/
|
|
290
|
+
scanList({ organizationId, applicationId, directoryHash, accessToken }: {
|
|
291
|
+
organizationId: string;
|
|
292
|
+
applicationId: string;
|
|
293
|
+
directoryHash: string;
|
|
294
|
+
accessToken?: string;
|
|
295
|
+
}): Promise<ScanListResponse>;
|
|
296
|
+
/**
|
|
297
|
+
* Terminate a running scan with a final status
|
|
298
|
+
*
|
|
299
|
+
* @param params - Termination parameters
|
|
300
|
+
* @param params.scanId - ID of the scan to terminate
|
|
301
|
+
* @param params.status - Final status of the scan
|
|
302
|
+
* @param params.scanKey - Secret scan key issued when the scan was created
|
|
303
|
+
* @param params.error - Optional error message if the scan failed
|
|
304
|
+
* @param params.summary - Optional tally of what the scan found
|
|
305
|
+
* @param params.stepTimings - Optional step timing metrics in milliseconds
|
|
306
|
+
* @param params.accessToken - JWT access token for authorization
|
|
307
|
+
* @returns Promise resolving to termination confirmation
|
|
308
|
+
* @throws BadRequestError if the scan ID, status, scan key, or access token are empty or invalid
|
|
309
|
+
* @throws UnauthorizedError if the access token is invalid or the scan key does not match
|
|
310
|
+
* @throws NotFoundError if the scan ID is invalid
|
|
311
|
+
* @throws HttpError if the request fails for an unknown reason
|
|
312
|
+
*/
|
|
313
|
+
scanTerminate({ scanId, status, scanKey, error, summary, stepTimings, accessToken }: {
|
|
314
|
+
scanId: string;
|
|
315
|
+
status: ScanStatus;
|
|
316
|
+
scanKey?: string;
|
|
317
|
+
error?: string;
|
|
318
|
+
summary?: {
|
|
319
|
+
totalFindings?: number;
|
|
320
|
+
highSeverityFindings?: number;
|
|
321
|
+
sourceFindings?: number;
|
|
322
|
+
builtAssetFindings?: number;
|
|
323
|
+
scannerVersion?: string;
|
|
324
|
+
};
|
|
325
|
+
stepTimings?: {
|
|
326
|
+
fetchSourceMs?: number;
|
|
327
|
+
fetchArtifactsMs?: number;
|
|
328
|
+
sourceScanMs?: number;
|
|
329
|
+
builtAssetScanMs?: number;
|
|
330
|
+
reportFindingsMs?: number;
|
|
331
|
+
};
|
|
332
|
+
accessToken?: string;
|
|
333
|
+
}): Promise<ScanTerminateResponse>;
|
|
226
334
|
private executeRequest;
|
|
227
335
|
private getRequestHeaders;
|
|
228
336
|
private isRetriableError;
|
package/dist/sabs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sabs.d.ts","sourceRoot":"","sources":["../src/sabs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEnB,aAAa,EACb,WAAW,EAIX,YAAY,EACZ,cAAc,EAEd,iBAAiB,EAEjB,kBAAkB,EAElB,sBAAsB,EACtB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"sabs.d.ts","sourceRoot":"","sources":["../src/sabs.ts"],"names":[],"mappings":"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"}
|
package/dist/sabs.js
CHANGED
|
@@ -7,6 +7,13 @@ exports.SabsClient = void 0;
|
|
|
7
7
|
const sabs_types_1 = require("@superblocksteam/sabs-types");
|
|
8
8
|
const axios_1 = __importDefault(require("axios"));
|
|
9
9
|
const errors_1 = require("./errors");
|
|
10
|
+
/**
|
|
11
|
+
* Converts a count or duration to protobuf int64. Unlike a truthiness check
|
|
12
|
+
* this preserves 0, which for a scan means "found nothing" rather than "unknown".
|
|
13
|
+
*/
|
|
14
|
+
function toOptionalBigInt(value) {
|
|
15
|
+
return value === undefined ? undefined : BigInt(value);
|
|
16
|
+
}
|
|
10
17
|
/**
|
|
11
18
|
* SABS (Superblocks Application Build System) TypeScript Client
|
|
12
19
|
*
|
|
@@ -367,6 +374,179 @@ class SabsClient {
|
|
|
367
374
|
}
|
|
368
375
|
}, accessToken, { idempotent: false });
|
|
369
376
|
}
|
|
377
|
+
/**
|
|
378
|
+
* Start a security scan of an application directory
|
|
379
|
+
*
|
|
380
|
+
* @param params - Scan parameters
|
|
381
|
+
* @param params.artifactReadToken - Token the scan pod presents to Bucketeer for artifact presigns
|
|
382
|
+
* @param params.directoryHash - Hash of the application directory to scan
|
|
383
|
+
* @param params.meta - Application metadata (ID and organization ID)
|
|
384
|
+
* @param params.scanKey - Secret scan key, later required to terminate the scan
|
|
385
|
+
* @param params.accessToken - JWT access token for authorization
|
|
386
|
+
* @param params.policyGate - Optional review-run attribution. Omit for an unattributed scan
|
|
387
|
+
* @returns Promise resolving to scan information including scan ID
|
|
388
|
+
* @throws BadRequestError if the directory hash, application metadata, application ID, organization ID, scan key, artifact read token, or access token are empty or invalid
|
|
389
|
+
* @throws UnauthorizedError if the access token is invalid or missing the required scopes
|
|
390
|
+
* @throws InternalServerError if the service has an unexpected error while performing this request
|
|
391
|
+
* @throws HttpError if the request fails for an unknown reason
|
|
392
|
+
*/
|
|
393
|
+
async scan({ artifactReadToken, directoryHash, meta, scanKey, accessToken, policyGate }) {
|
|
394
|
+
if (!directoryHash || directoryHash.length === 0) {
|
|
395
|
+
throw (0, errors_1.createClientError)('Directory hash is required');
|
|
396
|
+
}
|
|
397
|
+
if (!meta) {
|
|
398
|
+
throw (0, errors_1.createClientError)('Application metadata is required');
|
|
399
|
+
}
|
|
400
|
+
if (!meta.id || meta.id.length === 0) {
|
|
401
|
+
throw (0, errors_1.createClientError)('Application ID is required');
|
|
402
|
+
}
|
|
403
|
+
if (!meta.organizationId || meta.organizationId.length === 0) {
|
|
404
|
+
throw (0, errors_1.createClientError)('Organization ID is required');
|
|
405
|
+
}
|
|
406
|
+
if (!scanKey || scanKey.length === 0) {
|
|
407
|
+
throw (0, errors_1.createClientError)('Scan key is required');
|
|
408
|
+
}
|
|
409
|
+
if (!accessToken || accessToken.length === 0) {
|
|
410
|
+
throw (0, errors_1.createClientError)('Access token is required');
|
|
411
|
+
}
|
|
412
|
+
// Without it the pod cannot presign its artifacts, so it would start only
|
|
413
|
+
// to fail after paying the cost of scheduling.
|
|
414
|
+
if (!artifactReadToken || artifactReadToken.length === 0) {
|
|
415
|
+
throw (0, errors_1.createClientError)('Artifact read token is required');
|
|
416
|
+
}
|
|
417
|
+
const data = new sabs_types_1.ScanRequest({
|
|
418
|
+
artifactReadToken,
|
|
419
|
+
directoryHash,
|
|
420
|
+
applicationMetadata: new sabs_types_1.ScanApplicationMetadata({ ...meta }),
|
|
421
|
+
scanKey
|
|
422
|
+
});
|
|
423
|
+
if (policyGate) {
|
|
424
|
+
data.policyGate = new sabs_types_1.PolicyGateContext({ ...policyGate });
|
|
425
|
+
}
|
|
426
|
+
return this.executeRequest({
|
|
427
|
+
method: 'POST',
|
|
428
|
+
url: `${this.baseUrl}/v1/scans`,
|
|
429
|
+
data
|
|
430
|
+
}, accessToken, { idempotent: false });
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Get the status of a security scan
|
|
434
|
+
*
|
|
435
|
+
* @param params - Status query parameters
|
|
436
|
+
* @param params.scanId - ID of the scan to check
|
|
437
|
+
* @param params.accessToken - JWT access token for authorization
|
|
438
|
+
* @returns Promise resolving to scan status, including a findings summary once terminal
|
|
439
|
+
* @throws BadRequestError if the scan ID or access token is empty or invalid
|
|
440
|
+
* @throws UnauthorizedError if the access token is invalid or missing the required scopes
|
|
441
|
+
* @throws NotFoundError if the scan ID is invalid
|
|
442
|
+
* @throws HttpError if the request fails for an unknown reason
|
|
443
|
+
*/
|
|
444
|
+
async scanStatus({ scanId, accessToken }) {
|
|
445
|
+
if (!scanId || scanId.length === 0) {
|
|
446
|
+
throw (0, errors_1.createClientError)('Scan ID is required');
|
|
447
|
+
}
|
|
448
|
+
if (!accessToken || accessToken.length === 0) {
|
|
449
|
+
throw (0, errors_1.createClientError)('Access token is required');
|
|
450
|
+
}
|
|
451
|
+
return this.executeRequest({
|
|
452
|
+
method: 'GET',
|
|
453
|
+
url: `${this.baseUrl}/v1/scans/${scanId}`
|
|
454
|
+
}, accessToken);
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* List the scans recorded for an application directory
|
|
458
|
+
*
|
|
459
|
+
* @param params - List query parameters
|
|
460
|
+
* @param params.organizationId - Organization ID
|
|
461
|
+
* @param params.applicationId - Application ID
|
|
462
|
+
* @param params.directoryHash - Hash of the application directory
|
|
463
|
+
* @param params.accessToken - JWT access token for authorization
|
|
464
|
+
* @returns Promise resolving to the scans for that directory
|
|
465
|
+
* @throws BadRequestError if any parameter is empty or invalid
|
|
466
|
+
* @throws UnauthorizedError if the access token is invalid or missing the required scopes
|
|
467
|
+
* @throws HttpError if the request fails for an unknown reason
|
|
468
|
+
*/
|
|
469
|
+
async scanList({ organizationId, applicationId, directoryHash, accessToken }) {
|
|
470
|
+
if (!organizationId || organizationId.length === 0) {
|
|
471
|
+
throw (0, errors_1.createClientError)('Organization ID is required');
|
|
472
|
+
}
|
|
473
|
+
if (!applicationId || applicationId.length === 0) {
|
|
474
|
+
throw (0, errors_1.createClientError)('Application ID is required');
|
|
475
|
+
}
|
|
476
|
+
if (!directoryHash || directoryHash.length === 0) {
|
|
477
|
+
throw (0, errors_1.createClientError)('Directory hash is required');
|
|
478
|
+
}
|
|
479
|
+
if (!accessToken || accessToken.length === 0) {
|
|
480
|
+
throw (0, errors_1.createClientError)('Access token is required');
|
|
481
|
+
}
|
|
482
|
+
return this.executeRequest({
|
|
483
|
+
method: 'GET',
|
|
484
|
+
url: `${this.baseUrl}/v1/scans`,
|
|
485
|
+
params: new sabs_types_1.ScanListRequest({ organizationId, applicationId, directoryHash })
|
|
486
|
+
}, accessToken);
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Terminate a running scan with a final status
|
|
490
|
+
*
|
|
491
|
+
* @param params - Termination parameters
|
|
492
|
+
* @param params.scanId - ID of the scan to terminate
|
|
493
|
+
* @param params.status - Final status of the scan
|
|
494
|
+
* @param params.scanKey - Secret scan key issued when the scan was created
|
|
495
|
+
* @param params.error - Optional error message if the scan failed
|
|
496
|
+
* @param params.summary - Optional tally of what the scan found
|
|
497
|
+
* @param params.stepTimings - Optional step timing metrics in milliseconds
|
|
498
|
+
* @param params.accessToken - JWT access token for authorization
|
|
499
|
+
* @returns Promise resolving to termination confirmation
|
|
500
|
+
* @throws BadRequestError if the scan ID, status, scan key, or access token are empty or invalid
|
|
501
|
+
* @throws UnauthorizedError if the access token is invalid or the scan key does not match
|
|
502
|
+
* @throws NotFoundError if the scan ID is invalid
|
|
503
|
+
* @throws HttpError if the request fails for an unknown reason
|
|
504
|
+
*/
|
|
505
|
+
async scanTerminate({ scanId, status, scanKey, error, summary, stepTimings, accessToken }) {
|
|
506
|
+
if (!scanId || scanId.length === 0) {
|
|
507
|
+
throw (0, errors_1.createClientError)('Scan ID is required');
|
|
508
|
+
}
|
|
509
|
+
if (!status) {
|
|
510
|
+
throw (0, errors_1.createClientError)('Scan status is required');
|
|
511
|
+
}
|
|
512
|
+
if (!scanKey || scanKey.length === 0) {
|
|
513
|
+
throw (0, errors_1.createClientError)('Scan key is required');
|
|
514
|
+
}
|
|
515
|
+
if (!accessToken || accessToken.length === 0) {
|
|
516
|
+
throw (0, errors_1.createClientError)('Access token is required');
|
|
517
|
+
}
|
|
518
|
+
const requestData = new sabs_types_1.ScanTerminateRequest({
|
|
519
|
+
scanId,
|
|
520
|
+
status,
|
|
521
|
+
error,
|
|
522
|
+
scanKey
|
|
523
|
+
});
|
|
524
|
+
// A scan that found nothing is a meaningful result, so counts are converted
|
|
525
|
+
// whenever they are present rather than only when truthy.
|
|
526
|
+
if (summary) {
|
|
527
|
+
requestData.summary = new sabs_types_1.ScanSummary({
|
|
528
|
+
totalFindings: toOptionalBigInt(summary.totalFindings),
|
|
529
|
+
highSeverityFindings: toOptionalBigInt(summary.highSeverityFindings),
|
|
530
|
+
sourceFindings: toOptionalBigInt(summary.sourceFindings),
|
|
531
|
+
builtAssetFindings: toOptionalBigInt(summary.builtAssetFindings),
|
|
532
|
+
scannerVersion: summary.scannerVersion
|
|
533
|
+
});
|
|
534
|
+
}
|
|
535
|
+
if (stepTimings) {
|
|
536
|
+
requestData.stepTimings = new sabs_types_1.ScanStepTimings({
|
|
537
|
+
fetchSourceMs: toOptionalBigInt(stepTimings.fetchSourceMs),
|
|
538
|
+
fetchArtifactsMs: toOptionalBigInt(stepTimings.fetchArtifactsMs),
|
|
539
|
+
sourceScanMs: toOptionalBigInt(stepTimings.sourceScanMs),
|
|
540
|
+
builtAssetScanMs: toOptionalBigInt(stepTimings.builtAssetScanMs),
|
|
541
|
+
reportFindingsMs: toOptionalBigInt(stepTimings.reportFindingsMs)
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
return this.executeRequest({
|
|
545
|
+
method: 'POST',
|
|
546
|
+
url: `${this.baseUrl}/v1/scans/${scanId}/terminate`,
|
|
547
|
+
data: requestData
|
|
548
|
+
}, accessToken);
|
|
549
|
+
}
|
|
370
550
|
async executeRequest(config, accessToken, opts = {}) {
|
|
371
551
|
const idempotent = opts.idempotent ?? true;
|
|
372
552
|
const attemptRequest = async (attempt) => {
|
package/dist/sabs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sabs.js","sourceRoot":"","sources":["../src/sabs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sabs.js","sourceRoot":"","sources":["../src/sabs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.test.d.ts","sourceRoot":"","sources":["../src/scan.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,249 @@
|
|
|
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 sabs_types_1 = require("@superblocksteam/sabs-types");
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const errors_1 = require("./errors");
|
|
9
|
+
const sabs_1 = require("./sabs");
|
|
10
|
+
describe('sabs scan api', () => {
|
|
11
|
+
const anyAccessToken = 'any-access-token';
|
|
12
|
+
const anyArtifactReadToken = 'bucketeer-org-read-token';
|
|
13
|
+
const anyScanKey = 'any-secret-scan-key';
|
|
14
|
+
const anyMeta = new sabs_types_1.ScanApplicationMetadata({
|
|
15
|
+
id: 'anyApplicationId',
|
|
16
|
+
organizationId: 'anyOrganizationId'
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
jest.restoreAllMocks();
|
|
20
|
+
});
|
|
21
|
+
const sentScanRequest = (mockAxios) => mockAxios.mock.calls[0][0].data;
|
|
22
|
+
const sentTerminateRequest = (mockAxios) => mockAxios.mock.calls[0][0].data;
|
|
23
|
+
describe('scan', () => {
|
|
24
|
+
test('posts the directory hash, scan key, and artifact read token to the scans endpoint', async () => {
|
|
25
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
26
|
+
mockAxios.mockResolvedValue({ data: { scanId: 'expectedScanId' } });
|
|
27
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
28
|
+
const result = await sabs.scan({
|
|
29
|
+
artifactReadToken: anyArtifactReadToken,
|
|
30
|
+
directoryHash: 'anyDirectoryHash',
|
|
31
|
+
meta: anyMeta,
|
|
32
|
+
scanKey: anyScanKey,
|
|
33
|
+
accessToken: anyAccessToken
|
|
34
|
+
});
|
|
35
|
+
expect(result).toEqual({ scanId: 'expectedScanId' });
|
|
36
|
+
expect(sentScanRequest(mockAxios).artifactReadToken).toEqual(anyArtifactReadToken);
|
|
37
|
+
expect(mockAxios).toHaveBeenCalledWith(expect.objectContaining({
|
|
38
|
+
method: 'POST',
|
|
39
|
+
url: 'http://localhost:3000/v1/scans',
|
|
40
|
+
headers: { Authorization: `Bearer ${anyAccessToken}` }
|
|
41
|
+
}));
|
|
42
|
+
});
|
|
43
|
+
test('sends the policy gate context so findings can be attributed to a review run', async () => {
|
|
44
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
45
|
+
mockAxios.mockResolvedValue({ data: { scanId: 'expectedScanId' } });
|
|
46
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
47
|
+
await sabs.scan({
|
|
48
|
+
artifactReadToken: anyArtifactReadToken,
|
|
49
|
+
directoryHash: 'anyDirectoryHash',
|
|
50
|
+
meta: anyMeta,
|
|
51
|
+
scanKey: anyScanKey,
|
|
52
|
+
accessToken: anyAccessToken,
|
|
53
|
+
policyGate: {
|
|
54
|
+
reviewPolicyId: 'anyReviewPolicyId',
|
|
55
|
+
reviewPolicyVersionId: 'anyReviewPolicyVersionId',
|
|
56
|
+
token: 'policy-gate-callback-token',
|
|
57
|
+
trigger: 'anyTrigger'
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
expect(sentScanRequest(mockAxios).policyGate).toEqual(expect.objectContaining({
|
|
61
|
+
reviewPolicyId: 'anyReviewPolicyId',
|
|
62
|
+
reviewPolicyVersionId: 'anyReviewPolicyVersionId',
|
|
63
|
+
token: 'policy-gate-callback-token',
|
|
64
|
+
trigger: 'anyTrigger'
|
|
65
|
+
}));
|
|
66
|
+
});
|
|
67
|
+
test('omits the policy gate when the caller did not supply one', async () => {
|
|
68
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
69
|
+
mockAxios.mockResolvedValue({ data: { scanId: 'expectedScanId' } });
|
|
70
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
71
|
+
await sabs.scan({
|
|
72
|
+
artifactReadToken: anyArtifactReadToken,
|
|
73
|
+
directoryHash: 'anyDirectoryHash',
|
|
74
|
+
meta: anyMeta,
|
|
75
|
+
scanKey: anyScanKey,
|
|
76
|
+
accessToken: anyAccessToken
|
|
77
|
+
});
|
|
78
|
+
expect(sentScanRequest(mockAxios).policyGate).toBeUndefined();
|
|
79
|
+
});
|
|
80
|
+
test.each([
|
|
81
|
+
['directory hash', { directoryHash: '' }],
|
|
82
|
+
['scan key', { scanKey: '' }],
|
|
83
|
+
['access token', { accessToken: '' }],
|
|
84
|
+
['artifact read token', { artifactReadToken: '' }]
|
|
85
|
+
])('rejects a missing %s before issuing a request', async (_name, override) => {
|
|
86
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
87
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
88
|
+
await expect(sabs.scan({
|
|
89
|
+
artifactReadToken: anyArtifactReadToken,
|
|
90
|
+
directoryHash: 'anyDirectoryHash',
|
|
91
|
+
meta: anyMeta,
|
|
92
|
+
scanKey: anyScanKey,
|
|
93
|
+
accessToken: anyAccessToken,
|
|
94
|
+
...override
|
|
95
|
+
})).rejects.toThrow(errors_1.BadRequestError);
|
|
96
|
+
expect(mockAxios).not.toHaveBeenCalled();
|
|
97
|
+
});
|
|
98
|
+
test('rejects application metadata that is missing the organization', async () => {
|
|
99
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
100
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
101
|
+
await expect(sabs.scan({
|
|
102
|
+
artifactReadToken: anyArtifactReadToken,
|
|
103
|
+
directoryHash: 'anyDirectoryHash',
|
|
104
|
+
meta: new sabs_types_1.ScanApplicationMetadata({ id: 'anyApplicationId', organizationId: '' }),
|
|
105
|
+
scanKey: anyScanKey,
|
|
106
|
+
accessToken: anyAccessToken
|
|
107
|
+
})).rejects.toThrow(errors_1.BadRequestError);
|
|
108
|
+
expect(mockAxios).not.toHaveBeenCalled();
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
describe('scanStatus', () => {
|
|
112
|
+
test('reads the status of a single scan', async () => {
|
|
113
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
114
|
+
mockAxios.mockResolvedValue({ data: { scanId: 'anyScanId', status: sabs_types_1.ScanStatus.SUCCESS } });
|
|
115
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
116
|
+
const result = await sabs.scanStatus({ scanId: 'anyScanId', accessToken: anyAccessToken });
|
|
117
|
+
expect(result.status).toEqual(sabs_types_1.ScanStatus.SUCCESS);
|
|
118
|
+
expect(mockAxios).toHaveBeenCalledWith(expect.objectContaining({
|
|
119
|
+
method: 'GET',
|
|
120
|
+
url: 'http://localhost:3000/v1/scans/anyScanId'
|
|
121
|
+
}));
|
|
122
|
+
});
|
|
123
|
+
test('rejects a missing scan id before issuing a request', async () => {
|
|
124
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
125
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
126
|
+
await expect(sabs.scanStatus({ scanId: '', accessToken: anyAccessToken })).rejects.toThrow(errors_1.BadRequestError);
|
|
127
|
+
expect(mockAxios).not.toHaveBeenCalled();
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
describe('scanList', () => {
|
|
131
|
+
test('queries scans for an application directory', async () => {
|
|
132
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
133
|
+
mockAxios.mockResolvedValue({ data: { scans: [] } });
|
|
134
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
135
|
+
const result = await sabs.scanList({
|
|
136
|
+
organizationId: 'anyOrganizationId',
|
|
137
|
+
applicationId: 'anyApplicationId',
|
|
138
|
+
directoryHash: 'anyDirectoryHash',
|
|
139
|
+
accessToken: anyAccessToken
|
|
140
|
+
});
|
|
141
|
+
expect(result).toEqual({ scans: [] });
|
|
142
|
+
expect(mockAxios).toHaveBeenCalledWith(expect.objectContaining({
|
|
143
|
+
method: 'GET',
|
|
144
|
+
url: 'http://localhost:3000/v1/scans',
|
|
145
|
+
params: {
|
|
146
|
+
organizationId: 'anyOrganizationId',
|
|
147
|
+
applicationId: 'anyApplicationId',
|
|
148
|
+
directoryHash: 'anyDirectoryHash'
|
|
149
|
+
}
|
|
150
|
+
}));
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
describe('scanTerminate', () => {
|
|
154
|
+
test('reports the terminal status, summary and timings', async () => {
|
|
155
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
156
|
+
mockAxios.mockResolvedValue({ data: { scanId: 'anyScanId', status: sabs_types_1.ScanStatus.SUCCESS } });
|
|
157
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
158
|
+
await sabs.scanTerminate({
|
|
159
|
+
scanId: 'anyScanId',
|
|
160
|
+
status: sabs_types_1.ScanStatus.SUCCESS,
|
|
161
|
+
scanKey: anyScanKey,
|
|
162
|
+
accessToken: anyAccessToken,
|
|
163
|
+
summary: {
|
|
164
|
+
totalFindings: 3,
|
|
165
|
+
highSeverityFindings: 1,
|
|
166
|
+
sourceFindings: 2,
|
|
167
|
+
builtAssetFindings: 1,
|
|
168
|
+
scannerVersion: '1.2.3'
|
|
169
|
+
},
|
|
170
|
+
stepTimings: { sourceScanMs: 250 }
|
|
171
|
+
});
|
|
172
|
+
const sent = sentTerminateRequest(mockAxios);
|
|
173
|
+
expect(mockAxios.mock.calls[0][0].url).toEqual('http://localhost:3000/v1/scans/anyScanId/terminate');
|
|
174
|
+
// Counts cross the wire as protobuf int64, which serializes as bigint.
|
|
175
|
+
expect(sent.summary?.totalFindings).toEqual(BigInt(3));
|
|
176
|
+
expect(sent.summary?.highSeverityFindings).toEqual(BigInt(1));
|
|
177
|
+
expect(sent.summary?.scannerVersion).toEqual('1.2.3');
|
|
178
|
+
expect(sent.stepTimings?.sourceScanMs).toEqual(BigInt(250));
|
|
179
|
+
});
|
|
180
|
+
test('reports a step that took under a millisecond as measured rather than unmeasured', async () => {
|
|
181
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
182
|
+
mockAxios.mockResolvedValue({ data: { scanId: 'anyScanId', status: sabs_types_1.ScanStatus.SUCCESS } });
|
|
183
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
184
|
+
await sabs.scanTerminate({
|
|
185
|
+
scanId: 'anyScanId',
|
|
186
|
+
status: sabs_types_1.ScanStatus.SUCCESS,
|
|
187
|
+
scanKey: anyScanKey,
|
|
188
|
+
accessToken: anyAccessToken,
|
|
189
|
+
stepTimings: { fetchSourceMs: 0, sourceScanMs: 120 }
|
|
190
|
+
});
|
|
191
|
+
// Step timings have explicit presence, so a 0 must arrive as 0 and not as
|
|
192
|
+
// an absent field, which would read as "this step never ran".
|
|
193
|
+
const sent = sentTerminateRequest(mockAxios);
|
|
194
|
+
expect(sent.stepTimings?.fetchSourceMs).toEqual(BigInt(0));
|
|
195
|
+
expect(sent.stepTimings?.builtAssetScanMs).toBeUndefined();
|
|
196
|
+
});
|
|
197
|
+
test('reports a zero finding count as a real result', async () => {
|
|
198
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
199
|
+
mockAxios.mockResolvedValue({ data: { scanId: 'anyScanId', status: sabs_types_1.ScanStatus.SUCCESS } });
|
|
200
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
201
|
+
await sabs.scanTerminate({
|
|
202
|
+
scanId: 'anyScanId',
|
|
203
|
+
status: sabs_types_1.ScanStatus.SUCCESS,
|
|
204
|
+
scanKey: anyScanKey,
|
|
205
|
+
accessToken: anyAccessToken,
|
|
206
|
+
summary: {
|
|
207
|
+
totalFindings: 0,
|
|
208
|
+
highSeverityFindings: 0,
|
|
209
|
+
sourceFindings: 0,
|
|
210
|
+
builtAssetFindings: 0,
|
|
211
|
+
scannerVersion: '1.2.3'
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
const sent = sentTerminateRequest(mockAxios);
|
|
215
|
+
expect(sent.summary?.totalFindings).toEqual(BigInt(0));
|
|
216
|
+
expect(sent.summary?.scannerVersion).toEqual('1.2.3');
|
|
217
|
+
});
|
|
218
|
+
test('reports a failure with its error message', async () => {
|
|
219
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
220
|
+
mockAxios.mockResolvedValue({ data: { scanId: 'anyScanId', status: sabs_types_1.ScanStatus.FAILED } });
|
|
221
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
222
|
+
await sabs.scanTerminate({
|
|
223
|
+
scanId: 'anyScanId',
|
|
224
|
+
status: sabs_types_1.ScanStatus.FAILED,
|
|
225
|
+
scanKey: anyScanKey,
|
|
226
|
+
accessToken: anyAccessToken,
|
|
227
|
+
error: 'semgrep exploded'
|
|
228
|
+
});
|
|
229
|
+
expect(sentTerminateRequest(mockAxios).error).toEqual('semgrep exploded');
|
|
230
|
+
});
|
|
231
|
+
test.each([
|
|
232
|
+
['scan id', { scanId: '' }],
|
|
233
|
+
['scan key', { scanKey: '' }],
|
|
234
|
+
['access token', { accessToken: '' }]
|
|
235
|
+
])('rejects a missing %s before issuing a request', async (_name, override) => {
|
|
236
|
+
const mockAxios = jest.spyOn(axios_1.default, 'request');
|
|
237
|
+
const sabs = new sabs_1.SabsClient('http://localhost:3000');
|
|
238
|
+
await expect(sabs.scanTerminate({
|
|
239
|
+
scanId: 'anyScanId',
|
|
240
|
+
status: sabs_types_1.ScanStatus.SUCCESS,
|
|
241
|
+
scanKey: anyScanKey,
|
|
242
|
+
accessToken: anyAccessToken,
|
|
243
|
+
...override
|
|
244
|
+
})).rejects.toThrow(errors_1.BadRequestError);
|
|
245
|
+
expect(mockAxios).not.toHaveBeenCalled();
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
//# sourceMappingURL=scan.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.test.js","sourceRoot":"","sources":["../src/scan.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/sabs-client",
|
|
3
|
-
"version": "v0.
|
|
3
|
+
"version": "v0.686.0",
|
|
4
4
|
"description": "Superblocks Application Build System Client for TypeScript",
|
|
5
5
|
"license": "Superblocks Community Software License",
|
|
6
6
|
"repository": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@superblocksteam/shared": "0.9586.7",
|
|
19
19
|
"axios": "^1.16.1",
|
|
20
|
-
"@superblocksteam/sabs-types": "v0.
|
|
20
|
+
"@superblocksteam/sabs-types": "v0.686.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@babel/preset-typescript": "^7.26.0",
|