@jupiterone/integration-sdk-cli 12.7.1 → 12.8.1
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/src/commands/generate-integration-graph-schema.d.ts +2 -1
- package/dist/src/commands/generate-integration-graph-schema.js +1 -0
- package/dist/src/commands/generate-integration-graph-schema.js.map +1 -1
- package/dist/src/commands/generate.js +1 -1
- package/dist/src/commands/generate.js.map +1 -1
- package/dist/src/generator/actions.d.ts +4 -1
- package/dist/src/generator/actions.js +15 -1
- package/dist/src/generator/actions.js.map +1 -1
- package/dist/src/generator/newIntegration.js +17 -3
- package/dist/src/generator/newIntegration.js.map +1 -1
- package/dist/src/generator/template/.github/workflows/build.yml.hbs +18 -0
- package/dist/src/generator/template/.github/workflows/questions.yml.hbs +12 -1
- package/dist/src/generator/template/Dockerfile.hbs +16 -0
- package/dist/src/generator/template/README.md.hbs +19 -5
- package/dist/src/generator/template/package.json.hbs +8 -2
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +9 -8
- package/src/commands/generate-integration-graph-schema.test.ts +56 -0
- package/src/commands/generate-integration-graph-schema.ts +3 -0
- package/src/commands/generate.ts +1 -1
- package/src/generator/actions.ts +16 -1
- package/src/generator/newIntegration.ts +28 -4
- package/src/generator/template/.github/workflows/build.yml.hbs +18 -0
- package/src/generator/template/.github/workflows/questions.yml.hbs +12 -1
- package/src/generator/template/Dockerfile.hbs +16 -0
- package/src/generator/template/README.md.hbs +19 -5
- package/src/generator/template/package.json.hbs +8 -2
- package/src/neo4j/README.md +2 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { IntegrationInstanceConfig, IntegrationStepExecutionContext, Step } from '@jupiterone/integration-sdk-core';
|
|
1
|
+
import { GraphObjectSchema, IntegrationInstanceConfig, IntegrationStepExecutionContext, Step } from '@jupiterone/integration-sdk-core';
|
|
2
2
|
export declare function generateIntegrationGraphSchemaCommand(): import("commander").Command;
|
|
3
3
|
type IntegrationGraphSchemaEntityMetadata = {
|
|
4
4
|
resourceName: string;
|
|
5
5
|
_class: string | string[];
|
|
6
6
|
_type: string;
|
|
7
|
+
schema?: GraphObjectSchema;
|
|
7
8
|
};
|
|
8
9
|
type IntegrationGraphSchemaRelationshipMetadata = {
|
|
9
10
|
_class: string;
|
|
@@ -129,6 +129,7 @@ function toIntegrationGraphSchemaEntityMetadata(stepEntityMetadata) {
|
|
|
129
129
|
resourceName: stepEntityMetadata.resourceName,
|
|
130
130
|
_class: stepEntityMetadata._class,
|
|
131
131
|
_type: stepEntityMetadata._type,
|
|
132
|
+
schema: stepEntityMetadata.schema,
|
|
132
133
|
};
|
|
133
134
|
}
|
|
134
135
|
function toIntegrationGraphSchemaRelationshipMetadata(relationshipMetadata) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-integration-graph-schema.js","sourceRoot":"","sources":["../../../src/commands/generate-integration-graph-schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"generate-integration-graph-schema.js","sourceRoot":"","sources":["../../../src/commands/generate-integration-graph-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ const dynamicImport = new Function('specifier', 'return import(specifier)');
|
|
|
10
10
|
function generate() {
|
|
11
11
|
return (0, commander_1.createCommand)('generate')
|
|
12
12
|
.description('generate integrations in whole and in part')
|
|
13
|
-
.action(async (
|
|
13
|
+
.action(async () => {
|
|
14
14
|
const Plop = await dynamicImport('plop');
|
|
15
15
|
const configPath = path_1.default.resolve(path_1.default.join(__dirname, '../generator/newIntegration.js'));
|
|
16
16
|
Plop.Plop.prepare({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/generate.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,yCAA0C;AAC1C,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;AAE5E,SAAgB,QAAQ;IACtB,OAAO,IAAA,yBAAa,EAAC,UAAU,CAAC;SAC7B,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/generate.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,yCAA0C;AAC1C,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;AAE5E,SAAgB,QAAQ;IACtB,OAAO,IAAA,yBAAa,EAAC,UAAU,CAAC;SAC7B,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAC7B,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,CACvD,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,CACf;YACE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,UAAU;SACX,EACD,CAAC,GAAG,EAAE,EAAE,CACN,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG;gBACd,GAAG,GAAG;gBACN,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;aACpB,CAAC;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAvBD,4BAuBC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
declare function yarnInstall(_answers: any, config: any, _plop: any): Promise<string>;
|
|
2
2
|
declare function yarnFormat(_answers: any, config: any, _plop: any): Promise<string>;
|
|
3
3
|
declare function yarnLint(_answers: any, config: any, _plop: any): Promise<string>;
|
|
4
|
-
|
|
4
|
+
declare function npmInstall(_answers: any, config: any, _plop: any): Promise<string>;
|
|
5
|
+
declare function npmFormat(_answers: any, config: any, _plop: any): Promise<string>;
|
|
6
|
+
declare function npmLint(_answers: any, config: any, _plop: any): Promise<string>;
|
|
7
|
+
export { yarnInstall, yarnFormat, yarnLint, npmInstall, npmFormat, npmLint };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.yarnLint = exports.yarnFormat = exports.yarnInstall = void 0;
|
|
3
|
+
exports.npmLint = exports.npmFormat = exports.npmInstall = exports.yarnLint = exports.yarnFormat = exports.yarnInstall = void 0;
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
5
|
async function spawnCommand(config, command, args) {
|
|
6
6
|
const spawnOptions = config.verbose
|
|
@@ -23,6 +23,7 @@ async function spawnCommand(config, command, args) {
|
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
+
// Yarn commands
|
|
26
27
|
async function yarnInstall(_answers, config, _plop) {
|
|
27
28
|
return spawnCommand(config, 'yarn', ['install']);
|
|
28
29
|
}
|
|
@@ -35,4 +36,17 @@ async function yarnLint(_answers, config, _plop) {
|
|
|
35
36
|
return spawnCommand(config, 'yarn', ['lint']);
|
|
36
37
|
}
|
|
37
38
|
exports.yarnLint = yarnLint;
|
|
39
|
+
// NPM commands
|
|
40
|
+
async function npmInstall(_answers, config, _plop) {
|
|
41
|
+
return spawnCommand(config, 'npm', ['install']);
|
|
42
|
+
}
|
|
43
|
+
exports.npmInstall = npmInstall;
|
|
44
|
+
async function npmFormat(_answers, config, _plop) {
|
|
45
|
+
return spawnCommand(config, 'npm', [`run format`]);
|
|
46
|
+
}
|
|
47
|
+
exports.npmFormat = npmFormat;
|
|
48
|
+
async function npmLint(_answers, config, _plop) {
|
|
49
|
+
return spawnCommand(config, 'npm', ['run lint']);
|
|
50
|
+
}
|
|
51
|
+
exports.npmLint = npmLint;
|
|
38
52
|
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/generator/actions.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AAEtC,KAAK,UAAU,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO;QACjC,CAAC,CAAC;YACE,GAAG,EAAE,MAAM,CAAC,IAAI;YAChB,KAAK,EAAE,IAAI;SACZ;QACH,CAAC,CAAC;YACE,GAAG,EAAE,MAAM,CAAC,IAAI;SACjB,CAAC;IAEN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;aACpB;iBAAM;gBACL,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK;IAChD,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,CAAC;
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/generator/actions.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AAEtC,KAAK,UAAU,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO;QACjC,CAAC,CAAC;YACE,GAAG,EAAE,MAAM,CAAC,IAAI;YAChB,KAAK,EAAE,IAAI;SACZ;QACH,CAAC,CAAC;YACE,GAAG,EAAE,MAAM,CAAC,IAAI;SACjB,CAAC;IAEN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;aACpB;iBAAM;gBACL,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK;IAChD,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,CAAC;AAwBQ,kCAAW;AAtBpB,KAAK,UAAU,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK;IAC/C,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,CAAC;AAoBqB,gCAAU;AAlBhC,KAAK,UAAU,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK;IAC7C,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC;AAgBiC,4BAAQ;AAd1C,eAAe;AAEf,KAAK,UAAU,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK;IAC/C,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,CAAC;AAU2C,gCAAU;AARtD,KAAK,UAAU,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK;IAC9C,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACrD,CAAC;AAMuD,8BAAS;AAJjE,KAAK,UAAU,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK;IAC5C,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnD,CAAC;AAEkE,0BAAO"}
|
|
@@ -18,6 +18,11 @@ function newIntegration(plop) {
|
|
|
18
18
|
return (0, integration_sdk_core_1.generateRelationshipType)(this._class, this.from, this.to);
|
|
19
19
|
});
|
|
20
20
|
plop.setHelper('generateRelationshipName', helpers_1.generateRelationshipName);
|
|
21
|
+
// NPM
|
|
22
|
+
plop.setActionType('npmFormat', actions_1.npmFormat);
|
|
23
|
+
plop.setActionType('npmInstall', actions_1.npmInstall);
|
|
24
|
+
plop.setActionType('npmLint', actions_1.npmLint);
|
|
25
|
+
// Yarn
|
|
21
26
|
plop.setActionType('yarnFormat', actions_1.yarnFormat);
|
|
22
27
|
plop.setActionType('yarnInstall', actions_1.yarnInstall);
|
|
23
28
|
plop.setActionType('yarnLint', actions_1.yarnLint);
|
|
@@ -60,6 +65,13 @@ function newIntegration(plop) {
|
|
|
60
65
|
return true;
|
|
61
66
|
},
|
|
62
67
|
});
|
|
68
|
+
const { packageManager } = await inquirer.prompt({
|
|
69
|
+
type: 'list',
|
|
70
|
+
name: 'packageManager',
|
|
71
|
+
message: 'Which package manager do you want to use?',
|
|
72
|
+
choices: ['npm', 'yarn'],
|
|
73
|
+
default: 'npm',
|
|
74
|
+
});
|
|
63
75
|
const configFields = await (0, configFieldsFlow_1.configFieldsFlow)(inquirer);
|
|
64
76
|
const entities = await (0, entitiesFlow_1.entitiesFlow)(inquirer, vendorName);
|
|
65
77
|
let relationships = [];
|
|
@@ -76,12 +88,14 @@ function newIntegration(plop) {
|
|
|
76
88
|
entities,
|
|
77
89
|
relationships,
|
|
78
90
|
steps,
|
|
91
|
+
packageManager,
|
|
79
92
|
};
|
|
80
93
|
},
|
|
81
94
|
actions: function (data) {
|
|
82
95
|
if (!data) {
|
|
83
96
|
return [];
|
|
84
97
|
}
|
|
98
|
+
const { packageManager } = data;
|
|
85
99
|
// @jupiterone/graph-foo -> graph-foo
|
|
86
100
|
// graph-foo -> graph-foo
|
|
87
101
|
const directoryName = path_1.default.join(process.cwd(), path_1.default.basename(data.packageName));
|
|
@@ -105,17 +119,17 @@ function newIntegration(plop) {
|
|
|
105
119
|
});
|
|
106
120
|
}
|
|
107
121
|
actions.push({
|
|
108
|
-
type: 'yarnInstall',
|
|
122
|
+
type: packageManager === 'yarn' ? 'yarnInstall' : 'npmInstall',
|
|
109
123
|
path: directoryName,
|
|
110
124
|
verbose: true,
|
|
111
125
|
});
|
|
112
126
|
actions.push({
|
|
113
|
-
type: 'yarnFormat',
|
|
127
|
+
type: packageManager === 'yarn' ? 'yarnFormat' : 'npmFormat',
|
|
114
128
|
path: directoryName,
|
|
115
129
|
verbose: true,
|
|
116
130
|
});
|
|
117
131
|
actions.push({
|
|
118
|
-
type: 'yarnLint',
|
|
132
|
+
type: packageManager === 'yarn' ? 'yarnLint' : 'npmLint',
|
|
119
133
|
path: directoryName,
|
|
120
134
|
verbose: true,
|
|
121
135
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newIntegration.js","sourceRoot":"","sources":["../../../src/generator/newIntegration.ts"],"names":[],"mappings":";;;;;AAAA,iDAA8C;AAC9C,2DAAwD;AACxD,yDAAsD;AACtD,2CAAwC;AACxC,uCAAqD;AACrD,2EAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"newIntegration.js","sourceRoot":"","sources":["../../../src/generator/newIntegration.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ jobs:
|
|
|
12
12
|
- name: Check out code repository source code
|
|
13
13
|
uses: actions/checkout@v3
|
|
14
14
|
|
|
15
|
+
{{#if_eq packageManager 'yarn'}}
|
|
15
16
|
- id: setup-node
|
|
16
17
|
name: Setup Node
|
|
17
18
|
uses: actions/setup-node@v3
|
|
@@ -27,3 +28,20 @@ jobs:
|
|
|
27
28
|
|
|
28
29
|
- name: Run build
|
|
29
30
|
run: yarn build
|
|
31
|
+
{{else}}
|
|
32
|
+
- id: setup-node
|
|
33
|
+
name: Setup Node
|
|
34
|
+
uses: actions/setup-node@v3
|
|
35
|
+
with:
|
|
36
|
+
node-version: 18.x
|
|
37
|
+
cache: npm
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: npm run --frozen-lockfile
|
|
41
|
+
|
|
42
|
+
- name: Run tests
|
|
43
|
+
run: npm run test:ci
|
|
44
|
+
|
|
45
|
+
- name: Run build
|
|
46
|
+
run: npm run build
|
|
47
|
+
{{/if_eq}}
|
|
@@ -24,9 +24,13 @@ jobs:
|
|
|
24
24
|
with:
|
|
25
25
|
node-version: 18.x
|
|
26
26
|
|
|
27
|
+
{{#if_eq packageManager 'yarn'}}
|
|
27
28
|
- name: Install dependencies for `main` branch
|
|
28
29
|
run: yarn install --cwd source --frozen-lockfile
|
|
29
|
-
|
|
30
|
+
{{else}}
|
|
31
|
+
- name: Install dependencies for `main` branch
|
|
32
|
+
run: npm install --cwd source --frozen-lockfile
|
|
33
|
+
{{/if_eq}}
|
|
30
34
|
- name: Validate questions on target branch
|
|
31
35
|
env:
|
|
32
36
|
MANAGED_QUESTIONS_JUPITERONE_ACCOUNT_ID:
|
|
@@ -34,7 +38,14 @@ jobs:
|
|
|
34
38
|
MANAGED_QUESTIONS_JUPITERONE_API_KEY:
|
|
35
39
|
$\{{ secrets.MANAGED_QUESTIONS_JUPITERONE_API_KEY }}
|
|
36
40
|
run:
|
|
41
|
+
{{#if_eq packageManager 'yarn'}}
|
|
37
42
|
yarn --cwd source j1-integration validate-question-file -a
|
|
38
43
|
--frozen-lockfile $MANAGED_QUESTIONS_JUPITERONE_ACCOUNT_ID -k
|
|
39
44
|
$MANAGED_QUESTIONS_JUPITERONE_API_KEY -p
|
|
40
45
|
../target/jupiterone/questions/questions.yaml
|
|
46
|
+
{{else}}
|
|
47
|
+
npm run --cwd source j1-integration validate-question-file -a
|
|
48
|
+
--frozen-lockfile $MANAGED_QUESTIONS_JUPITERONE_ACCOUNT_ID -k
|
|
49
|
+
$MANAGED_QUESTIONS_JUPITERONE_API_KEY -p
|
|
50
|
+
../target/jupiterone/questions/questions.yaml
|
|
51
|
+
{{/if_eq}}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
{{#if_eq packageManager 'yarn'}}
|
|
1
2
|
FROM node:18-alpine
|
|
2
3
|
|
|
3
4
|
ENV JUPITERONE_INTEGRATION_DIR=/opt/jupiterone/integration
|
|
@@ -9,3 +10,18 @@ WORKDIR ${JUPITERONE_INTEGRATION_DIR}
|
|
|
9
10
|
RUN yarn install
|
|
10
11
|
|
|
11
12
|
ENTRYPOINT /usr/local/bin/yarn --silent j1-integration run -i ${INTEGRATION_INSTANCE_ID} --disable-schema-validation --api-base-url ${JUPITERONE_API_BASE_URL:-https://api.us.jupiterone.io} --account ${JUPITERONE_ACCOUNT} --api-key ${JUPITERONE_API_KEY}
|
|
13
|
+
|
|
14
|
+
{{else}}
|
|
15
|
+
|
|
16
|
+
FROM node:18-alpine
|
|
17
|
+
|
|
18
|
+
ENV JUPITERONE_INTEGRATION_DIR=/opt/jupiterone/integration
|
|
19
|
+
|
|
20
|
+
COPY package.json package-lock.json tsconfig.json LICENSE ${JUPITERONE_INTEGRATION_DIR}/
|
|
21
|
+
COPY src/ ${JUPITERONE_INTEGRATION_DIR}/src
|
|
22
|
+
|
|
23
|
+
WORKDIR ${JUPITERONE_INTEGRATION_DIR}
|
|
24
|
+
RUN npm install
|
|
25
|
+
|
|
26
|
+
ENTRYPOINT /usr/local/bin/npm --silent run j1-integration -- -i ${INTEGRATION_INSTANCE_ID} --disable-schema-validation --api-base-url ${JUPITERONE_API_BASE_URL:-https://api.us.jupiterone.io} --account ${JUPITERONE_ACCOUNT} --api-key ${JUPITERONE_API_KEY}
|
|
27
|
+
{{/if_eq}}
|
|
@@ -34,9 +34,15 @@ with JupiterOne in the [integration documentation](docs/jupiterone.md).
|
|
|
34
34
|
|
|
35
35
|
#### Running directly
|
|
36
36
|
|
|
37
|
+
{{#if_eq packageManager 'yarn'}}
|
|
37
38
|
1. `yarn start` to collect data
|
|
38
39
|
2. `yarn graph` to show a visualization of the collected data
|
|
39
40
|
3. `yarn j1-integration -h` for additional commands
|
|
41
|
+
{{else}}
|
|
42
|
+
1. `npm run start` to collect data
|
|
43
|
+
2. `npm run graph` to show a visualization of the collected data
|
|
44
|
+
3. `npm run j1-integration -h` for additional commands
|
|
45
|
+
{{/if_eq}}
|
|
40
46
|
|
|
41
47
|
#### Running with Docker
|
|
42
48
|
|
|
@@ -65,11 +71,19 @@ developing this integration.
|
|
|
65
71
|
|
|
66
72
|
## Testing the integration
|
|
67
73
|
|
|
74
|
+
{{#if_eq packageManager 'yarn'}}
|
|
68
75
|
Ideally, all major calls to the API and converter functions would be tested. You
|
|
69
|
-
can run the tests with `
|
|
70
|
-
the CI/CD environment with `
|
|
71
|
-
`
|
|
72
|
-
with your credentials using `
|
|
76
|
+
can run the tests with `npm run test`, and you can run the tests as they execute in
|
|
77
|
+
the CI/CD environment with `npm run test:ci` (adds linting and type-checking to
|
|
78
|
+
`npm run test`). If you have a valid runtime configuration, you can run the tests
|
|
79
|
+
with your credentials using `npm run test:env`.
|
|
80
|
+
{{else}}
|
|
81
|
+
Ideally, all major calls to the API and converter functions would be tested. You
|
|
82
|
+
can run the tests with `npm run test`, and you can run the tests as they execute in
|
|
83
|
+
the CI/CD environment with `npm run test:ci` (adds linting and type-checking to
|
|
84
|
+
`npm run test`). If you have a valid runtime configuration, you can run the tests
|
|
85
|
+
with your credentials using `npm run test:env`.
|
|
86
|
+
{{/if_eq}}
|
|
73
87
|
|
|
74
88
|
For more details on setting up tests, and specifically on using recordings to
|
|
75
89
|
simulate API responses, see `test/README.md`.
|
|
@@ -111,4 +125,4 @@ different naming conventions).
|
|
|
111
125
|
|
|
112
126
|
We are not currently using the functionality for auto to update the CHANGELOG.
|
|
113
127
|
As such, please remember to update CHANGELOG.md with the appropriate version,
|
|
114
|
-
date, and changes.
|
|
128
|
+
date, and changes.
|
|
@@ -28,11 +28,17 @@
|
|
|
28
28
|
"format:check": "prettier --check \"**/*.{ts,js,json,css,md,yml}\"",
|
|
29
29
|
"type-check": "tsc",
|
|
30
30
|
"test": "jest",
|
|
31
|
+
{{#if_eq packageManager 'yarn'}}
|
|
31
32
|
"test:env": "LOAD_ENV=1 yarn test",
|
|
32
33
|
"test:ci": "yarn format:check && yarn lint && yarn type-check && yarn test",
|
|
34
|
+
"prepush": "yarn format:check && yarn lint && yarn type-check && jest --changedSince main",
|
|
35
|
+
{{else}}
|
|
36
|
+
"test:env": "LOAD_ENV=1 npm run test",
|
|
37
|
+
"test:ci": "npm run format:check && npm run lint && npm run type-check && npm run test",
|
|
38
|
+
"prepush": "npm run format:check && npm run lint && npm run type-check && jest --changedSince main",
|
|
39
|
+
{{/if_eq}}
|
|
33
40
|
"build": "tsc -p tsconfig.dist.json --declaration && cp README.md dist/README.md && cp -r jupiterone/ dist/jupiterone/",
|
|
34
41
|
"build:docker": "tsc --declaration false --emitDeclarationOnly false -p tsconfig.dist.json",
|
|
35
|
-
"prepush": "yarn format:check && yarn lint && yarn type-check && jest --changedSince main",
|
|
36
42
|
"postversion": "cp package.json ./dist/package.json"
|
|
37
43
|
},
|
|
38
44
|
"dependencies": {
|
|
@@ -46,4 +52,4 @@
|
|
|
46
52
|
"@jupiterone/integration-sdk-dev-tools": "^12.0.0",
|
|
47
53
|
"@jupiterone/integration-sdk-testing": "^12.0.0"
|
|
48
54
|
}
|
|
49
|
-
}
|
|
55
|
+
}
|