couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Russell Branca <>
Subject Fauxton Tidings
Date Wed, 19 Jun 2013 18:16:42 GMT
(Also gisted at

# Fauxton Tidings

It's been some time since we've had a Fauxton update. There's been a
number of exciting updates with active tasks, replication, UI updates
and more. So let's dive in.

## Active Tasks

Active tasks is an interesting item. Traditionally in Futon, active
tasks have been relegated to the status page, but I'm of the opinion
Fauxton should not only provide an interactive interface to your data,
but also a visual overview of the current pulse of your CouchDB
server. Things like active tasks, stats, and logs should be displayed
prominently in some sort of dashboard page. Garren has been working on
the logs and stats views in Fauxton, and DCH and Banjiewen have been
experimenting with new stats collectors. Long term I would love to
have a front dashboard showing you live views into this data.

To start with, we're making active tasks a first class citizen of the
application. Any time you're in Fauxton, it will poll \_active\_tasks
and give you an immediate overview of the number of replications,
compactions, and indexing jobs currently running, giving you immediate
feedback on what is going on behind the scenes. Sue has been working
on an initial active tasks page that lists all the current tasks with
progress bars and ability to filter on the different types of tasks.

Long term I want to extend the active tasks page to do more advanced
visualizations and calculate rate of change to give estimates of time
to completion. What else would be useful here? How do you want to see
an overview of the background tasks running?

## Replication

In addition to active tasks, Sue has been working on a replication
interface. Step one is to build the transient replicator interface,
basically the same interface that is in Futon now, but with a proper
interface for all the different options such as choosing a filter
function, and specifying doc ids.

Step two is build out a proper interface around the _replicator
database, allowing you to create new persistent replications,
introspect existing replications, look at historic replications, and
also to visually expose the powerful advanced options of the new
replicator allowing higher throughput replications.

What kinds of interfaces sounds useful for interacting with the
replicator database? What would you find useful for creating and
managing replications through Fauxton?

One question I have, are transient replications through _replicate
deprecated in favor of interacting with the _replicator database? at
least as the default? Given that you can do one time replications
through the _replicator database, should we default to creating a doc
in _replicator rather than just POSTing to _replicate? We could always
have an option for both, but given that it will store stats and allow
you to see past history, it seems useful to use the _replicator db as
the default option. Thoughts?

## UI Updates

I'm excited to report that there are some great new designs for the
Fauxton UI.

### _all_dbs page


Notice in the left hand bar the "active tasks" this will live update
with the current number of tasks, and then allow you to go see a
detailed view.

### Documents and indexes overview


I'm a big fan of how this page turned out. The idea with the list of
items is that the darker grey area with \_id and \_rev are the primary
display of elements, and then you can toggle "collapse" above to show
the inner content, basically it's a display for ?include\_docs=true.
You can also keep it collapsed by default and click on the row to load
that doc and display it inline individually.

Initially the display is more of a document oriented approach in that
it displays the json structure of the rows. The next step is to add a
tabular view of the data, which is particularly useful for displaying
views with complex array keys and scalar values.

### View editor


This is a fun page. The left hand editors for the map and reduce
queries both use the CodeMirror editor which does nice syntax
highlighting and proper indentation, and then we run every change made
through JSHint and do live error notifications, and provide inline
alerts right at the line in question.

Also note the preview button. We borrowed the in browser map reduce
implementation from PouchDB and provide preview functionality by
running a subset of your documents through the map reduce functions
directly in the browser, allowing us to skip temporary views. Long
term it would be great to rebuild the temporary view system to only
operate on a subset of the data, but until then, I think this is a
better approach for allowing you to write and edit views on live data.

Also having the advanced query options is something I've wanted in
Futon for quite some time. There's some room for making group_level
and the reduce toggle more accessible, but I think initially having
all the options available is a big win.

### Document editor


This is a slightly reworked version of the current code editor we have
now. Same as above with the view editors, this uses CodeMirror and has
all the nice live linting and what not.

Not shown here is the work Garren has been doing on attachment
uploads, which are currently functional in master.

There has been some discussion about removing the stand alone page for
the document editor and replacing it with a modal popup, so you can
click the edit button directly from the documents and views list and
have it show up immediately without losing your place. Thoughts?

## Wrapping up

Well my battery is about to die and this turned into quite the update.
Overall there are a number of exciting new things in Fauxton, and I'm
really stoked with how the UI design turned out, props go out to Sean
from Cloudant on that, my CSS is limited to adding Bootstrap elements.

There's a lot of good activity going on in Fauxton, and it's quite
straightforward to get up and running now. We've also got a number of
open JIRA cases for anyone looking for something to work on. Cheers!

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message