@jupiterone/integration-sdk-cli
Advanced tools
Comparing version 1.1.1 to 2.0.0
@@ -36,2 +36,3 @@ "use strict"; | ||
log.debug(`Configuring client to access "${apiBaseUrl}"`); | ||
const startTime = Date.now(); | ||
const apiClient = integration_sdk_runtime_1.createApiClientWithApiKey({ | ||
@@ -46,3 +47,2 @@ apiBaseUrl, | ||
}); | ||
const invocationConfig = await config_1.loadConfig(); | ||
const synchronizationContext = await integration_sdk_runtime_1.initiateSynchronization({ | ||
@@ -54,2 +54,8 @@ logger, | ||
logger = synchronizationContext.logger; | ||
const eventPublishingQueue = integration_sdk_runtime_1.createEventPublishingQueue(synchronizationContext); | ||
const metrics = []; | ||
logger | ||
.on('event', (event) => eventPublishingQueue.enqueue(event)) | ||
.on('metric', (metric) => metrics.push(metric)); | ||
const invocationConfig = await config_1.loadConfig(); | ||
try { | ||
@@ -59,2 +65,3 @@ const executionResults = await integration_sdk_runtime_1.executeIntegrationInstance(logger, integration_sdk_runtime_1.createIntegrationInstanceForLocalExecution(invocationConfig), invocationConfig, { | ||
}); | ||
await eventPublishingQueue.onIdle(); | ||
log.displayExecutionResults(executionResults); | ||
@@ -69,3 +76,3 @@ await integration_sdk_runtime_1.uploadCollectedData(synchronizationContext); | ||
catch (err) { | ||
await logger.flush(); | ||
await eventPublishingQueue.onIdle(); | ||
if (!logger.isHandledError(err)) { | ||
@@ -80,2 +87,9 @@ logger.error(err, 'Unexpected error occurred during integration run.'); | ||
} | ||
finally { | ||
logger.publishMetric({ | ||
name: 'duration-total', | ||
value: Date.now() - startTime, | ||
unit: 'Milliseconds', | ||
}); | ||
} | ||
}); | ||
@@ -82,0 +96,0 @@ } |
import { ExecuteIntegrationResult } from '@jupiterone/integration-sdk-runtime'; | ||
import { SynchronizationJob } from '@jupiterone/integration-sdk-core'; | ||
import { SynchronizationJob, Metric } from '@jupiterone/integration-sdk-core'; | ||
export declare function debug(msg: string): void; | ||
@@ -8,1 +8,2 @@ export declare function info(msg: string): void; | ||
export declare function displayExecutionResults(results: ExecuteIntegrationResult): void; | ||
export declare function displayMetrics(metrics: Metric[]): void; |
@@ -6,3 +6,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.displayExecutionResults = exports.displaySynchronizationResults = exports.warn = exports.info = exports.debug = void 0; | ||
exports.displayMetrics = exports.displayExecutionResults = exports.displaySynchronizationResults = exports.warn = exports.info = exports.debug = void 0; | ||
const chalk_1 = __importDefault(require("chalk")); | ||
@@ -61,2 +61,12 @@ const integration_sdk_core_1 = require("@jupiterone/integration-sdk-core"); | ||
exports.displayExecutionResults = displayExecutionResults; | ||
function displayMetrics(metrics) { | ||
metrics.forEach((metric) => { | ||
switch (metric.unit) { | ||
case 'Milliseconds': | ||
info(`Metric "${metric.name}" = ${metric.value}ms`); | ||
break; | ||
} | ||
}); | ||
} | ||
exports.displayMetrics = displayMetrics; | ||
function logStepStatus(stepResult) { | ||
@@ -63,0 +73,0 @@ const stepPrefix = chalk_1.default.white(`Step "${chalk_1.default.cyan(stepResult.id)}" completed with status:`); |
{ | ||
"name": "@jupiterone/integration-sdk-cli", | ||
"version": "1.1.1", | ||
"version": "2.0.0", | ||
"description": "The SDK for developing JupiterOne integrations", | ||
@@ -25,3 +25,3 @@ "main": "dist/src/index.js", | ||
"dependencies": { | ||
"@jupiterone/integration-sdk-runtime": "^1.1.1", | ||
"@jupiterone/integration-sdk-runtime": "^2.0.0", | ||
"commander": "^5.0.0", | ||
@@ -33,3 +33,3 @@ "globby": "^11.0.0", | ||
"devDependencies": { | ||
"@jupiterone/integration-sdk-private-test-utils": "^1.1.1", | ||
"@jupiterone/integration-sdk-private-test-utils": "^2.0.0", | ||
"@pollyjs/adapter-node-http": "^4.0.4", | ||
@@ -45,3 +45,3 @@ "@pollyjs/core": "^4.0.4", | ||
}, | ||
"gitHead": "c7bd85ca3ba765888840810ec4e487914ed80da9" | ||
"gitHead": "e23d77f21929829f224d4845e17b796d56df9db0" | ||
} |
@@ -94,5 +94,2 @@ const mockCreateIntegrationLogger = jest.fn(); | ||
jest.spyOn(logger, 'child').mockReturnValue(logger); | ||
jest | ||
.spyOn(logger, 'registerSynchronizationJobContext') | ||
.mockReturnValue(logger); | ||
@@ -99,0 +96,0 @@ mocked(mockCreateIntegrationLogger).mockReturnValue(logger); |
@@ -15,5 +15,7 @@ import { createCommand } from 'commander'; | ||
createIntegrationInstanceForLocalExecution, | ||
createEventPublishingQueue, | ||
} from '@jupiterone/integration-sdk-runtime'; | ||
import { loadConfig } from '../config'; | ||
import { Metric } from '@jupiterone/integration-sdk-core'; | ||
@@ -33,2 +35,4 @@ export function run() { | ||
const startTime = Date.now(); | ||
const apiClient = createApiClientWithApiKey({ | ||
@@ -46,4 +50,2 @@ apiBaseUrl, | ||
const invocationConfig = await loadConfig(); | ||
const synchronizationContext = await initiateSynchronization({ | ||
@@ -57,2 +59,13 @@ logger, | ||
const eventPublishingQueue = createEventPublishingQueue( | ||
synchronizationContext, | ||
); | ||
const metrics: Metric[] = []; | ||
logger | ||
.on('event', (event) => eventPublishingQueue.enqueue(event)) | ||
.on('metric', (metric) => metrics.push(metric)); | ||
const invocationConfig = await loadConfig(); | ||
try { | ||
@@ -68,2 +81,4 @@ const executionResults = await executeIntegrationInstance( | ||
await eventPublishingQueue.onIdle(); | ||
log.displayExecutionResults(executionResults); | ||
@@ -80,4 +95,3 @@ | ||
} catch (err) { | ||
await logger.flush(); | ||
await eventPublishingQueue.onIdle(); | ||
if (!logger.isHandledError(err)) { | ||
@@ -96,4 +110,10 @@ logger.error( | ||
log.displaySynchronizationResults(abortResult); | ||
} finally { | ||
logger.publishMetric({ | ||
name: 'duration-total', | ||
value: Date.now() - startTime, | ||
unit: 'Milliseconds', | ||
}); | ||
} | ||
}); | ||
} |
@@ -8,2 +8,3 @@ import chalk from 'chalk'; | ||
SynchronizationJob, | ||
Metric, | ||
} from '@jupiterone/integration-sdk-core'; | ||
@@ -78,2 +79,12 @@ | ||
export function displayMetrics(metrics: Metric[]) { | ||
metrics.forEach((metric) => { | ||
switch (metric.unit) { | ||
case 'Milliseconds': | ||
info(`Metric "${metric.name}" = ${metric.value}ms`); | ||
break; | ||
} | ||
}); | ||
} | ||
function logStepStatus(stepResult: IntegrationStepResult) { | ||
@@ -80,0 +91,0 @@ const stepPrefix = chalk.white( |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
398178
1986
+ Added@jupiterone/data-model@0.8.1(transitive)
+ Added@jupiterone/integration-sdk-core@2.11.1(transitive)
+ Added@jupiterone/integration-sdk-runtime@2.11.1(transitive)
+ Addedgar@1.0.4(transitive)
+ Addedget-folder-size@2.0.1(transitive)
+ Addedtiny-each-async@2.0.3(transitive)
- Removed@jupiterone/data-model@0.6.4(transitive)
- Removed@jupiterone/integration-sdk-core@1.1.1(transitive)
- Removed@jupiterone/integration-sdk-runtime@1.1.1(transitive)