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.