Skip to main content

JSON-RPC Method Reference

The Flint Designer Bridge module exposes a JSON-RPC 2.0 API over two transports: a loopback WebSocket served by each running Designer (ports 52400–52500) and a headless HTTP endpoint on the gateway (POST /data/flint/rpc). Both speak the same wire format, so a client built against one transport works against the other for any method both support. This page is an index of every method; request and response shapes are conveyed by the TypeScript and Java DTOs in the extension and module source.

Prerequisites

Designer WebSocket methods require the Designer Bridge module installed on the gateway and a running Designer. Gateway HTTP methods require only the module and an API token — no Designer needed. See Module Installation, Security, and the Headless API.

Column key: WS = Designer WebSocket, HTTP = gateway headless HTTP endpoint.

Core and session​

MethodPurposeWSHTTP
authenticateAuthenticate the connection; all other methods are rejected until this succeeds✅✅
pingHealth check on an authenticated connection✅✅
executeScriptRun Jython with a persistent per-session variable context (Designer scope on WS, gateway scope on HTTP)✅✅
resetSessionClear the persistent script session state—✅
showMessageDisplay a message notification✅✅
project.scanTrigger a project scan so the gateway picks up file changes✅✅

Designer navigation and workspace​

MethodPurposeWSHTTP
designer.openResourceOpen a resource in the Designer workspace✅✅
designer.getOpenTabsList resources currently open in the Designer✅✅
designer.togglePreviewModeToggle Perspective preview mode in the Designer✅✅

Project​

MethodPurposeWSHTTP
project.listResourcesList project resources by type✅✅
project.getViewCatalogReturn the catalog of Perspective views in the project✅✅

View editing​

MethodPurposeWSHTTP
view.getConfigRead a view's full configuration✅✅
view.setConfigReplace a view's full configuration✅✅
view.getComponentRead a single component within a view✅✅
view.setComponentUpdate a single component within a view✅✅
view.validateValidate a view configuration without saving✅✅
view.getTreeReturn a view's component tree✅✅
view.saveSave a view resource✅✅
view.createCreate a new view✅✅
view.deleteDelete a view✅✅

Component schemas and icons​

MethodPurposeWSHTTP
component.listList registered Perspective component types✅✅
component.getSchemaReturn the property schema for a component type✅✅
icon.listList available icon libraries and icons✅✅
icon.searchSearch icons by name✅✅

Tags​

MethodPurposeWSHTTP
tags.browseBrowse a tag provider or folder✅✅
tags.readRead current tag values✅✅
tags.writeWrite tag values✅✅
tags.getConfigRead tag configuration✅✅
tags.createCreate tags✅✅
tags.editEdit tag configuration✅✅
tags.deleteDelete tags✅✅
tags.getProvidersList tag providers✅✅

UDTs​

MethodPurposeWSHTTP
udt.getDefinitionsList UDT definitions✅✅
udt.getDefinitionRead a single UDT definition✅✅
udt.createDefinitionCreate a UDT definition✅✅
udt.createInstanceCreate an instance of a UDT✅✅

Perspective​

MethodPurposeWSHTTP
perspective.isAvailableReport whether the Perspective module is present✅✅
perspective.listSessionsList active Perspective sessions✅✅
perspective.getSessionPagesList pages in a session✅✅
perspective.getPageViewsList views on a page✅✅
perspective.getViewComponentsReturn the live component tree of a running view✅✅
perspective.executeScriptRun a script in a Perspective session context✅✅
perspective.getComponentCompletionsComponent property completions for a session context✅✅
perspective.profileViewProfile a view's property and binding structure✅✅
perspective.startRecordingStart recording session events✅✅
perspective.stopRecordingStop an event recording✅✅
perspective.pollRecordingPoll for recorded events (primary mechanism on HTTP)✅✅

Debugging​

Real breakpoint debugging backed by a bdb.Bdb-based Jython debugger, with genuine stack frames and variable inspection. Conditional breakpoints are supported. See Debugger and its limitations.

MethodPurposeWSHTTP
debug.startSessionStart a debug session✅✅
debug.stopSessionStop a debug session✅✅
debug.setBreakpointsSet breakpoints (conditions supported)✅✅
debug.runRun a script under the debugger✅✅
debug.continueResume execution✅✅
debug.stepOverStep over the current line✅✅
debug.stepIntoStep into a call✅✅
debug.stepOutStep out of the current frame✅✅
debug.pausePause execution✅✅
debug.getStackTraceReturn the current stack frames✅✅
debug.getScopesReturn variable scopes for a frame✅✅
debug.getVariablesReturn variables in a scope✅✅
debug.evaluateEvaluate an expression in a paused frame✅✅
debug.pollEventsPoll for debug events (HTTP substitute for WebSocket push)—✅

Language server (LSP)​

Transport asymmetry

The Designer WebSocket implements only lsp.completion and lsp.invalidateCache. Hover, definition, references, diagnostics, symbols, and document sync exist only on the gateway HTTP endpoint, which hosts the full headless Jython language server. lsp.hover and lsp.signatureHelp are declared in the method registry but are not implemented on the Designer WebSocket. See Gateway LSP.

MethodPurposeWSHTTP
lsp.completionCode completion (Designer hint tree on WS; live gateway hint tree plus project-script modules on HTTP)✅✅
lsp.invalidateCacheInvalidate the Designer's completion cache✅—
lsp.didOpenOpen a document in the headless language server—✅
lsp.didChangeSync document edits—✅
lsp.didCloseClose a document—✅
lsp.reindexRebuild the project script index—✅
lsp.diagnosticsSyntax diagnostics for a document—✅
lsp.documentSymbolSymbols in a document—✅
lsp.workspaceSymbolSearch symbols across project scripts—✅
lsp.hoverHover documentation—✅
lsp.definitionGo to definition (intra- and cross-file into project scripts)—✅
lsp.referencesFind references—✅

Browser / CDP​

MethodPurposeWSHTTP
browser.getCdpInfoReport the Designer's embedded JxBrowser DevTools (CDP) port, if available✅✅

Push notifications (Designer WebSocket only)​

The WebSocket transport pushes server-initiated notifications; the HTTP transport has no push channel and relies on debug.pollEvents and perspective.pollRecording instead.

NotificationPurpose
lsp.cacheInvalidatedThe Designer's completion cache was invalidated
perspective.recordingEventA recorded Perspective session event occurred
perspective.recordingCompleteA session recording finished
note

Push notifications also include script-change events emitted by the Designer's script change detector, which the extension uses to keep local files in sync with Designer edits.