@jupiterone/integration-sdk-cli 12.7.1 → 12.8.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/dist/src/bocchi/actions/steps.d.ts +4 -0
- package/dist/src/bocchi/actions/steps.js +20 -0
- package/dist/src/bocchi/actions/steps.js.map +1 -0
- package/dist/src/bocchi/bocchi.d.ts +1 -0
- package/dist/src/bocchi/bocchi.js +260 -0
- package/dist/src/bocchi/bocchi.js.map +1 -0
- package/dist/src/bocchi/templates/partials/directRelationships.hbs +26 -0
- package/dist/src/bocchi/templates/partials/mappedRelationships.hbs +36 -0
- package/dist/src/bocchi/templates/partials/stepMap.hbs +47 -0
- package/dist/src/bocchi/templates/steps/child-singleton.ts.hbs +47 -0
- package/dist/src/bocchi/templates/steps/fetch-child-entities.ts.hbs +58 -0
- package/dist/src/bocchi/templates/steps/fetch-entities.ts.hbs +47 -0
- package/dist/src/bocchi/templates/steps/index.test.ts.hbs +41 -0
- package/dist/src/bocchi/templates/steps/singleton.ts.hbs +45 -0
- package/dist/src/bocchi/templates/steps/spec.ts.hbs +73 -0
- package/dist/src/bocchi/templates/top-level/.env.example.hbs +3 -0
- package/dist/src/bocchi/templates/top-level/.eslintignore.hbs +1 -0
- package/dist/src/bocchi/templates/top-level/.eslintrc.hbs +6 -0
- package/dist/src/bocchi/templates/top-level/.github/workflows/build.yml.hbs +29 -0
- package/dist/src/bocchi/templates/top-level/.github/workflows/questions.yml.hbs +40 -0
- package/dist/src/bocchi/templates/top-level/.gitignore.hbs +8 -0
- package/dist/src/bocchi/templates/top-level/.node-version.hbs +1 -0
- package/dist/src/bocchi/templates/top-level/.prettierignore.hbs +6 -0
- package/dist/src/bocchi/templates/top-level/CHANGELOG.md.hbs +9 -0
- package/dist/src/bocchi/templates/top-level/CODEOWNERS.hbs +3 -0
- package/dist/src/bocchi/templates/top-level/Dockerfile.hbs +25 -0
- package/dist/src/bocchi/templates/top-level/LICENSE.hbs +373 -0
- package/dist/src/bocchi/templates/top-level/README.md.hbs +114 -0
- package/dist/src/bocchi/templates/top-level/docs/development.md.hbs +28 -0
- package/dist/src/bocchi/templates/top-level/docs/jupiterone.md.hbs +1 -0
- package/dist/src/bocchi/templates/top-level/docs/spec/index.ts.hbs +14 -0
- package/dist/src/bocchi/templates/top-level/husky.config.js.hbs +1 -0
- package/dist/src/bocchi/templates/top-level/jest.config.js.hbs +1 -0
- package/dist/src/bocchi/templates/top-level/jupiterone/questions/questions.yaml.hbs +16 -0
- package/dist/src/bocchi/templates/top-level/lint-staged.config.js.hbs +1 -0
- package/dist/src/bocchi/templates/top-level/package.json.hbs +49 -0
- package/dist/src/bocchi/templates/top-level/prettier.config.js.hbs +1 -0
- package/dist/src/bocchi/templates/top-level/src/client.ts.hbs +116 -0
- package/dist/src/bocchi/templates/top-level/src/config.ts.hbs +41 -0
- package/dist/src/bocchi/templates/top-level/src/index.test.ts.hbs +6 -0
- package/dist/src/bocchi/templates/top-level/src/index.ts.hbs +14 -0
- package/dist/src/bocchi/templates/top-level/src/steps/constants.ts.hbs +60 -0
- package/dist/src/bocchi/templates/top-level/src/steps/converters.ts.hbs +37 -0
- package/dist/src/bocchi/templates/top-level/src/steps/index.ts.hbs +13 -0
- package/dist/src/bocchi/templates/top-level/src/steps/types.ts.hbs +6 -0
- package/dist/src/bocchi/templates/top-level/test/README.md.hbs +5 -0
- package/dist/src/bocchi/templates/top-level/test/config.ts.hbs +30 -0
- package/dist/src/bocchi/templates/top-level/test/recording.ts.hbs +74 -0
- package/dist/src/bocchi/templates/top-level/tsconfig.dist.json.hbs +13 -0
- package/dist/src/bocchi/templates/top-level/tsconfig.json.hbs +7 -0
- package/dist/src/bocchi/utils/types.d.ts +98 -0
- package/dist/src/bocchi/utils/types.js +10 -0
- package/dist/src/bocchi/utils/types.js.map +1 -0
- package/dist/src/commands/bocchi.d.ts +1 -0
- package/dist/src/commands/bocchi.js +29 -0
- package/dist/src/commands/bocchi.js.map +1 -0
- package/dist/src/commands/collect.js.map +1 -1
- package/dist/src/commands/diff.js.map +1 -1
- package/dist/src/commands/document.js.map +1 -1
- package/dist/src/commands/generate-ingestion-sources-config.js.map +1 -1
- 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/commands/index.d.ts +1 -0
- package/dist/src/commands/index.js +1 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/run.js.map +1 -1
- package/dist/src/commands/validate-question-file.js.map +1 -1
- package/dist/src/commands/visualize-types.js.map +1 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/generator/actions.d.ts +5 -1
- package/dist/src/generator/actions.js +19 -1
- package/dist/src/generator/actions.js.map +1 -1
- package/dist/src/generator/entitiesFlow.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/relationshipsFlow.js.map +1 -1
- package/dist/src/generator/stepsFlow.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/src/generator/util.js.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/log.js.map +1 -1
- package/dist/src/neo4j/neo4jGraphStore.js.map +1 -1
- package/dist/src/neo4j/neo4jUtilities.js.map +1 -1
- package/dist/src/neo4j/uploadToNeo4j.js.map +1 -1
- package/dist/src/neo4j/wipeNeo4j.js.map +1 -1
- package/dist/src/questions/managedQuestionFileValidator.js.map +1 -1
- package/dist/src/services/queryLanguage.js.map +1 -1
- package/dist/src/troubleshoot/utils.js.map +1 -1
- package/dist/src/utils/generateVisHTML.js.map +1 -1
- package/dist/src/utils/getSortedJupiterOneTypes.js.map +1 -1
- package/dist/src/visualization/createMappedRelationshipNodesAndEdges.js.map +1 -1
- package/dist/src/visualization/generateDependencyVisualization.js.map +1 -1
- package/dist/src/visualization/generateVisualization.js.map +1 -1
- package/dist/src/visualization/retrieveIntegrationData.js.map +1 -1
- package/dist/src/visualization/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +11 -9
- package/src/bocchi/README.md +95 -0
- package/src/bocchi/actions/steps.ts +17 -0
- package/src/bocchi/bocchi.ts +311 -0
- package/src/bocchi/docs/template/README.md +140 -0
- package/src/bocchi/docs/template/authentication.md +100 -0
- package/src/bocchi/docs/template/examples/example.json +127 -0
- package/src/bocchi/docs/template/examples/signalSciences.json +128 -0
- package/src/bocchi/docs/template/steps.md +656 -0
- package/src/bocchi/templates/partials/directRelationships.hbs +26 -0
- package/src/bocchi/templates/partials/mappedRelationships.hbs +36 -0
- package/src/bocchi/templates/partials/stepMap.hbs +47 -0
- package/src/bocchi/templates/steps/child-singleton.ts.hbs +47 -0
- package/src/bocchi/templates/steps/fetch-child-entities.ts.hbs +58 -0
- package/src/bocchi/templates/steps/fetch-entities.ts.hbs +47 -0
- package/src/bocchi/templates/steps/index.test.ts.hbs +41 -0
- package/src/bocchi/templates/steps/singleton.ts.hbs +45 -0
- package/src/bocchi/templates/steps/spec.ts.hbs +73 -0
- package/src/bocchi/templates/top-level/.env.example.hbs +3 -0
- package/src/bocchi/templates/top-level/.eslintignore.hbs +1 -0
- package/src/bocchi/templates/top-level/.eslintrc.hbs +6 -0
- package/src/bocchi/templates/top-level/.github/workflows/build.yml.hbs +29 -0
- package/src/bocchi/templates/top-level/.github/workflows/questions.yml.hbs +40 -0
- package/src/bocchi/templates/top-level/.gitignore.hbs +8 -0
- package/src/bocchi/templates/top-level/.node-version.hbs +1 -0
- package/src/bocchi/templates/top-level/.prettierignore.hbs +6 -0
- package/src/bocchi/templates/top-level/CHANGELOG.md.hbs +9 -0
- package/src/bocchi/templates/top-level/CODEOWNERS.hbs +3 -0
- package/src/bocchi/templates/top-level/Dockerfile.hbs +25 -0
- package/src/bocchi/templates/top-level/LICENSE.hbs +373 -0
- package/src/bocchi/templates/top-level/README.md.hbs +114 -0
- package/src/bocchi/templates/top-level/docs/development.md.hbs +28 -0
- package/src/bocchi/templates/top-level/docs/jupiterone.md.hbs +1 -0
- package/src/bocchi/templates/top-level/docs/spec/index.ts.hbs +14 -0
- package/src/bocchi/templates/top-level/husky.config.js.hbs +1 -0
- package/src/bocchi/templates/top-level/jest.config.js.hbs +1 -0
- package/src/bocchi/templates/top-level/jupiterone/questions/questions.yaml.hbs +16 -0
- package/src/bocchi/templates/top-level/lint-staged.config.js.hbs +1 -0
- package/src/bocchi/templates/top-level/package.json.hbs +49 -0
- package/src/bocchi/templates/top-level/prettier.config.js.hbs +1 -0
- package/src/bocchi/templates/top-level/src/client.ts.hbs +116 -0
- package/src/bocchi/templates/top-level/src/config.ts.hbs +41 -0
- package/src/bocchi/templates/top-level/src/index.test.ts.hbs +6 -0
- package/src/bocchi/templates/top-level/src/index.ts.hbs +14 -0
- package/src/bocchi/templates/top-level/src/steps/constants.ts.hbs +60 -0
- package/src/bocchi/templates/top-level/src/steps/converters.ts.hbs +37 -0
- package/src/bocchi/templates/top-level/src/steps/index.ts.hbs +13 -0
- package/src/bocchi/templates/top-level/src/steps/types.ts.hbs +6 -0
- package/src/bocchi/templates/top-level/test/README.md.hbs +5 -0
- package/src/bocchi/templates/top-level/test/config.ts.hbs +30 -0
- package/src/bocchi/templates/top-level/test/recording.ts.hbs +74 -0
- package/src/bocchi/templates/top-level/tsconfig.dist.json.hbs +13 -0
- package/src/bocchi/templates/top-level/tsconfig.json.hbs +7 -0
- package/src/bocchi/utils/types.ts +106 -0
- package/src/commands/bocchi.ts +28 -0
- package/src/commands/generate-ingestion-sources-config.ts +4 -5
- 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/commands/index.ts +1 -0
- package/src/generator/actions.ts +28 -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/index.ts +3 -1
- package/src/neo4j/README.md +2 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Authentication
|
|
2
|
+
|
|
3
|
+
Defines the authentication method to use for the API. The template currently
|
|
4
|
+
supports two options for Authentication.
|
|
5
|
+
|
|
6
|
+
## Option 1 - Endpoint:
|
|
7
|
+
|
|
8
|
+
Use this method if you need to hit an endpoint to get authentication headers.
|
|
9
|
+
|
|
10
|
+
| | |
|
|
11
|
+
| ------------------- | ------------------- |
|
|
12
|
+
| Property | `authentication` |
|
|
13
|
+
| Type | `Object` |
|
|
14
|
+
| Required | `true` |
|
|
15
|
+
| Available templates | `config` `response` |
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
{
|
|
19
|
+
strategy: 'endpoint',
|
|
20
|
+
params: {
|
|
21
|
+
path: String,
|
|
22
|
+
method: 'GET' | 'POST',
|
|
23
|
+
body?: Object,
|
|
24
|
+
headers?: Object
|
|
25
|
+
}
|
|
26
|
+
authHeaders: Object
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Note: `authHeaders` represents the authentication headers that will be present
|
|
31
|
+
on all API requests the client makes, aside from the initial
|
|
32
|
+
`verifyAuthentication` request. The `authHeaders` object should contain at least
|
|
33
|
+
the `Authorization` property, which is typically a bearer token or API key.
|
|
34
|
+
|
|
35
|
+
Example:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"strategy": "endpoint",
|
|
40
|
+
"params": {
|
|
41
|
+
"path": "/auth",
|
|
42
|
+
"method": "POST",
|
|
43
|
+
"headers": {
|
|
44
|
+
"user-agent": "JupiterOne",
|
|
45
|
+
"tenant": "%config.tenant%"
|
|
46
|
+
},
|
|
47
|
+
"body": {
|
|
48
|
+
"exampleBody": "%config.exampleConfigValue%"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"authHeaders": {
|
|
52
|
+
"user-agent": "JupiterOne",
|
|
53
|
+
"tenant": "%config.tenant%",
|
|
54
|
+
"Authorization": "bearer %response.auth.token%"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Using this authentication schema will result in a verifyAuthentication()
|
|
60
|
+
function in the generated client that is ready-to-use; that is, the function
|
|
61
|
+
requires no manual updates, and when your integration runs, it will hit the
|
|
62
|
+
provided endpoint to verify authentication.
|
|
63
|
+
|
|
64
|
+
## Option 2 - Config Fields:
|
|
65
|
+
|
|
66
|
+
Use this method if the authentication headers will be provided in the instance
|
|
67
|
+
config.
|
|
68
|
+
|
|
69
|
+
| | |
|
|
70
|
+
| ------------------- | ---------------- |
|
|
71
|
+
| Property | `authentication` |
|
|
72
|
+
| Type | `Object` |
|
|
73
|
+
| Required | `true` |
|
|
74
|
+
| Available templates | `config` |
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
{
|
|
78
|
+
strategy: 'configField',
|
|
79
|
+
authHeaders: Object
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Example:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"strategy": "configField",
|
|
88
|
+
"authHeaders": {
|
|
89
|
+
"x-api-user": "%config.email%",
|
|
90
|
+
"x-api-token": "%config.token%"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Using this authentication schema will result in an incomplete
|
|
96
|
+
verifyAuthentication() function in the generated client. This is because the
|
|
97
|
+
graph-project generator does not know what endpoint to use for verifying
|
|
98
|
+
authentication. <b>You will need to manually update the generated
|
|
99
|
+
verifyAuthentication() function and choose what endpoint should be used for
|
|
100
|
+
verifying authentication.</b>
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"instanceConfigFields": {
|
|
3
|
+
"email": {
|
|
4
|
+
"type": "string"
|
|
5
|
+
},
|
|
6
|
+
"token": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"mask": true
|
|
9
|
+
},
|
|
10
|
+
"tenant": {
|
|
11
|
+
"type": "string"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"authentication": {
|
|
15
|
+
"strategy": "endpoint",
|
|
16
|
+
"params": {
|
|
17
|
+
"path": "/auth",
|
|
18
|
+
"method": "POST",
|
|
19
|
+
"headers": {
|
|
20
|
+
"user-agent": "JupiterOne",
|
|
21
|
+
"tenant": "%config.tenant%"
|
|
22
|
+
},
|
|
23
|
+
"body": {
|
|
24
|
+
"exampleBody": "%config.exampleConfigValue%"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"authHeaders": {
|
|
28
|
+
"user-agent": "JupiterOne",
|
|
29
|
+
"tenant": "%config.tenant%",
|
|
30
|
+
"Authorization": "bearer %response.auth.token%"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"baseUrl": "https://example.com",
|
|
34
|
+
"steps": [
|
|
35
|
+
{
|
|
36
|
+
"id": "fetch-organizations",
|
|
37
|
+
"name": "Fetch Organizations",
|
|
38
|
+
"entity": {
|
|
39
|
+
"name": "Organization",
|
|
40
|
+
"_type": "example_organization",
|
|
41
|
+
"_class": ["Organization"],
|
|
42
|
+
"_keyPath": "name",
|
|
43
|
+
"staticFields": {
|
|
44
|
+
"a": false,
|
|
45
|
+
"b": true
|
|
46
|
+
},
|
|
47
|
+
"fieldMappings": {
|
|
48
|
+
"name": "title",
|
|
49
|
+
"displayName": "title",
|
|
50
|
+
"description": "advisory.description",
|
|
51
|
+
"ruleId": "advisory.ruleId",
|
|
52
|
+
"severity": "advisory.severity",
|
|
53
|
+
"ecosystem": "advisory.ecosystem",
|
|
54
|
+
"urls": "advisory.references.urls",
|
|
55
|
+
"exposureType": "exposureType",
|
|
56
|
+
"repositoryId": "repositoryId",
|
|
57
|
+
"subdirectory": "subdirectory",
|
|
58
|
+
"createdOn": "openedAt"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"request": {
|
|
62
|
+
"urlTemplate": "/organizations"
|
|
63
|
+
},
|
|
64
|
+
"response": {
|
|
65
|
+
"dataPath": "data",
|
|
66
|
+
"responseType": "LIST"
|
|
67
|
+
},
|
|
68
|
+
"directRelationships": [
|
|
69
|
+
{
|
|
70
|
+
"targetKey": "directory",
|
|
71
|
+
"targetType": "example_directory",
|
|
72
|
+
"_class": "HAS",
|
|
73
|
+
"direction": "FORWARD"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "fetch-directory",
|
|
79
|
+
"name": "Fetch Directory",
|
|
80
|
+
"entity": {
|
|
81
|
+
"name": "Directory",
|
|
82
|
+
"_type": "example_directory",
|
|
83
|
+
"_class": ["Directory"],
|
|
84
|
+
"_keyPath": "id"
|
|
85
|
+
},
|
|
86
|
+
"fieldMappings": {
|
|
87
|
+
"name": "title",
|
|
88
|
+
"orgId": "organizationId"
|
|
89
|
+
},
|
|
90
|
+
"parentAssociation": {
|
|
91
|
+
"parentEntityType": "example_organization",
|
|
92
|
+
"relationshipClass": "HAS"
|
|
93
|
+
},
|
|
94
|
+
"request": {
|
|
95
|
+
"urlTemplate": "/organizations/%parent._key%/directory"
|
|
96
|
+
},
|
|
97
|
+
"response": {
|
|
98
|
+
"dataPath": "data",
|
|
99
|
+
"responseType": "SINGLETON"
|
|
100
|
+
},
|
|
101
|
+
"dependsOn": ["fetch-organizations"]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "fetch-users",
|
|
105
|
+
"name": "Fetch Users",
|
|
106
|
+
"entity": {
|
|
107
|
+
"name": "User",
|
|
108
|
+
"_type": "example_user",
|
|
109
|
+
"_class": ["User"],
|
|
110
|
+
"_keyPath": "email"
|
|
111
|
+
},
|
|
112
|
+
"parentAssociation": {
|
|
113
|
+
"parentEntityType": "example_directory",
|
|
114
|
+
"relationshipClass": "HAS"
|
|
115
|
+
},
|
|
116
|
+
"request": {
|
|
117
|
+
"urlTemplate": "/organizations/%parent._key%/directory/%parent.orgId%/users?nextPage=%nextToken%"
|
|
118
|
+
},
|
|
119
|
+
"response": {
|
|
120
|
+
"dataPath": "data",
|
|
121
|
+
"nextTokenPath": "next",
|
|
122
|
+
"responseType": "LIST"
|
|
123
|
+
},
|
|
124
|
+
"dependsOn": ["fetch-directory"]
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
{
|
|
2
|
+
"instanceConfigFields": {
|
|
3
|
+
"email": {
|
|
4
|
+
"type": "string"
|
|
5
|
+
},
|
|
6
|
+
"token": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"mask": true
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"authentication": {
|
|
12
|
+
"strategy": "configField",
|
|
13
|
+
"authHeaders": {
|
|
14
|
+
"x-api-user": "%config.email%",
|
|
15
|
+
"x-api-token": "%config.token%"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"baseUrl": "https://dashboard.signalsciences.net/api/v0",
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"id": "fetch-organizations",
|
|
22
|
+
"name": "Fetch Organizations",
|
|
23
|
+
"entity": {
|
|
24
|
+
"name": "Organization",
|
|
25
|
+
"_type": "signal_sciences_organization",
|
|
26
|
+
"_class": ["Organization"],
|
|
27
|
+
"_keyPath": "name",
|
|
28
|
+
"fieldMappings": {
|
|
29
|
+
"name": "name",
|
|
30
|
+
"displayName": "displayName",
|
|
31
|
+
"smallIconURI": "smallIconURI",
|
|
32
|
+
"createdAt": "created",
|
|
33
|
+
"siteLimit": "siteLimit",
|
|
34
|
+
"authType": "authType",
|
|
35
|
+
"sessionMaxAgeDashboard": "sessionMaxAgeDashboard"
|
|
36
|
+
},
|
|
37
|
+
"staticFields": {
|
|
38
|
+
"external": false
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"request": {
|
|
42
|
+
"urlTemplate": "/corps"
|
|
43
|
+
},
|
|
44
|
+
"response": {
|
|
45
|
+
"dataPath": "data",
|
|
46
|
+
"responseType": "LIST"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "fetch-users",
|
|
51
|
+
"name": "Fetch Users",
|
|
52
|
+
"entity": {
|
|
53
|
+
"name": "User",
|
|
54
|
+
"_type": "signal_sciences_user",
|
|
55
|
+
"_class": ["User"],
|
|
56
|
+
"_keyPath": "email",
|
|
57
|
+
"fieldMappings": {
|
|
58
|
+
"name": "name",
|
|
59
|
+
"displayName": "name",
|
|
60
|
+
"email": "email",
|
|
61
|
+
"role": "role",
|
|
62
|
+
"status": "status",
|
|
63
|
+
"mfaEnabled": "mfaEnabled",
|
|
64
|
+
"authStatus": "authStatus",
|
|
65
|
+
"createdAt": "created"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"parentAssociation": {
|
|
69
|
+
"parentEntityType": "signal_sciences_organization",
|
|
70
|
+
"relationshipClass": "HAS"
|
|
71
|
+
},
|
|
72
|
+
"mappedRelationships": [
|
|
73
|
+
{
|
|
74
|
+
"_class": "IS",
|
|
75
|
+
"direction": "REVERSE",
|
|
76
|
+
"mappings": [
|
|
77
|
+
{
|
|
78
|
+
"targetValue": "google_user",
|
|
79
|
+
"targetProperty": "_type"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"sourceProperty": "email",
|
|
83
|
+
"targetProperty": "email"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"request": {
|
|
89
|
+
"urlTemplate": "/corps/%parent._key%/users"
|
|
90
|
+
},
|
|
91
|
+
"response": {
|
|
92
|
+
"dataPath": "data",
|
|
93
|
+
"responseType": "LIST"
|
|
94
|
+
},
|
|
95
|
+
"dependsOn": ["fetch-organizations"]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "fetch-cloudwaf-instances",
|
|
99
|
+
"name": "Fetch Cloud WAF Instances",
|
|
100
|
+
"entity": {
|
|
101
|
+
"name": "Cloud WAF Instance",
|
|
102
|
+
"_type": "signal_sciences_cloudwaf",
|
|
103
|
+
"_class": ["Firewall"],
|
|
104
|
+
"_keyPath": "id",
|
|
105
|
+
"fieldMappings": {
|
|
106
|
+
"id": "id",
|
|
107
|
+
"name": "name",
|
|
108
|
+
"displayName": "name",
|
|
109
|
+
"description": "description",
|
|
110
|
+
"region": "region",
|
|
111
|
+
"tlsMinVersion": "tlsMinVersion"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"parentAssociation": {
|
|
115
|
+
"parentEntityType": "signal_sciences_organization",
|
|
116
|
+
"relationshipClass": "HAS"
|
|
117
|
+
},
|
|
118
|
+
"request": {
|
|
119
|
+
"urlTemplate": "/corps/%parent._key%/cloudwafInstances"
|
|
120
|
+
},
|
|
121
|
+
"response": {
|
|
122
|
+
"dataPath": "data",
|
|
123
|
+
"responseType": "LIST"
|
|
124
|
+
},
|
|
125
|
+
"dependsOn": ["fetch-organizations"]
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
}
|