@caddis/cli 0.4.43 → 0.4.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/bundles/antigravity-plugin/plugin.json +1 -1
  2. package/bundles/antigravity-plugin/scripts/caddis_file_lock.py +48 -7
  3. package/bundles/antigravity-plugin/scripts/caddis_lanes.py +27 -0
  4. package/bundles/antigravity-plugin/scripts/caddis_todo.py +7 -5
  5. package/bundles/antigravity-plugin/scripts/claude-oss.ps1 +15 -3
  6. package/bundles/antigravity-plugin/scripts/claude-oss.sh +12 -1
  7. package/bundles/antigravity-plugin/skills/_registry.md +5 -4
  8. package/bundles/antigravity-plugin/skills/adopt-app/SKILL.md +6 -1
  9. package/bundles/antigravity-plugin/skills/advisory-hub/SKILL.md +7 -1
  10. package/bundles/antigravity-plugin/skills/decide/SKILL.md +1 -1
  11. package/bundles/antigravity-plugin/skills/flow-studio/README.md +53 -0
  12. package/bundles/antigravity-plugin/skills/flow-studio/SKILL.md +103 -0
  13. package/bundles/antigravity-plugin/skills/flow-studio/examples/README.md +11 -0
  14. package/bundles/antigravity-plugin/skills/flow-studio/examples/hostile.json +1783 -0
  15. package/bundles/antigravity-plugin/skills/flow-studio/examples/lineage.json +1778 -0
  16. package/bundles/antigravity-plugin/skills/flow-studio/model.schema.json +123 -0
  17. package/bundles/antigravity-plugin/skills/flow-studio/package.json +11 -0
  18. package/bundles/antigravity-plugin/skills/flow-studio/references/patterns.md +79 -0
  19. package/bundles/antigravity-plugin/skills/flow-studio/scripts/build-engine.mjs +55 -0
  20. package/bundles/antigravity-plugin/skills/flow-studio/scripts/build.mjs +37 -0
  21. package/bundles/antigravity-plugin/skills/flow-studio/scripts/check.mjs +388 -0
  22. package/bundles/antigravity-plugin/skills/flow-studio/scripts/lib/build-engine.test.mjs +26 -0
  23. package/bundles/antigravity-plugin/skills/flow-studio/scripts/lib/check-selftest.test.mjs +75 -0
  24. package/bundles/antigravity-plugin/skills/flow-studio/scripts/lib/cli.test.mjs +64 -0
  25. package/bundles/antigravity-plugin/skills/flow-studio/scripts/lib/embed.mjs +24 -0
  26. package/bundles/antigravity-plugin/skills/flow-studio/scripts/lib/embed.test.mjs +29 -0
  27. package/bundles/antigravity-plugin/skills/flow-studio/scripts/validate.mjs +38 -0
  28. package/bundles/antigravity-plugin/skills/flow-studio/src/chrome.ts +171 -0
  29. package/bundles/antigravity-plugin/skills/flow-studio/src/controls.ts +231 -0
  30. package/bundles/antigravity-plugin/skills/flow-studio/src/ctx.ts +118 -0
  31. package/bundles/antigravity-plugin/skills/flow-studio/src/engine.ts +142 -0
  32. package/bundles/antigravity-plugin/skills/flow-studio/src/inspector.ts +108 -0
  33. package/bundles/antigravity-plugin/skills/flow-studio/src/interact.ts +240 -0
  34. package/bundles/antigravity-plugin/skills/flow-studio/src/layout.test.ts +69 -0
  35. package/bundles/antigravity-plugin/skills/flow-studio/src/layout.ts +57 -0
  36. package/bundles/antigravity-plugin/skills/flow-studio/src/model.test.ts +107 -0
  37. package/bundles/antigravity-plugin/skills/flow-studio/src/model.ts +165 -0
  38. package/bundles/antigravity-plugin/skills/flow-studio/src/notes.ts +92 -0
  39. package/bundles/antigravity-plugin/skills/flow-studio/src/render.ts +155 -0
  40. package/bundles/antigravity-plugin/skills/flow-studio/src/routing.test.ts +13 -0
  41. package/bundles/antigravity-plugin/skills/flow-studio/src/routing.ts +11 -0
  42. package/bundles/antigravity-plugin/skills/flow-studio/src/rules.test.ts +88 -0
  43. package/bundles/antigravity-plugin/skills/flow-studio/src/rules.ts +35 -0
  44. package/bundles/antigravity-plugin/skills/flow-studio/src/stateCss.test.ts +66 -0
  45. package/bundles/antigravity-plugin/skills/flow-studio/src/stateCss.ts +44 -0
  46. package/bundles/antigravity-plugin/skills/flow-studio/src/styles.css +157 -0
  47. package/bundles/antigravity-plugin/skills/flow-studio/src/trace.test.ts +20 -0
  48. package/bundles/antigravity-plugin/skills/flow-studio/src/trace.ts +22 -0
  49. package/bundles/antigravity-plugin/skills/flow-studio/src/viewport.test.ts +55 -0
  50. package/bundles/antigravity-plugin/skills/flow-studio/src/viewport.ts +45 -0
  51. package/bundles/antigravity-plugin/skills/flow-studio/templates/engine.html +1744 -0
  52. package/bundles/antigravity-plugin/skills/flow-studio/templates/engine.shell.html +61 -0
  53. package/bundles/antigravity-plugin/skills/flow-studio/tsconfig.json +17 -0
  54. package/bundles/antigravity-plugin/skills/implement/SKILL.md +8 -0
  55. package/bundles/antigravity-plugin/skills/particle-art/SKILL.md +6 -1
  56. package/bundles/antigravity-plugin/skills/port-to-github/SKILL.md +6 -1
  57. package/bundles/antigravity-plugin/skills/tech-explainer/SKILL.md +5 -6
  58. package/bundles/antigravity-plugin-extras/plugin.json +1 -1
  59. package/bundles/antigravity-plugin-extras/skills/_registry.md +2 -0
  60. package/bundles/antigravity-plugin-extras/skills/adopt-rbac/SKILL.md +26 -0
  61. package/bundles/antigravity-plugin-extras/skills/case-management/SKILL.md +24 -0
  62. package/bundles/codex/.codex/skills/devops/adopt-app/SKILL.md +6 -1
  63. package/bundles/codex/.codex/skills/devops/port-to-github/SKILL.md +6 -1
  64. package/bundles/codex/.codex/skills/docs/tech-explainer/SKILL.md +5 -6
  65. package/bundles/codex/.codex/skills/frontend/flow-studio/README.md +53 -0
  66. package/bundles/codex/.codex/skills/frontend/flow-studio/SKILL.md +103 -0
  67. package/bundles/codex/.codex/skills/frontend/flow-studio/examples/README.md +11 -0
  68. package/bundles/codex/.codex/skills/frontend/flow-studio/examples/hostile.json +1783 -0
  69. package/bundles/codex/.codex/skills/frontend/flow-studio/examples/lineage.json +1778 -0
  70. package/bundles/codex/.codex/skills/frontend/flow-studio/model.schema.json +123 -0
  71. package/bundles/codex/.codex/skills/frontend/flow-studio/package.json +11 -0
  72. package/bundles/codex/.codex/skills/frontend/flow-studio/references/patterns.md +79 -0
  73. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/build-engine.mjs +55 -0
  74. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/build.mjs +37 -0
  75. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/check.mjs +388 -0
  76. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/lib/build-engine.test.mjs +26 -0
  77. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/lib/check-selftest.test.mjs +75 -0
  78. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/lib/cli.test.mjs +64 -0
  79. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/lib/embed.mjs +24 -0
  80. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/lib/embed.test.mjs +29 -0
  81. package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/validate.mjs +38 -0
  82. package/bundles/codex/.codex/skills/frontend/flow-studio/src/chrome.ts +171 -0
  83. package/bundles/codex/.codex/skills/frontend/flow-studio/src/controls.ts +231 -0
  84. package/bundles/codex/.codex/skills/frontend/flow-studio/src/ctx.ts +118 -0
  85. package/bundles/codex/.codex/skills/frontend/flow-studio/src/engine.ts +142 -0
  86. package/bundles/codex/.codex/skills/frontend/flow-studio/src/inspector.ts +108 -0
  87. package/bundles/codex/.codex/skills/frontend/flow-studio/src/interact.ts +240 -0
  88. package/bundles/codex/.codex/skills/frontend/flow-studio/src/layout.test.ts +69 -0
  89. package/bundles/codex/.codex/skills/frontend/flow-studio/src/layout.ts +57 -0
  90. package/bundles/codex/.codex/skills/frontend/flow-studio/src/model.test.ts +107 -0
  91. package/bundles/codex/.codex/skills/frontend/flow-studio/src/model.ts +165 -0
  92. package/bundles/codex/.codex/skills/frontend/flow-studio/src/notes.ts +92 -0
  93. package/bundles/codex/.codex/skills/frontend/flow-studio/src/render.ts +155 -0
  94. package/bundles/codex/.codex/skills/frontend/flow-studio/src/routing.test.ts +13 -0
  95. package/bundles/codex/.codex/skills/frontend/flow-studio/src/routing.ts +11 -0
  96. package/bundles/codex/.codex/skills/frontend/flow-studio/src/rules.test.ts +88 -0
  97. package/bundles/codex/.codex/skills/frontend/flow-studio/src/rules.ts +35 -0
  98. package/bundles/codex/.codex/skills/frontend/flow-studio/src/stateCss.test.ts +66 -0
  99. package/bundles/codex/.codex/skills/frontend/flow-studio/src/stateCss.ts +44 -0
  100. package/bundles/codex/.codex/skills/frontend/flow-studio/src/styles.css +157 -0
  101. package/bundles/codex/.codex/skills/frontend/flow-studio/src/trace.test.ts +20 -0
  102. package/bundles/codex/.codex/skills/frontend/flow-studio/src/trace.ts +22 -0
  103. package/bundles/codex/.codex/skills/frontend/flow-studio/src/viewport.test.ts +55 -0
  104. package/bundles/codex/.codex/skills/frontend/flow-studio/src/viewport.ts +45 -0
  105. package/bundles/codex/.codex/skills/frontend/flow-studio/templates/engine.html +1744 -0
  106. package/bundles/codex/.codex/skills/frontend/flow-studio/templates/engine.shell.html +61 -0
  107. package/bundles/codex/.codex/skills/frontend/flow-studio/tsconfig.json +17 -0
  108. package/bundles/codex/.codex/skills/media/particle-art/SKILL.md +6 -1
  109. package/bundles/codex/.codex/skills/workflow/advisory-hub/SKILL.md +7 -1
  110. package/bundles/manifest.json +3 -3
  111. package/package.json +1 -1
@@ -0,0 +1,1783 @@
1
+ {
2
+ "version": 1,
3
+ "meta": {
4
+ "title": "DATA LINEAGE: WHAT FEEDS WHAT</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
5
+ "help": "Read left to right: source, load, build, serve. A dashed amber lane has no lineage document yet. Scroll to zoom, drag to pan.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
6
+ "asOf": "2026-09-30",
7
+ "source": "Fictional data for the flow-studio example (Northwind Analytics). Measured links come from a pretend read; declared links from pretend documents. Declared data goes stale, so every declared snapshot carries its date.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
8
+ "labels": {
9
+ "tileGood": "measured links between groups</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
10
+ "tileNeutral": "declared links between groups</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
11
+ "tileGap": "not recorded: click to show</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
12
+ "tileUpgrade": "measurable now: click to show</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
13
+ "ledgerTitle": "What this read could not establish</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
14
+ }
15
+ },
16
+ "layout": "columns-lanes",
17
+ "columns": [
18
+ {
19
+ "id": "source",
20
+ "title": "Source systems</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
21
+ "short": "SOURCE</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
22
+ "width": 150,
23
+ "phase": "ORIGIN</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
24
+ },
25
+ {
26
+ "id": "host",
27
+ "title": "DB hosts</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
28
+ "short": "HOST</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
29
+ "width": 130,
30
+ "phase": "ORIGIN</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
31
+ },
32
+ {
33
+ "id": "db",
34
+ "title": "Databases</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
35
+ "short": "DATABASE</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
36
+ "width": 150,
37
+ "phase": "ORIGIN</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
38
+ },
39
+ {
40
+ "id": "jobs",
41
+ "title": "Jobs and programs</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
42
+ "short": "JOBS</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
43
+ "width": 215,
44
+ "phase": "LOAD</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
45
+ },
46
+ {
47
+ "id": "tables",
48
+ "title": "Tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
49
+ "short": "TABLES</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
50
+ "width": 205,
51
+ "phase": "LOAD</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
52
+ },
53
+ {
54
+ "id": "refresh",
55
+ "title": "App refreshers</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
56
+ "short": "REFRESHERS</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
57
+ "width": 185,
58
+ "phase": "BUILD</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
59
+ },
60
+ {
61
+ "id": "report",
62
+ "title": "Reporting tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
63
+ "short": "REPORT TABLES</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
64
+ "width": 195,
65
+ "phase": "BUILD</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
66
+ },
67
+ {
68
+ "id": "apps",
69
+ "title": "Apps</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
70
+ "short": "APPS</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
71
+ "width": 160,
72
+ "phase": "SERVE</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
73
+ },
74
+ {
75
+ "id": "pages",
76
+ "title": "Pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
77
+ "short": "PAGES</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
78
+ "width": 160,
79
+ "phase": "SERVE</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
80
+ }
81
+ ],
82
+ "lanes": [
83
+ {
84
+ "id": "store",
85
+ "title": "storefront</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
86
+ "badge": "document 2026-09-30</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
87
+ "badgeTone": "ok",
88
+ "note": "complete in the document · the order database itself is never read today</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
89
+ },
90
+ {
91
+ "id": "batch",
92
+ "title": "Batch worker batch-02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
93
+ "badge": "infrastructure</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
94
+ "badgeTone": "muted",
95
+ "note": "36 jobs and the analytics tables · no lineage source reads them</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
96
+ },
97
+ {
98
+ "id": "bill",
99
+ "title": "billing</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
100
+ "badge": "document 2026-09-12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
101
+ "badgeTone": "ok",
102
+ "note": "the document lists 5 to 6 reporting tables · the read measures 20</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
103
+ },
104
+ {
105
+ "id": "search",
106
+ "title": "search-app</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
107
+ "badge": "no lineage document</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
108
+ "badgeTone": "warn",
109
+ "gap": true,
110
+ "note": "known: 27 reporting tables, the app · missing: refresher jobs, pages · reads warehouse tables (inferred from code)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
111
+ },
112
+ {
113
+ "id": "reco",
114
+ "title": "recommender</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
115
+ "badge": "no lineage document</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
116
+ "badgeTone": "warn",
117
+ "gap": true,
118
+ "note": "known: one reporting table · missing: loaders, source tables, refresher, pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
119
+ },
120
+ {
121
+ "id": "desk",
122
+ "title": "support-desk</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
123
+ "badge": "document 2026-09-12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
124
+ "badgeTone": "ok",
125
+ "note": "no refresher and no reporting tables: it reads its own tables directly</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
126
+ },
127
+ {
128
+ "id": "more",
129
+ "title": "6 more apps</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
130
+ "badge": "no lineage document</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
131
+ "badgeTone": "warn",
132
+ "gap": true,
133
+ "note": "they report a health route only</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
134
+ },
135
+ {
136
+ "id": "feed",
137
+ "title": "partner-feed</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
138
+ "badge": "document 2026-09-18</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
139
+ "badgeTone": "warn",
140
+ "note": "a file pipeline, not tables and pages: it needs a different model</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
141
+ }
142
+ ],
143
+ "states": {
144
+ "measured": {
145
+ "word": "MEASURED</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
146
+ "tone": "ok",
147
+ "border": "solid",
148
+ "edge": "flow",
149
+ "motion": "flow",
150
+ "bucket": "good"
151
+ },
152
+ "declared": {
153
+ "word": "DECLARED</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
154
+ "tone": "muted",
155
+ "border": "dashed",
156
+ "edge": "dash",
157
+ "motion": "flow-slow",
158
+ "bucket": "neutral"
159
+ },
160
+ "inferred": {
161
+ "word": "INFERRED</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
162
+ "tone": "muted",
163
+ "border": "dashed",
164
+ "edge": "dash-short",
165
+ "motion": "flow-slow",
166
+ "bucket": "neutral"
167
+ },
168
+ "unrecorded": {
169
+ "word": "NOT RECORDED</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
170
+ "tone": "warn",
171
+ "border": "dotted",
172
+ "edge": "dot",
173
+ "motion": "breathe",
174
+ "bucket": "gap"
175
+ }
176
+ },
177
+ "nodes": [
178
+ {
179
+ "id": "ORD",
180
+ "kind": "card",
181
+ "lane": "store",
182
+ "col": 0,
183
+ "row": 0,
184
+ "state": "declared",
185
+ "title": "Order feed</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
186
+ "subtitle": "orders share, source system</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
187
+ "members": [
188
+ "orders.fact_order</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
189
+ "orders.dim_customer</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
190
+ "orders.fact_return</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
191
+ "ref.attributes</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
192
+ "ref.topics</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
193
+ ],
194
+ "stateIn": {
195
+ "today": "unrecorded"
196
+ }
197
+ },
198
+ {
199
+ "id": "SUP",
200
+ "kind": "card",
201
+ "lane": "store",
202
+ "col": 0,
203
+ "row": 1,
204
+ "state": "declared",
205
+ "title": "Support tool</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
206
+ "subtitle": "ticket extracts, source system</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
207
+ "visibleIn": [
208
+ "complete"
209
+ ]
210
+ },
211
+ {
212
+ "id": "H_DB1",
213
+ "kind": "card",
214
+ "lane": "store",
215
+ "col": 1,
216
+ "row": 1,
217
+ "state": "measured",
218
+ "title": "dbhost-01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
219
+ "subtitle": "SQL host</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
220
+ "members": [
221
+ "STOREDB</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
222
+ "WAREHOUSE</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
223
+ ]
224
+ },
225
+ {
226
+ "id": "H_GPU",
227
+ "kind": "card",
228
+ "lane": "store",
229
+ "col": 1,
230
+ "row": 2,
231
+ "state": "declared",
232
+ "title": "gpuhost-01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
233
+ "subtitle": "GPU host</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
234
+ "visibleIn": [
235
+ "complete"
236
+ ]
237
+ },
238
+ {
239
+ "id": "H_OLD",
240
+ "kind": "card",
241
+ "lane": "store",
242
+ "col": 1,
243
+ "row": 3,
244
+ "state": "declared",
245
+ "title": "legacy-host</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
246
+ "subtitle": "SQL host, not read today</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
247
+ "stateIn": {
248
+ "today": "unrecorded"
249
+ }
250
+ },
251
+ {
252
+ "id": "D_STORE",
253
+ "kind": "card",
254
+ "lane": "store",
255
+ "col": 2,
256
+ "row": 1,
257
+ "state": "declared",
258
+ "title": "STOREDB</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
259
+ "subtitle": "database, never read today</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
260
+ "upgrade": "probe it: the monitor already reads it for another check</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
261
+ "stateIn": {
262
+ "today": "unrecorded"
263
+ }
264
+ },
265
+ {
266
+ "id": "D_OLD",
267
+ "kind": "card",
268
+ "lane": "store",
269
+ "col": 2,
270
+ "row": 3,
271
+ "state": "declared",
272
+ "title": "5 databases</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
273
+ "subtitle": "on legacy-host</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
274
+ "weight": 5,
275
+ "members": [
276
+ "CRM</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
277
+ "BILLING_OLD</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
278
+ "CUSTOMER</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
279
+ "TICKETS</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
280
+ "ARCHIVE</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
281
+ ],
282
+ "visibleIn": [
283
+ "complete"
284
+ ]
285
+ },
286
+ {
287
+ "id": "J_ORD",
288
+ "kind": "group",
289
+ "lane": "store",
290
+ "col": 3,
291
+ "row": 0,
292
+ "state": "declared",
293
+ "title": "4 order ETL pipelines</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
294
+ "subtitle": "on batch-02, no table link today</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
295
+ "weight": 4,
296
+ "members": [
297
+ "Orders core load (10:00)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
298
+ "Topic job (script)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
299
+ "Voice pipeline (job not known)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
300
+ "Chat pipeline (job not known)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
301
+ ],
302
+ "stateIn": {
303
+ "today": "unrecorded"
304
+ }
305
+ },
306
+ {
307
+ "id": "J_CUST",
308
+ "kind": "group",
309
+ "lane": "store",
310
+ "col": 3,
311
+ "row": 1,
312
+ "state": "declared",
313
+ "title": "Customer view + 3 loaders</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
314
+ "subtitle": "07:15 · loaders 06:45 and 08:15</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
315
+ "weight": 4,
316
+ "members": [
317
+ "Customer view daily load (07:15)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
318
+ "Tickets loader (06:45)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
319
+ "Cases loader (08:15)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
320
+ "Interactions loader (job not in repo)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
321
+ ],
322
+ "stateIn": {
323
+ "today": "unrecorded"
324
+ }
325
+ },
326
+ {
327
+ "id": "J_SUM",
328
+ "kind": "card",
329
+ "lane": "store",
330
+ "col": 3,
331
+ "row": 2,
332
+ "state": "declared",
333
+ "title": "summary engine daemon</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
334
+ "subtitle": "on the GPU host</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
335
+ "visibleIn": [
336
+ "complete"
337
+ ]
338
+ },
339
+ {
340
+ "id": "J_EXT",
341
+ "kind": "group",
342
+ "lane": "store",
343
+ "col": 3,
344
+ "row": 3,
345
+ "state": "declared",
346
+ "title": "3 external loaders</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
347
+ "subtitle": "loader unverified in the document</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
348
+ "weight": 3,
349
+ "members": [
350
+ "Legacy CRM side (loader unverified)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
351
+ "Billing side (loader unverified)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
352
+ "Contract data owner (loader unverified)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
353
+ ],
354
+ "visibleIn": [
355
+ "complete"
356
+ ]
357
+ },
358
+ {
359
+ "id": "T_ORD",
360
+ "kind": "group",
361
+ "lane": "store",
362
+ "col": 4,
363
+ "row": 0,
364
+ "state": "declared",
365
+ "title": "STOREDB · order tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
366
+ "subtitle": "6 tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
367
+ "weight": 6,
368
+ "members": [
369
+ "dbo.Orders</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
370
+ "dbo.OrderLines</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
371
+ "dbo.Returns</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
372
+ "dbo.OrderTopics</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
373
+ "dbo.Samples</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
374
+ "dbo.LoadState</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
375
+ ],
376
+ "visibleIn": [
377
+ "complete"
378
+ ]
379
+ },
380
+ {
381
+ "id": "T_CUST",
382
+ "kind": "group",
383
+ "lane": "store",
384
+ "col": 4,
385
+ "row": 1,
386
+ "state": "declared",
387
+ "title": "STOREDB · customer tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
388
+ "subtitle": "5 tables incl. loaders</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
389
+ "weight": 5,
390
+ "members": [
391
+ "dbo.CustomerEvent</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
392
+ "dbo.LoaderTickets</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
393
+ "dbo.LoaderCases</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
394
+ "dbo.LoaderInteractions</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
395
+ "dbo.LoaderForms</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
396
+ ],
397
+ "visibleIn": [
398
+ "complete"
399
+ ]
400
+ },
401
+ {
402
+ "id": "T_SUM",
403
+ "kind": "group",
404
+ "lane": "store",
405
+ "col": 4,
406
+ "row": 2,
407
+ "state": "declared",
408
+ "title": "STOREDB · summary</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
409
+ "subtitle": "2 objects</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
410
+ "weight": 2,
411
+ "members": [
412
+ "dbo.CustomerSummary</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
413
+ "dbo.vw_CurrentSummary</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
414
+ ],
415
+ "visibleIn": [
416
+ "complete"
417
+ ]
418
+ },
419
+ {
420
+ "id": "T_EXT",
421
+ "kind": "group",
422
+ "lane": "store",
423
+ "col": 4,
424
+ "row": 3,
425
+ "state": "declared",
426
+ "title": "customer, contract data</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
427
+ "subtitle": "3 objects</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
428
+ "weight": 3,
429
+ "members": [
430
+ "CUSTOMERS (view)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
431
+ "dbo.mobile_customers</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
432
+ "dbo.contracts</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
433
+ ],
434
+ "visibleIn": [
435
+ "complete"
436
+ ]
437
+ },
438
+ {
439
+ "id": "R_STORE",
440
+ "kind": "group",
441
+ "lane": "store",
442
+ "col": 5,
443
+ "row": 1.5,
444
+ "state": "declared",
445
+ "title": "storefront refreshers</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
446
+ "subtitle": "18 app producers</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
447
+ "weight": 18,
448
+ "members": [
449
+ "refresh_job_01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
450
+ "refresh_job_02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
451
+ "refresh_job_03</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
452
+ "refresh_job_04</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
453
+ "refresh_job_05</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
454
+ "refresh_job_06</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
455
+ "refresh_job_07</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
456
+ "refresh_job_08</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
457
+ "refresh_job_09</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
458
+ "refresh_job_10</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
459
+ "refresh_job_11</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
460
+ "refresh_job_12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
461
+ "refresh_job_13</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
462
+ "refresh_job_14</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
463
+ ],
464
+ "upgrade": "read the app's refresh_state once the database is probed</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
465
+ "visibleIn": [
466
+ "complete"
467
+ ]
468
+ },
469
+ {
470
+ "id": "T_RS_STORE",
471
+ "kind": "group",
472
+ "lane": "store",
473
+ "col": 6,
474
+ "row": 1.5,
475
+ "state": "declared",
476
+ "title": "rs_storefront</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
477
+ "subtitle": "8 tables the app reads</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
478
+ "weight": 8,
479
+ "members": [
480
+ "dashboard_cache</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
481
+ "identity_map</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
482
+ "source_coverage</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
483
+ "topic_coverage</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
484
+ "explorer</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
485
+ "explorer_topic</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
486
+ "duration_dist</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
487
+ "refresh_state</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
488
+ ],
489
+ "visibleIn": [
490
+ "complete"
491
+ ]
492
+ },
493
+ {
494
+ "id": "A_STORE",
495
+ "kind": "card",
496
+ "lane": "store",
497
+ "col": 7,
498
+ "row": 1.5,
499
+ "state": "measured",
500
+ "title": "storefront</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
501
+ "subtitle": "app, health route measured</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
502
+ "members": [
503
+ "/health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
504
+ ]
505
+ },
506
+ {
507
+ "id": "P_STORE",
508
+ "kind": "group",
509
+ "lane": "store",
510
+ "col": 8,
511
+ "row": 1.5,
512
+ "state": "declared",
513
+ "title": "storefront pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
514
+ "subtitle": "12 pages · 183 elements</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
515
+ "weight": 12,
516
+ "members": [
517
+ "Customer view and search</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
518
+ "Health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
519
+ "Analytics</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
520
+ "Overview</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
521
+ "Explorer</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
522
+ "Queues</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
523
+ "Self-service</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
524
+ "Shell</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
525
+ "App analytics</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
526
+ "Data quality</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
527
+ "Settings</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
528
+ ],
529
+ "visibleIn": [
530
+ "complete"
531
+ ]
532
+ },
533
+ {
534
+ "id": "H_B2",
535
+ "kind": "card",
536
+ "lane": "batch",
537
+ "col": 1,
538
+ "row": 4.85,
539
+ "state": "measured",
540
+ "title": "batch-02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
541
+ "subtitle": "batch worker</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
542
+ "members": [
543
+ "ANALYTICS</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
544
+ "36 scheduled jobs</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
545
+ ]
546
+ },
547
+ {
548
+ "id": "D_AN",
549
+ "kind": "card",
550
+ "lane": "batch",
551
+ "col": 2,
552
+ "row": 4.85,
553
+ "state": "measured",
554
+ "title": "ANALYTICS</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
555
+ "subtitle": "database</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
556
+ },
557
+ {
558
+ "id": "J_B36",
559
+ "kind": "group",
560
+ "lane": "batch",
561
+ "col": 3,
562
+ "row": 4.85,
563
+ "state": "measured",
564
+ "title": "36 jobs on batch-02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
565
+ "subtitle": "35 read, 1 never read</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
566
+ "weight": 36,
567
+ "members": [
568
+ "NIGHTLY_ETL_STG_TO_LIVE_01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
569
+ "NIGHTLY_ETL_STG_TO_LIVE_02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
570
+ "NIGHTLY_ETL_STG_TO_LIVE_03</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
571
+ "NIGHTLY_ETL_STG_TO_LIVE_04</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
572
+ "NIGHTLY_ETL_STG_TO_LIVE_05</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
573
+ "NIGHTLY_ETL_STG_TO_LIVE_06</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
574
+ "NIGHTLY_ETL_STG_TO_LIVE_07</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
575
+ "NIGHTLY_ETL_STG_TO_LIVE_08</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
576
+ "NIGHTLY_ETL_STG_TO_LIVE_09</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
577
+ "NIGHTLY_ETL_STG_TO_LIVE_10</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
578
+ "NIGHTLY_ETL_STG_TO_LIVE_11</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
579
+ "NIGHTLY_ETL_STG_TO_LIVE_12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
580
+ "NIGHTLY_ETL_STG_TO_LIVE_13</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
581
+ "NIGHTLY_ETL_STG_TO_LIVE_14</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
582
+ "NIGHTLY_ETL_STG_TO_LIVE_15</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
583
+ "NIGHTLY_ETL_STG_TO_LIVE_16</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
584
+ "NIGHTLY_ETL_STG_TO_LIVE_17</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
585
+ "NIGHTLY_ETL_STG_TO_LIVE_18</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
586
+ "NIGHTLY_ETL_STG_TO_LIVE_19</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
587
+ "NIGHTLY_ETL_STG_TO_LIVE_20</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
588
+ ]
589
+ },
590
+ {
591
+ "id": "T_AN",
592
+ "kind": "group",
593
+ "lane": "batch",
594
+ "col": 4,
595
+ "row": 4.85,
596
+ "state": "measured",
597
+ "title": "ANALYTICS · dbo</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
598
+ "subtitle": "23 tables, no writer recorded</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
599
+ "weight": 23,
600
+ "members": [
601
+ "dbo.table_01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
602
+ "dbo.table_02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
603
+ "dbo.table_03</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
604
+ "dbo.table_04</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
605
+ "dbo.table_05</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
606
+ "dbo.table_06</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
607
+ "dbo.table_07</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
608
+ "dbo.table_08</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
609
+ "dbo.table_09</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
610
+ "dbo.table_10</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
611
+ "dbo.table_11</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
612
+ "dbo.table_12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
613
+ "dbo.table_13</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
614
+ "dbo.table_14</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
615
+ "dbo.table_15</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
616
+ "dbo.table_16</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
617
+ "dbo.table_17</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
618
+ "dbo.table_18</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
619
+ ]
620
+ },
621
+ {
622
+ "id": "ERP",
623
+ "kind": "card",
624
+ "lane": "bill",
625
+ "col": 0,
626
+ "row": 6.6,
627
+ "state": "declared",
628
+ "title": "Legacy ERP</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
629
+ "subtitle": "via linked server</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
630
+ "stateIn": {
631
+ "today": "unrecorded"
632
+ }
633
+ },
634
+ {
635
+ "id": "FILES",
636
+ "kind": "card",
637
+ "lane": "bill",
638
+ "col": 0,
639
+ "row": 7.6,
640
+ "state": "declared",
641
+ "title": "3 SFTP sources</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
642
+ "subtitle": "partner file drops</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
643
+ "weight": 3,
644
+ "members": [
645
+ "Partner A SFTP</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
646
+ "Partner B SFTP</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
647
+ "Partner C SFTP</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
648
+ ],
649
+ "visibleIn": [
650
+ "complete"
651
+ ]
652
+ },
653
+ {
654
+ "id": "C_DB1",
655
+ "kind": "chip",
656
+ "lane": "bill",
657
+ "col": 1,
658
+ "row": 7.1,
659
+ "state": "measured",
660
+ "title": "dbhost-01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
661
+ "subtitle": "shown in the storefront lane</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
662
+ "visibleIn": [
663
+ "complete"
664
+ ],
665
+ "ref": "H_DB1"
666
+ },
667
+ {
668
+ "id": "D_WH",
669
+ "kind": "card",
670
+ "lane": "bill",
671
+ "col": 2,
672
+ "row": 7.1,
673
+ "state": "measured",
674
+ "title": "WAREHOUSE</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
675
+ "subtitle": "database</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
676
+ },
677
+ {
678
+ "id": "J_BILL",
679
+ "kind": "group",
680
+ "lane": "bill",
681
+ "col": 3,
682
+ "row": 6.6,
683
+ "state": "declared",
684
+ "title": "11 billing programs</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
685
+ "subtitle": "Python, scheduler, RPA</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
686
+ "weight": 11,
687
+ "members": [
688
+ "etl_erp_to_warehouse.py</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
689
+ "daily_validation.py</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
690
+ "orchestrator.ps1</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
691
+ "tap_load.ps1</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
692
+ ],
693
+ "visibleIn": [
694
+ "complete"
695
+ ]
696
+ },
697
+ {
698
+ "id": "J_W47",
699
+ "kind": "group",
700
+ "lane": "bill",
701
+ "col": 3,
702
+ "row": 7.6,
703
+ "state": "measured",
704
+ "title": "47 jobs on dbhost-01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
705
+ "subtitle": "45 read, 2 never read</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
706
+ "weight": 47,
707
+ "members": [
708
+ "DAILY_LOAD_01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
709
+ "DAILY_LOAD_02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
710
+ "DAILY_LOAD_03</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
711
+ "DAILY_LOAD_04</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
712
+ "DAILY_LOAD_05</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
713
+ "DAILY_LOAD_06</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
714
+ "DAILY_LOAD_07</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
715
+ "DAILY_LOAD_08</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
716
+ "DAILY_LOAD_09</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
717
+ "DAILY_LOAD_10</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
718
+ "DAILY_LOAD_11</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
719
+ "DAILY_LOAD_12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
720
+ "DAILY_LOAD_13</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
721
+ "DAILY_LOAD_14</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
722
+ "DAILY_LOAD_15</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
723
+ "DAILY_LOAD_16</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
724
+ "DAILY_LOAD_17</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
725
+ "DAILY_LOAD_18</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
726
+ "DAILY_LOAD_19</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
727
+ "DAILY_LOAD_20</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
728
+ "DAILY_LOAD_21</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
729
+ "DAILY_LOAD_22</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
730
+ "DAILY_LOAD_23</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
731
+ "DAILY_LOAD_24</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
732
+ "DAILY_LOAD_25</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
733
+ "DAILY_LOAD_26</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
734
+ "DAILY_LOAD_27</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
735
+ "DAILY_LOAD_28</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
736
+ "DAILY_LOAD_29</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
737
+ "DAILY_LOAD_30</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
738
+ ]
739
+ },
740
+ {
741
+ "id": "T_WH",
742
+ "kind": "group",
743
+ "lane": "bill",
744
+ "col": 4,
745
+ "row": 7.1,
746
+ "state": "measured",
747
+ "title": "WAREHOUSE · dbo</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
748
+ "subtitle": "138 tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
749
+ "weight": 138,
750
+ "members": [
751
+ "dbo.fact_01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
752
+ "dbo.fact_02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
753
+ "dbo.fact_03</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
754
+ "dbo.fact_04</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
755
+ "dbo.fact_05</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
756
+ "dbo.fact_06</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
757
+ "dbo.fact_07</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
758
+ "dbo.fact_08</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
759
+ "dbo.fact_09</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
760
+ "dbo.fact_10</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
761
+ "dbo.fact_11</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
762
+ "dbo.fact_12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
763
+ "dbo.fact_13</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
764
+ "dbo.fact_14</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
765
+ "dbo.fact_15</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
766
+ "dbo.fact_16</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
767
+ "dbo.fact_17</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
768
+ "dbo.fact_18</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
769
+ "dbo.fact_19</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
770
+ "dbo.fact_20</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
771
+ "dbo.fact_21</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
772
+ "dbo.fact_22</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
773
+ "dbo.fact_23</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
774
+ "dbo.fact_24</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
775
+ "dbo.fact_25</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
776
+ "dbo.fact_26</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
777
+ "dbo.fact_27</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
778
+ "dbo.fact_28</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
779
+ "dbo.fact_29</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
780
+ "dbo.fact_30</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
781
+ ]
782
+ },
783
+ {
784
+ "id": "R_BILL",
785
+ "kind": "group",
786
+ "lane": "bill",
787
+ "col": 5,
788
+ "row": 7.1,
789
+ "state": "declared",
790
+ "title": "billing refresher</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
791
+ "subtitle": "11 jobs, 300 s loop</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
792
+ "weight": 11,
793
+ "members": [
794
+ "case_recurrence</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
795
+ "cdr_count</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
796
+ "file_delivery</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
797
+ "file_recon</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
798
+ "filter_values</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
799
+ "monthly_cycle</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
800
+ "roaming_daily</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
801
+ "roaming_subscribers</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
802
+ "sms_fraud</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
803
+ "source_coverage</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
804
+ "trends_daily</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
805
+ ],
806
+ "upgrade": "read the app's refresh_state: the monitor can already read it</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
807
+ "visibleIn": [
808
+ "complete"
809
+ ]
810
+ },
811
+ {
812
+ "id": "T_RS_BILL",
813
+ "kind": "group",
814
+ "lane": "bill",
815
+ "col": 6,
816
+ "row": 7.1,
817
+ "state": "measured",
818
+ "title": "rs_billing</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
819
+ "subtitle": "20 tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
820
+ "weight": 20,
821
+ "members": [
822
+ "rs_billing.table_01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
823
+ "rs_billing.table_02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
824
+ "rs_billing.table_03</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
825
+ "rs_billing.table_04</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
826
+ "rs_billing.table_05</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
827
+ "rs_billing.table_06</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
828
+ "rs_billing.table_07</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
829
+ "rs_billing.table_08</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
830
+ "rs_billing.table_09</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
831
+ "rs_billing.table_10</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
832
+ "rs_billing.table_11</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
833
+ "rs_billing.table_12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
834
+ "rs_billing.table_13</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
835
+ "rs_billing.table_14</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
836
+ "rs_billing.table_15</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
837
+ "rs_billing.table_16</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
838
+ "rs_billing.table_17</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
839
+ "rs_billing.table_18</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
840
+ "rs_billing.table_19</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
841
+ "rs_billing.table_20</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
842
+ ]
843
+ },
844
+ {
845
+ "id": "A_BILL",
846
+ "kind": "card",
847
+ "lane": "bill",
848
+ "col": 7,
849
+ "row": 7.1,
850
+ "state": "measured",
851
+ "title": "billing</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
852
+ "subtitle": "app, health route measured</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
853
+ "members": [
854
+ "/health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
855
+ ]
856
+ },
857
+ {
858
+ "id": "P_BILL",
859
+ "kind": "group",
860
+ "lane": "bill",
861
+ "col": 8,
862
+ "row": 7.1,
863
+ "state": "declared",
864
+ "title": "billing pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
865
+ "subtitle": "12 pages · 17 elements</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
866
+ "weight": 12,
867
+ "members": [
868
+ "/</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
869
+ "/runs</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
870
+ "/control-totals</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
871
+ "/pipelines</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
872
+ "/exceptions</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
873
+ "/roaming</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
874
+ "/billing-cycles</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
875
+ "/fraud</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
876
+ "/subscribers</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
877
+ "/trends</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
878
+ ],
879
+ "visibleIn": [
880
+ "complete"
881
+ ]
882
+ },
883
+ {
884
+ "id": "C_WH",
885
+ "kind": "chip",
886
+ "lane": "search",
887
+ "col": 4,
888
+ "row": 9.4,
889
+ "state": "measured",
890
+ "title": "WAREHOUSE · dbo</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
891
+ "subtitle": "shown in the billing lane</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
892
+ "visibleIn": [
893
+ "complete"
894
+ ],
895
+ "ref": "T_WH"
896
+ },
897
+ {
898
+ "id": "R_SEARCH",
899
+ "kind": "group",
900
+ "lane": "search",
901
+ "col": 5,
902
+ "row": 9.4,
903
+ "state": "unrecorded",
904
+ "title": "search refresher</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
905
+ "subtitle": "6 jobs, not recorded</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
906
+ "weight": 6,
907
+ "upgrade": "read the app's refresh_state</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
908
+ "visibleIn": [
909
+ "complete"
910
+ ]
911
+ },
912
+ {
913
+ "id": "T_RS_SEARCH",
914
+ "kind": "group",
915
+ "lane": "search",
916
+ "col": 6,
917
+ "row": 9.4,
918
+ "state": "measured",
919
+ "title": "rs_search</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
920
+ "subtitle": "27 tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
921
+ "weight": 27,
922
+ "members": [
923
+ "rs_search.table_01</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
924
+ "rs_search.table_02</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
925
+ "rs_search.table_03</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
926
+ "rs_search.table_04</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
927
+ "rs_search.table_05</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
928
+ "rs_search.table_06</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
929
+ "rs_search.table_07</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
930
+ "rs_search.table_08</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
931
+ "rs_search.table_09</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
932
+ "rs_search.table_10</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
933
+ "rs_search.table_11</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
934
+ "rs_search.table_12</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
935
+ "rs_search.table_13</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
936
+ "rs_search.table_14</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
937
+ "rs_search.table_15</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
938
+ "rs_search.table_16</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
939
+ "rs_search.table_17</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
940
+ "rs_search.table_18</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
941
+ "rs_search.table_19</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
942
+ "rs_search.table_20</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
943
+ "rs_search.table_21</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
944
+ "rs_search.table_22</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
945
+ "rs_search.table_23</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
946
+ "rs_search.table_24</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
947
+ "rs_search.table_25</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
948
+ "rs_search.table_26</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
949
+ "rs_search.table_27</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
950
+ ]
951
+ },
952
+ {
953
+ "id": "A_SEARCH",
954
+ "kind": "card",
955
+ "lane": "search",
956
+ "col": 7,
957
+ "row": 9.4,
958
+ "state": "measured",
959
+ "title": "search-app</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
960
+ "subtitle": "app, health route measured</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
961
+ "members": [
962
+ "/health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
963
+ ]
964
+ },
965
+ {
966
+ "id": "P_SEARCH",
967
+ "kind": "card",
968
+ "lane": "search",
969
+ "col": 8,
970
+ "row": 9.4,
971
+ "state": "unrecorded",
972
+ "title": "search-app pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
973
+ "subtitle": "no lineage document yet</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
974
+ "visibleIn": [
975
+ "complete"
976
+ ]
977
+ },
978
+ {
979
+ "id": "C_STORE",
980
+ "kind": "chip",
981
+ "lane": "reco",
982
+ "col": 2,
983
+ "row": 11.15,
984
+ "state": "declared",
985
+ "title": "STOREDB</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
986
+ "subtitle": "shown in the storefront lane</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
987
+ "visibleIn": [
988
+ "complete"
989
+ ],
990
+ "ref": "D_STORE"
991
+ },
992
+ {
993
+ "id": "W_RECO",
994
+ "kind": "placeholder",
995
+ "lane": "reco",
996
+ "col": 3,
997
+ "row": 11.15,
998
+ "state": "unrecorded",
999
+ "title": "recommender loaders, tables and refresher: not recorded</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1000
+ "subtitle": "No lineage document. Close it with a document, the loader's name, or the app's refresh_state.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1001
+ "colSpan": 3,
1002
+ "weight": 3,
1003
+ "visibleIn": [
1004
+ "complete"
1005
+ ]
1006
+ },
1007
+ {
1008
+ "id": "T_RS_RECO",
1009
+ "kind": "group",
1010
+ "lane": "reco",
1011
+ "col": 6,
1012
+ "row": 11.15,
1013
+ "state": "measured",
1014
+ "title": "rs_reco</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1015
+ "subtitle": "source_coverage read; the rest not read</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1016
+ "members": [
1017
+ "rs_reco.source_coverage</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1018
+ ],
1019
+ "upgrade": "probe the database to list the rest</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1020
+ "visibleIn": [
1021
+ "complete"
1022
+ ]
1023
+ },
1024
+ {
1025
+ "id": "A_RECO",
1026
+ "kind": "card",
1027
+ "lane": "reco",
1028
+ "col": 7,
1029
+ "row": 11.15,
1030
+ "state": "measured",
1031
+ "title": "recommender</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1032
+ "subtitle": "app, health route measured</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1033
+ "members": [
1034
+ "/health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1035
+ ]
1036
+ },
1037
+ {
1038
+ "id": "P_RECO",
1039
+ "kind": "card",
1040
+ "lane": "reco",
1041
+ "col": 8,
1042
+ "row": 11.15,
1043
+ "state": "unrecorded",
1044
+ "title": "recommender pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1045
+ "subtitle": "no lineage document yet</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1046
+ "visibleIn": [
1047
+ "complete"
1048
+ ]
1049
+ },
1050
+ {
1051
+ "id": "H_UAT",
1052
+ "kind": "card",
1053
+ "lane": "desk",
1054
+ "col": 1,
1055
+ "row": 12.9,
1056
+ "state": "declared",
1057
+ "title": "uat-host</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1058
+ "subtitle": "SQL host, not read today</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1059
+ "stateIn": {
1060
+ "today": "unrecorded"
1061
+ }
1062
+ },
1063
+ {
1064
+ "id": "D_FB",
1065
+ "kind": "card",
1066
+ "lane": "desk",
1067
+ "col": 2,
1068
+ "row": 12.9,
1069
+ "state": "declared",
1070
+ "title": "Feedback_DB</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1071
+ "subtitle": "database, never read today</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1072
+ "stateIn": {
1073
+ "today": "unrecorded"
1074
+ }
1075
+ },
1076
+ {
1077
+ "id": "J_DESK",
1078
+ "kind": "group",
1079
+ "lane": "desk",
1080
+ "col": 3,
1081
+ "row": 12.9,
1082
+ "state": "declared",
1083
+ "title": "support-desk pipeline</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1084
+ "subtitle": "12 steps</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1085
+ "weight": 12,
1086
+ "members": [
1087
+ "Extract pending appointments (agent job)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1088
+ "daily pipeline script</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1089
+ "diagnostics processor</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1090
+ "summary generator</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1091
+ "recommendations saver</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1092
+ "weekly report</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1093
+ "lock reaper (300 s)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1094
+ "analytics rollup (600 s)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1095
+ ],
1096
+ "visibleIn": [
1097
+ "complete"
1098
+ ]
1099
+ },
1100
+ {
1101
+ "id": "T_DESK",
1102
+ "kind": "group",
1103
+ "lane": "desk",
1104
+ "col": 4,
1105
+ "row": 12.9,
1106
+ "state": "declared",
1107
+ "title": "Desk tables and legacy DBs</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1108
+ "subtitle": "9 objects</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1109
+ "weight": 9,
1110
+ "members": [
1111
+ "dbo.Pending_Calls</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1112
+ "dbo.Case_Assignment</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1113
+ "dbo.Case_Diagnostics</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1114
+ "dbo.Case_Feedback</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1115
+ "dbo.Case_Recommendation</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1116
+ "dbo.vw_CaseDetail</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1117
+ "LEGACY.CASES</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1118
+ "LEGACY.INTERACTIONS</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1119
+ "LEGACY.OUTAGES</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1120
+ ],
1121
+ "visibleIn": [
1122
+ "complete"
1123
+ ]
1124
+ },
1125
+ {
1126
+ "id": "W_DESK",
1127
+ "kind": "placeholder",
1128
+ "lane": "desk",
1129
+ "col": 5,
1130
+ "row": 12.9,
1131
+ "state": "declared",
1132
+ "title": "No refresher, no reporting tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1133
+ "subtitle": "The app reads its own tables directly (no rs_ schema).</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1134
+ "colSpan": 2,
1135
+ "visibleIn": [
1136
+ "complete"
1137
+ ]
1138
+ },
1139
+ {
1140
+ "id": "A_DESK",
1141
+ "kind": "card",
1142
+ "lane": "desk",
1143
+ "col": 7,
1144
+ "row": 12.9,
1145
+ "state": "measured",
1146
+ "title": "support-desk</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1147
+ "subtitle": "app, health route measured</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1148
+ "members": [
1149
+ "/api/health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1150
+ ]
1151
+ },
1152
+ {
1153
+ "id": "P_DESK",
1154
+ "kind": "group",
1155
+ "lane": "desk",
1156
+ "col": 8,
1157
+ "row": 12.9,
1158
+ "state": "declared",
1159
+ "title": "support-desk pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1160
+ "subtitle": "10 pages · 15 elements</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1161
+ "weight": 10,
1162
+ "members": [
1163
+ "/</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1164
+ "/queue</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1165
+ "/cases/$caseId</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1166
+ "/ai-impact</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1167
+ "/map</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1168
+ "/reports</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1169
+ "/app-analytics</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1170
+ "/settings</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1171
+ ],
1172
+ "visibleIn": [
1173
+ "complete"
1174
+ ]
1175
+ },
1176
+ {
1177
+ "id": "W_MORE",
1178
+ "kind": "placeholder",
1179
+ "lane": "more",
1180
+ "col": 0,
1181
+ "row": 14.65,
1182
+ "state": "unrecorded",
1183
+ "title": "six more apps: finance, nps, uni, kiosk, board, monitor</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1184
+ "subtitle": "No lineage document for these apps yet. They report a health route only, so nothing about their data is recorded.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1185
+ "colSpan": 7,
1186
+ "visibleIn": [
1187
+ "complete"
1188
+ ]
1189
+ },
1190
+ {
1191
+ "id": "A_MORE",
1192
+ "kind": "group",
1193
+ "lane": "more",
1194
+ "col": 7,
1195
+ "row": 14.65,
1196
+ "state": "measured",
1197
+ "title": "6 more apps</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1198
+ "subtitle": "health routes measured</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1199
+ "weight": 6,
1200
+ "members": [
1201
+ "finance /health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1202
+ "nps /health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1203
+ "uni /health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1204
+ "kiosk /health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1205
+ "board /api/health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1206
+ "monitor /health</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1207
+ ]
1208
+ },
1209
+ {
1210
+ "id": "P_MORE",
1211
+ "kind": "card",
1212
+ "lane": "more",
1213
+ "col": 8,
1214
+ "row": 14.65,
1215
+ "state": "unrecorded",
1216
+ "title": "their pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1217
+ "subtitle": "no lineage document yet</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1218
+ "visibleIn": [
1219
+ "complete"
1220
+ ]
1221
+ },
1222
+ {
1223
+ "id": "W_FEED",
1224
+ "kind": "placeholder",
1225
+ "lane": "feed",
1226
+ "col": 0,
1227
+ "row": 16.4,
1228
+ "state": "unrecorded",
1229
+ "title": "partner-feed: a file pipeline (.in in; .pdf .xml out)</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1230
+ "subtitle": "Its document has no pages, routes or SQL tables, so the standard columns do not apply. Decision needed: how to model files and billing cycles.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1231
+ "colSpan": 7,
1232
+ "visibleIn": [
1233
+ "complete"
1234
+ ]
1235
+ },
1236
+ {
1237
+ "id": "A_FEED",
1238
+ "kind": "card",
1239
+ "lane": "feed",
1240
+ "col": 7,
1241
+ "row": 16.4,
1242
+ "state": "unrecorded",
1243
+ "title": "partner-feed</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1244
+ "subtitle": "app, not recorded as tables</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1245
+ "visibleIn": [
1246
+ "complete"
1247
+ ]
1248
+ }
1249
+ ],
1250
+ "links": [
1251
+ {
1252
+ "id": "H_DB1-D_STORE",
1253
+ "from": "H_DB1",
1254
+ "to": "D_STORE",
1255
+ "state": "declared"
1256
+ },
1257
+ {
1258
+ "id": "H_DB1-D_WH",
1259
+ "from": "H_DB1",
1260
+ "to": "D_WH",
1261
+ "state": "measured",
1262
+ "visibleIn": [
1263
+ "today"
1264
+ ]
1265
+ },
1266
+ {
1267
+ "id": "H_B2-D_AN",
1268
+ "from": "H_B2",
1269
+ "to": "D_AN",
1270
+ "state": "measured"
1271
+ },
1272
+ {
1273
+ "id": "H_UAT-D_FB",
1274
+ "from": "H_UAT",
1275
+ "to": "D_FB",
1276
+ "state": "declared"
1277
+ },
1278
+ {
1279
+ "id": "H_OLD-D_OLD",
1280
+ "from": "H_OLD",
1281
+ "to": "D_OLD",
1282
+ "state": "declared",
1283
+ "visibleIn": [
1284
+ "complete"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "id": "D_AN-J_B36",
1289
+ "from": "D_AN",
1290
+ "to": "J_B36",
1291
+ "state": "measured",
1292
+ "label": "1 job</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1293
+ },
1294
+ {
1295
+ "id": "J_B36-T_AN",
1296
+ "from": "J_B36",
1297
+ "to": "T_AN",
1298
+ "state": "unrecorded"
1299
+ },
1300
+ {
1301
+ "id": "C_DB1-D_WH",
1302
+ "from": "C_DB1",
1303
+ "to": "D_WH",
1304
+ "state": "measured",
1305
+ "visibleIn": [
1306
+ "complete"
1307
+ ]
1308
+ },
1309
+ {
1310
+ "id": "D_WH-J_W47",
1311
+ "from": "D_WH",
1312
+ "to": "J_W47",
1313
+ "state": "measured",
1314
+ "label": "35 jobs</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1315
+ },
1316
+ {
1317
+ "id": "D_WH-J_BILL",
1318
+ "from": "D_WH",
1319
+ "to": "J_BILL",
1320
+ "state": "declared",
1321
+ "visibleIn": [
1322
+ "complete"
1323
+ ]
1324
+ },
1325
+ {
1326
+ "id": "ERP-J_BILL",
1327
+ "from": "ERP",
1328
+ "to": "J_BILL",
1329
+ "state": "declared",
1330
+ "visibleIn": [
1331
+ "complete"
1332
+ ]
1333
+ },
1334
+ {
1335
+ "id": "FILES-J_W47",
1336
+ "from": "FILES",
1337
+ "to": "J_W47",
1338
+ "state": "declared",
1339
+ "visibleIn": [
1340
+ "complete"
1341
+ ]
1342
+ },
1343
+ {
1344
+ "id": "J_W47-T_WH",
1345
+ "from": "J_W47",
1346
+ "to": "T_WH",
1347
+ "state": "inferred",
1348
+ "label": "69 links</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1349
+ },
1350
+ {
1351
+ "id": "J_BILL-T_WH",
1352
+ "from": "J_BILL",
1353
+ "to": "T_WH",
1354
+ "state": "declared",
1355
+ "visibleIn": [
1356
+ "complete"
1357
+ ]
1358
+ },
1359
+ {
1360
+ "id": "T_WH-R_BILL",
1361
+ "from": "T_WH",
1362
+ "to": "R_BILL",
1363
+ "state": "declared",
1364
+ "visibleIn": [
1365
+ "complete"
1366
+ ]
1367
+ },
1368
+ {
1369
+ "id": "R_BILL-T_RS_BILL",
1370
+ "from": "R_BILL",
1371
+ "to": "T_RS_BILL",
1372
+ "state": "declared",
1373
+ "visibleIn": [
1374
+ "complete"
1375
+ ]
1376
+ },
1377
+ {
1378
+ "id": "T_RS_BILL-A_BILL",
1379
+ "from": "T_RS_BILL",
1380
+ "to": "A_BILL",
1381
+ "state": "declared",
1382
+ "visibleIn": [
1383
+ "complete"
1384
+ ]
1385
+ },
1386
+ {
1387
+ "id": "A_BILL-P_BILL",
1388
+ "from": "A_BILL",
1389
+ "to": "P_BILL",
1390
+ "state": "declared",
1391
+ "label": "17 routes</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1392
+ "visibleIn": [
1393
+ "complete"
1394
+ ]
1395
+ },
1396
+ {
1397
+ "id": "ORD-J_ORD",
1398
+ "from": "ORD",
1399
+ "to": "J_ORD",
1400
+ "state": "declared",
1401
+ "visibleIn": [
1402
+ "complete"
1403
+ ]
1404
+ },
1405
+ {
1406
+ "id": "D_STORE-J_ORD",
1407
+ "from": "D_STORE",
1408
+ "to": "J_ORD",
1409
+ "state": "declared",
1410
+ "visibleIn": [
1411
+ "complete"
1412
+ ]
1413
+ },
1414
+ {
1415
+ "id": "J_ORD-T_ORD",
1416
+ "from": "J_ORD",
1417
+ "to": "T_ORD",
1418
+ "state": "declared",
1419
+ "visibleIn": [
1420
+ "complete"
1421
+ ]
1422
+ },
1423
+ {
1424
+ "id": "SUP-J_CUST",
1425
+ "from": "SUP",
1426
+ "to": "J_CUST",
1427
+ "state": "declared",
1428
+ "visibleIn": [
1429
+ "complete"
1430
+ ]
1431
+ },
1432
+ {
1433
+ "id": "D_STORE-J_CUST",
1434
+ "from": "D_STORE",
1435
+ "to": "J_CUST",
1436
+ "state": "declared",
1437
+ "visibleIn": [
1438
+ "complete"
1439
+ ]
1440
+ },
1441
+ {
1442
+ "id": "J_CUST-T_CUST",
1443
+ "from": "J_CUST",
1444
+ "to": "T_CUST",
1445
+ "state": "declared",
1446
+ "visibleIn": [
1447
+ "complete"
1448
+ ]
1449
+ },
1450
+ {
1451
+ "id": "D_STORE-J_SUM",
1452
+ "from": "D_STORE",
1453
+ "to": "J_SUM",
1454
+ "state": "declared",
1455
+ "visibleIn": [
1456
+ "complete"
1457
+ ]
1458
+ },
1459
+ {
1460
+ "id": "H_GPU-J_SUM",
1461
+ "from": "H_GPU",
1462
+ "to": "J_SUM",
1463
+ "state": "declared",
1464
+ "visibleIn": [
1465
+ "complete"
1466
+ ]
1467
+ },
1468
+ {
1469
+ "id": "J_SUM-T_SUM",
1470
+ "from": "J_SUM",
1471
+ "to": "T_SUM",
1472
+ "state": "declared",
1473
+ "visibleIn": [
1474
+ "complete"
1475
+ ]
1476
+ },
1477
+ {
1478
+ "id": "D_OLD-J_EXT",
1479
+ "from": "D_OLD",
1480
+ "to": "J_EXT",
1481
+ "state": "declared",
1482
+ "visibleIn": [
1483
+ "complete"
1484
+ ]
1485
+ },
1486
+ {
1487
+ "id": "J_EXT-T_EXT",
1488
+ "from": "J_EXT",
1489
+ "to": "T_EXT",
1490
+ "state": "declared",
1491
+ "visibleIn": [
1492
+ "complete"
1493
+ ]
1494
+ },
1495
+ {
1496
+ "id": "T_ORD-R_STORE",
1497
+ "from": "T_ORD",
1498
+ "to": "R_STORE",
1499
+ "state": "declared",
1500
+ "visibleIn": [
1501
+ "complete"
1502
+ ]
1503
+ },
1504
+ {
1505
+ "id": "T_CUST-R_STORE",
1506
+ "from": "T_CUST",
1507
+ "to": "R_STORE",
1508
+ "state": "declared",
1509
+ "visibleIn": [
1510
+ "complete"
1511
+ ]
1512
+ },
1513
+ {
1514
+ "id": "T_SUM-R_STORE",
1515
+ "from": "T_SUM",
1516
+ "to": "R_STORE",
1517
+ "state": "declared",
1518
+ "visibleIn": [
1519
+ "complete"
1520
+ ]
1521
+ },
1522
+ {
1523
+ "id": "T_EXT-R_STORE",
1524
+ "from": "T_EXT",
1525
+ "to": "R_STORE",
1526
+ "state": "declared",
1527
+ "visibleIn": [
1528
+ "complete"
1529
+ ]
1530
+ },
1531
+ {
1532
+ "id": "R_STORE-T_RS_STORE",
1533
+ "from": "R_STORE",
1534
+ "to": "T_RS_STORE",
1535
+ "state": "declared",
1536
+ "visibleIn": [
1537
+ "complete"
1538
+ ]
1539
+ },
1540
+ {
1541
+ "id": "T_RS_STORE-A_STORE",
1542
+ "from": "T_RS_STORE",
1543
+ "to": "A_STORE",
1544
+ "state": "declared",
1545
+ "visibleIn": [
1546
+ "complete"
1547
+ ]
1548
+ },
1549
+ {
1550
+ "id": "A_STORE-P_STORE",
1551
+ "from": "A_STORE",
1552
+ "to": "P_STORE",
1553
+ "state": "declared",
1554
+ "label": "74 routes</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1555
+ "visibleIn": [
1556
+ "complete"
1557
+ ]
1558
+ },
1559
+ {
1560
+ "id": "C_WH-R_SEARCH",
1561
+ "from": "C_WH",
1562
+ "to": "R_SEARCH",
1563
+ "state": "inferred",
1564
+ "visibleIn": [
1565
+ "complete"
1566
+ ]
1567
+ },
1568
+ {
1569
+ "id": "R_SEARCH-T_RS_SEARCH",
1570
+ "from": "R_SEARCH",
1571
+ "to": "T_RS_SEARCH",
1572
+ "state": "unrecorded",
1573
+ "visibleIn": [
1574
+ "complete"
1575
+ ]
1576
+ },
1577
+ {
1578
+ "id": "T_RS_SEARCH-A_SEARCH",
1579
+ "from": "T_RS_SEARCH",
1580
+ "to": "A_SEARCH",
1581
+ "state": "unrecorded",
1582
+ "visibleIn": [
1583
+ "complete"
1584
+ ]
1585
+ },
1586
+ {
1587
+ "id": "A_SEARCH-P_SEARCH",
1588
+ "from": "A_SEARCH",
1589
+ "to": "P_SEARCH",
1590
+ "state": "unrecorded",
1591
+ "visibleIn": [
1592
+ "complete"
1593
+ ]
1594
+ },
1595
+ {
1596
+ "id": "C_STORE-W_RECO",
1597
+ "from": "C_STORE",
1598
+ "to": "W_RECO",
1599
+ "state": "unrecorded",
1600
+ "visibleIn": [
1601
+ "complete"
1602
+ ]
1603
+ },
1604
+ {
1605
+ "id": "W_RECO-T_RS_RECO",
1606
+ "from": "W_RECO",
1607
+ "to": "T_RS_RECO",
1608
+ "state": "unrecorded",
1609
+ "visibleIn": [
1610
+ "complete"
1611
+ ]
1612
+ },
1613
+ {
1614
+ "id": "T_RS_RECO-A_RECO",
1615
+ "from": "T_RS_RECO",
1616
+ "to": "A_RECO",
1617
+ "state": "unrecorded",
1618
+ "visibleIn": [
1619
+ "complete"
1620
+ ]
1621
+ },
1622
+ {
1623
+ "id": "A_RECO-P_RECO",
1624
+ "from": "A_RECO",
1625
+ "to": "P_RECO",
1626
+ "state": "unrecorded",
1627
+ "visibleIn": [
1628
+ "complete"
1629
+ ]
1630
+ },
1631
+ {
1632
+ "id": "D_FB-J_DESK",
1633
+ "from": "D_FB",
1634
+ "to": "J_DESK",
1635
+ "state": "declared",
1636
+ "visibleIn": [
1637
+ "complete"
1638
+ ]
1639
+ },
1640
+ {
1641
+ "id": "J_DESK-T_DESK",
1642
+ "from": "J_DESK",
1643
+ "to": "T_DESK",
1644
+ "state": "declared",
1645
+ "visibleIn": [
1646
+ "complete"
1647
+ ]
1648
+ },
1649
+ {
1650
+ "id": "T_DESK-W_DESK",
1651
+ "from": "T_DESK",
1652
+ "to": "W_DESK",
1653
+ "state": "declared",
1654
+ "visibleIn": [
1655
+ "complete"
1656
+ ]
1657
+ },
1658
+ {
1659
+ "id": "W_DESK-A_DESK",
1660
+ "from": "W_DESK",
1661
+ "to": "A_DESK",
1662
+ "state": "declared",
1663
+ "visibleIn": [
1664
+ "complete"
1665
+ ]
1666
+ },
1667
+ {
1668
+ "id": "A_DESK-P_DESK",
1669
+ "from": "A_DESK",
1670
+ "to": "P_DESK",
1671
+ "state": "declared",
1672
+ "label": "18 routes</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1673
+ "visibleIn": [
1674
+ "complete"
1675
+ ]
1676
+ },
1677
+ {
1678
+ "id": "W_MORE-A_MORE",
1679
+ "from": "W_MORE",
1680
+ "to": "A_MORE",
1681
+ "state": "unrecorded",
1682
+ "visibleIn": [
1683
+ "complete"
1684
+ ]
1685
+ },
1686
+ {
1687
+ "id": "A_MORE-P_MORE",
1688
+ "from": "A_MORE",
1689
+ "to": "P_MORE",
1690
+ "state": "unrecorded",
1691
+ "visibleIn": [
1692
+ "complete"
1693
+ ]
1694
+ },
1695
+ {
1696
+ "id": "W_FEED-A_FEED",
1697
+ "from": "W_FEED",
1698
+ "to": "A_FEED",
1699
+ "state": "unrecorded",
1700
+ "visibleIn": [
1701
+ "complete"
1702
+ ]
1703
+ }
1704
+ ],
1705
+ "views": [
1706
+ {
1707
+ "id": "today",
1708
+ "label": "Today</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1709
+ },
1710
+ {
1711
+ "id": "complete",
1712
+ "label": "Complete</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1713
+ "default": true
1714
+ }
1715
+ ],
1716
+ "inspector": {
1717
+ "relations": [
1718
+ {
1719
+ "id": "up",
1720
+ "label": "Feeds this</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1721
+ "dir": "up"
1722
+ },
1723
+ {
1724
+ "id": "down",
1725
+ "label": "Downstream</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1726
+ "dir": "down"
1727
+ },
1728
+ {
1729
+ "id": "pages",
1730
+ "label": "Pages</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1731
+ "dir": "down",
1732
+ "filter": {
1733
+ "col": 8
1734
+ }
1735
+ }
1736
+ ],
1737
+ "actions": [
1738
+ {
1739
+ "id": "stale",
1740
+ "label": "Simulate: this stops updating</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1741
+ "dir": "down",
1742
+ "staleText": "potentially stale</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1743
+ }
1744
+ ]
1745
+ },
1746
+ "notes": [
1747
+ {
1748
+ "anchor": "#layerstrip",
1749
+ "title": "Completeness strip</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1750
+ "text": "One cell per column: a stacked bar (good, neutral, gap) and 'known / recorded'. Data: node weights by state bucket. An empty column shows a dotted track, never a full bar.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1751
+ },
1752
+ {
1753
+ "anchor": "#kpis",
1754
+ "title": "Summary tiles</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1755
+ "text": "Links by state bucket, groups with a gap, and groups that can be improved. The last two are buttons that dim everything else (aria-pressed).</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1756
+ },
1757
+ {
1758
+ "anchor": "#modeSwitch",
1759
+ "title": "View switch</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1760
+ "text": "Today shows what the current page can record. Complete adds the declared layer. Both views come from one model: visibleIn and stateIn decide what each view shows.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1761
+ },
1762
+ {
1763
+ "anchor": "#viewport",
1764
+ "title": "Canvas</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1765
+ "text": "Wheel zooms around the cursor, drag pans, double-click fits. The first view fits the width (zoom 0.6 or more); 0 fits everything.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1766
+ },
1767
+ {
1768
+ "anchor": "#tools",
1769
+ "title": "Canvas controls</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1770
+ "text": "Select, hand, zoom in and out, fit, 100 percent, zoom to selection and fullscreen. Keys: V H + - 0 1 F and the arrows.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1771
+ },
1772
+ {
1773
+ "anchor": "#inspector",
1774
+ "title": "Inspector</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1775
+ "text": "Slides in on a click and closes with Esc. The three buttons highlight the groups that feed this one, the groups downstream, and the last column. The red button simulates a failure.</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1776
+ },
1777
+ {
1778
+ "anchor": "<img src=x onerror=window.__pwned=1>",
1779
+ "title": "</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

",
1780
+ "text": "</script><img src=x onerror=\"window.__pwned=1\"><b>\"'&

"
1781
+ }
1782
+ ]
1783
+ }