@gravitee/gamma-lib-observability 2.2.4 → 3.0.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/INTEGRATION.md +28 -9
- package/dist/dashboard-access-provider.js +166 -0
- package/dist/dashboards/editor/testing/vanishing-dashboard-harness.d.ts +2 -0
- package/dist/dashboards/editor/testing/vanishing-dashboard-harness.d.ts.map +1 -1
- package/dist/dashboards/editor/use-dashboard-save.d.ts +8 -4
- package/dist/dashboards/editor/use-dashboard-save.d.ts.map +1 -1
- package/dist/data-sources/dashboard-errors.d.ts +13 -0
- package/dist/data-sources/dashboard-errors.d.ts.map +1 -1
- package/dist/data-sources/dashboard-persistence.d.ts +16 -0
- package/dist/data-sources/dashboard-persistence.d.ts.map +1 -1
- package/dist/data-sources/index.d.ts +1 -1
- package/dist/data-sources/index.d.ts.map +1 -1
- package/dist/hooks/use-custom-dashboards.d.ts.map +1 -1
- package/dist/hooks/use-dashboard-authoring.d.ts +19 -0
- package/dist/hooks/use-dashboard-authoring.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3043 -2986
- package/dist/providers/dashboard-access-provider.d.ts +38 -0
- package/dist/providers/dashboard-access-provider.d.ts.map +1 -0
- package/dist/routing/DashboardListPage.d.ts.map +1 -1
- package/dist/routing/ObservabilityDashboardPage.d.ts.map +1 -1
- package/dist/routing/ObservabilityRoutes.d.ts.map +1 -1
- package/dist/routing/dashboard-write-errors.d.ts +12 -0
- package/dist/routing/dashboard-write-errors.d.ts.map +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing.js +10 -10
- package/package.json +1 -1
- package/dist/filter-providers-context.js +0 -125
package/INTEGRATION.md
CHANGED
|
@@ -861,13 +861,19 @@ const capabilities: DashboardCapabilities = {
|
|
|
861
861
|
|
|
862
862
|
| Capability | Effect |
|
|
863
863
|
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
864
|
-
| `observability.dashboards.read` | Shows dashboard pages. Templates with `requiredCapabilities` are hidden when `false`.
|
|
864
|
+
| `observability.dashboards.read` | Shows the dashboards section (list, dashboard pages, editor routes), when dashboards are enabled. Templates with `requiredCapabilities` are hidden when a listed capability is `false`. |
|
|
865
865
|
| `observability.dashboards.write` | Enables creating, editing, duplicating and deleting custom dashboards. Without it, templates **and** saved custom dashboards are still listed and viewable, just read-only. Storage must also be in scope, see [Dashboard storage](#dashboard-storage-dashboardpersistence). |
|
|
866
|
-
| `observability.logs.read` | Shows logs explorer
|
|
866
|
+
| `observability.logs.read` | Shows the logs explorer and log detail routes, when logs are enabled. |
|
|
867
867
|
| `observability.traces.read` | Shows the traces explorer and trace detail routes, when tracing is enabled. |
|
|
868
868
|
|
|
869
|
+
Every declared key is enforced: a section is on screen when its feature flag **and** its read capability both hold, and the catch-all redirect only targets sections that are actually mounted. Capabilities gate `ObservabilityRoutes`; components imported and mounted directly (`DashboardView`, `WidgetItem`, `LogsExplorerPage`, `TracingScreen`, …) are the host's own composition and are not gated, except where a prop says so (`DashboardView`'s `editable` requires the write capability).
|
|
870
|
+
|
|
869
871
|
**Default behavior:** When no `CapabilityProvider` is present, all capabilities default to `false` (secure default). For initial integration without RBAC, pass all relevant capabilities as `true`.
|
|
870
872
|
|
|
873
|
+
> **Migration note (breaking, v3).** Before v3, `observability.logs.read` and `observability.dashboards.read` were declared and documented but never read as route gates: the logs and dashboards sections were mounted on their feature flags alone. They now gate their routes exactly as `observability.traces.read` always has. A host that enables these features without declaring the read capabilities (or without any `CapabilityProvider`) loses the sections on upgrade — declare the keys `true` to keep the previous behavior. Capabilities describe what the host allows; per-user backend refusals are handled separately, see [Backend refusals](#backend-refusals-403).
|
|
874
|
+
>
|
|
875
|
+
> The sidebar entries from `defineObservabilityFeatures().navGroup` are built from the feature config alone — capabilities live in React context and are not visible there. A host that disables a capability should filter the matching nav item itself; a link left in place degrades safely (it lands on the first visible section).
|
|
876
|
+
|
|
871
877
|
---
|
|
872
878
|
|
|
873
879
|
## Advanced Topics
|
|
@@ -1033,14 +1039,27 @@ interface DashboardPersistence {
|
|
|
1033
1039
|
|
|
1034
1040
|
Creation and update are separate operations rather than one `save`: the caller always knows which it means, and a server-backed store maps them to endpoints guarded by different permissions. Implementations own `createdAt` and `updatedAt` and stamp them themselves.
|
|
1035
1041
|
|
|
1036
|
-
**Failures are typed**, so a screen can tell one outcome from another.
|
|
1042
|
+
**Failures are typed**, so a screen can tell one outcome from another. The screens read the `status` carried by the error rather than testing classes, so an error that is structurally one of these (a `status: 404` or `status: 403` field) works across bundling boundaries; a store that throws plain `Error`s opts out of all of it and lands every failure on the generic error toast. The same predicates the screens use, `isDashboardGone(error)` and `isDashboardForbidden(error)`, are exported for hosts composing their own screens from the hooks — prefer them over `instanceof` on the classes, which fails when two copies of the library end up on one disk.
|
|
1043
|
+
|
|
1044
|
+
| Thrown | Meaning | What the UI does with it |
|
|
1045
|
+
| --------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
1046
|
+
| `DashboardConflictError` | The dashboard moved since it was read | Opens the conflict dialog on the editor's save |
|
|
1047
|
+
| `DashboardNotFoundError` | No such dashboard in this environment | On a load, the "may have been deleted" panel with "Try again". On a write to an existing dashboard, the editor's deleted step |
|
|
1048
|
+
| `DashboardForbiddenError` | The caller may not perform this verb | Degrades the screen instead of erroring — see [Backend refusals](#backend-refusals-403) |
|
|
1049
|
+
| `DashboardPersistenceError` | Anything else | Error toast on writes; the editor's failed first load offers "Try again". The listing has no error state today: custom rows are absent, templates stay |
|
|
1050
|
+
|
|
1051
|
+
### Backend refusals (403)
|
|
1052
|
+
|
|
1053
|
+
Capabilities say what the host allows in general; the backend's ACLs decide per user, and the lib learns about them only by being refused. A `DashboardForbiddenError` (or any rejection carrying `status: 403`) from the persistence therefore degrades the screens rather than erroring:
|
|
1054
|
+
|
|
1055
|
+
- **Listing refused** — the dashboards list keeps the built-in templates, read-only: no error screen, no "New dashboard", no authoring row actions. Custom rows already fetched before the refusal are withdrawn too — a revoked permission stops showing what it used to allow. With a single visible template the list is skipped and the user lands on it directly.
|
|
1056
|
+
- **Reading one dashboard refused** — the dashboard page and the editor say "You don't have permission …" instead of the not-found state, which would blame the wrong cause.
|
|
1057
|
+
- **A write refused** — the editor keeps the author's draft on screen and names the refusal; nothing was written, so nothing is closed or lost. The refusal is remembered for the rest of the section's lifetime and withdraws the authoring affordances ("New dashboard", Edit, Duplicate, Delete) on the list and dashboard pages; a later successful write clears that memory, so permissions granted back mid-session take effect without a reload.
|
|
1058
|
+
- **A refusal on a background refetch** behind an open editor changes nothing on screen: an author's unsaved work survives a permission flip mid-edit.
|
|
1059
|
+
|
|
1060
|
+
Refusals are remembered **per verb family** (read, write), not per operation: one refused delete withdraws every authoring affordance — create, edit and delete alike — until some write succeeds or the section remounts. If your ACL model routinely grants partial write sets, expect that coarseness.
|
|
1037
1061
|
|
|
1038
|
-
|
|
1039
|
-
| --------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
1040
|
-
| `DashboardConflictError` | The dashboard moved since it was read | Opens the conflict dialog on the editor's save |
|
|
1041
|
-
| `DashboardNotFoundError` | No such dashboard in this environment | On a forced overwrite, switches that dialog to its deleted step. On any other write, the error toast |
|
|
1042
|
-
| `DashboardForbiddenError` | The caller may not perform this verb | Nothing specific yet: the error toast. Exported so a host can tell a refusal apart from a real failure |
|
|
1043
|
-
| `DashboardPersistenceError` | Anything else | Error toast |
|
|
1062
|
+
A store that enforces permissions must reject with `DashboardForbiddenError` (or a `status: 403` error) for the degradation to engage — see the port's documentation. Only a 403 earns the quiet degradation: any other listing failure is a fault, not a designed experience (its current silence on the list is a known gap).
|
|
1044
1063
|
|
|
1045
1064
|
**Concurrent edits.** `DashboardConflictError` carries `currentDashboard`, the dashboard as it now stands in the store, and the editor renders it from there rather than fetching again. The author then picks one of three resolutions, and each comes back to this port:
|
|
1046
1065
|
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { createContext as e, useCallback as t, useContext as n, useMemo as r, useState as i } from "react";
|
|
2
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
3
|
+
//#region src/types/domain.ts
|
|
4
|
+
var o = [
|
|
5
|
+
"eq",
|
|
6
|
+
"neq",
|
|
7
|
+
"contains",
|
|
8
|
+
"not_contains",
|
|
9
|
+
"starts_with",
|
|
10
|
+
"ends_with",
|
|
11
|
+
"gt",
|
|
12
|
+
"gte",
|
|
13
|
+
"lt",
|
|
14
|
+
"lte",
|
|
15
|
+
"in",
|
|
16
|
+
"not_in",
|
|
17
|
+
"exists",
|
|
18
|
+
"not_exists"
|
|
19
|
+
], s = {
|
|
20
|
+
"observability.dashboards.read": !1,
|
|
21
|
+
"observability.dashboards.write": !1,
|
|
22
|
+
"observability.logs.read": !1,
|
|
23
|
+
"observability.traces.read": !1
|
|
24
|
+
}, c = e(null);
|
|
25
|
+
function l({ capabilities: e, children: t }) {
|
|
26
|
+
return /* @__PURE__ */ a(c.Provider, {
|
|
27
|
+
value: e,
|
|
28
|
+
children: t
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function u() {
|
|
32
|
+
return n(c) || s;
|
|
33
|
+
}
|
|
34
|
+
function d(e) {
|
|
35
|
+
return u()[e];
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/providers/dashboard-persistence-provider.tsx
|
|
39
|
+
var f = e(null);
|
|
40
|
+
function p({ persistence: e, children: t }) {
|
|
41
|
+
return /* @__PURE__ */ a(f.Provider, {
|
|
42
|
+
value: e,
|
|
43
|
+
children: t
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function m() {
|
|
47
|
+
return n(f);
|
|
48
|
+
}
|
|
49
|
+
function h() {
|
|
50
|
+
let e = n(f);
|
|
51
|
+
if (!e) throw Error("[gamma-lib-observability] useDashboardPersistence must be used within a <DashboardPersistenceProvider>. Wrap your component tree with <DashboardPersistenceProvider persistence={yourImpl}>.");
|
|
52
|
+
return e;
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
//#region src/providers/logs-data-source-provider.tsx
|
|
56
|
+
var g = e(null);
|
|
57
|
+
function _({ dataSource: e, children: t }) {
|
|
58
|
+
return /* @__PURE__ */ a(g.Provider, {
|
|
59
|
+
value: e,
|
|
60
|
+
children: t
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function v() {
|
|
64
|
+
let e = n(g);
|
|
65
|
+
if (!e) throw Error("[gamma-lib-observability] useLogsDataSource must be used within a <LogsDataSourceProvider>. Wrap your component tree with <LogsDataSourceProvider dataSource={yourImpl}>.");
|
|
66
|
+
return e;
|
|
67
|
+
}
|
|
68
|
+
function y() {
|
|
69
|
+
return n(g);
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src/providers/metrics-data-source-provider.tsx
|
|
73
|
+
var b = e(null);
|
|
74
|
+
function x({ dataSource: e, children: t }) {
|
|
75
|
+
return /* @__PURE__ */ a(b.Provider, {
|
|
76
|
+
value: e,
|
|
77
|
+
children: t
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function S() {
|
|
81
|
+
let e = n(b);
|
|
82
|
+
if (!e) throw Error("[gamma-lib-observability] useMetricsDataSource must be used within a <MetricsDataSourceProvider>. Wrap your component tree with <MetricsDataSourceProvider dataSource={yourImpl}>.");
|
|
83
|
+
return e;
|
|
84
|
+
}
|
|
85
|
+
function C() {
|
|
86
|
+
return n(b);
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
//#region src/providers/traces-data-source-provider.tsx
|
|
90
|
+
var w = e(null);
|
|
91
|
+
function T({ dataSource: e, children: t }) {
|
|
92
|
+
return /* @__PURE__ */ a(w.Provider, {
|
|
93
|
+
value: e,
|
|
94
|
+
children: t
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function E() {
|
|
98
|
+
let e = n(w);
|
|
99
|
+
if (!e) throw Error("[gamma-lib-observability] useTracesDataSource must be used within a <TracesDataSourceProvider>. Wrap your component tree with <TracesDataSourceProvider dataSource={yourImpl}>.");
|
|
100
|
+
return e;
|
|
101
|
+
}
|
|
102
|
+
function D() {
|
|
103
|
+
return n(w);
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/filters/filter-providers-context.tsx
|
|
107
|
+
var O = e(null);
|
|
108
|
+
function k({ providers: e, children: t }) {
|
|
109
|
+
let n = r(() => e, [e]);
|
|
110
|
+
return /* @__PURE__ */ a(O.Provider, {
|
|
111
|
+
value: n,
|
|
112
|
+
children: t
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function A() {
|
|
116
|
+
let e = n(O);
|
|
117
|
+
if (!e) throw Error("[gamma-lib-observability] useFilterProviders must be used within a <FilterProvidersProvider>. Wrap your component tree with <FilterProvidersProvider providers={[...]}>.");
|
|
118
|
+
return e;
|
|
119
|
+
}
|
|
120
|
+
function j(e) {
|
|
121
|
+
let t = A();
|
|
122
|
+
if (e) return t.find((t) => t.field === e);
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
125
|
+
//#region src/providers/dashboard-access-provider.tsx
|
|
126
|
+
var M = e({
|
|
127
|
+
readRefused: !1,
|
|
128
|
+
writeRefused: !1,
|
|
129
|
+
reportRefused: () => {},
|
|
130
|
+
reportGranted: () => {}
|
|
131
|
+
});
|
|
132
|
+
function N({ children: e }) {
|
|
133
|
+
let [n, o] = i({
|
|
134
|
+
read: !1,
|
|
135
|
+
write: !1
|
|
136
|
+
}), s = t((e) => {
|
|
137
|
+
o((t) => t[e] ? t : {
|
|
138
|
+
...t,
|
|
139
|
+
[e]: !0
|
|
140
|
+
});
|
|
141
|
+
}, []), c = t((e) => {
|
|
142
|
+
o((t) => t[e] ? {
|
|
143
|
+
...t,
|
|
144
|
+
[e]: !1
|
|
145
|
+
} : t);
|
|
146
|
+
}, []), l = r(() => ({
|
|
147
|
+
readRefused: n.read,
|
|
148
|
+
writeRefused: n.write,
|
|
149
|
+
reportRefused: s,
|
|
150
|
+
reportGranted: c
|
|
151
|
+
}), [
|
|
152
|
+
n.read,
|
|
153
|
+
n.write,
|
|
154
|
+
s,
|
|
155
|
+
c
|
|
156
|
+
]);
|
|
157
|
+
return /* @__PURE__ */ a(M.Provider, {
|
|
158
|
+
value: l,
|
|
159
|
+
children: e
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
function P() {
|
|
163
|
+
return n(M);
|
|
164
|
+
}
|
|
165
|
+
//#endregion
|
|
166
|
+
export { o as S, m as _, A as a, d as b, E as c, C as d, _ as f, h as g, p as h, j as i, x as l, y as m, P as n, T as o, v as p, k as r, D as s, N as t, S as u, l as v, s as x, u as y };
|
|
@@ -37,6 +37,8 @@ export declare function createVanishingPersistence(): {
|
|
|
37
37
|
deleteRemotely: () => void;
|
|
38
38
|
/** The server is merely unreachable, which says nothing about the dashboard. */
|
|
39
39
|
breakReads: () => void;
|
|
40
|
+
/** The permission is revoked mid-session: every read from now on is 403. */
|
|
41
|
+
refuseReads: () => void;
|
|
40
42
|
};
|
|
41
43
|
export type VanishingServer = ReturnType<typeof createVanishingPersistence>;
|
|
42
44
|
export declare function renderEditor(persistence: DashboardPersistence): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vanishing-dashboard-harness.d.ts","sourceRoot":"","sources":["../../../../src/dashboards/editor/testing/vanishing-dashboard-harness.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAI7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAIxF,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI9E;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,KAAK,EAAE,qBAInB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,SAQlB,CAAC;AAEF,eAAO,MAAM,OAAO,+BAA+B,CAAC;AAEpD,eAAO,MAAM,cAAc,QAAoC,CAAC;AAChE,eAAO,MAAM,aAAa,4BAA4B,CAAC;AACvD,mFAAmF;AACnF,eAAO,MAAM,aAAa,QAAsC,CAAC;AACjE,8EAA8E;AAC9E,eAAO,MAAM,eAAe,QAA6C,CAAC;AAC1E,yEAAyE;AACzE,eAAO,MAAM,WAAW,QAA6C,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,0BAA0B;;;;IA6BtC,wEAAwE;;IAExE,gFAAgF;;
|
|
1
|
+
{"version":3,"file":"vanishing-dashboard-harness.d.ts","sourceRoot":"","sources":["../../../../src/dashboards/editor/testing/vanishing-dashboard-harness.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAI7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAIxF,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI9E;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,KAAK,EAAE,qBAInB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,SAQlB,CAAC;AAEF,eAAO,MAAM,OAAO,+BAA+B,CAAC;AAEpD,eAAO,MAAM,cAAc,QAAoC,CAAC;AAChE,eAAO,MAAM,aAAa,4BAA4B,CAAC;AACvD,mFAAmF;AACnF,eAAO,MAAM,aAAa,QAAsC,CAAC;AACjE,8EAA8E;AAC9E,eAAO,MAAM,eAAe,QAA6C,CAAC;AAC1E,yEAAyE;AACzE,eAAO,MAAM,WAAW,QAA6C,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,0BAA0B;;;;IA6BtC,wEAAwE;;IAExE,gFAAgF;;IAIhF,4EAA4E;;EAK/E;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAQ5E,wBAAgB,YAAY,CAAC,WAAW,EAAE,oBAAoB,QAgB7D;AAED,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC;AAE7B,+EAA+E;AAC/E,wBAAgB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIpB;AAED;;;GAGG;AACH,wBAAgB,aAAa,gBAK5B;AAED,oEAAoE;AACpE,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,SAAU,iBAK1D;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,IAAI,iBAG1D;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,IAAI,iBAGxD;AAED,oEAAoE;AACpE,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,IAAI,iBAIvD;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,eAAe,iBAO3D"}
|
|
@@ -4,10 +4,10 @@ import { Dashboard } from '../../types/domain';
|
|
|
4
4
|
* screen's vocabulary rather than as an error to sniff.
|
|
5
5
|
*
|
|
6
6
|
* A closed union on purpose: the editor answers every one of these in a single
|
|
7
|
-
* exhaustive switch, so the day a write can come back another way
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* exhaustive switch, so the day a write can come back another way, the
|
|
8
|
+
* compiler walks the author to the one place that decides what the screen does
|
|
9
|
+
* about it. Three hand-written `onError` handlers is how the last rule ended
|
|
10
|
+
* up applied to one of them.
|
|
11
11
|
*/
|
|
12
12
|
export type DashboardSaveOutcome = {
|
|
13
13
|
readonly kind: 'saved';
|
|
@@ -21,6 +21,10 @@ export type DashboardSaveOutcome = {
|
|
|
21
21
|
/** The dashboard this write aimed at no longer exists. */
|
|
22
22
|
| {
|
|
23
23
|
readonly kind: 'gone';
|
|
24
|
+
}
|
|
25
|
+
/** The user may not write. Nothing moved, and retrying will not help. */
|
|
26
|
+
| {
|
|
27
|
+
readonly kind: 'forbidden';
|
|
24
28
|
} | {
|
|
25
29
|
readonly kind: 'failed';
|
|
26
30
|
readonly error: Error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-dashboard-save.d.ts","sourceRoot":"","sources":["../../../src/dashboards/editor/use-dashboard-save.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAAE;AAC3D,yEAAyE;GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE;AAC3D,0DAA0D;GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"use-dashboard-save.d.ts","sourceRoot":"","sources":["../../../src/dashboards/editor/use-dashboard-save.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAAE;AAC3D,yEAAyE;GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE;AAC3D,0DAA0D;GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC3B,yEAAyE;GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAAC;IACjE,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,KAAK,IAAI,CAAC;IACzF,iFAAiF;IACjF,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,KAAK,IAAI,CAAC;IAC9F,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,KAAK,IAAI,CAAC;CACpG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CA4CxE"}
|
|
@@ -52,4 +52,17 @@ export declare class DashboardConflictError extends DashboardPersistenceError {
|
|
|
52
52
|
* exists to prevent, so the status is what is trusted.
|
|
53
53
|
*/
|
|
54
54
|
export declare function isDashboardGone(error: unknown): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Whether a failure says the caller may not do this, as opposed to the
|
|
57
|
+
* dashboard not being there or the server misbehaving.
|
|
58
|
+
*
|
|
59
|
+
* Same instrument as {@link isDashboardGone}, for the same reason: the status
|
|
60
|
+
* is what is trusted, so an adapter compiled against another copy of this
|
|
61
|
+
* library still gets its refusals recognised. Screens degrade on this answer —
|
|
62
|
+
* a refused read keeps the read-only template experience on screen, a refused
|
|
63
|
+
* write names the refusal and withdraws the authoring affordances — so
|
|
64
|
+
* mistaking a refusal for an unexplained failure would put an error screen
|
|
65
|
+
* where a quieter one belongs.
|
|
66
|
+
*/
|
|
67
|
+
export declare function isDashboardForbidden(error: unknown): boolean;
|
|
55
68
|
//# sourceMappingURL=dashboard-errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-errors.d.ts","sourceRoot":"","sources":["../../src/data-sources/dashboard-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK5C;AAED,sEAAsE;AACtE,qBAAa,uBAAwB,SAAQ,yBAAyB;gBACxD,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,yBAAyB;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKjD;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,yBAAyB;IACnE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC;gBAEzB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM;CAMlF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEvD"}
|
|
1
|
+
{"version":3,"file":"dashboard-errors.d.ts","sourceRoot":"","sources":["../../src/data-sources/dashboard-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK5C;AAED,sEAAsE;AACtE,qBAAa,uBAAwB,SAAQ,yBAAyB;gBACxD,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,yBAAyB;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKjD;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,yBAAyB;IACnE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC;gBAEzB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM;CAMlF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5D"}
|
|
@@ -26,6 +26,22 @@ export interface UpdateDashboardOptions {
|
|
|
26
26
|
* callers pass whatever they were last given and read the returned dashboard
|
|
27
27
|
* back. A client-side stamp would be overwritten anyway, and would destroy the
|
|
28
28
|
* only field a remote implementation could use to detect a concurrent edit.
|
|
29
|
+
*
|
|
30
|
+
* An implementation that enforces permissions **must reject with
|
|
31
|
+
* `DashboardForbiddenError`** (or any error carrying `status: 403`) when the
|
|
32
|
+
* caller lacks the right for that operation — on reads and writes alike. The
|
|
33
|
+
* screens degrade on that answer: a refused read keeps the read-only template
|
|
34
|
+
* experience with no error screen, a refused write keeps the author's draft,
|
|
35
|
+
* names the refusal, and withdraws the authoring affordances. Rejecting with a
|
|
36
|
+
* plain `Error` instead turns each of those into a generic failure, with
|
|
37
|
+
* nothing failing to say so. A store that has no permissions — the bundled
|
|
38
|
+
* localStorage one — simply never rejects this way.
|
|
39
|
+
*
|
|
40
|
+
* Refusals are interpreted **per verb, not per resource**: a 403 on one
|
|
41
|
+
* dashboard is remembered as "this user may not read/write dashboards" until
|
|
42
|
+
* a later success on the same verb says otherwise. A store whose permissions
|
|
43
|
+
* are per dashboard will over-withdraw between those two points; that model
|
|
44
|
+
* is deliberately out of scope here.
|
|
29
45
|
*/
|
|
30
46
|
export interface DashboardPersistence {
|
|
31
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-persistence.d.ts","sourceRoot":"","sources":["../../src/data-sources/dashboard-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH
|
|
1
|
+
{"version":3,"file":"dashboard-persistence.d.ts","sourceRoot":"","sources":["../../src/data-sources/dashboard-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACrE,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5D,8EAA8E;IAC9E,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChF;;;;;;;;OAQG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C"}
|
|
@@ -2,7 +2,7 @@ export type { DashboardPersistence } from './dashboard-persistence';
|
|
|
2
2
|
export type { LogsDataSource, LogsQueryResult } from './logs-data-source';
|
|
3
3
|
export type { MetricsDataSource } from './metrics-data-source';
|
|
4
4
|
export type { FetchTraceByIdParams, TracesDataSource, TracesQueryResult } from './traces-data-source';
|
|
5
|
-
export { DashboardConflictError, DashboardForbiddenError, DashboardNotFoundError, DashboardPersistenceError, } from './dashboard-errors';
|
|
5
|
+
export { DashboardConflictError, DashboardForbiddenError, DashboardNotFoundError, DashboardPersistenceError, isDashboardForbidden, isDashboardGone, } from './dashboard-errors';
|
|
6
6
|
export { createDashboardRevisionStore, type DashboardRevisionStore } from './dashboard-revision-store';
|
|
7
7
|
export { createHttpDashboardPersistence, type HttpDashboardPersistence, type HttpDashboardPersistenceOptions, type UpdateDashboardOptions, } from './http-dashboard-persistence';
|
|
8
8
|
export { createHttpDataSource, type HttpDataSourceOptions } from './http-data-source';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-sources/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEtG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-sources/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEtG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,4BAA4B,EAAE,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACvG,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,KAAK,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-custom-dashboards.d.ts","sourceRoot":"","sources":["../../src/hooks/use-custom-dashboards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-custom-dashboards.d.ts","sourceRoot":"","sources":["../../src/hooks/use-custom-dashboards.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAqBjD;;;;GAIG;AACH,wBAAgB,wBAAwB,gFAiBvC;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,6EAuB7D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,4FAEzC;AAED,wBAAgB,0BAA0B,4FAEzC;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,4FAI5C;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAYxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,IAAI,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAS5E;AAgCD,wBAAgB,0BAA0B,oFAuBzC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether this screen may offer authoring affordances — "New dashboard",
|
|
3
|
+
* Edit, Duplicate, Delete — as one answer instead of a test per surface.
|
|
4
|
+
*
|
|
5
|
+
* Three things have to hold at once: the host declared the write capability,
|
|
6
|
+
* a persistence is in scope to write to, and the backend has not refused this
|
|
7
|
+
* user. The refusal side is what OBS-62 added: the capability says what the
|
|
8
|
+
* host believes, the 403 says what is true, and an affordance that survives
|
|
9
|
+
* the refusal it just met only offers the same failure again. A refused
|
|
10
|
+
* *read* withdraws authoring too — a user who may not read custom dashboards
|
|
11
|
+
* gets the read-only template experience, not a "New dashboard" button whose
|
|
12
|
+
* result they could never see.
|
|
13
|
+
*
|
|
14
|
+
* Deliberately not consulted by the editor route guard: this can flip while
|
|
15
|
+
* an editor is open (the save that got refused), and a guard reacting to it
|
|
16
|
+
* would unmount the editor over the author's unsaved work.
|
|
17
|
+
*/
|
|
18
|
+
export declare function useCanAuthorDashboards(): boolean;
|
|
19
|
+
//# sourceMappingURL=use-dashboard-authoring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-dashboard-authoring.d.ts","sourceRoot":"","sources":["../../src/hooks/use-dashboard-authoring.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAMhD"}
|
package/dist/index.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export { createHttpTracesFilterSource, type TracesFilterSourceOptions } from './
|
|
|
45
45
|
export { createHttpTracesSource, type HttpTracesSourceOptions } from './data-sources';
|
|
46
46
|
export { useStableTimeRange } from './hooks/use-stable-time-range';
|
|
47
47
|
export { createLocalStorageDashboardPersistence, type LocalStorageDashboardPersistenceOptions, } from './persistence/local-storage-dashboard-persistence';
|
|
48
|
-
export { DashboardConflictError, DashboardForbiddenError, DashboardNotFoundError, DashboardPersistenceError, } from './data-sources';
|
|
48
|
+
export { DashboardConflictError, DashboardForbiddenError, DashboardNotFoundError, DashboardPersistenceError, isDashboardForbidden, isDashboardGone, } from './data-sources';
|
|
49
49
|
export { useAdoptServerDashboard, useCustomDashboardQuery, useCustomDashboardsQuery, useDeleteDashboardMutation, useCreateDashboardMutation, useOverwriteDashboardMutation, useTakeReadDashboardRevision, useUpdateDashboardMutation, } from './hooks/use-custom-dashboards';
|
|
50
50
|
export { parseDashboardJson, serializeDashboard, type DashboardJsonParseResult, } from './dashboards/editor/dashboard-json';
|
|
51
51
|
export type { EditableDashboardFields } from './dashboards/editor/dashboard-editor-state';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|