Summary
When opening an ApplicationConfig-format YAML file (the multi-file composition format), the editor:
- Silently converts the format from
ApplicationConfig to flat WorkflowConfig, destroying the original structure
- Does not render sub-file nodes — only shows nodes from content it injects into the file, not the full application graph from referenced sub-files
Reproduction: Format conversion
Input (application.yaml) before opening:
application:
name: my-service
workflows:
- file: base.yaml
- file: users.yaml
- file: billing.yaml
- file: notifications.yaml
After opening the file in the editor (no user edits):
modules: []
workflows:
http:
server: web-server
router: web-router
routes:
- method: POST
path: /v1/oauth/token
handler: auth
- method: GET
path: /v1/oauth/jwks
handler: auth
imports:
- base.yaml
- users.yaml
- billing.yaml
- notifications.yaml
What changed:
| Change |
Detail |
| Format conversion |
application: wrapper replaced with flat WorkflowConfig |
| Metadata lost |
application.name dropped |
| Content duplicated |
workflows.http routes from base.yaml duplicated into the application file |
| Reference format changed |
application.workflows[].file converted to top-level imports: |
| Empty blocks injected |
modules: [] added |
Reproduction: Sub-file nodes not rendered
Given the application.yaml above which references base.yaml, users.yaml, billing.yaml, and notifications.yaml — each containing modules and pipelines — the editor's visual graph only shows the nodes corresponding to what it injected (the duplicated workflows.http routes). It does not traverse the file references to render:
- Modules defined in sub-files
- Pipelines defined in sub-files
- Workflow routes defined in sub-files
- Dependencies between modules across files
The user expects opening application.yaml to render the full application graph from all referenced sub-files as a unified view, since that is the purpose of the ApplicationConfig format.
Expected behavior
ApplicationConfig format (application: top-level key with workflows[].file references) should be recognized as a valid, distinct format — not silently converted
- Opening the file should not modify it (see also: related issue about destructive reformatting)
- The editor should traverse
file: references and render a unified graph of all modules, pipelines, workflows, and their dependencies across all sub-files
- If the editor doesn't support
ApplicationConfig, it should display a clear message rather than silently converting the format
Context
The ApplicationConfig format is the recommended way to compose large workflow applications from multiple domain-specific YAML files. It is documented in the workflow engine and used by wfctl for validation, documentation generation, and CI/CD integration.
Environment
- IDE: VS Code with workflow-editor extension
- OS: macOS
Summary
When opening an
ApplicationConfig-format YAML file (the multi-file composition format), the editor:ApplicationConfigto flatWorkflowConfig, destroying the original structureReproduction: Format conversion
Input (
application.yaml) before opening:After opening the file in the editor (no user edits):
What changed:
application:wrapper replaced with flat WorkflowConfigapplication.namedroppedworkflows.httproutes frombase.yamlduplicated into the application fileapplication.workflows[].fileconverted to top-levelimports:modules: []addedReproduction: Sub-file nodes not rendered
Given the application.yaml above which references
base.yaml,users.yaml,billing.yaml, andnotifications.yaml— each containing modules and pipelines — the editor's visual graph only shows the nodes corresponding to what it injected (the duplicatedworkflows.httproutes). It does not traverse the file references to render:The user expects opening
application.yamlto render the full application graph from all referenced sub-files as a unified view, since that is the purpose of the ApplicationConfig format.Expected behavior
ApplicationConfigformat (application:top-level key withworkflows[].filereferences) should be recognized as a valid, distinct format — not silently convertedfile:references and render a unified graph of all modules, pipelines, workflows, and their dependencies across all sub-filesApplicationConfig, it should display a clear message rather than silently converting the formatContext
The
ApplicationConfigformat is the recommended way to compose large workflow applications from multiple domain-specific YAML files. It is documented in the workflow engine and used bywfctlfor validation, documentation generation, and CI/CD integration.Environment