Skip to main content

Resource Types & Operations

Flint models an Ignition project as a tree of typed resources — scripts, named queries, Perspective views, and configuration — and lets you create, rename, duplicate, and delete them directly from VS Code without opening the Designer. All resource operations work against files on disk, so they behave the same whether or not a gateway is reachable.

Prerequisites

Works completely offline. You only need a valid flint.config.json with at least one project path — no gateway connection, API token, or Designer Bridge module is required. See Configuration.

Supported resource types

Flint ships providers for seven built-in resource types:

Resource typeType IDPrimary fileCategorySingleton
Project Scriptsscript-pythoncode.pyNo
Named Queriesnamed-queryquery.sqlNo
Viewsperspective-viewview.jsonPerspectiveNo
Style Classesperspective-style-classstyle.jsonPerspectiveNo
Page Configurationperspective-page-configconfig.jsonPerspectiveYes
Session Propertiesperspective-session-propsprops.jsonPerspectiveYes
Session Eventsperspective-session-eventsdata.binPerspectiveYes

Singleton types have exactly one resource per project. In the Project Browser, clicking a singleton node creates the resource automatically if it does not exist yet.

note

Session Events are stored in a binary file (data.bin), so their content is not included in full-text search.

Resource keys

Every resource is identified by a key with the format:

{typeId}:{categoryId?}/{resourcePath}

The category segment is optional and only present for categorized types — the Perspective family in the table above. Examples:

  • script-python/utils/logging — a project script at utils/logging
  • perspective-view:perspective/Overview/Main — a Perspective view
  • named-query/reports/daily-totals — a named query

Creating, renaming, and deleting resources

Right-click a resource type, folder, or resource in the Project Browser to access these operations. Titles below are the exact context-menu labels.

OperationCommandWhat it does
Create Resourceflint.createResourceCreates a new resource from a type-appropriate template (e.g. a starter code.py or view.json), with name validation
Create Folderflint.createFolderCreates a folder under the selected type or folder
Deleteflint.deleteResourceDeletes a resource or folder after a modal confirmation
Duplicateflint.duplicateResourceCopies a resource to a new name alongside the original
Renameflint.renameResourceRenames a resource or folder
Copy Pathflint.copyResourcePathCopies the resource path to the clipboard
Open Resourceflint.openResourceOpens the resource's primary file in the editor
Open in Designerflint.openInDesignerOpens the resource in a connected Ignition Designer (requires the Designer Bridge)

New resources are created with the correct directory layout and a valid resource.json, so they are immediately recognized by Ignition on the next project scan.

warning

Resource operations edit project files directly on disk. If the same project is open in a running Designer, save or discard your Designer changes first — the Designer does not merge external edits automatically, and saving from the Designer can overwrite changes made in VS Code.

resource.json management

Every Ignition resource directory must contain a resource.json manifest. It declares the resource's scope, files, and attributes; without it, the Ignition gateway does not recognize the directory as a resource at all. Manifests can go missing when files are created by hand, copied between projects, or mangled by a bad merge.

Flint surfaces these problems as warning decorations in the Project Browser — a missing resource.json marks the resource and propagates a warning badge up through its parent folders — and provides commands to repair them:

Command palette titleCommandWhat it does
Flint: Create resource.jsonflint.createResourceJsonGenerates a manifest for the selected resource
Flint: Create All Missing resource.json Filesflint.createAllMissingResourceJsonScans the project and generates every missing manifest in one pass
Flint: Validate resource.json Filesflint.validateResourceJsonChecks existing manifests for structural problems
Flint: Validate Projectflint.validateProjectRuns project-wide validation, including manifest checks

The Project Browser also decorates resources with an invalid resource.json, a missing inheritance parent, circular inheritance, or a deprecated resource type. See Project Browser for the full decoration reference.

  • Project Browser — the tree view where these operations live
  • Search — find resources by name, path, or content
  • Embedded Scripts — edit scripts embedded inside JSON resources as real Python files