SlipStream Web UI
An application that provides a graphical interface to cloud management services that use the CIMI interface.
Frameworks and Libraries
- SlipStream Clojure(Script) API: Provides a ClojureScript API for the CIMI and CIMI-like resources within SlipStream.
- Reagent: Provides a ClojureScript interface to the React framework.
- re-frame: A framework that relies on React for visualization and provides mechanisms for using "FRP" for data flow and control.
- Semantic UI React: React integration for Semantic UI.
The essentials for using the development environment are below.
To test the code on a SlipStream server (e.g. https://nuv.la/) running on a different machine, you'll need to start a browser with the XSS protections disabled.
For Chrome on MacOS, this can be done with:
$ open /Applications/Google\ Chrome.app \ --args --disable-web-security --user-data-dir
For Safari, first enable the "Develop" menu:
- Open the Safari preferences,
- Click the "Advanced" tab, and
- Then activate the "Show Develop menu in menu bar" option.
Once the "Develop" menu is visible, choose the "Disable Cross-Origin Restrictions" option.
There may be FireFox plugins that will allow you to disable the CORS protections. The easier solution is to use Chrome or Safari.
The build uses shadow-cljs to facilitate
you install the
npm command line interface on your development
On Mac OS, the
npm command comes with the Node.js distribution of
Homebrew. Just run the command
brew install node.
For other distributions or for direct installation on Mac OS, take a look at the Node.js downloads page.
The development environment requires
lein. Follow the instructions on the
Leiningen website to install the tool.
Once all of the development tools have been installed, the workflow is as follows:
npm installat the root of the cloned repository. This only needs to be done once at the beginning and then whenever dependencies change.
Start a development server for the build with
lein dev. When this completes ("build completed" message in the terminal), you can then connect to the process on http://localhost:8280.
Changes you make to the code should automatically be recompiled and then pushed to your browser.
If you need a REPL, you can run the command
lein cljs-replfrom a different terminal.
You can terminate the process with Ctrl-C from the terminal window.
Integration with IntelliJ
You can import the repository through IntelliJ, using the "leiningen" method in the dialog.
If you have the IntelliJ command line installed, the shadow-cljs heads-up display, should open files in the IntelliJ editor.
The command for opening Chrome with the security disabled, can be configured as an "external tool" in IntelliJ. In "Preferences", go to the "Tools" -> "External Tools" panel.
You can reset the logging level for kvlt from the REPL when running in development mode. From the REPL do:
=> (require '[taoensso.timbre :as timbre]) => (timbre/set-level! :info)
The default value is
:debug which will log all of the HTTP requests
and responses. This is useful when debugging interactions with
SlipStream, but annoying otherwise.