Portal guide

Explorer

The Explorer sends queries and declarations to a namespace as one of your keys, live or at an earlier moment of its record, without the browser ever holding the key.

What this page is for#

The Explorer (/explorer) is an interactive client for one namespace. You write TERSL declarations and queries in two boxes, send them as one Issue, and read the answer in a log of every Issue you have sent. Every request is made as one of your keys, so what you see and what you may change are exactly what that key's grants allow. The Explorer can also be pointed at an earlier moment of the record, where it reads the namespace as it stood then.

Who can see it#

Every signed-in user who holds a key that some active namespace grants. An administrator holds every key in the account; a limited user holds the keys they were given on the Users page. What each request may read or write is decided by the namespace's grants for the chosen key.

What is on the page#

The pickers#

Namespace and Key choose what to explore and as which key; press Open. They behave as described in the namespace and key pickers. If there is nothing to explore, the page says why: there is no active key, no active namespace, or no key granted in the chosen namespace.

The wiring line#

A line above the explorer names the namespace, the key and the path the requests go through, with the caption "The portal attaches the key on the far side of /proxy. This browser never holds it." The browser knows only the key id. The portal adds the credential to each request on its own side, so no secret ever reaches the page, its storage or its network traffic. The line ends with a Bulk data link to the Bulk data page for the same namespace and key.

The log#

The Log pane shows one entry per Issue, newest at the bottom: what was sent, the query answers and the messages the service returned. An arrow at the end of an entry puts its declarations and query back in the boxes. clear log empties the pane. When the service reports diagnostics, they are listed below the log.

The two boxes#

The box marked 01 Declarations holds TERSL declarations, the changes to make. The box marked 02 Query holds TERSL queries, the things to read. Each box has a clear button (×). Tick keep on the query box to keep the query after an Issue, which is useful when you change data and want to read the same thing each time. The divider between the boxes can be dragged to resize them.

The Issue button#

Issue (or Ctrl+Enter) sends both boxes as one Issue. The Explorer joins them with the seam line %%%SEAM%%%, which is how the wire separates declarations from queries; you do not type it. A 200 means the Issue was processed. Refusals, such as a write the key's grants do not allow, are reported as messages in the log entry, and the status is still 200.

For example, with this in 01 Declarations:

tersl
# Places
## Harbour(open)

and this in 02 Query:

tersl
? Places [DEPTH 1]

one Issue writes the Harbour container and reads Places back with it.

The moment bar#

When the Explorer is at an earlier moment, a bar above it says "as of csn 4096" (or "as of" a time in UTC) and offers:

  • ◀ 4095 and 4097 ▶ to step one CSN back or forward;
  • History around here, which opens History centred on this point;
  • Copy from here (administrators), which opens the copy form at this point; see Copy;
  • Live, which returns to the current state.

The Explorer needs JavaScript. Without it, the pickers work and the explorer area says so.

Actions#

Send an Issue#

Choose a namespace and key, write declarations, a query or both, and press Issue. The declarations of one Issue are applied together, as one step of the namespace's record. The answer to the query reflects the state after the declarations. Queries see only what the key's grants let it read.

Read the namespace at an earlier moment#

Open the Explorer at a point in the record by pressing Query at this step on a row of History, or by opening /explorer?ns=NAME@CSN or /explorer?ns=NAME@TIME with an RFC 3339 time such as 2026-09-20T16:30:00Z. At a CSN past the newest, the service answers the newest. At a time, the namespace is read as it stood at the newest step committed at or before that time.

At a moment the namespace is read-only: queries are answered from the state at that point, and an Issue that carries declarations is refused with "an Issue with … is queries only; the past is read-only". What the key sees at a moment is decided by its history right under the grants as they stand now, so a key that has read but not history sees nothing in the past.

Step through the record#

From a moment, use ◀ and ▶ to move one CSN at a time and re-run your query at each step. Live returns to the present.

Copy from a moment#

As an administrator, press Copy from here on the moment bar. History opens with the copy form filled in for this point.