Summary
The flow scaffold generated by config new --component-id keboola.flow is the only scaffold category whose _config.yml has no _keboola block at all — _build_flow_config_yml() (services/component_service.py) never emits one, while _build_config_yml() (all other categories) always appends:
_keboola:
component_id: <id>
Impact
sync push resolves the component of an untracked local config from _keboola.component_id; with the block missing it falls back to "unknown" (_find_untracked_configs, sync_service.py), so a scaffolded flow can never be pushed from disk — the documented scaffold → edit → sync push workflow is broken for exactly this category. The scaffold reference (scaffold-workflow.md) even states "The _keboola.component_id field in _config.yml is required for push to work".
Fix
Append the same _keboola: {component_id: ...} footer in _build_flow_config_yml() (it already receives component_id), plus a regression test asserting every scaffold category emits the block.
Related: #644 (the --push path additionally needs config_id stamped into the scaffold; that fix handles a missing _keboola block defensively, but the scaffold-only path still needs this one).
Summary
The flow scaffold generated by
config new --component-id keboola.flowis the only scaffold category whose_config.ymlhas no_keboolablock at all —_build_flow_config_yml()(services/component_service.py) never emits one, while_build_config_yml()(all other categories) always appends:Impact
sync pushresolves the component of an untracked local config from_keboola.component_id; with the block missing it falls back to"unknown"(_find_untracked_configs,sync_service.py), so a scaffolded flow can never be pushed from disk — the documented scaffold → edit →sync pushworkflow is broken for exactly this category. The scaffold reference (scaffold-workflow.md) even states "The_keboola.component_idfield in_config.ymlis required for push to work".Fix
Append the same
_keboola: {component_id: ...}footer in_build_flow_config_yml()(it already receivescomponent_id), plus a regression test asserting every scaffold category emits the block.Related: #644 (the
--pushpath additionally needsconfig_idstamped into the scaffold; that fix handles a missing_keboolablock defensively, but the scaffold-only path still needs this one).