Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cupiditatequi

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cupiditatequi

Monorepo that includes Compass and all its dependencies

  • 1.5.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

MongoDB Compass

The MongoDB GUI.

Aggregation Pipeline Builder Tab in Compass

Development

Running Compass locally requires Node.js and npm:

  • Node.js: ^16.15.0
  • npm: ^8.15.1
npm install
npm start [compass|compass-readonly|compass-isolated]

Plugins

Current Plugin API Version: 3.0.0

Majority of Compass' functionality lives in various plugins outside the main repo. This repo just brings them all together. All external plugins are tagged via the compass-plugin topic in the mongodb-js organisation. There are also various compass-tools and compass-ui-tools packages that help put together the application.

Plugins can be added to Compass by requiring them as a dependency in package.json, and by adding their installed location to the distribution plugin list also in the package.json. Plugin's apiVersion field has to match Compass'. Currently it's at 3.0.0.

Example of adding a dependency:

npm i -S @mongodb-js/compass-aggregations@latest

And in package.json:

"distributions": {
  "default": "compass",
  "compass": {
    "name": "mongodb-compass",
    "plugins": [
      "node_modules/@mongodb-js/compass-aggregations", // add compass-aggregations
      // rest of the plugins required for this distribution
    ],
    "styles": [
      "index"
    ]
  },
  // other distribution config
}

Plugin Roles

Compass determines functionality of a plugin based on its registered Role. There are a few mains ones that we use:

  • Instance.Tab - Display as tabs in the instance context of the app. For example, server-status-plugin.
  • Database.Tab - Display as tabs in the database context of the app. compass-databases-collections is registered as a Database.Tab, for example.
  • Collection.Tab - Display as sub tabs in the collection context of the app. A good example of this is the compass-crud.
  • Global.Modal - Will open as modal dialogs in any context of the app. These can be separate plugins entirely, or part of an existing plguin that does something else. For example, compass-aggregations is an Collection.Tab, but also registers a Global.Modal.
  • Collection.ScopedModal - Will open as a modal scoped in the collection context. compass-import-export, for example, registers 2 ScopedModals - one for import and the other for export.

Creating a New Plugin

We use a template to create new plugins. It comes set up with packages we might need to be using, and an electron environment to debug and test the plugin. The template is managed by khaos

npm i -g khaos
khaos create mongodb-js/compass-plugin ./my-plugin

Contributing

For issues, please create a ticket in our JIRA Project.

For contributing, please refer to CONTRIBUTING.md

Is there anything else you’d like to see in Compass? Let us know by submitting suggestions in out feedback forum.

License

SSPL

FAQs

Package last updated on 01 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc