@miragon/pulse-analytics-connector 0.0.0-bootstrap.0 → 0.21.0
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.
- package/LICENSE +21 -0
- package/README.md +86 -3
- package/dist/bpmn-name-lookup.d.ts +72 -0
- package/dist/bpmn-name-lookup.d.ts.map +1 -0
- package/dist/bpmn-name-lookup.js +123 -0
- package/dist/bpmn-name-lookup.js.map +1 -0
- package/dist/bpmn-name-lookup.test.d.ts +2 -0
- package/dist/bpmn-name-lookup.test.d.ts.map +1 -0
- package/dist/bpmn-name-lookup.test.js +287 -0
- package/dist/bpmn-name-lookup.test.js.map +1 -0
- package/dist/bpmn-names.d.ts +38 -0
- package/dist/bpmn-names.d.ts.map +1 -0
- package/dist/bpmn-names.js +22 -0
- package/dist/bpmn-names.js.map +1 -0
- package/dist/brand-gates.test.d.ts +2 -0
- package/dist/brand-gates.test.d.ts.map +1 -0
- package/dist/brand-gates.test.js +58 -0
- package/dist/brand-gates.test.js.map +1 -0
- package/dist/builder-texts.d.ts +4 -0
- package/dist/builder-texts.d.ts.map +1 -0
- package/dist/builder-texts.js +14 -0
- package/dist/builder-texts.js.map +1 -0
- package/dist/builder-texts.test.d.ts +2 -0
- package/dist/builder-texts.test.d.ts.map +1 -0
- package/dist/builder-texts.test.js +32 -0
- package/dist/builder-texts.test.js.map +1 -0
- package/dist/definition.d.ts +3 -0
- package/dist/definition.d.ts.map +1 -0
- package/dist/definition.js +151 -0
- package/dist/definition.js.map +1 -0
- package/dist/engine-ids.d.ts +42 -0
- package/dist/engine-ids.d.ts.map +1 -0
- package/dist/engine-ids.js +50 -0
- package/dist/engine-ids.js.map +1 -0
- package/dist/engine-scope.test.d.ts +2 -0
- package/dist/engine-scope.test.d.ts.map +1 -0
- package/dist/engine-scope.test.js +260 -0
- package/dist/engine-scope.test.js.map +1 -0
- package/dist/heatmap-data.d.ts +15 -0
- package/dist/heatmap-data.d.ts.map +1 -0
- package/dist/heatmap-data.js +2 -0
- package/dist/heatmap-data.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions.d.ts +8 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +33 -0
- package/dist/instructions.js.map +1 -0
- package/dist/messages/de.ask-ai.d.ts +9 -0
- package/dist/messages/de.ask-ai.d.ts.map +1 -0
- package/dist/messages/de.ask-ai.js +18 -0
- package/dist/messages/de.ask-ai.js.map +1 -0
- package/dist/messages/de.builder.d.ts +12 -0
- package/dist/messages/de.builder.d.ts.map +1 -0
- package/dist/messages/de.builder.js +53 -0
- package/dist/messages/de.builder.js.map +1 -0
- package/dist/messages/de.server.d.ts +8 -0
- package/dist/messages/de.server.d.ts.map +1 -0
- package/dist/messages/de.server.js +26 -0
- package/dist/messages/de.server.js.map +1 -0
- package/dist/messages/de.sweep.d.ts +10 -0
- package/dist/messages/de.sweep.d.ts.map +1 -0
- package/dist/messages/de.sweep.js +203 -0
- package/dist/messages/de.sweep.js.map +1 -0
- package/dist/messages/en.ask-ai.d.ts +25 -0
- package/dist/messages/en.ask-ai.d.ts.map +1 -0
- package/dist/messages/en.ask-ai.js +24 -0
- package/dist/messages/en.ask-ai.js.map +1 -0
- package/dist/messages/en.builder.d.ts +12 -0
- package/dist/messages/en.builder.d.ts.map +1 -0
- package/dist/messages/en.builder.js +53 -0
- package/dist/messages/en.builder.js.map +1 -0
- package/dist/messages/en.server.d.ts +8 -0
- package/dist/messages/en.server.d.ts.map +1 -0
- package/dist/messages/en.server.js +26 -0
- package/dist/messages/en.server.js.map +1 -0
- package/dist/messages/en.sweep.d.ts +11 -0
- package/dist/messages/en.sweep.d.ts.map +1 -0
- package/dist/messages/en.sweep.js +204 -0
- package/dist/messages/en.sweep.js.map +1 -0
- package/dist/messages/glossary.d.ts +26 -0
- package/dist/messages/glossary.d.ts.map +1 -0
- package/dist/messages/glossary.js +37 -0
- package/dist/messages/glossary.js.map +1 -0
- package/dist/messages/glossary.test.d.ts +2 -0
- package/dist/messages/glossary.test.d.ts.map +1 -0
- package/dist/messages/glossary.test.js +109 -0
- package/dist/messages/glossary.test.js.map +1 -0
- package/dist/messages/index.d.ts +12 -0
- package/dist/messages/index.d.ts.map +1 -0
- package/dist/messages/index.js +23 -0
- package/dist/messages/index.js.map +1 -0
- package/dist/messages/plural.d.ts +10 -0
- package/dist/messages/plural.d.ts.map +1 -0
- package/dist/messages/plural.js +17 -0
- package/dist/messages/plural.js.map +1 -0
- package/dist/messages/use-t.d.ts +10 -0
- package/dist/messages/use-t.d.ts.map +1 -0
- package/dist/messages/use-t.js +10 -0
- package/dist/messages/use-t.js.map +1 -0
- package/dist/module.d.ts +48 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +174 -0
- package/dist/module.js.map +1 -0
- package/dist/module.test.d.ts +2 -0
- package/dist/module.test.d.ts.map +1 -0
- package/dist/module.test.js +230 -0
- package/dist/module.test.js.map +1 -0
- package/dist/named-views.d.ts +27 -0
- package/dist/named-views.d.ts.map +1 -0
- package/dist/named-views.js +73 -0
- package/dist/named-views.js.map +1 -0
- package/dist/named-views.test.d.ts +2 -0
- package/dist/named-views.test.d.ts.map +1 -0
- package/dist/named-views.test.js +110 -0
- package/dist/named-views.test.js.map +1 -0
- package/dist/plugin.d.ts +44 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +52 -0
- package/dist/plugin.js.map +1 -0
- package/dist/prometheus-wiring.test.d.ts +2 -0
- package/dist/prometheus-wiring.test.d.ts.map +1 -0
- package/dist/prometheus-wiring.test.js +142 -0
- package/dist/prometheus-wiring.test.js.map +1 -0
- package/dist/server-locale.d.ts +48 -0
- package/dist/server-locale.d.ts.map +1 -0
- package/dist/server-locale.js +33 -0
- package/dist/server-locale.js.map +1 -0
- package/dist/settings-tools.d.ts +23 -0
- package/dist/settings-tools.d.ts.map +1 -0
- package/dist/settings-tools.js +100 -0
- package/dist/settings-tools.js.map +1 -0
- package/dist/settings.d.ts +77 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +99 -0
- package/dist/settings.js.map +1 -0
- package/dist/settings.test.d.ts +2 -0
- package/dist/settings.test.d.ts.map +1 -0
- package/dist/settings.test.js +299 -0
- package/dist/settings.test.js.map +1 -0
- package/dist/steps/app-config.d.ts +30 -0
- package/dist/steps/app-config.d.ts.map +1 -0
- package/dist/steps/app-config.js +46 -0
- package/dist/steps/app-config.js.map +1 -0
- package/dist/steps/dashboard.d.ts +12 -0
- package/dist/steps/dashboard.d.ts.map +1 -0
- package/dist/steps/dashboard.js +58 -0
- package/dist/steps/dashboard.js.map +1 -0
- package/dist/steps/failure-dashboard.d.ts +10 -0
- package/dist/steps/failure-dashboard.d.ts.map +1 -0
- package/dist/steps/failure-dashboard.js +32 -0
- package/dist/steps/failure-dashboard.js.map +1 -0
- package/dist/steps/index.d.ts +3 -0
- package/dist/steps/index.d.ts.map +1 -0
- package/dist/steps/index.js +3 -0
- package/dist/steps/index.js.map +1 -0
- package/dist/steps/steps.test.d.ts +2 -0
- package/dist/steps/steps.test.d.ts.map +1 -0
- package/dist/steps/steps.test.js +153 -0
- package/dist/steps/steps.test.js.map +1 -0
- package/dist/tool-names.d.ts +13 -0
- package/dist/tool-names.d.ts.map +1 -0
- package/dist/tool-names.js +27 -0
- package/dist/tool-names.js.map +1 -0
- package/dist/tools/cluster-compare.d.ts +8 -0
- package/dist/tools/cluster-compare.d.ts.map +1 -0
- package/dist/tools/cluster-compare.js +17 -0
- package/dist/tools/cluster-compare.js.map +1 -0
- package/dist/tools/element.d.ts +8 -0
- package/dist/tools/element.d.ts.map +1 -0
- package/dist/tools/element.js +25 -0
- package/dist/tools/element.js.map +1 -0
- package/dist/tools/engine-compare.d.ts +8 -0
- package/dist/tools/engine-compare.d.ts.map +1 -0
- package/dist/tools/engine-compare.js +18 -0
- package/dist/tools/engine-compare.js.map +1 -0
- package/dist/tools/engine-compare.test.d.ts +2 -0
- package/dist/tools/engine-compare.test.d.ts.map +1 -0
- package/dist/tools/engine-compare.test.js +166 -0
- package/dist/tools/engine-compare.test.js.map +1 -0
- package/dist/tools/engine-landscape.d.ts +7 -0
- package/dist/tools/engine-landscape.d.ts.map +1 -0
- package/dist/tools/engine-landscape.js +13 -0
- package/dist/tools/engine-landscape.js.map +1 -0
- package/dist/tools/engine-landscape.test.d.ts +2 -0
- package/dist/tools/engine-landscape.test.d.ts.map +1 -0
- package/dist/tools/engine-landscape.test.js +110 -0
- package/dist/tools/engine-landscape.test.js.map +1 -0
- package/dist/tools/failures.d.ts +7 -0
- package/dist/tools/failures.d.ts.map +1 -0
- package/dist/tools/failures.js +13 -0
- package/dist/tools/failures.js.map +1 -0
- package/dist/tools/health.d.ts +7 -0
- package/dist/tools/health.d.ts.map +1 -0
- package/dist/tools/health.js +23 -0
- package/dist/tools/health.js.map +1 -0
- package/dist/tools/health.test.d.ts +2 -0
- package/dist/tools/health.test.d.ts.map +1 -0
- package/dist/tools/health.test.js +119 -0
- package/dist/tools/health.test.js.map +1 -0
- package/dist/tools/index.d.ts +18 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +35 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/performance.d.ts +8 -0
- package/dist/tools/performance.d.ts.map +1 -0
- package/dist/tools/performance.js +25 -0
- package/dist/tools/performance.js.map +1 -0
- package/dist/tools/performance.test.d.ts +2 -0
- package/dist/tools/performance.test.d.ts.map +1 -0
- package/dist/tools/performance.test.js +176 -0
- package/dist/tools/performance.test.js.map +1 -0
- package/dist/tools/version-compare.d.ts +8 -0
- package/dist/tools/version-compare.d.ts.map +1 -0
- package/dist/tools/version-compare.js +17 -0
- package/dist/tools/version-compare.js.map +1 -0
- package/dist/tools/version-compare.test.d.ts +2 -0
- package/dist/tools/version-compare.test.d.ts.map +1 -0
- package/dist/tools/version-compare.test.js +82 -0
- package/dist/tools/version-compare.test.js.map +1 -0
- package/dist/toolsets.d.ts +17 -0
- package/dist/toolsets.d.ts.map +1 -0
- package/dist/toolsets.js +47 -0
- package/dist/toolsets.js.map +1 -0
- package/dist/toolsets.test.d.ts +2 -0
- package/dist/toolsets.test.d.ts.map +1 -0
- package/dist/toolsets.test.js +91 -0
- package/dist/toolsets.test.js.map +1 -0
- package/dist/view-title.test.d.ts +2 -0
- package/dist/view-title.test.d.ts.map +1 -0
- package/dist/view-title.test.js +91 -0
- package/dist/view-title.test.js.map +1 -0
- package/dist/widget-tools/comparisons.d.ts +13 -0
- package/dist/widget-tools/comparisons.d.ts.map +1 -0
- package/dist/widget-tools/comparisons.js +177 -0
- package/dist/widget-tools/comparisons.js.map +1 -0
- package/dist/widget-tools/comparisons.test.d.ts +2 -0
- package/dist/widget-tools/comparisons.test.d.ts.map +1 -0
- package/dist/widget-tools/comparisons.test.js +123 -0
- package/dist/widget-tools/comparisons.test.js.map +1 -0
- package/dist/widget-tools/shared.d.ts +36 -0
- package/dist/widget-tools/shared.d.ts.map +1 -0
- package/dist/widget-tools/shared.js +39 -0
- package/dist/widget-tools/shared.js.map +1 -0
- package/dist/widget-tools.d.ts +25 -0
- package/dist/widget-tools.d.ts.map +1 -0
- package/dist/widget-tools.js +269 -0
- package/dist/widget-tools.js.map +1 -0
- package/dist/widget-tools.test.d.ts +2 -0
- package/dist/widget-tools.test.d.ts.map +1 -0
- package/dist/widget-tools.test.js +272 -0
- package/dist/widget-tools.test.js.map +1 -0
- package/package.json +91 -5
- package/src/bpmn-name-lookup.test.ts +333 -0
- package/src/bpmn-name-lookup.ts +197 -0
- package/src/bpmn-names.ts +51 -0
- package/src/brand-gates.test.ts +69 -0
- package/src/builder-texts.test.ts +40 -0
- package/src/builder-texts.ts +15 -0
- package/src/definition.ts +181 -0
- package/src/engine-ids.ts +85 -0
- package/src/engine-scope.test.ts +324 -0
- package/src/heatmap-data.ts +14 -0
- package/src/index.ts +4 -0
- package/src/instructions.ts +33 -0
- package/src/messages/GLOSSARY.md +88 -0
- package/src/messages/de.ask-ai.ts +28 -0
- package/src/messages/de.builder.ts +77 -0
- package/src/messages/de.server.ts +39 -0
- package/src/messages/de.sweep.ts +244 -0
- package/src/messages/en.ask-ai.ts +34 -0
- package/src/messages/en.builder.ts +76 -0
- package/src/messages/en.server.ts +39 -0
- package/src/messages/en.sweep.ts +240 -0
- package/src/messages/glossary.test.ts +122 -0
- package/src/messages/glossary.ts +62 -0
- package/src/messages/index.ts +24 -0
- package/src/messages/plural.ts +18 -0
- package/src/messages/use-t.ts +12 -0
- package/src/module.test.ts +319 -0
- package/src/module.ts +211 -0
- package/src/named-views.test.ts +141 -0
- package/src/named-views.ts +97 -0
- package/src/plugin.ts +94 -0
- package/src/prometheus-wiring.test.ts +174 -0
- package/src/server-locale.ts +59 -0
- package/src/settings-tools.ts +170 -0
- package/src/settings.test.ts +402 -0
- package/src/settings.ts +114 -0
- package/src/steps/app-config.ts +75 -0
- package/src/steps/dashboard.ts +73 -0
- package/src/steps/failure-dashboard.ts +38 -0
- package/src/steps/index.ts +2 -0
- package/src/steps/steps.test.ts +216 -0
- package/src/tool-names.ts +26 -0
- package/src/tools/cluster-compare.ts +28 -0
- package/src/tools/element.ts +35 -0
- package/src/tools/engine-compare.test.ts +210 -0
- package/src/tools/engine-compare.ts +30 -0
- package/src/tools/engine-landscape.test.ts +138 -0
- package/src/tools/engine-landscape.ts +21 -0
- package/src/tools/failures.ts +19 -0
- package/src/tools/health.test.ts +156 -0
- package/src/tools/health.ts +29 -0
- package/src/tools/index.ts +44 -0
- package/src/tools/performance.test.ts +210 -0
- package/src/tools/performance.ts +38 -0
- package/src/tools/version-compare.test.ts +97 -0
- package/src/tools/version-compare.ts +28 -0
- package/src/toolsets.test.ts +107 -0
- package/src/toolsets.ts +56 -0
- package/src/view-title.test.ts +123 -0
- package/src/widget-tools/comparisons.test.ts +170 -0
- package/src/widget-tools/comparisons.ts +229 -0
- package/src/widget-tools/shared.ts +67 -0
- package/src/widget-tools.test.ts +306 -0
- package/src/widget-tools.ts +375 -0
- package/src/widgets/analytics-dashboard/activity-bottleneck-table.tsx +179 -0
- package/src/widgets/analytics-dashboard/definition-breakdown.tsx +108 -0
- package/src/widgets/analytics-dashboard/execution-performance-kpi.tsx +94 -0
- package/src/widgets/analytics-dashboard/execution-summary-kpi.tsx +122 -0
- package/src/widgets/analytics-dashboard/lib.ts +43 -0
- package/src/widgets/bpmn-heatmap.test.tsx +75 -0
- package/src/widgets/bpmn-heatmap.tsx +127 -0
- package/src/widgets/catalogue-sync.test.ts +16 -0
- package/src/widgets/cluster-compare.tsx +148 -0
- package/src/widgets/comparison-shared.test.ts +237 -0
- package/src/widgets/comparison-shared.tsx +371 -0
- package/src/widgets/comparison-widgets.test.tsx +307 -0
- package/src/widgets/dashboard-widgets.test.tsx +397 -0
- package/src/widgets/engine-compare.tsx +87 -0
- package/src/widgets/engine-landscape.tsx +352 -0
- package/src/widgets/failure-dashboard/error-patterns-table.tsx +122 -0
- package/src/widgets/failure-dashboard/failure-rate-table.test.ts +80 -0
- package/src/widgets/failure-dashboard/failure-rate-table.tsx +170 -0
- package/src/widgets/failure-dashboard/lib.ts +32 -0
- package/src/widgets/failure-dashboard/summary-kpi.tsx +122 -0
- package/src/widgets/failure-landscape-widgets.test.tsx +393 -0
- package/src/widgets/figure.tsx +79 -0
- package/src/widgets/hand-off.test.ts +126 -0
- package/src/widgets/hand-off.ts +102 -0
- package/src/widgets/index.ts +124 -0
- package/src/widgets/model-descriptions.dashboard.test.ts +280 -0
- package/src/widgets/model-descriptions.test.ts +251 -0
- package/src/widgets/model-descriptions.ts +428 -0
- package/src/widgets/names.test.ts +32 -0
- package/src/widgets/names.ts +39 -0
- package/src/widgets/query-gate.test.tsx +57 -0
- package/src/widgets/query-gate.tsx +50 -0
- package/src/widgets/settings-section.test.tsx +174 -0
- package/src/widgets/settings-section.tsx +244 -0
- package/src/widgets/version-compare.test.ts +68 -0
- package/src/widgets/version-compare.tsx +96 -0
- package/src/widgets/view-meta.ts +18 -0
- package/src/widgets/widget-render.test-support.tsx +103 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-name-lookup.test.js","sourceRoot":"","sources":["../src/bpmn-name-lookup.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The names a BPMN model gives its process and elements, for views that would
|
|
3
|
+
* otherwise show bare ids (U13). Metrics carry ids only by contract (the
|
|
4
|
+
* labels are model-bounded); the names come from the diagram the server
|
|
5
|
+
* reads through the injected BPMN lookup (`bpmn-name-lookup.ts`) and travel in
|
|
6
|
+
* a view's payload as a {@link NameIndex}. Shared by the server and the widget
|
|
7
|
+
* bundle, so it holds types and pure helpers only.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* The names one model gives: its process and the elements that have one.
|
|
11
|
+
* The shape of the kit's `BpmnNames` (`parseBpmnNames`, widget-shell
|
|
12
|
+
* `/server`), the one rule camunda7 names the same model by.
|
|
13
|
+
*/
|
|
14
|
+
export interface ProcessNames {
|
|
15
|
+
/** The process's own name in its model (or its pool's); null when it has none. */
|
|
16
|
+
name: string | null;
|
|
17
|
+
/** Element id → name, only for elements that carry a name. */
|
|
18
|
+
elements: Record<string, string>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Names per process definition key. A key is absent when its model could not
|
|
22
|
+
* be read (no camunda7 module, the engine was unreachable, not deployed on the
|
|
23
|
+
* engine the lookup reads): the view then shows the id, never a guess.
|
|
24
|
+
*/
|
|
25
|
+
export type NameIndex = Record<string, ProcessNames>;
|
|
26
|
+
/**
|
|
27
|
+
* A view payload with the names of the processes (and, for the activity
|
|
28
|
+
* breakdown, the elements) it lists. `names` is absent where no lookup ran
|
|
29
|
+
* (a payload built by a plain query call): the view shows ids.
|
|
30
|
+
*/
|
|
31
|
+
export type Named<T> = T & {
|
|
32
|
+
names?: NameIndex;
|
|
33
|
+
};
|
|
34
|
+
/** The process name for `key`, or null when the index does not know one. */
|
|
35
|
+
export declare function processNameOf(names: NameIndex | undefined, key: string): string | null;
|
|
36
|
+
/** The name of element `id` in the model of `key`, or null when the index does not know one. */
|
|
37
|
+
export declare function elementNameOf(names: NameIndex | undefined, key: string, id: string): string | null;
|
|
38
|
+
//# sourceMappingURL=bpmn-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-names.d.ts","sourceRoot":"","sources":["../src/bpmn-names.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAEpD;;;;GAIG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAEhD,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtF;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,GACT,MAAM,GAAG,IAAI,CAIf"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The names a BPMN model gives its process and elements, for views that would
|
|
3
|
+
* otherwise show bare ids (U13). Metrics carry ids only by contract (the
|
|
4
|
+
* labels are model-bounded); the names come from the diagram the server
|
|
5
|
+
* reads through the injected BPMN lookup (`bpmn-name-lookup.ts`) and travel in
|
|
6
|
+
* a view's payload as a {@link NameIndex}. Shared by the server and the widget
|
|
7
|
+
* bundle, so it holds types and pure helpers only.
|
|
8
|
+
*/
|
|
9
|
+
/** The process name for `key`, or null when the index does not know one. */
|
|
10
|
+
export function processNameOf(names, key) {
|
|
11
|
+
if (!names || !Object.hasOwn(names, key))
|
|
12
|
+
return null;
|
|
13
|
+
return names[key].name;
|
|
14
|
+
}
|
|
15
|
+
/** The name of element `id` in the model of `key`, or null when the index does not know one. */
|
|
16
|
+
export function elementNameOf(names, key, id) {
|
|
17
|
+
if (!names || !Object.hasOwn(names, key))
|
|
18
|
+
return null;
|
|
19
|
+
const elements = names[key].elements;
|
|
20
|
+
return Object.hasOwn(elements, id) ? elements[id] : null;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=bpmn-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpmn-names.js","sourceRoot":"","sources":["../src/bpmn-names.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4BH,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,KAA4B,EAAE,GAAW;IACrE,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACrD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AACxB,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAC3B,KAA4B,EAC5B,GAAW,EACX,EAAU;IAEV,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand-gates.test.d.ts","sourceRoot":"","sources":["../src/brand-gates.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { fileURLToPath } from "node:url";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { catalogTextFindings, scanColors, scanGlyphs, scanIconSizes, scanTypeScale, } from "@miragon/pulse-widget-shell/testing";
|
|
4
|
+
import { deAskAi } from "./messages/de.ask-ai.js";
|
|
5
|
+
import { deBuilder } from "./messages/de.builder.js";
|
|
6
|
+
import { deServer } from "./messages/de.server.js";
|
|
7
|
+
import { deSweep } from "./messages/de.sweep.js";
|
|
8
|
+
import { enAskAi } from "./messages/en.ask-ai.js";
|
|
9
|
+
import { enBuilder } from "./messages/en.builder.js";
|
|
10
|
+
import { enServer } from "./messages/en.server.js";
|
|
11
|
+
import { enSweep } from "./messages/en.sweep.js";
|
|
12
|
+
/**
|
|
13
|
+
* The analytics module under the brand gates every widget package runs
|
|
14
|
+
* (`@miragon/pulse-widget-shell/testing`, CLAUDE.md invariant 6): brand-lint
|
|
15
|
+
* reads Markdown, not the strings inside `.ts`/`.tsx`, so these hold the
|
|
16
|
+
* catalogs to the voice rules and the widget code to Lucide icons and role
|
|
17
|
+
* colours. The terms themselves are `messages/glossary.test.ts`.
|
|
18
|
+
*/
|
|
19
|
+
describe("analytics copy follows the voice rules", () => {
|
|
20
|
+
it.each([
|
|
21
|
+
["widget texts (de)", deSweep, "de"],
|
|
22
|
+
["widget texts (en)", enSweep, "en"],
|
|
23
|
+
["Ask-AI intents (de)", deAskAi, "de"],
|
|
24
|
+
["Ask-AI intents (en)", enAskAi, "en"],
|
|
25
|
+
["model summaries (de)", deServer, "de"],
|
|
26
|
+
["model summaries (en)", enServer, "en"],
|
|
27
|
+
["view builder names (de)", deBuilder, "de"],
|
|
28
|
+
["view builder names (en)", enBuilder, "en"],
|
|
29
|
+
])("%s", (_, catalog, language) => {
|
|
30
|
+
expect(catalogTextFindings(catalog, { language })).toEqual([]);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
const dir = (rel) => fileURLToPath(new URL(rel, import.meta.url));
|
|
34
|
+
describe("analytics widgets draw icons with Lucide, never glyphs or emoji", () => {
|
|
35
|
+
it.each(["./widgets", "./messages"])("%s has no forbidden glyph in JSX or strings", (rel) => {
|
|
36
|
+
expect(scanGlyphs(dir(rel))).toEqual([]);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe("analytics widgets draw icons at the CI sizes", () => {
|
|
40
|
+
// The kit Icon's 16 px in chrome (`dense` for table cells and chips),
|
|
41
|
+
// 24 px previews: a 12 or 14 px icon is a third size in the same view.
|
|
42
|
+
it("src/widgets has no icon at a size other than 16 or 24 px", () => {
|
|
43
|
+
expect(scanIconSizes(dir("./widgets"))).toEqual([]);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe("analytics widgets colour through role names only", () => {
|
|
47
|
+
it("src/widgets has no palette class or raw colour", () => {
|
|
48
|
+
expect(scanColors(dir("./widgets"))).toEqual([]);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
describe("analytics widgets set their text on the CI type scale", () => {
|
|
52
|
+
// Both rules: no Tailwind size (text-sm, text-xl …) and nothing below the
|
|
53
|
+
// 13 px floor (text-xs); the steps say what the text is (CI §4).
|
|
54
|
+
it("src/widgets uses only the type-scale steps", () => {
|
|
55
|
+
expect(scanTypeScale(dir("./widgets"))).toEqual([]);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=brand-gates.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand-gates.test.js","sourceRoot":"","sources":["../src/brand-gates.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const builderAppTitle: () => import("@miragon/mcp-toolkit-core").LocalizedText;
|
|
2
|
+
export declare const builderText: (key: string) => Required<Pick<import("@miragon/mcp-toolkit-core").DisplayText, "title" | "summary">>;
|
|
3
|
+
export declare const fieldText: (key: string) => Record<string, unknown>;
|
|
4
|
+
//# sourceMappingURL=builder-texts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-texts.d.ts","sourceRoot":"","sources":["../src/builder-texts.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,yDAAiB,CAAA;AAC7C,eAAO,MAAM,WAAW,uGAAa,CAAA;AACrC,eAAO,MAAM,SAAS,0CAAc,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createBuilderTexts } from "@miragon/pulse-widget-shell/server";
|
|
2
|
+
import { catalogs } from "./messages/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* How the view builder (toolkit 2.8) names analytics' widgets, pipeline steps
|
|
5
|
+
* and props fields for people, in English and German: the `builder.*`
|
|
6
|
+
* entries of analytics' catalogs (`messages/{en,de}.builder.ts`), held to the
|
|
7
|
+
* voice and glossary gates like the widget texts. The definitions'
|
|
8
|
+
* `description`s stay the model's text.
|
|
9
|
+
*/
|
|
10
|
+
const texts = createBuilderTexts(catalogs, "analytics");
|
|
11
|
+
export const builderAppTitle = texts.appTitle;
|
|
12
|
+
export const builderText = texts.text;
|
|
13
|
+
export const fieldText = texts.field;
|
|
14
|
+
//# sourceMappingURL=builder-texts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-texts.js","sourceRoot":"","sources":["../src/builder-texts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAA;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAA;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-texts.test.d.ts","sourceRoot":"","sources":["../src/builder-texts.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { displayTextCatalog, displayTextsSentToModel, missingDisplayTexts, } from "@miragon/pulse-widget-shell/testing";
|
|
3
|
+
import { definition } from "./definition.js";
|
|
4
|
+
import { catalogs } from "./messages/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* The view builder (toolkit 2.8) shows people each widget, data source and
|
|
7
|
+
* props field by its title and summary, else by its id. analytics names every
|
|
8
|
+
* one of them in English and German, from the `builder.*` entries of its
|
|
9
|
+
* catalogs — where `brand-gates.test.ts` and `messages/glossary.test.ts` hold
|
|
10
|
+
* them to the voice and the glossary like the widget texts.
|
|
11
|
+
*/
|
|
12
|
+
describe("analytics names every builder piece for people", () => {
|
|
13
|
+
it("every widget, step and props field has an en and a de title and summary", () => {
|
|
14
|
+
expect(missingDisplayTexts(definition)).toEqual([]);
|
|
15
|
+
});
|
|
16
|
+
it("none of those texts reaches the model through get-framework-manifest", () => {
|
|
17
|
+
expect(displayTextsSentToModel(definition)).toEqual([]);
|
|
18
|
+
});
|
|
19
|
+
it.each(["en", "de"])("%s: no builder entry in the catalog goes unused", (language) => {
|
|
20
|
+
const shown = new Set(Object.values(displayTextCatalog(definition, language)));
|
|
21
|
+
const unused = Object.entries(catalogs[language])
|
|
22
|
+
.filter(([key]) => key.startsWith("builder."))
|
|
23
|
+
.filter(([, text]) => typeof text !== "string" || !shown.has(text))
|
|
24
|
+
.map(([key]) => key);
|
|
25
|
+
expect(unused).toEqual([]);
|
|
26
|
+
});
|
|
27
|
+
it("both languages name the same pieces", () => {
|
|
28
|
+
const keys = (language) => Object.keys(catalogs[language]).filter((key) => key.startsWith("builder."));
|
|
29
|
+
expect(keys("de")).toEqual(keys("en"));
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=builder-texts.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-texts.test.js","sourceRoot":"","sources":["../src/builder-texts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C;;;;;;GAMG;AACH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAAC,iDAAiD,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC7F,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC9C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAClE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG,CAAC,QAAqB,EAAE,EAAE,CACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;QAC7E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AA+C9D,eAAO,MAAM,UAAU,EAAE,aAoIxB,CAAA"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { PERIODS } from "@miragon/pulse-analytics-client";
|
|
3
|
+
import { loadDashboardStep, loadFailureDashboardStep } from "./steps/index.js";
|
|
4
|
+
import { builderAppTitle, builderText, fieldText } from "./builder-texts.js";
|
|
5
|
+
/** The self-fetch's engine scope — a configured engine id or several; omitted = all of them. */
|
|
6
|
+
const engineScopeProp = z
|
|
7
|
+
.union([z.string(), z.array(z.string())])
|
|
8
|
+
.optional()
|
|
9
|
+
.describe("Configured engine id(s) the self-fetch is scoped to. When omitted, every configured engine is aggregated.");
|
|
10
|
+
const dashboardPropsSchema = z.toJSONSchema(z.object({
|
|
11
|
+
processDefinitionKey: z
|
|
12
|
+
.string()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Scope the dashboard to a single process definition (e.g. 'miraveloLeasing'). When omitted, all processes are aggregated.")
|
|
15
|
+
.meta(fieldText("dashboard.processDefinitionKey")),
|
|
16
|
+
period: z
|
|
17
|
+
.enum(PERIODS)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("Time window for the self-fetch when no upstream pipeline step populates data.")
|
|
20
|
+
.meta(fieldText("dashboard.period")),
|
|
21
|
+
engine: engineScopeProp.meta(fieldText("dashboard.engine")),
|
|
22
|
+
}));
|
|
23
|
+
const failurePropsSchema = z.toJSONSchema(z.object({ engine: engineScopeProp.meta(fieldText("failure.engine")) }));
|
|
24
|
+
const engineLandscapePropsSchema = z.toJSONSchema(z.object({
|
|
25
|
+
engine: z
|
|
26
|
+
.union([z.string(), z.array(z.string())])
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Engine ids to include in the landscape; when omitted, every configured engine (one reporting no metrics shows as not reporting).")
|
|
29
|
+
.meta(fieldText("engineLandscape.engine")),
|
|
30
|
+
}));
|
|
31
|
+
export const definition = {
|
|
32
|
+
name: "analytics",
|
|
33
|
+
// The view builder's names for people (en + de); `description` is the model's text.
|
|
34
|
+
title: builderAppTitle(),
|
|
35
|
+
steps: [loadDashboardStep, loadFailureDashboardStep],
|
|
36
|
+
widgets: [
|
|
37
|
+
{
|
|
38
|
+
id: "analytics:execution-summary-kpi",
|
|
39
|
+
...builderText("widget.execution-summary-kpi"),
|
|
40
|
+
description: "Top-line KPIs: instances started and completed and incidents created within the period, plus instances running and incidents open right now.",
|
|
41
|
+
requires: [],
|
|
42
|
+
consumes: ["analytics:dashboard"],
|
|
43
|
+
size: "full",
|
|
44
|
+
propsSchema: dashboardPropsSchema,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "analytics:execution-performance-kpi",
|
|
48
|
+
...builderText("widget.execution-performance-kpi"),
|
|
49
|
+
description: "Duration KPIs of the instances that ended within the period (avg, median, p95) and incidents per 100 started instances.",
|
|
50
|
+
requires: [],
|
|
51
|
+
consumes: ["analytics:dashboard"],
|
|
52
|
+
size: "full",
|
|
53
|
+
propsSchema: dashboardPropsSchema,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: "analytics:process-definition-breakdown",
|
|
57
|
+
...builderText("widget.process-definition-breakdown"),
|
|
58
|
+
description: "Per-process-definition breakdown: instances started and completed and incidents created within the period, instances running now, average duration.",
|
|
59
|
+
requires: [],
|
|
60
|
+
consumes: ["analytics:dashboard"],
|
|
61
|
+
size: "full",
|
|
62
|
+
propsSchema: dashboardPropsSchema,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "analytics:activity-bottleneck-table",
|
|
66
|
+
...builderText("widget.activity-bottleneck-table"),
|
|
67
|
+
description: "Top (process, activity) pairs by total time spent within the period — surfaces bottlenecks across the process landscape.",
|
|
68
|
+
requires: [],
|
|
69
|
+
consumes: ["analytics:dashboard"],
|
|
70
|
+
size: "full",
|
|
71
|
+
propsSchema: dashboardPropsSchema,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: "analytics:failure-summary-kpi",
|
|
75
|
+
...builderText("widget.failure-summary-kpi"),
|
|
76
|
+
description: "Failure summary KPIs right now (open incidents, incident groups by type × process, most affected process).",
|
|
77
|
+
requires: [],
|
|
78
|
+
consumes: ["analytics:failureDashboard"],
|
|
79
|
+
size: "full",
|
|
80
|
+
propsSchema: failurePropsSchema,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: "analytics:error-patterns-table",
|
|
84
|
+
...builderText("widget.error-patterns-table"),
|
|
85
|
+
description: "The incidents open right now, grouped by incident type and process definition, with counts.",
|
|
86
|
+
requires: [],
|
|
87
|
+
consumes: ["analytics:failureDashboard"],
|
|
88
|
+
size: "full",
|
|
89
|
+
propsSchema: failurePropsSchema,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: "analytics:failure-rate-table",
|
|
93
|
+
...builderText("widget.failure-rate-table"),
|
|
94
|
+
description: "Per-process live failure state: running instances, dead jobs, open incidents and open incidents per 100 running instances.",
|
|
95
|
+
requires: [],
|
|
96
|
+
consumes: ["analytics:failureDashboard"],
|
|
97
|
+
size: "full",
|
|
98
|
+
propsSchema: failurePropsSchema,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: "analytics:cluster-compare",
|
|
102
|
+
...builderText("widget.cluster-compare"),
|
|
103
|
+
description: "Side-by-side before/after comparison of instance KPIs around a deployment timestamp.",
|
|
104
|
+
requires: [],
|
|
105
|
+
consumes: ["analytics:clusterCompare"],
|
|
106
|
+
size: "full",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
id: "analytics:version-compare",
|
|
110
|
+
...builderText("widget.version-compare"),
|
|
111
|
+
description: "Side-by-side per-version comparison of KPIs (starts, durations of the instances that ended; incident rates are not measured per version) across two process versions.",
|
|
112
|
+
requires: [],
|
|
113
|
+
consumes: ["analytics:versionCompare"],
|
|
114
|
+
size: "full",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: "analytics:engine-compare",
|
|
118
|
+
...builderText("widget.engine-compare"),
|
|
119
|
+
description: "Side-by-side comparison of KPIs (starts, incident rate, durations of the instances that ended) for ONE process definition as it runs on two engines (e.g. prod-a vs prod-b). Requires a processDefinitionKey — see analytics:engine-landscape for which definitions qualify.",
|
|
120
|
+
requires: [],
|
|
121
|
+
consumes: ["analytics:engineCompare"],
|
|
122
|
+
size: "full",
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
id: "analytics:engine-landscape",
|
|
126
|
+
...builderText("widget.engine-landscape"),
|
|
127
|
+
description: "Cross-engine overview: the process × engine inventory matrix, absolute load per engine (running instances, incidents, failed jobs) and the process-independent job backlog. Counts rather than rates, because engines run different process mixes; highlights the definitions deployed on several engines as the valid comparison targets.",
|
|
128
|
+
requires: [],
|
|
129
|
+
consumes: ["analytics:engineLandscape"],
|
|
130
|
+
size: "full",
|
|
131
|
+
propsSchema: engineLandscapePropsSchema,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
id: "analytics:bpmn-heatmap",
|
|
135
|
+
...builderText("widget.bpmn-heatmap"),
|
|
136
|
+
description: "BPMN diagram with a per-element heat overlay from metrics, toggling between traversal frequency and average duration. Node-only; rendered on the latest deployed version's diagram.",
|
|
137
|
+
requires: [],
|
|
138
|
+
consumes: ["analytics:bpmnHeatmap"],
|
|
139
|
+
size: "full",
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
id: "analytics:settings",
|
|
143
|
+
...builderText("widget.settings"),
|
|
144
|
+
description: "The analytics module's settings section: default look-back period and minimum comparison bucket size, applied when analytics calls omit them.",
|
|
145
|
+
requires: [],
|
|
146
|
+
consumes: ["analytics:settings"],
|
|
147
|
+
size: "full",
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { EngineFilterInput } from "@miragon/pulse-analytics-client";
|
|
2
|
+
/**
|
|
3
|
+
* Which engines analytics may read on this server. A Prometheus (or Thanos /
|
|
4
|
+
* Mimir) is often shared across teams, and every analytics query reads every
|
|
5
|
+
* `engine_id` it holds unless told otherwise — so analytics covers exactly the
|
|
6
|
+
* server's CONFIGURED engine ids, never "whatever Prometheus has":
|
|
7
|
+
*
|
|
8
|
+
* - the composition root injects them (`SharedResources.engineIds`, from the
|
|
9
|
+
* camunda7 module's engine list) — analytics has no engine-SDK dependency;
|
|
10
|
+
* - a standalone analytics boot names them in `ANALYTICS_ENGINE_IDS`;
|
|
11
|
+
* - with neither, analytics is FAIL-CLOSED: every engine-reading tool refuses
|
|
12
|
+
* with {@link NO_ENGINE_SCOPE_MESSAGE} (and the boot warns) instead of
|
|
13
|
+
* reading the whole Prometheus.
|
|
14
|
+
*
|
|
15
|
+
* An omitted `engine` argument resolves to all configured ids (the fleet
|
|
16
|
+
* view, labelled as such in results); an id outside them is refused.
|
|
17
|
+
*/
|
|
18
|
+
export interface AnalyticsEngineScope {
|
|
19
|
+
/** The configured ids, in configuration order; empty when none are configured. */
|
|
20
|
+
readonly ids: readonly string[];
|
|
21
|
+
/** The concrete ids a query reads for a caller's `engine` filter. Throws on an unknown id. */
|
|
22
|
+
resolve(requested: EngineFilterInput): string[];
|
|
23
|
+
/** One configured id (`field` names the argument in the refusal). */
|
|
24
|
+
require(id: string, field: string): string;
|
|
25
|
+
/** True when `resolved` (a {@link resolve} result) covers every configured engine. */
|
|
26
|
+
coversFleet(resolved: readonly string[]): boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* `args` with `engine` replaced by the concrete configured ids it resolves to
|
|
30
|
+
* — what every engine-reading tool hands its query, so no query ever runs
|
|
31
|
+
* unscoped against a shared Prometheus.
|
|
32
|
+
*/
|
|
33
|
+
export declare function withEngineScope<T extends {
|
|
34
|
+
engine?: EngineFilterInput;
|
|
35
|
+
}>(scope: AnalyticsEngineScope, args: T): Omit<T, "engine"> & {
|
|
36
|
+
engine: string[];
|
|
37
|
+
};
|
|
38
|
+
export declare const NO_ENGINE_SCOPE_MESSAGE = "Analytics covers no engine: this server configures no engine ids. Activate the camunda7 module (its configured engines scope analytics) or set ANALYTICS_ENGINE_IDS to the engine_id values analytics may read.";
|
|
39
|
+
/** True when the caller named no engine — the request covers the whole configured fleet. */
|
|
40
|
+
export declare function isFleetRequest(requested: EngineFilterInput): boolean;
|
|
41
|
+
export declare function createEngineScope(configured: readonly string[] | undefined): AnalyticsEngineScope;
|
|
42
|
+
//# sourceMappingURL=engine-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-ids.d.ts","sourceRoot":"","sources":["../src/engine-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAExE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oBAAoB;IACnC,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,8FAA8F;IAC9F,OAAO,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAAA;IAC/C,qEAAqE;IACrE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1C,sFAAsF;IACtF,WAAW,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAA;CAClD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAAE,EACtE,KAAK,EAAE,oBAAoB,EAC3B,IAAI,EAAE,CAAC,GACN,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAE1C;AAED,eAAO,MAAM,uBAAuB,oNAC+K,CAAA;AAEnN,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAGpE;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,oBAAoB,CAkCjG"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `args` with `engine` replaced by the concrete configured ids it resolves to
|
|
3
|
+
* — what every engine-reading tool hands its query, so no query ever runs
|
|
4
|
+
* unscoped against a shared Prometheus.
|
|
5
|
+
*/
|
|
6
|
+
export function withEngineScope(scope, args) {
|
|
7
|
+
return { ...args, engine: scope.resolve(args.engine) };
|
|
8
|
+
}
|
|
9
|
+
export const NO_ENGINE_SCOPE_MESSAGE = "Analytics covers no engine: this server configures no engine ids. Activate the camunda7 module (its configured engines scope analytics) or set ANALYTICS_ENGINE_IDS to the engine_id values analytics may read.";
|
|
10
|
+
/** True when the caller named no engine — the request covers the whole configured fleet. */
|
|
11
|
+
export function isFleetRequest(requested) {
|
|
12
|
+
if (requested === undefined || requested === null)
|
|
13
|
+
return true;
|
|
14
|
+
return (Array.isArray(requested) ? requested : [requested]).every((id) => id.length === 0);
|
|
15
|
+
}
|
|
16
|
+
export function createEngineScope(configured) {
|
|
17
|
+
const ids = [...new Set((configured ?? []).map((id) => id.trim()).filter((id) => id.length > 0))];
|
|
18
|
+
function assertConfigured() {
|
|
19
|
+
if (ids.length === 0)
|
|
20
|
+
throw new Error(NO_ENGINE_SCOPE_MESSAGE);
|
|
21
|
+
}
|
|
22
|
+
function refuseUnknown(unknown, field) {
|
|
23
|
+
const list = unknown.map((id) => `"${id}"`).join(", ");
|
|
24
|
+
throw new Error(`Unknown engine ${list} in ${field} — analytics covers only this server's configured engines: ${ids.join(", ")}.`);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
ids,
|
|
28
|
+
resolve(requested) {
|
|
29
|
+
assertConfigured();
|
|
30
|
+
if (isFleetRequest(requested))
|
|
31
|
+
return [...ids];
|
|
32
|
+
const list = typeof requested === "string" ? [requested] : (requested ?? []);
|
|
33
|
+
const named = [...new Set(list.filter((id) => id.length > 0))];
|
|
34
|
+
const unknown = named.filter((id) => !ids.includes(id));
|
|
35
|
+
if (unknown.length > 0)
|
|
36
|
+
refuseUnknown(unknown, "engine");
|
|
37
|
+
return named;
|
|
38
|
+
},
|
|
39
|
+
require(id, field) {
|
|
40
|
+
assertConfigured();
|
|
41
|
+
if (!ids.includes(id))
|
|
42
|
+
refuseUnknown([id], field);
|
|
43
|
+
return id;
|
|
44
|
+
},
|
|
45
|
+
coversFleet(resolved) {
|
|
46
|
+
return ids.length > 0 && ids.every((id) => resolved.includes(id));
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=engine-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-ids.js","sourceRoot":"","sources":["../src/engine-ids.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-scope.test.d.ts","sourceRoot":"","sources":["../src/engine-scope.test.ts"],"names":[],"mappings":""}
|