VectarisQL

VectarisQL

VectarisQL is the small, positional language typed into query-bar rows across Vectaris — not a database, and not a server-side query engine. Every row is parsed and evaluated entirely in the browser, against data the platform has already fetched.

What it is

A VectarisQL row is one line of text that self-describes what it means — the row type is derived from the text itself, never from a hidden flag stored alongside it. There's no schema to declare and no connection string: a Chart tab's query bar and a DataGrid tab's query bar both take rows written in this same language, and parsing happens client-side against bars, positions, and orders the platform already holds in memory.

Row types

Four row shapes, decided by classifyRow from the row's own text:

  • Indicator — the first token contains (, e.g. RSI(14).
  • Collection — the first token's head (before any : or @) matches a known collection keyword (ORDERS, POSITIONS, BALANCES, ACCOUNTS) or a collection name the connected broker declares (e.g. FILLS).
  • Symbol-only — used only by modules whose query support is symbol selection alone, with no data series, indicators, or collections — a bare SYMBOL[@ROUTE][:ADAPTER].
  • Data series — everything else; the default when nothing above matches.
AAPL 1D 30D
RSI(14) OPTIONS:{PANEL:NEW}
ORDERS WHERE STATUS='Filled' ORDER BY TIME DESC

A data series row, an indicator row, and a collection row, in that order.

Where it appears

  • Chart — the multi-row query bar accepts data-series and indicator rows.
  • DataGrid — accepts data-series and collection rows; a new DataGrid tab seeds a row like AAPL 1D 30D.
  • Options chain, SuperDOM, Time & Sales, Analyze — each wires the same query-bar component with symbol-only support, so their query bar takes just SYMBOL[@ROUTE][:ADAPTER].
  • Watchlist takes bare, upper-cased ticker symbols through its own add-symbol flow. It does not run through this parser, so @ROUTE/:ADAPTER qualifiers and the other row types don't apply there.
  • The AI assistant is briefed on the QueryBuilder/VectarisQL module in its system prompt so it can explain or open it, but its own tools (add_chart, change_symbol, …) take structured parameters, not raw VectarisQL text.

Casing and quoting

Symbols, routes, collection names, and OPTIONS:{} keys and enum values are all upper-cased on parse — type spy 1d 30d and it becomes SPY 1D 30D. Adapter labels (:Schwab) round-trip with whatever casing you typed — they're free-form broker identifiers, not language keywords. Quoted strings ('...', "...") and ISO dates keep their casing exactly as typed, and WHERE string literals are not force-uppercased.

Reference