Wheelhouse

A form for every setting, the commands on request#

Until 0.9.0 this page said that every click showed its commands. Since 0.9.1 every page is a form instead, every pending change reads as a sentence, and the commands are one switch away for anyone who wants them. The configuration model underneath has not changed; you no longer have to read it to use it.

How to get the image The configuration model

Every setting is a form#

Each page edits what it lists: the rule, the reservation, the peer, the network, the setting. A value is checked where it is typed, and the reason is given under the field in plain terms — Enter an IPv4 address, such as 192.0.2.10. — before anything is saved. The save button stays unavailable while anything is wrong, so a value the router would refuse is caught on the page instead of coming back from the router as a refused commit.

Nothing on a page reaches the router. Save, Add and Delete add to the pending changes, and the Commit Bar applies them. No page hands a change to the console either: the last one that did, one-to-one NAT, has been a pair of rules the agent plans since 0.9.1.

Every change is a sentence#

The Commit Bar lists what is pending one object at a time, verb first, in the words the page uses, grouped by the area it belongs to:

Pending changes, as the Commit Bar lists them
Interfaces
 +  Add VLAN 20 on eth1
    Address 10.0.20.1/24, description “IoT”
System
 ~  Change the host name to edge-1

+ is an addition, ~ a change and − a removal, and each line has a Remove that takes that whole object back out of the pending changes. The sentences are written from the operations the router will be sent, so they describe what will run rather than what the form hoped for. A password, a pre-shared key or a private key is said to have been set or changed, and is never shown, whatever the reader's role.

The model has not changed

Every change is still a list of set and delete operations, applied as one transaction.

What changed in 0.9.1 is that you read it as sentences, and the operations are there when you ask for them.

The commands, one switch away#

Advanced mode is a preference of each account, off by default, under Account → Preferences. It is kept with the account, so it follows you from one browser to the next, and it changes what is shown, not what anyone may do. With it on, the router's own language appears beside the words:

WhereWith Advanced mode, also
Page headersThe part of the configuration tree the page edits
EditorsA preview of the commands the change adds
Empty pagesThe commands that would add what is missing
The Commit BarEach operation, + or −, with × to remove it, and a Commands block holding the whole set
A change the router refusedThe router's whole message
System → HistoryThe router's own diff of each revision
The navigationConfiguration tree and Reconcile, under System

Where the agent cannot act for you — creating an app's folders or running a capture when it is not on the router — the page says so in words, and Advanced mode adds the command to run by hand.

What you read is what runs#

The commands Advanced mode shows are the list the agent sends to /configure, spelled the way the CLI spells it. A value containing a space is one argument only once it is quoted, so the browser and the agent quote identically: the preview, the pending list and the commit are the same text, and a block copied out of the Commit Bar pastes into a configure session and does the same thing.

System → Configuration tree browses the running configuration, searches it, and shows any part of it as the set lines that recreate it. It is read only.

Read on#

Make a change, then read it back

Fill in a form and read the sentence in the Commit Bar. Turn on Advanced mode and read the commands behind it.

How to get the image How it works