JavaScript Other
Clone or download
Permalink
Failed to load latest commit information.
assets/splash Clean Commit Jul 10, 2017
build Fixed windows 10 broken taskbar icon Jan 10, 2018
flow-typed Minor improvements to loading logic May 4, 2018
misc Fixed windows 10 broken taskbar icon Jan 10, 2018
src Made consistent with controller winston.js Jun 28, 2018
.babelrc Upgraded to latest deps and babel config Nov 29, 2017
.esdoc.json Clean Commit Jul 10, 2017
.eslintignore Fixed eslint error Nov 27, 2017
.eslintrc.yml Fixed Output tests and page object, removed no-mixed-operators eslint May 15, 2018
.flowconfig Improved flow Dec 15, 2017
.gitignore Fixed electron-builder controller dependency problem Nov 28, 2017
.nvmrc Added travis for code quality and unit testing Jan 29, 2018
.prettierrc.yml Added format support Apr 24, 2018
.travis.yml Added travis for code quality and unit testing Jan 29, 2018
LICENSE Clean Commit Jul 10, 2017
README.md Updated ReadMe Jul 4, 2018
buildFromSource.sh Update buildFromSource.sh Jul 14, 2017
electron-builder-dev.json Updated winston to match controller setting Mar 7, 2018
electron-builder-release.json Updated winston to match controller setting Mar 7, 2018
electron-builder.json Updated winston to match controller setting Mar 7, 2018
jest.json Clean Commit Jul 10, 2017
jest.win.json enable shard test case on windows Aug 28, 2017
links.cmd Fixed electron-builder controller dependency problem Nov 28, 2017
package.json Bumped version to 1.0.1 Jun 28, 2018
process-palette.json Added format support Apr 24, 2018
releaseNotes.md Release Notes Jul 4, 2018
supportBundle.ps1 Support bundle Sep 14, 2017
supportBundle.sh Added directory existence checks to support bundle Nov 13, 2017
yarn.lock Added full raygun support May 3, 2018

README.md

dbKoda

State of the art MongoDB IDE

CQUTesting dependencies devDependencies

dbKoda is a modern (JavaScript/Electron framework), open source IDE for MongoDB. It has features to support development, administration and performance tuning on MongoDB databases. It has a rich feature set, including:

  • Rich text editor with auto-complete, syntax highlighting and code formatting
  • Visual explain plan with indexing advisors
  • A real time performance dashboard
  • Graphical aggregation and command builders
  • One-click access to MongoDB administration commands
  • Disk Storage analysis
  • SQL queries using Apache Drill
  • Data load and unload utilities
  • and a lot of more… check our blogs and website for details.

Download latest release: v1.0.1

This repository defines dbKoda's building, user acceptance testing (UAT), launching and packaging workflows.

Requirement

Setup

  1. Make sure dbkoda-ui, dbkoda-controller and dbkoda are sibling folders to each other within a same parent folder, e.g:
root_folder
├── dbkoda-ui
├── dbkoda-controller
└── dbkoda
  1. [Important] In dbkoda, run the following command yarn dev:link. This is only needed for the first setup. If you are installing on windows, use yarn dev:link:win.
  2. Run yarn install within all 3 repos.
  3. To build a new the app, yarn run pack. For Windows, use yarn pack:win.
  4. To build a version of the app, run yarn run dist:dev (without compression) and yarn run dist (with normal compression). For Windows, use the command yarn dist:win.
  5. [optional] After you have tried above commands, your dbkoda-controller’s native modules will be built against electron‘s node version. If you want to go back to 'byo' mode, you need to run yarn dev:rebuild:current to rebuild these native modules against your current node version.
  6. [optional] If you encounter errors or irregularities during any of these steps, you can run rm -rf node_modules within each of the repositories, and then run yarn install again. If you are still having troubles, please check our FAQs or raise a new topic at our support site

Config

You can config dbKoda by putting a config.yml in your dbKoda home folder as follows:

# Note: please use full path for all commands

# Local mongo binary path. dbKoda will detect your mongo binary upon first launch in your login
# shell
mongoCmd: /usr/local/bin/mongo

Docker Config

Please configure docker command if you are using mongo shell through a docker container:

dockerEnabled: true
docker:
  mongoCmd: docker run -it --rm mongo mongo
  mongoVersionCmd: docker run --rm mongo mongo --version

Below configuration is used to run mongo shell through existed docker container:

dockerEnabled: true
docker:
  mongoCmd: docker exec -it CONTAINER_ID mongo
  mongoVersionCmd: docker exec CONTAINER_ID mongo --version

Please configure the mongo os commands if you want to use backup/restore through docker container. You need to specify the mount points for the docker container in order to backup/resore your mongo file. Otherwise, the data you backedup will be wipped after the container exist.

dockerEnabled: true
docker:
  mongoexportCmd: docker run --rm -v OS_PATH:CONTAINER_PATH mongo mongoexport
  mongoimportCmd: docker run --rm -v OS_PATH:CONTAINER_PATH mongo mongoimport
  mongodumpCmd: docker run --rm -v OS_PATH:CONTAINER_PATH mongo mongodump
  mongorestoreCmd: docker run --rm -v OS_PATH:CONTAINER_PATH mongo mongorestore

dbKoda Home Folder

Mac & Linux: ~/.dbKoda/ Windows: c:\Users\<username>\.dbKoda\

Development

In development mode dbKoda has four running modes: byo, super_dev, dev and prod

Bring Your Own (BYO) Dev Mode (byo)

You can separately launch your own copy of dbkoda-ui or dbkoda-controller to be used by dbkoda in this mode. You should unlink dbkoda-ui and dbkoda-controller from dbkoda in this mode to avoid unwanted interference.

Start BYO mode using the commands yarn run byo or yarn byo.

Super Dev Mode (super_dev)

Hot-reloading of dbkoda-ui is enabled in this mode. When app launches, Webpack needs some time to package the UI for the first time, so the launching speed is much slower than other modes.

yarn run super or yarn super

Dev Mode (dev)

yarn run dev or yarn dev

Devtron

Devtron is an Electron DevTools extension to help you inspect, monitor, and debug your app, to install Devtron, follow the steps below.

  1. yarn add -D devtron
  2. Run require('devtron').install() in Chrome DevTools. In either BYO or Super Dev mode, you should run this in DevTools of splash screen window. You can kill dbkoda-ui, and create a new window (cmd+n) in electron, so a new splash screen window will keep shown. This step is only needed for first time installation.

React DevTools

React component tree inspector extension for Chrome DevTools

  1. yarn add -D electron-react-devtools
  2. Run require('electron-react-devtools').install() in Chrome DevTools. In either BYO or Super Dev mode, you should run this in DevTools of splash screen window. You can kill dbkoda-ui, and create a new window (cmd+n) in electron, so a new splash screen window will keep shown. This step is only needed for first time installation.

Transpiling ES6 Code

yarn run build or yarn build

Cleaning up Transpiled ES6 Code

yarn run clean

Packaging into App (prod)

yarn run pack

To Pack for windows yarn run pack:win

Packaging into Installer (prod)

With normal compression (around 3 min):

yarn run dist or yarn dist

Fow Windows: yarn run dist:win or yarn dist:win

Without compression (fastest, around 1 min):

yarn run dist:dev or yarn dist:dev

Testing

Following commands will run all test suites under tests. To run a particular test suite, e.g. example1.test.js and example2.test.js with jest:dev command:

yarn jest:dev "example[1,2].test.js"

Development (byo)

This will run eslint and jest against unpacked app

yarn test or yarn test:dev

Production (prod)

This will run eslint then jest against packed app

yarn test:prod

Jest only (byo)

This is spectron based UAT

yarn jest:dev

Jest only (prod)

Similar to previous one, but run jest against packed app

yarn jest:prod

Run only

Run jest against previously packed app

yarn jest:prod:runonly

UAT Test

Set up below environment variables for UAT testing:

  • EC2_SHARD_CLUSTER_HOSTNAME
  • EC2_SHARD_CLUSTER_USERNAME
  • EC2_SHARD_CLUSTER_PASSWORD
  • ATLAS_SERVER_HOSTNAME
  • ATLAS_SERVER_USERNAME
  • ATLAS_SERVER_PASSWORD