← Cycles
Qmap · c19

Data Flow

unlistedcreated 2026-03-30· last activity 2026-08-15

QMapDataflow wrapper with config-driven props and tag-based context grouping

New in this cycle: QMapDataflow wrapper — tag-driven context grouping with exportable props

Why

The c17 QMapDataflow wrapper hardcoded QMap props directly. With the c18 config schema system in place, we wanted to rebuild it on createQMapConfig / resolveConfig so its props are tunable via DevConfigurator and exportable for new wrappers — replacing the earlier effort rather than extending it.

Objective

Rebuild QMapDataflow as a config-driven wrapper showing one source → destination connection, with tag-based view contexts (like c14's View Mode section) and full visual tuning via the c18 control components.

Key Changes

  • 2026-04-16 — Landed in the c18-c22 batch commit (work recorded as starting 2026-03-30):
    • Rewrote src/components/QMapDataflow.vue on createQMapConfig + resolveConfig, with a configOverrides prop for external tuning
    • DATAFLOW_DEFAULTS constant — QMapDataflow ships its own defaults optimized for 2-actor detail views; configOverrides is either-or, not layered (deep-merging a full config silently resets component defaults)
    • Added highlightDataflows option ('all' / 'none') to qmapConfigSchema.js to control whether flow lines draw on render
    • New visual tuning controls via the multiplier pattern (post-hoc scale factors, no new math): lineThickness, rugLabelScale, actorLabelScale, rugPadding, threaded config → QMap prop → getter → composable/engine, with live updates
    • Experiment at dev/experiments/c19.data-flow/ with view mode buttons (Flat, Security Zone, Team, Infrastructure) + DevConfigurator overlay; test data of 2 focal actors, 4 context siblings, 1 richly-tagged dataflow
    • Layer control polish: DevControlSlider always shows its current value; DevControlExport collapsed by default

Outcome

Config-driven QMapDataflow with full visual tuning, replacing the c17 hardcoded wrapper. Established the multiplier pattern for adding visual controls without touching existing math, and surfaced the config-override merge-order lesson (full config objects as overrides must be either-or). This config-driven wrapper pattern carried into the c21/c22 session-map wrappers.

Visual record

9 captures — heroes, page slices, and full-page renders. Click to view.

Security Zone grouping (default view)
Security Zone grouping (default view)
Flat — no grouping, pure topology
Flat — no grouping, pure topology
Topology grouping
Topology grouping
Geography grouping — regions as rugs
Geography grouping — regions as rugs
Team grouping
Team grouping
Team grouping from above
Team grouping from above
Security zones in flatland projection
Security zones in flatland projection
Zones with every dataflow highlighted
Zones with every dataflow highlighted
c19 hero

Artifacts

/experiments/c19.data-flow/ (local dev)

Qpoint Brand Style Guide