diff --git a/README.md b/README.md index 0040deb..7a30a5d 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ List of dashboards: - [IR - User Endpoint Blast Radius](src/boards/user-endpoint-blast-radius/) - [Jamf & CrowdStrike Sensor Activity](src/boards/jamf-crowdstrike/) - [Jira Insights](src/boards/jira-insights/) +- [MongoDB Insights](src/boards/mongodb-insights/) - [Network Security](src/boards/network-security/) - [Okta User Management](src/boards/okta-user-management/) - [Resource Classification](src/boards/resource-classification/) diff --git a/package.json b/package.json index bb436d2..e3995ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jupiterone/insights-dashboards", - "version": "4.0.1", + "version": "4.0.2", "license": "UNLICENSED", "description": "JupiterOne Insights Dashboards", "main": "insights-dashboards.js", diff --git a/src/boards/mongodb-insights/board.json b/src/boards/mongodb-insights/board.json new file mode 100644 index 0000000..61164c7 --- /dev/null +++ b/src/boards/mongodb-insights/board.json @@ -0,0 +1,185 @@ +{ + "widgets": [ + { + "noResultMessage": "No ingested API keys found", + "description": "show the related entities for all provisioned keys", + "includeDeleted": false, + "id": "4d305ef9-4c30-4ab5-abca-0ac672cb286b", + "title": "API Key Relationships", + "type": "graph", + "config": { + "queries": [ + { + "name": "Query 1", + "query": "Find mongodb_api_key that relates to * return TREE" + } + ], + "settings": { + "graph": { + "graphNodeView": "expanded", + "graphViewType": "tree" + } + } + } + }, + { + "noResultMessage": "No ingested API Keys found", + "questionId": "", + "description": "count of undeleted keys", + "id": "7a939522-532f-4f48-a692-80dc1ad9b3c5", + "title": "API Key Count", + "type": "number", + "config": { + "queries": [ + { + "name": "Query 1", + "query": "FIND mongodb_api_key AS i RETURN count(i) as value" + } + ], + "settings": { + "number": { + "trendDataIsEnabled": false + } + } + } + }, + { + "description": "count of users with production access", + "id": "6173eb71-938b-4b28-851f-dd1974972d63", + "questionId": "", + "title": "Production Access User Count", + "type": "number", + "config": { + "queries": [ + { + "name": "Query 1", + "query": "FIND mongodb_user as i THAT HAS << mongodb_project WITH tag.Production = true RETURN count(i) as value" + } + ], + "settings": { + "number": { + "warning": { + "limitCondition": "greaterThan", + "val1": "10" + }, + "trendDataIsEnabled": false, + "error": { + "limitCondition": "greaterThan", + "val1": "30" + }, + "success": { + "limitCondition": "greaterThan", + "val1": "20" + } + } + } + } + }, + { + "description": "mapped people with login user for MongoDB", + "id": "c311004b-6fcb-4a2a-a3b5-d5a70f0ad94a", + "questionId": "", + "title": "Count of People with MongoDB Users", + "type": "number", + "config": { + "queries": [ + { + "name": "Query 1", + "query": "FIND Person THAT IS << mongodb_user RETURN count (Person) as value" + } + ], + "settings": { + "number": { + "warning": { + "limitCondition": "greaterThan", + "val1": "10" + }, + "trendDataIsEnabled": false, + "error": { + "limitCondition": "greaterThan", + "val1": "30" + }, + "success": { + "limitCondition": "greaterThan", + "val1": "20" + } + } + } + } + }, + { + "description": "mapped relationships for production projects", + "noResultMessage": "No ingested MongoDB projects found", + "id": "f4f123eb-f58b-41d0-9bef-116f409f3d2b", + "title": "Production Project Relationships", + "type": "graph", + "config": { + "queries": [ + { + "name": "Query 1", + "query": "FIND mongodb_project WITH tag.Production = true THAT RELATES TO * RETURN TREE" + } + ], + "settings": { + "graph": { + "graphNodeView": "expanded", + "graphViewType": "mesh" + } + } + } + } + ], + "layouts": { + "sm": [], + "xs": [], + "lg": [ + { + "static": false, + "w": 12, + "moved": false, + "h": 2, + "x": 0, + "y": 0, + "i": "4d305ef9-4c30-4ab5-abca-0ac672cb286b" + }, + { + "static": false, + "w": 4, + "moved": false, + "h": 2, + "x": 0, + "y": 2, + "i": "7a939522-532f-4f48-a692-80dc1ad9b3c5" + }, + { + "static": false, + "w": 4, + "moved": false, + "h": 2, + "x": 4, + "y": 2, + "i": "6173eb71-938b-4b28-851f-dd1974972d63" + }, + { + "static": false, + "w": 4, + "moved": false, + "h": 2, + "x": 8, + "y": 2, + "i": "c311004b-6fcb-4a2a-a3b5-d5a70f0ad94a" + }, + { + "static": false, + "w": 12, + "moved": false, + "h": 2, + "x": 0, + "y": 4, + "i": "f4f123eb-f58b-41d0-9bef-116f409f3d2b" + } + ], + "xl": [], + "md": [] + } +} diff --git a/src/boards/mongodb-insights/board.png b/src/boards/mongodb-insights/board.png new file mode 100644 index 0000000..f8b55c2 Binary files /dev/null and b/src/boards/mongodb-insights/board.png differ diff --git a/src/boards/mongodb-insights/readme.md b/src/boards/mongodb-insights/readme.md new file mode 100644 index 0000000..9c70a32 --- /dev/null +++ b/src/boards/mongodb-insights/readme.md @@ -0,0 +1,13 @@ +--- +Publisher: JupiterOne +--- + +# MongoDB Insights + +![sample-screenshot](board.png) + +See all your API keys, users, access, and projects from MongoDB and how they relate to your inventory. + +> Prerequisite: +> +> This requires the following integrations: MongoDB diff --git a/src/index.ts b/src/index.ts index 483f9bd..aa8c7b9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -22,6 +22,7 @@ import highRiskAssets from "./boards/high-risk-assets/board.json"; import jamfCrowdStrike from "./boards/jamf-crowdstrike/board.json"; import jiraInsights from "./boards/jira-insights/board.json"; import kubernetesSecurityContext from "./boards/kubernetes-security-context/board.json"; +import mongoDbInsights from "./boards/mongodb-insights/board.json"; import oktaUserManagement from "./boards/okta-user-management/board.json"; import resourceClassification from "./boards/resource-classification/board.json"; import riskRegister from "./boards/risk-register/board.json"; @@ -60,6 +61,7 @@ export const InsightsDashboards = { "IR - User Endpoint Blast Radius": userEndpointBlastRadius, "Jira Insights": jiraInsights, "Kubernetes Security Context": kubernetesSecurityContext, + "MongoDB Insights": mongoDbInsights, "Network Access and Firewall Rules": firewall, "Okta User Management": oktaUserManagement, "Resource Classification": resourceClassification, @@ -231,6 +233,12 @@ export const MANAGED_BOARDS = [ category: BoardCategory.SDLC_DEVSECOPS, ...jiraInsights, }, + { + id: "mongodb-insights", + name: "MongoDB Insights", + category: "", + ...mongoDbInsights, + }, { id: "secure-development", name: "Secure Development",