Skip to content

Rename persisted chart- and dataset-named config keys and widget types on the next config version bump #592

Description

@mairas

Context

Time-series visualizations are graphs (see the companion issue for the decision and its rationale). This issue covers the last piece: identifiers that are written into stored dashboard configuration, so renaming them requires a config version bump and a migration.

Do not bump the config version for this alone. The rename is cosmetic and the migration risk is not. Fold it into the next bump made for a reason that justifies one on its own, and treat this issue as the checklist for that bump.

Identifiers to rename

Config keys (src/app/core/interfaces/widgets-interface.ts):

Current New
datachartPath (:414) datagraphPath
datachartSource (:416) datagraphSource
datachartAngleRange (:418) datagraphAngleRange
showMiniChart (:275) showMiniGraph
verticalChart (:460) verticalGraph
datasetAverageArray (:420) averageArray
showDatasetMinimumValueLine (:432) showMinimumValueLine
showDatasetMaximumValueLine (:434) showMaximumValueLine
showDatasetAverageValueLine (:436) showAverageValueLine
showDatasetAngleAverageValueLine (:438) showAngleAverageValueLine

The Dataset prefix drops rather than becoming Graph: "dataset" is a KIP concept Skip no longer has (the registry and client-side recorder went away in the v12 upgrade), so the word is being removed, not translated. The companion issue covers the non-persisted half of that removal.

Widget type strings: widget-data-chartwidget-data-graph, widget-windtrends-chartwidget-windtrends-graph. These are component selectors, but the selector doubles as the persisted type field of a stored widget (widgets-interface.ts:67), so they are not free to rename.

Touchpoints

  • configuration-upgrade.service.ts — a new version transform following the existing v11..v19 chain, plus two existing tables keyed by the old strings: the path-defaults map ('widget-windtrends-chart', :61) and the legacy class-name map ('WidgetDataChart': 'widget-data-chart', :139).
  • src/default-config/config.blank.dashboard.ts — the seeded default dashboard stores the type strings.
  • src/assets/skip-dashboard-schema.json — regenerate with npm run gen:mcp-schema; test:mcp-schema gates drift in npm run ci.
  • widget.service.ts, dashboard-history-series-sync.service.ts, skip-series-contract.ts, remote-context-demand.util.ts and the corresponding specs all match on the type strings.
  • The embed route #/widget/:type (app.routes.ts:60) resolves a widget by selector, and single-widget-host.component.spec.ts asserts that as a cross-package string contract with @halos-org/skip-freeboard-panel. The panel's manifest currently exposes only widget-wind-steer, so no time-series widget crosses that boundary today — but check the manifest again before renaming, not just this repo.

Verification

  • A dashboard saved on the previous config version upgrades on load, with every affected widget keeping its configured path, source, angle range and orientation.
  • An exported config file from the previous version imports successfully.
  • npm run ci passes with the schema artifact regenerated.

Companion issue for the wording and the non-persisted identifiers: #591

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions