@jupiterone/jupiterone-mcp 0.0.2 → 0.0.4
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 +95 -1
- package/dist/client/graphql/queries.d.ts +2 -2
- package/dist/client/graphql/queries.d.ts.map +1 -1
- package/dist/client/graphql/queries.js +6 -54
- package/dist/client/graphql/queries.js.map +1 -1
- package/dist/client/jupiterone-client.d.ts +1 -1
- package/dist/client/jupiterone-client.d.ts.map +1 -1
- package/dist/client/jupiterone-client.js.map +1 -1
- package/dist/client/services/j1ql-service.d.ts.map +1 -1
- package/dist/client/services/j1ql-service.js +35 -4
- package/dist/client/services/j1ql-service.js.map +1 -1
- package/dist/descriptions/create-inline-question-rule.md +19 -2
- package/dist/descriptions/execute-j1ql-query.md +47 -94
- package/dist/descriptions/get-integration-definitions.md +27 -0
- package/dist/descriptions/get-integration-instances.md +35 -0
- package/dist/descriptions/list-rules.md +44 -5
- package/dist/descriptions/update-inline-question-rule.md +363 -0
- package/dist/server/mcp-server.d.ts +5 -0
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +80 -20
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/utils/j1ql-validator.d.ts +34 -0
- package/dist/utils/j1ql-validator.d.ts.map +1 -0
- package/dist/utils/j1ql-validator.js +288 -0
- package/dist/utils/j1ql-validator.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,97 @@
|
|
|
1
1
|
# JupiterOne MCP Server
|
|
2
2
|
|
|
3
|
-
A Model Context Protocol (MCP) server that provides access to JupiterOne
|
|
3
|
+
A Model Context Protocol (MCP) server that provides access to JupiterOne tools. This server enables AI assistants and other MCP clients to interact with JupiterOne's data.
|
|
4
|
+
|
|
5
|
+
## Configuration
|
|
6
|
+
|
|
7
|
+
### Prerequisites
|
|
8
|
+
|
|
9
|
+
1. **JupiterOne Account**: You need an active JupiterOne account
|
|
10
|
+
2. **API Key**: Generate an API key from your JupiterOne account settings
|
|
11
|
+
3. **Account ID**: Your JupiterOne account identifier
|
|
12
|
+
4. Working node installation with a version >= 18
|
|
13
|
+
|
|
14
|
+
### Installation with Claude Desktop
|
|
15
|
+
|
|
16
|
+
To use this MCP server with Claude Desktop, you need to add it to your Claude configuration file.
|
|
17
|
+
|
|
18
|
+
#### Option 1: Using npx (Recommended)
|
|
19
|
+
|
|
20
|
+
Add the following configuration to your Claude Desktop configuration file:
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"mcpServers": {
|
|
25
|
+
"jupiterone": {
|
|
26
|
+
"command": "npx",
|
|
27
|
+
"args": ["-y", "@jupiterone/jupiterone-mcp"],
|
|
28
|
+
"env": {
|
|
29
|
+
"JUPITERONE_API_KEY": "your-api-key-here",
|
|
30
|
+
"JUPITERONE_ACCOUNT_ID": "your-account-id-here",
|
|
31
|
+
"JUPITERONE_BASE_URL": "https://graphql.us.jupiterone.io"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
#### Option 2: Global Installation (For nvm users or troubleshooting)
|
|
39
|
+
|
|
40
|
+
If you're using nvm or experiencing issues with Option 1, first install the package globally:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g @jupiterone/jupiterone-mcp
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Then add this configuration to your Claude Desktop config file:
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"mcpServers": {
|
|
51
|
+
"jupiterone": {
|
|
52
|
+
"command": "/usr/local/bin/node",
|
|
53
|
+
"args": ["/usr/local/bin/jupiterone-mcp"],
|
|
54
|
+
"env": {
|
|
55
|
+
"JUPITERONE_API_KEY": "your-api-key-here",
|
|
56
|
+
"JUPITERONE_ACCOUNT_ID": "your-account-id-here",
|
|
57
|
+
"JUPITERONE_BASE_URL": "https://graphql.us.jupiterone.io"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Note**: You may need to adjust the paths in Option 2 based on your Node.js installation:
|
|
65
|
+
- For Homebrew Node.js: `/usr/local/bin/node` and `/usr/local/bin/jupiterone-mcp`
|
|
66
|
+
- For nvm: `~/.nvm/versions/node/v[version]/bin/node` and `~/.nvm/versions/node/v[version]/bin/jupiterone-mcp`
|
|
67
|
+
|
|
68
|
+
### Installation with Cursor
|
|
69
|
+
|
|
70
|
+
For Cursor IDE, add the same configuration to your Cursor settings:
|
|
71
|
+
|
|
72
|
+
1. Open Cursor Settings
|
|
73
|
+
2. Navigate to "Features" → "Model Context Protocol"
|
|
74
|
+
3. Add the server configuration using either Option 1 or Option 2 from above
|
|
75
|
+
|
|
76
|
+
### Environment Variables
|
|
77
|
+
|
|
78
|
+
Replace the placeholder values with your actual JupiterOne credentials:
|
|
79
|
+
|
|
80
|
+
- **JUPITERONE_API_KEY**: Your JupiterOne API key (required)
|
|
81
|
+
- **JUPITERONE_ACCOUNT_ID**: Your JupiterOne account ID (required).
|
|
82
|
+
- **JUPITERONE_BASE_URL**: JupiterOne GraphQL endpoint (optional, defaults to `https://graphql.us.jupiterone.io`)
|
|
83
|
+
|
|
84
|
+
### Getting Your JupiterOne Credentials
|
|
85
|
+
|
|
86
|
+
1. **API Key**:
|
|
87
|
+
- Log into your JupiterOne account
|
|
88
|
+
- Go to Settings → API Keys
|
|
89
|
+
- Create a new API key or use an existing one
|
|
90
|
+
|
|
91
|
+
2. **Account ID**:
|
|
92
|
+
- This can be retrieved by either of the following:
|
|
93
|
+
- Navigating to `https://j1dev.apps.us.jupiterone.io/settings/account-management`
|
|
94
|
+
- Run the following query in your JupiterOne account: `find jupiterone_account as x return x.accountId`
|
|
4
95
|
|
|
5
96
|
## Features
|
|
6
97
|
|
|
@@ -36,6 +127,9 @@ A Model Context Protocol (MCP) server that provides access to JupiterOne account
|
|
|
36
127
|
### Account Management
|
|
37
128
|
- **test-connection** - Test connection to JupiterOne API and get account information
|
|
38
129
|
|
|
130
|
+
### Query Execution
|
|
131
|
+
- **execute-j1ql-query** - Execute a J1QL query
|
|
132
|
+
|
|
39
133
|
## Available Tools
|
|
40
134
|
|
|
41
135
|
### Rules Management
|
|
@@ -3,7 +3,7 @@ export declare const LIST_RULE_INSTANCES = "\n query listRuleInstances($limit:
|
|
|
3
3
|
export declare const GET_ACCOUNT_INFO = "\n query account {\n iamGetAccount {\n accountId\n accountSubdomain\n accountName\n accountOwner\n status\n accountType\n accountLogoUrl\n __typename\n }\n }\n";
|
|
4
4
|
export declare const GET_DASHBOARDS = "\n query GetDashboards {\n getDashboards(options: {includeAllJ1ManagedDashboards: true}) {\n id\n name\n userId\n category\n supportedUseCase\n prerequisites {\n prerequisitesMet\n preRequisitesGroupsFulfilled\n preRequisitesGroupsRequired\n __typename\n }\n isJ1ManagedBoard\n resourceGroupId\n starred\n _timeUpdated\n _createdAt\n __typename\n }\n }\n";
|
|
5
5
|
export declare const GET_DASHBOARD_DETAILS = "\n query solo_GetDashboard($dashboardId: String!) {\n getDashboard(dashboardId: $dashboardId) {\n ...InsightsDashboard\n __typename\n }\n }\n\n fragment InsightsDashboard on InsightsDashboard {\n id\n name\n category\n userId\n supportedUseCase\n isJ1ManagedBoard\n published\n publishedToUserIds\n publishedToGroupIds\n groupIds\n userIds\n scopeFilters\n resourceGroupId\n starred\n _timeUpdated\n _createdAt\n prerequisites {\n prerequisitesMet\n preRequisitesGroupsFulfilled\n preRequisitesGroupsRequired\n __typename\n }\n parameters {\n ...DashboardParameterFields\n __typename\n }\n widgets {\n ...InsightsWidget\n __typename\n }\n layouts {\n ...InsightsDashboardLayoutConfig\n __typename\n }\n __typename\n }\n\n fragment DashboardParameterFields on DashboardParameter {\n dashboardId\n accountId\n id\n label\n name\n options\n valueType\n type\n default\n disableCustomInput\n requireValue\n __typename\n }\n\n fragment InsightsWidget on InsightsWidget {\n id\n title\n description\n type\n questionId\n noResultMessage\n includeDeleted\n config {\n queries {\n id\n name\n query\n __typename\n }\n settings\n postQueryFilters\n disableQueryPolicyFilters\n __typename\n }\n __typename\n }\n\n fragment InsightsDashboardLayoutConfig on InsightsDashboardLayoutConfig {\n xs {\n ...InsightsDashboardLayoutItem\n __typename\n }\n sm {\n ...InsightsDashboardLayoutItem\n __typename\n }\n md {\n ...InsightsDashboardLayoutItem\n __typename\n }\n lg {\n ...InsightsDashboardLayoutItem\n __typename\n }\n xl {\n ...InsightsDashboardLayoutItem\n __typename\n }\n __typename\n }\n\n fragment InsightsDashboardLayoutItem on InsightsDashboardLayoutItem {\n static\n moved\n w\n h\n x\n y\n i\n __typename\n }\n";
|
|
6
|
-
export declare const GET_INTEGRATION_DEFINITIONS = "\n query IntegrationDefinitions($cursor: String, $includeConfig: Boolean = false) {\n integrationDefinitions(cursor: $cursor) {\n definitions {\n ...IntegrationDefinitionsValues\n __typename\n }\n pageInfo {\n endCursor\n __typename\n }\n __typename\n }\n }\n\n fragment IntegrationDefinitionsValues on IntegrationDefinition {\n id\n name\n type\n title\n
|
|
6
|
+
export declare const GET_INTEGRATION_DEFINITIONS = "\n query IntegrationDefinitions($cursor: String, $includeConfig: Boolean = false) {\n integrationDefinitions(cursor: $cursor) {\n definitions {\n ...IntegrationDefinitionsValues\n __typename\n }\n pageInfo {\n endCursor\n __typename\n }\n __typename\n }\n }\n\n fragment IntegrationDefinitionsValues on IntegrationDefinition {\n id\n name\n type\n title\n integrationType\n integrationClass\n integrationCategory\n totalInstanceCount\n description\n ...IntegrationDefinitionConfigFragment @include(if: $includeConfig)\n __typename\n }\n\n fragment IntegrationDefinitionConfigFragment on IntegrationDefinition {\n configFields {\n ...ConfigFieldsRecursive\n __typename\n }\n authSections {\n id\n description\n displayName\n configFields {\n ...ConfigFieldsRecursive\n __typename\n }\n verificationDisabled\n __typename\n }\n configSections {\n displayName\n configFields {\n ...ConfigFieldsRecursive\n __typename\n }\n __typename\n }\n __typename\n }\n\n fragment ConfigFieldsRecursive on ConfigField {\n ...ConfigFieldValues\n configFields {\n ...ConfigFieldValues\n configFields {\n ...ConfigFieldValues\n __typename\n }\n __typename\n }\n __typename\n }\n\n fragment ConfigFieldValues on ConfigField {\n key\n displayName\n description\n type\n format\n defaultValue\n helperText\n inputAdornment\n mask\n optional\n immutable\n readonly\n computed\n options {\n value\n description\n label\n webLink\n default\n __typename\n }\n __typename\n }\n";
|
|
7
7
|
export declare const GET_INTEGRATION_INSTANCES = "\n query IntegrationInstances($definitionId: String, $cursor: String, $limit: Int, $filter: ListIntegrationInstancesSearchFilter) {\n integrationInstancesV2(\n definitionId: $definitionId\n cursor: $cursor\n limit: $limit\n filter: $filter\n ) {\n instances {\n ...IntegrationInstanceLiteValues\n __typename\n }\n pageInfo {\n endCursor\n __typename\n }\n __typename\n }\n }\n\n fragment IntegrationInstanceLiteValues on IntegrationInstanceLite {\n id\n name\n accountId\n sourceIntegrationInstanceId\n pollingInterval\n pollingIntervalCronExpression {\n hour\n dayOfWeek\n __typename\n }\n integrationDefinitionId\n description\n config\n instanceRelationship\n resourceGroupId\n createdOn\n createdBy\n updatedOn\n updatedBy\n mostRecentJob {\n status\n hasSkippedSteps\n createDate\n __typename\n }\n __typename\n }\n";
|
|
8
8
|
export declare const GET_INTEGRATION_JOBS = "\n query IntegrationJobs($status: IntegrationJobStatus, $integrationInstanceId: String, $integrationDefinitionId: String, $integrationInstanceIds: [String], $cursor: String, $size: Int) {\n integrationJobs(\n status: $status\n integrationInstanceId: $integrationInstanceId\n integrationDefinitionId: $integrationDefinitionId\n integrationInstanceIds: $integrationInstanceIds\n cursor: $cursor\n size: $size\n ) {\n jobs {\n ...IntegrationJobValues\n __typename\n }\n pageInfo {\n endCursor\n __typename\n }\n __typename\n }\n }\n\n fragment IntegrationJobValues on IntegrationJob {\n id\n status\n integrationInstanceId\n createDate\n endDate\n hasSkippedSteps\n integrationInstance {\n id\n name\n __typename\n }\n integrationDefinition {\n id\n title\n integrationType\n __typename\n }\n __typename\n }\n";
|
|
9
9
|
export declare const GET_INTEGRATION_JOB = "\n query IntegrationJob($integrationJobId: ID!, $integrationInstanceId: String!) {\n integrationJob(\n id: $integrationJobId\n integrationInstanceId: $integrationInstanceId\n ) {\n ...IntegrationJobValues\n __typename\n }\n }\n\n fragment IntegrationJobValues on IntegrationJob {\n id\n status\n integrationInstanceId\n createDate\n endDate\n hasSkippedSteps\n integrationInstance {\n id\n name\n __typename\n }\n integrationDefinition {\n id\n title\n integrationType\n __typename\n }\n __typename\n }\n";
|
|
@@ -11,5 +11,5 @@ export declare const GET_INTEGRATION_EVENTS = "\n query ListEvents($jobId: Stri
|
|
|
11
11
|
export declare const LIST_RULE_EVALUATIONS = "\n query listCollectionResults($collectionType: CollectionType!, $collectionOwnerId: String!, $beginTimestamp: Long!, $endTimestamp: Long!, $limit: Int, $cursor: String, $tag: String) {\n listCollectionResults(\n collectionType: $collectionType\n collectionOwnerId: $collectionOwnerId\n beginTimestamp: $beginTimestamp\n endTimestamp: $endTimestamp\n limit: $limit\n cursor: $cursor\n tag: $tag\n ) {\n results {\n accountId\n collectionOwnerId\n collectionOwnerVersion\n collectionType\n outputs {\n name\n value\n __typename\n }\n rawDataDescriptors {\n name\n persistedResultType\n rawDataKey\n recordCount\n recordCreateCount\n recordDeleteCount\n recordUpdateCount\n __typename\n }\n tag\n timestamp\n __typename\n }\n pageInfo {\n endCursor\n hasNextPage\n __typename\n }\n __typename\n }\n }\n";
|
|
12
12
|
export declare const GET_RULE_EVALUATION_DETAILS = "\n query ruleEvaluationDetails($ruleEvaluationDetailsInput: RuleEvaluationDetailsInput!) {\n ruleEvaluationDetails(input: $ruleEvaluationDetailsInput) {\n accountRuleId\n startedOn\n question {\n totalDuration\n queries {\n status\n queryEvaluationDetails {\n name\n duration\n status\n error\n __typename\n }\n __typename\n }\n __typename\n }\n conditions {\n status\n condition\n __typename\n }\n actions {\n status\n actionEvaluationDetails {\n actionId\n action\n status\n duration\n finishedOn\n logs\n __typename\n }\n __typename\n }\n ruleEvaluationOrigin\n __typename\n }\n }\n";
|
|
13
13
|
export declare const GET_RAW_DATA_DOWNLOAD_URL = "\n query getRawDataDownloadUrl($rawDataKey: String!) {\n getRawDataDownloadUrl(rawDataKey: $rawDataKey)\n }\n";
|
|
14
|
-
export declare const
|
|
14
|
+
export declare const QUERY_V2 = "\n query J1QLv2($query: String!, $variables: JSON, $cursor: String, $scopeFilters: JSON, $includeDeleted: Boolean, $returnRowMetadata: Boolean, $returnComputedProperties: Boolean) {\n queryV2(query: $query, variables: $variables, cursor: $cursor, scopeFilters: $scopeFilters, includeDeleted: $includeDeleted, returnRowMetadata: $returnRowMetadata, returnComputedProperties: $returnComputedProperties) {\n type\n url\n correlationId\n }\n }\n";
|
|
15
15
|
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/client/graphql/queries.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,mtCAkEhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,kuCAmE/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,oNAa5B,CAAC;AAEF,eAAO,MAAM,cAAc,4cAsB1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,kjEAsHjC,CAAC;AAEF,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/client/graphql/queries.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,mtCAkEhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,kuCAmE/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,oNAa5B,CAAC;AAEF,eAAO,MAAM,cAAc,4cAsB1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,kjEAsHjC,CAAC;AAEF,eAAO,MAAM,2BAA2B,kwDA6FvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,2+BAgDrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,+8BA0ChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,kmBA+B/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,8nBA+BlC,CAAC;AAEF,eAAO,MAAM,qBAAqB,ijCA2CjC,CAAC;AAEF,eAAO,MAAM,2BAA2B,+2BA0CvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,uHAIrC,CAAC;AAGF,eAAO,MAAM,QAAQ,qdAQpB,CAAC"}
|
|
@@ -309,59 +309,11 @@ export const GET_INTEGRATION_DEFINITIONS = `
|
|
|
309
309
|
name
|
|
310
310
|
type
|
|
311
311
|
title
|
|
312
|
-
displayMode
|
|
313
|
-
oAuth {
|
|
314
|
-
oAuthUrlGeneratorPath
|
|
315
|
-
__typename
|
|
316
|
-
}
|
|
317
|
-
offsiteUrl
|
|
318
|
-
offsiteButtonTitle
|
|
319
|
-
offsiteStatusQuery
|
|
320
312
|
integrationType
|
|
321
313
|
integrationClass
|
|
322
314
|
integrationCategory
|
|
323
|
-
beta
|
|
324
|
-
docsWebLink
|
|
325
|
-
repoWebLink
|
|
326
|
-
invocationPaused
|
|
327
|
-
managedExecutionDisabled
|
|
328
|
-
managedCreateDisabled
|
|
329
|
-
managedDeleteDisabled
|
|
330
|
-
integrationPlatformFeatures {
|
|
331
|
-
supportsChildInstances
|
|
332
|
-
supportsCollectors
|
|
333
|
-
supportsIngestionSourcesConfig
|
|
334
|
-
supportsAgentConfigurations
|
|
335
|
-
__typename
|
|
336
|
-
}
|
|
337
|
-
ingestionSourcesConfig {
|
|
338
|
-
id
|
|
339
|
-
title
|
|
340
|
-
description
|
|
341
|
-
defaultsToDisabled
|
|
342
|
-
childIngestionSourcesMetadata {
|
|
343
|
-
id
|
|
344
|
-
name
|
|
345
|
-
__typename
|
|
346
|
-
}
|
|
347
|
-
cannotBeDisabled
|
|
348
|
-
__typename
|
|
349
|
-
}
|
|
350
|
-
ingestionSourcesOverrides {
|
|
351
|
-
enabled
|
|
352
|
-
ingestionSourceId
|
|
353
|
-
__typename
|
|
354
|
-
}
|
|
355
315
|
totalInstanceCount
|
|
356
|
-
integrationJobStatusMetrics {
|
|
357
|
-
count
|
|
358
|
-
status
|
|
359
|
-
__typename
|
|
360
|
-
}
|
|
361
|
-
icon
|
|
362
|
-
provisioningType
|
|
363
316
|
description
|
|
364
|
-
customDefinitionType
|
|
365
317
|
...IntegrationDefinitionConfigFragment @include(if: $includeConfig)
|
|
366
318
|
__typename
|
|
367
319
|
}
|
|
@@ -679,13 +631,13 @@ export const GET_RAW_DATA_DOWNLOAD_URL = `
|
|
|
679
631
|
getRawDataDownloadUrl(rawDataKey: $rawDataKey)
|
|
680
632
|
}
|
|
681
633
|
`;
|
|
682
|
-
// J1QL Query Executor
|
|
683
|
-
export const
|
|
684
|
-
query
|
|
685
|
-
|
|
634
|
+
// J1QL Query Executor V2 - Provides more detailed error messages
|
|
635
|
+
export const QUERY_V2 = `
|
|
636
|
+
query J1QLv2($query: String!, $variables: JSON, $cursor: String, $scopeFilters: JSON, $includeDeleted: Boolean, $returnRowMetadata: Boolean, $returnComputedProperties: Boolean) {
|
|
637
|
+
queryV2(query: $query, variables: $variables, cursor: $cursor, scopeFilters: $scopeFilters, includeDeleted: $includeDeleted, returnRowMetadata: $returnRowMetadata, returnComputedProperties: $returnComputedProperties) {
|
|
686
638
|
type
|
|
687
|
-
|
|
688
|
-
|
|
639
|
+
url
|
|
640
|
+
correlationId
|
|
689
641
|
}
|
|
690
642
|
}
|
|
691
643
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/client/graphql/queries.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEnC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmElC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;CAa/B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHpC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/client/graphql/queries.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEnC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmElC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;CAa/B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHpC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6F1C,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDxC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CnC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BlC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BrC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CpC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0C1C,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;CAIxC,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;CAQvB,CAAC"}
|
|
@@ -11,7 +11,7 @@ export declare class JupiterOneClient {
|
|
|
11
11
|
private dashboardService;
|
|
12
12
|
private accountService;
|
|
13
13
|
private integrationService;
|
|
14
|
-
|
|
14
|
+
j1qlService: J1qlService;
|
|
15
15
|
constructor(config: JupiterOneConfig);
|
|
16
16
|
listAlertInstances(...args: Parameters<AlertService['listAlertInstances']>): Promise<{
|
|
17
17
|
instances: import("../types/jupiterone.js").AlertRuleInstance[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jupiterone-client.d.ts","sourceRoot":"","sources":["../../src/client/jupiterone-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAqB;
|
|
1
|
+
{"version":3,"file":"jupiterone-client.d.ts","sourceRoot":"","sources":["../../src/client/jupiterone-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jupiterone-client.js","sourceRoot":"","sources":["../../src/client/jupiterone-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAgB;IACtB,YAAY,CAAe;IAC3B,WAAW,CAAc;IACzB,gBAAgB,CAAmB;IACnC,cAAc,CAAiB;IAC/B,kBAAkB,CAAqB;
|
|
1
|
+
{"version":3,"file":"jupiterone-client.js","sourceRoot":"","sources":["../../src/client/jupiterone-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"j1ql-service.d.ts","sourceRoot":"","sources":["../../../src/client/services/j1ql-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AAIlF,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;OAEG;IACG,6BAA6B,CACjC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,qCAAqC,CAAC,+BAA+B,CAAC,CAAC;IAQlF;;OAEG;IACG,gBAAgB,CAAC,EACrB,KAAK,EACL,SAAS,EACT,MAAM,EACN,YAAY,EACZ,KAAK,GACN,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC7B,GAAG,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"j1ql-service.d.ts","sourceRoot":"","sources":["../../../src/client/services/j1ql-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AAIlF,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;OAEG;IACG,6BAA6B,CACjC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,qCAAqC,CAAC,+BAA+B,CAAC,CAAC;IAQlF;;OAEG;IACG,gBAAgB,CAAC,EACrB,KAAK,EACL,SAAS,EACT,MAAM,EACN,YAAY,EACZ,KAAK,GACN,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC7B,GAAG,OAAO,CAAC,GAAG,CAAC;CAoDjB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CREATE_J1QL_FROM_NATURAL_LANGUAGE } from '../graphql/mutations.js';
|
|
2
|
-
import {
|
|
2
|
+
import { QUERY_V2 } from '../graphql/queries.js';
|
|
3
3
|
export class J1qlService {
|
|
4
4
|
client;
|
|
5
5
|
constructor(client) {
|
|
@@ -16,14 +16,45 @@ export class J1qlService {
|
|
|
16
16
|
* Execute a J1QL query
|
|
17
17
|
*/
|
|
18
18
|
async executeJ1qlQuery({ query, variables, cursor, scopeFilters, flags, }) {
|
|
19
|
-
|
|
19
|
+
// Use queryV2 for better error messages
|
|
20
|
+
const response = await this.client.request(QUERY_V2, {
|
|
20
21
|
query,
|
|
21
22
|
variables,
|
|
22
23
|
cursor,
|
|
23
24
|
scopeFilters,
|
|
24
|
-
flags,
|
|
25
|
+
includeDeleted: flags?.includeDeleted,
|
|
26
|
+
returnRowMetadata: flags?.returnRowMeta,
|
|
27
|
+
returnComputedProperties: flags?.computedProperties,
|
|
25
28
|
});
|
|
26
|
-
|
|
29
|
+
// Handle deferred response
|
|
30
|
+
if (response.queryV2.type === 'deferred' && response.queryV2.url) {
|
|
31
|
+
// Poll the URL until results are ready
|
|
32
|
+
const maxAttempts = 60; // 60 attempts = 1 minute max wait
|
|
33
|
+
const pollInterval = 1000; // 1 second between polls
|
|
34
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
35
|
+
const fetchResponse = await fetch(response.queryV2.url);
|
|
36
|
+
if (!fetchResponse.ok) {
|
|
37
|
+
throw new Error(`Failed to fetch query results: ${fetchResponse.statusText}`);
|
|
38
|
+
}
|
|
39
|
+
const result = await fetchResponse.json();
|
|
40
|
+
// Check if the query is complete
|
|
41
|
+
if (result.status === 'COMPLETE' || result.status === 'FAILED') {
|
|
42
|
+
if (result.status === 'FAILED') {
|
|
43
|
+
throw new Error(result.error || 'Query execution failed');
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
// If still in progress, wait before next poll
|
|
48
|
+
if (result.status === 'IN_PROGRESS') {
|
|
49
|
+
await new Promise(resolve => setTimeout(resolve, pollInterval));
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// If we get an unexpected status, return the result as-is
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
throw new Error('Query timed out after 60 seconds');
|
|
56
|
+
}
|
|
57
|
+
return response.queryV2;
|
|
27
58
|
}
|
|
28
59
|
}
|
|
29
60
|
//# sourceMappingURL=j1ql-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"j1ql-service.js","sourceRoot":"","sources":["../../../src/client/services/j1ql-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,6BAA6B,CACjC,eAAuB;QAEvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACxC,iCAAiC,EACjC,EAAE,eAAe,EAAE,CACpB,CAAC;QACF,OAAO,QAAQ,CAAC,6BAA6B,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,EACrB,KAAK,EACL,SAAS,EACT,MAAM,EACN,YAAY,EACZ,KAAK,GAON;QACC,MAAM,QAAQ,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAC7C,QAAQ,EACR;YACE,KAAK;YACL,SAAS;YACT,MAAM;YACN,YAAY;YACZ,KAAK;
|
|
1
|
+
{"version":3,"file":"j1ql-service.js","sourceRoot":"","sources":["../../../src/client/services/j1ql-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,6BAA6B,CACjC,eAAuB;QAEvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACxC,iCAAiC,EACjC,EAAE,eAAe,EAAE,CACpB,CAAC;QACF,OAAO,QAAQ,CAAC,6BAA6B,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,EACrB,KAAK,EACL,SAAS,EACT,MAAM,EACN,YAAY,EACZ,KAAK,GAON;QACC,wCAAwC;QACxC,MAAM,QAAQ,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAC7C,QAAQ,EACR;YACE,KAAK;YACL,SAAS;YACT,MAAM;YACN,YAAY;YACZ,cAAc,EAAE,KAAK,EAAE,cAAc;YACrC,iBAAiB,EAAE,KAAK,EAAE,aAAa;YACvC,wBAAwB,EAAE,KAAK,EAAE,kBAAkB;SACpD,CACF,CAAC;QAEF,2BAA2B;QAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjE,uCAAuC;YACvC,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,kCAAkC;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,yBAAyB;YAEpD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;gBACvD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChF,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBAE1C,iCAAiC;gBACjC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;oBAC5D,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBACpC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;oBAChE,SAAS;gBACX,CAAC;gBAED,0DAA0D;gBAC1D,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -34,6 +34,13 @@ The `when` clause should only contain:
|
|
|
34
34
|
- **Available options**: `"DISABLED"`, `"THIRTY_MINUTES"`, `"ONE_HOUR"`, `"FOUR_HOURS"`, `"EIGHT_HOURS"`, `"TWELVE_HOURS"`, `"ONE_DAY"`, `"ONE_WEEK"`
|
|
35
35
|
- Only use more frequent intervals (like `"THIRTY_MINUTES"`) when explicitly requested or for time-sensitive security alerts
|
|
36
36
|
|
|
37
|
+
### 6. Tags vs Labels (Important)
|
|
38
|
+
- **DEPRECATED**: The `tags` array field is deprecated and should always be set to an empty array `[]`
|
|
39
|
+
- **USE INSTEAD**: For tagging functionality, use the `labels` field with key-value pairs
|
|
40
|
+
- **Format**: `labels: [{"labelName": "key", "labelValue": "value"}]`
|
|
41
|
+
- **When users ask for tagging**: Always use the `labels` field to meet their needs
|
|
42
|
+
- **Note**: The `tags` field is still required in the schema for compatibility but should remain empty
|
|
43
|
+
|
|
37
44
|
## Required Schema Fields
|
|
38
45
|
|
|
39
46
|
### Complete Required Parameters for create-inline-question-rule
|
|
@@ -51,6 +58,10 @@ The `when` clause should only contain:
|
|
|
51
58
|
"templates": {},
|
|
52
59
|
"outputs": ["alertLevel"],
|
|
53
60
|
"tags": [],
|
|
61
|
+
"labels": [
|
|
62
|
+
{"labelName": "environment", "labelValue": "production"},
|
|
63
|
+
{"labelName": "team", "labelValue": "security"}
|
|
64
|
+
],
|
|
54
65
|
"queries": [
|
|
55
66
|
{
|
|
56
67
|
"query": "FIND Entity...",
|
|
@@ -74,7 +85,8 @@ The `when` clause should only contain:
|
|
|
74
85
|
**Key Schema Requirements**:
|
|
75
86
|
- `ignorePreviousResults`: Must be included (typically `false`)
|
|
76
87
|
- `templates`: Must be included (use `{}` if empty)
|
|
77
|
-
- `tags`: Must be included
|
|
88
|
+
- `tags`: Must be included but should always be empty `[]` (deprecated field)
|
|
89
|
+
- `labels`: Use this for actual tagging functionality with key-value pairs
|
|
78
90
|
- Query `name`: Use `"query0"` for primary query
|
|
79
91
|
- Query `version`: Include `"v1"` for compatibility
|
|
80
92
|
- Query `includeDeleted`: Must be explicitly set to `false`
|
|
@@ -274,6 +286,10 @@ Based on confirmed working examples, use this template:
|
|
|
274
286
|
"templates": {},
|
|
275
287
|
"outputs": ["alertLevel"],
|
|
276
288
|
"tags": [],
|
|
289
|
+
"labels": [
|
|
290
|
+
{"labelName": "severity", "labelValue": "high"},
|
|
291
|
+
{"labelName": "category", "labelValue": "security"}
|
|
292
|
+
],
|
|
277
293
|
"queries": [
|
|
278
294
|
{
|
|
279
295
|
"query": "FIND Entity WITH condition",
|
|
@@ -348,10 +364,11 @@ Based on confirmed working examples, use this template:
|
|
|
348
364
|
- Use descriptive query names that match their purpose (but prefer `"query0"` for main query)
|
|
349
365
|
- Include relevant entity fields in `outputs` for alert context
|
|
350
366
|
- Set appropriate polling intervals (default to `"ONE_DAY"` unless specified)
|
|
351
|
-
-
|
|
367
|
+
- Use the `labels` field for rule organization and tagging (not the deprecated `tags` field)
|
|
352
368
|
- Use `notifyOnFailure: true` to catch rule execution issues
|
|
353
369
|
- Always include `CREATE_ALERT` action as a baseline
|
|
354
370
|
- Always include all required schema fields from the working template
|
|
355
371
|
- Ask users for specific details when configuring notification actions (emails, channels, etc.)
|
|
372
|
+
- When users request tagging functionality, use the `labels` field with key-value pairs
|
|
356
373
|
|
|
357
374
|
This format ensures reliable rule creation and helps avoid common pitfalls encountered during rule development.
|
|
@@ -15,9 +15,9 @@ The tool supports various query parameters including:
|
|
|
15
15
|
- Applying scope filters
|
|
16
16
|
- Pagination using cursors
|
|
17
17
|
|
|
18
|
-
### JupiterOne Query Language (J1QL)
|
|
18
|
+
### JupiterOne Query Language (J1QL) Quick Reference
|
|
19
19
|
|
|
20
|
-
> **
|
|
20
|
+
> **IMPORTANT:** Always validate queries using this tool before creating rules or widgets. Start with discovery queries if unsure about data structure.
|
|
21
21
|
|
|
22
22
|
#### Core Concepts
|
|
23
23
|
|
|
@@ -317,48 +317,12 @@ RETURN u.username, p.email, d.name
|
|
|
317
317
|
LIMIT 10
|
|
318
318
|
```
|
|
319
319
|
|
|
320
|
-
#### Discovery
|
|
320
|
+
#### Discovery Queries - ALWAYS START HERE
|
|
321
321
|
|
|
322
|
-
|
|
323
|
-
**
|
|
324
|
-
|
|
325
|
-
FIND
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
SECOND:
|
|
329
|
-
**Discover properties on an entity**:
|
|
330
|
-
```j1ql
|
|
331
|
-
FIND User AS ent RETURN ent.* LIMIT 100
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
THIRD:
|
|
335
|
-
**Find how entities are related**:
|
|
336
|
-
```j1ql
|
|
337
|
-
FIND User THAT RELATES TO AS rel * AS ent RETURN rel._class, ent._type, COUNT(ent)
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
FORTH:
|
|
341
|
-
**Discover property values**:
|
|
342
|
-
```j1ql
|
|
343
|
-
FIND User AS ent RETURN ent.status, COUNT(ent)
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
ADDITIONAL:
|
|
347
|
-
|
|
348
|
-
**Identify properties on related entities**:
|
|
349
|
-
```j1ql
|
|
350
|
-
FIND User THAT RELATES TO Device AS ent RETURN ent.* LIMIT 100
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
**Find related entity types**:
|
|
354
|
-
```j1ql
|
|
355
|
-
FIND User THAT RELATES TO * AS ent RETURN ent._type, COUNT(ent)
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
**Identify relationship classes**:
|
|
359
|
-
```j1ql
|
|
360
|
-
FIND User THAT RELATES TO AS rel * AS ent RETURN rel._class, ent._type, COUNT(ent)
|
|
361
|
-
```
|
|
322
|
+
1. **Find all entity classes**: `FIND * AS e RETURN e._class, COUNT(e)`
|
|
323
|
+
2. **Explore entity properties**: `FIND EntityClass AS e RETURN e.* LIMIT 10`
|
|
324
|
+
3. **Discover relationships**: `FIND Entity1 THAT RELATES TO AS rel Entity2 RETURN rel._class`
|
|
325
|
+
4. **Check property values**: `FIND Entity AS e RETURN e.property, COUNT(e)`
|
|
362
326
|
|
|
363
327
|
#### ⚠️ QUERY VALIDATION CHECKLIST ⚠️
|
|
364
328
|
|
|
@@ -373,54 +337,43 @@ Before running any J1QL query, verify:
|
|
|
373
337
|
7. ✓ Optional traversals use proper parentheses and question mark syntax
|
|
374
338
|
8. ✓ All aliases referenced in RETURN or WHERE are properly defined earlier
|
|
375
339
|
|
|
376
|
-
#### Common Errors
|
|
377
|
-
|
|
378
|
-
1. **
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
- Start with basic entity queries
|
|
417
|
-
- Add property filters
|
|
418
|
-
- Add relationship traversals
|
|
419
|
-
- Add specific return fields
|
|
420
|
-
- Add aggregations if needed
|
|
421
|
-
- Rinse and repeat until you have a query doing what you need
|
|
422
|
-
- IMPORTANT: Don't assume _type, _class, relationship verbs or properties, only use values found during discovery!
|
|
423
|
-
|
|
424
|
-
5. **Troubleshoot by simplifying** - if a complex query fails, break it into smaller parts
|
|
425
|
-
|
|
426
|
-
By following these strict guide `plines, AI agents can effectively create valid J1QL queries that provide accurate security insights across the organization's digital environment.
|
|
340
|
+
#### Most Common Errors (Quick Reference)
|
|
341
|
+
|
|
342
|
+
1. **Missing quotes**: `name = john` → `name = 'john'`
|
|
343
|
+
2. **Wrong quotes**: `name = "john"` → `name = 'john'`
|
|
344
|
+
3. **Alias placement**: `AS u WITH active = true` → `WITH active = true AS u`
|
|
345
|
+
4. **WHERE needs alias**: `WHERE active = true` → `AS u WHERE u.active = true`
|
|
346
|
+
5. **Undefined alias**: `FIND User RETURN u.name` → `FIND User AS u RETURN u.name`
|
|
347
|
+
6. **No LIMIT**: Add `LIMIT 100` or use `COUNT()` to prevent timeouts
|
|
348
|
+
|
|
349
|
+
#### Common Patterns & Examples
|
|
350
|
+
|
|
351
|
+
**Security Queries**:
|
|
352
|
+
- Unencrypted data: `FIND DataStore WITH encrypted = false`
|
|
353
|
+
- Users without MFA: `FIND User WITH mfaEnabled != true`
|
|
354
|
+
- Critical findings: `FIND Finding WITH severity = "critical"`
|
|
355
|
+
|
|
356
|
+
**Dashboard Queries**:
|
|
357
|
+
- Pie chart: Return `name` and `value` pairs
|
|
358
|
+
- Number chart: Return single `value`
|
|
359
|
+
- Bar chart: Return `x` and `y` values
|
|
360
|
+
- Table: Return named columns
|
|
361
|
+
|
|
362
|
+
**Rule Queries**:
|
|
363
|
+
- New entities: Add time filter `WITH _createdOn > date.now - 1 day`
|
|
364
|
+
- Always test with `execute-j1ql-query` first
|
|
365
|
+
- Use condition: `["AND", ["queries.query0.total", ">", 0]]`
|
|
366
|
+
|
|
367
|
+
#### Best Practices
|
|
368
|
+
|
|
369
|
+
1. **Always start with discovery** - Don't assume entity names or properties
|
|
370
|
+
2. **Test incrementally** - Build complex queries step by step
|
|
371
|
+
3. **Use this tool to validate** - Test every query before using in rules/widgets
|
|
372
|
+
4. **Check error suggestions** - The tool provides specific fixes for common issues
|
|
373
|
+
5. **Use proper syntax**:
|
|
374
|
+
- Single quotes for strings
|
|
375
|
+
- Alias AFTER WITH clause
|
|
376
|
+
- LIMIT to prevent timeouts
|
|
377
|
+
- Proper capitalization for classes
|
|
378
|
+
|
|
379
|
+
**Remember**: The execute-j1ql-query tool now provides enhanced error messages with specific suggestions. Always test queries here first!
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Get Integration Definitions Tool
|
|
2
|
+
|
|
3
|
+
Get all available integration definitions in your JupiterOne account. This tool returns a list of integration definitions that can be used to create integration instances. Integration definitions define the types of integrations available (like AWS, Azure, GitHub, etc.) and their configuration requirements. If a user is needing a specific integration instance id for something such as a rule action, you will want to start here and then use the `get-integration-instances` tool. Each integration definition will have a Name and a Title field, you should use this to identify which definition is correct for what the user is looking for. As an example, if the user wants to send a slack notification as a part of a rule action, you would want to pull all of the integration definitions and find any that have Slack in the name and/or title. If there are multiple, then clarify the differences to the user and allow them to guide you on which one is correct.
|
|
4
|
+
|
|
5
|
+
## Parameters
|
|
6
|
+
- `cursor` (optional): Pagination cursor to get the next page of results. Use the `endCursor` from a previous response's `pageInfo`. When you are needing to find a specific type of integration, you will want to query all of the available pages until there are no more left to query so you can select from the entire list.
|
|
7
|
+
- `includeConfig` (optional): Whether to include configuration fields in the response. When true, returns detailed configuration schemas for each integration type. Typically this should be false or omitted entirely.
|
|
8
|
+
|
|
9
|
+
## Example Usage
|
|
10
|
+
Get all integration definitions without configuration details:
|
|
11
|
+
```json
|
|
12
|
+
{}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Get all integration definitions with configuration fields:
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"includeConfig": true
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Get the next page of integration definitions using a cursor:
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"cursor": "cursor_here"
|
|
26
|
+
}
|
|
27
|
+
```
|