Airflows DSL for Visual Studio Code Plugin
Modeling tool for Airflows DSL (Domain Specific Language). Extension for VS Code and Cursor that allows modeling, downloading, exporting, and deploying Airflows models.
Current extension version: see package.json (e.g. 1.0.7).
Repository: github.com/Air-Flows-Data-Platform/airflows-dsl
Incident analysis & support index (in this repo): docs/analisis-incidencias/README.md. Extended triage docs for the full Airflows workspace live under docs/ at the monorepo root when this package is checked out inside airflows/.
Description
This extension provides complete support for the Airflows DSL language, including:
- Editor with syntax highlighting for
.airflows files
- Navigation and file explorer integrated in the Airflows panel
- Model download from remote Airflows instance
- Model export as local ZIP files
- Model deployment to Airflows instance
- Validation and autocomplete for the DSL language
- Declarative validation rules in the language server for consistent, maintainable checks
- Error message definitions for backend error messages with regex and localized labels
- AI and orchestration modeling for defining AI agents, activity agents, MCP,
ModelOrchestration, and related DSL constructs
- GIS visualization support to configure and validate GisViewer-related DSL elements
Recent repository changes
Highlights from recent development (see CHANGELOG.md for versioned releases):
- Validation engine: validation refactored around declarative rules (
airflows-dsl-validator.ts) for clearer behavior and easier extension.
- Language server: semantic token provider and validator updated for correct property access on flexible DSL structures (e.g.
EntityContent / ReferenceContent).
- Tooling: package management migrated to pnpm (Volta pins Node 22 and pnpm 10 in
package.json).
- Settings: initial workspace validation can be tuned (
full, batched, or off) with batch size and optional max files to reduce load on large workspaces (see Extension settings).
Released notes for 1.0.6 (2026-03-11) include unified pythonPackages syntax, flat tags JSON for the Java importer, and related parsing/serialization fixes—full detail in CHANGELOG.md.
Features
Intelligent Autocomplete
The editor provides advanced contextual autocomplete:
- Attribute autocomplete: Suggests relevant fields based on context (EntityAttribute, EntityKey, EntityReference, errorMessage, etc.)
- Enum value autocomplete: Suggests valid values for enum types (HumanLanguageType, BarcodeType, EventType, etc.)
- Intelligent filtering: Does not suggest already used fields
- Broad coverage: dozens of attribute fields and multiple enum types (see grammar and tests under
test/parsing and test/validating)
Real-Time Validation
- Syntax validation: Detects syntax errors as you type
- Reference validation: Verifies that references to EntityTab, EntityGroup, etc. exist
- Type validation: Detects invalid tokens (e.g., standalone TEXT without
type:)
- Declarative rule validation: Core checks expressed as data-driven rules for consistency
- Error message validation: Validates
errorMessage blocks (required regex:, valid name pattern, localized labels)
- Descriptive messages: Clear errors with exact location
File Explorer
The Airflows side panel includes a file explorer that:
- Shows the project structure
- Allows navigation between files and folders
- Opens files when clicking on them
- Shows custom icons for
.airflows files (white in dark theme, black in light theme)
- Automatically updates every 2 seconds to detect external changes
- Automatically refreshes after downloading a model
Extension settings
Configure under Settings → Extensions → Airflows (or edit settings.json):
| Setting |
Purpose |
airflows.instanceUrl |
URL of the Airflows instance (default demo URL in package.json) |
airflows.username |
Admin-capable user for download/deploy |
airflows.password |
Password for the above user |
airflows.checkForUpdates |
When true, the extension can notify about updates |
airflows.initialValidation |
full (open all .airflows in sequence on load), batched (staggered batches), or off (do not open files; language server still runs when you edit) |
airflows.initialValidationBatchSize |
Batch size when initialValidation is batched |
airflows.initialValidationMaxFiles |
Cap on how many .airflows files to open during initial validation (0 = no limit) |
Available Commands
Toolbar entries in the Airflows view include download, deploy, and export. Additional commands are available from the Command Palette:
Download model from Airflows instance
- Downloads the model from the configured remote instance
- Automatically extracts the ZIP in the workspace
- Overwrites existing files
- Requires configuration of instance URL, username, and password
Deploy model to Airflows instance
- Creates a ZIP of the local model
- Uploads it to the remote Airflows instance
- Validates the model before deployment
- Shows detailed error messages if something fails
Export local model as ZIP
- Exports the local model as a ZIP file
- Allows saving it to the desired location
- Useful for creating backups or sharing models
Validate model
- Validates all
.airflows files in the project
- Shows results in the Problems panel
- Useful for verifying the model before deploying
Find references
- Finds all references to a selected element
- Useful for navigating and understanding dependencies
Application Package Generation
Application Package Generation and Export
Allows generating an application package from Airflows DSL files for use on the Airflows platform.
Upload of the Generated Application Package
Allows uploading a generated application package for use and installation on the Airflows platform using the connection settings configured in the plugin.
Building from source
From the repository root (requires pnpm and a compatible Node version, e.g. via Volta as pinned in package.json):
pnpm install
pnpm run build
Main scripts: build, watch, lint, test, vscode:prepublish, langium:generate, release, publish:local. See package.json for the full list.
Extended documentation (architecture, contributing, download/deploy flow, versioning): see the docs/ folder.
Explore all the features of the Airflows plugin in Visual Studio Code and enhance your productivity when working with Airflows DSL files!
Troubleshooting and Support
For additional help or to report issues with the Airflows plugin, you can contact the Airflows support team through the following channels: