Less than a year after its debut, Southbank Software recently released a milestone version 1.0 of their flagship product, dbKoda, an open source database development tool for MongoDB. dbKoda features a rich text editor, graphical aggregation builders, and a performance dashboard.
Based on user feedback, Southbank Software restructured the user interface for version 1.0. Developers can expect to find:
- Quick access toolbars.
- Left-click options that were once right-click options.
- Application subpanels that may now be hidden to maximize screen real estate.
- Query output displayed in table format (instead of the usual JSON format) by default.
- An improved connection wizard that includes support for MongoDB clusters.
The real-time dashboard, introduced in version 0.10.0, has been upgraded and become integral to the new Performance Lab which includes a Top Connections view, a utility to identify the most active database connections, and a Profile Explorer view, a utility to capture and explore operations captured by the profiler. Both of these utilities generate corresponding MongoDB code for various database operations.
dbKoda now supports connections to MongoDB through Docker images should no local installation of MongoDB be available. This is accomplished by configuring Docker in dbKoda's config.yml
file:
dockerEnabled: true
docker:
mongoCmd: docker run -it --rm mongo mongo
mongoVersionCmd: docker run --rm mongo mongo --version
By default, the dockerEnabled
property in config.yml
is set to false
and the other properties are, for the most part, empty. As shown below, there are other MongoDB settings that may be configured.
dockerEnabled: false
docker:
createNew: true
imageName: ''
containerID: ''
hostPath: ''
containerPath: ''
mongoCmd: ''
mongorestoreCmd: ''
mongodumpCmd: ''
mongoexportCmd: ''
mongoimportCmd: ''
mongoVersionCmd: ''
Guy Harrison, CTO at Southbank Software, spoke to InfoQ about this latest release.
InfoQ: In light of the recent release of MongoDB 4.0 at MongoDB World 2018, how does any upgrade to MongoDB affect development of dbKoda or user experience?
Guy Harrison: We've been testing against the MongoDB 4.0 beta for a few months now, so we are confident that dbKoda is 100% ready to go with MongoDB 4.0.
MongoDB 4.0 is a pretty painless upgrade. Only when you implement the new transactions features - which require coding changes - will you notice any new behaviour. Transactions are of course a huge deal for MongoDB, though it's amusing to remember that in this respect they are implementing functionality that we first saw in commercial databases in the mid-1980s.
Developers will probably find transactions easy enough to introduce in their code - the syntax is familiar to anyone who's used a SQL database - but the performance impact will be harder to manage. We'll be looking to introduce some support for transaction tuning in a future release of dbKoda.
InfoQ: What makes dbKoda unique over other MongoDB management tools such as Compass or Robo 3T?
Harrison: There's definitely an overlap between the various MongoDB tools and IDEs and I'd rather not make assertions about other products. I would say, however, that we've pushed harder in two main areas: coding and performance management. While we do provide GUI methods for performing tasks - building aggregations, queries, performing admin, etc - we always generate the code that is used to perform the task and put the code in the users hands - the philosophy being that all actions should be represented as code.
On performance management, we've provided a performance lab which we think provides a far richer and powerful real-time management dashboard for MongoDB than is available elsewhere.
I'd also point out that, unlike the other tools you mentioned, dbKoda is open source (AGPL license).
InfoQ: Is MongoDB still the only database being supported? If so, are there plans to add support for other databases?
Harrison: For now, dbKoda supports only MongoDB; we don't expect to be working on other database systems in the near future.
InfoQ: What else would you like our readers to know about dbKoda?
Harrison: Really, we'd like the users to tell us what they'd like in the product. It's free and open source, so there's really no reason not to take it out for a test drive. To date, we've implemented almost all the features requested by our end users, so if you want a tool to perform some particular MongoDB task, let us know!
InfoQ: Now that you've reached this milestone, what's next for dbKoda?
Harrison: We have something big under development that will work in conjunction with dbKoda - I'm going to have to be mysterious about that for a while! We feel dbKoda itself has a rich feature set, so we will be working on improving ease of use and stability for the next few releases.