consul/ui
Jack efb905c707 Add JSON validation to update view
JSON validation has now been added to the update view following the same format
as create. Since 'valueDecoded' does not have the ability to check if the value
is base64 before decoding then this must be checked first; if it is base64 then
use the decoded one, if not just get the value.

Change incorrect trailing span close to label.
2017-05-02 17:20:36 +09:00
..
javascripts Add JSON validation to update view 2017-05-02 17:20:36 +09:00
scripts Moves the static assets into a subfolder where index.html expects them. 2015-10-27 18:19:17 -07:00
static Add JSON validation to UI 2017-05-02 17:20:35 +09:00
styles Add JSON validation to UI 2017-05-02 17:20:35 +09:00
tests ui: add nodeShow test 2014-06-10 16:36:06 -04:00
GNUmakefile Acknowledge that we're using GNU make's dialect and rename appropriate 2016-02-05 14:24:26 -08:00
Gemfile ui: update ember, dist steps 2014-05-01 11:21:55 -04:00
Gemfile.lock properly escape session and acl data in UI (#2456) 2016-10-31 18:16:43 -07:00
README.md UI updates for new Consul logo 2017-04-12 18:58:06 -04:00
development_config.json revert 8bf8871, fc2aad3, 503d338. 2015-08-07 16:40:49 -07:00
index.html Add JSON validation to update view 2017-05-02 17:20:36 +09:00
style-guide.html Everything is pink now 2017-04-13 09:27:32 -04:00

README.md

Consul Web UI

This directory contains the Consul Web UI. Consul contains a built-in HTTP server that serves this directory, but any common HTTP server is capable of serving it.

It uses JavaScript and Ember to communicate with the Consul API. The basic features it provides are:

  • Service view. A list of your registered services, their health and the nodes they run on.
  • Node view. A list of your registered nodes, the services running on each and the health of the node.
  • Key/value view and update

It's aware of multiple datacenters, so you can get a quick global overview before drilling into specific data-centers for detailed views.

The UI uses some internal undocumented HTTP APIs to optimize performance and usability.

Development

Improvements and bug fixes are welcome and encouraged for the Web UI.

You'll need sass to compile CSS stylesheets. Install that with bundler:

cd ui/
bundle

Reloading compilation for development:

make watch

Consul ships with an HTTP server for the API and UI. By default, when you run the agent, it is off. However, if you pass a -ui-dir flag with a path to this directory, you'll be able to access the UI via the Consul HTTP server address, which defaults to localhost:8500/ui.

An example of this command, from inside the ui/ directory, would be:

consul agent -bootstrap -server -data-dir /tmp/ -ui-dir .

Basic tests can be run by adding the ?test query parameter to the application.

When developing Consul, it's recommended that you use the included development configuration.

consul agent -config-file=development_config.json

Releasing

make dist

The ../pkg/web_ui folder will contain the files you should use for deployment.

Acknowledgments

Cog icon by useiconic.com from the Noun Project

Compiling the UI into the Go binary

The UI is compiled and shipped with the Consul go binary. The generated bindata file lives in the command/agent/bindata_assetfs.go file and is checked into source control. This is useful so that not every Consul developer needs to set up bundler etc. To re-generate the file, first follow the compilation steps above to build the UI assets into the pkg/web_ui folder. With that done, from the root of the Consul repo, run:

$ make static-assets

The file will now be refreshed with the current UI data. You can now rebuild the Consul binary normally with make bin or make dev, and see the updated UI after re-launching Consul.