@burdenoff/fluidgrids-fe-sdk 2026.1022.13 → 2026.1022.15
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/dist/ExecutionDetailPage-K3MPJLTL.js +16 -0
- package/dist/ExecutionsListPage-UGC5KFAT.js +16 -0
- package/dist/WorkflowBuilder-5A3NUIUI.js +19 -0
- package/dist/WorkflowsList-DEQZUFDG.js +16 -0
- package/dist/{chunk-KNFGMDDU.js → chunk-2QTKDR23.js} +32 -7
- package/dist/{chunk-QEPYK454.js → chunk-CZURRUDX.js} +32 -1
- package/dist/{chunk-IEHL6TYP.js → chunk-E7NQZB2E.js} +5 -5
- package/dist/{chunk-VM2BTPX3.js → chunk-HAYSY6TZ.js} +1 -2
- package/dist/{chunk-GO4UTLV4.js → chunk-IULOX3NQ.js} +1 -1
- package/dist/{chunk-3B3624QM.js → chunk-J3XDX5HG.js} +112 -58
- package/dist/{chunk-2M43OY55.js → chunk-KAOLPDNX.js} +1 -1
- package/dist/{chunk-AN7H42WZ.js → chunk-L7F7DLUP.js} +3 -3
- package/dist/{chunk-EZF3VWUB.js → chunk-LLPLOWMA.js} +44 -10
- package/dist/{chunk-G7RP3WRM.js → chunk-MP7MRTB4.js} +5 -6
- package/dist/chunk-MR4OTF7D.js +8026 -0
- package/dist/{chunk-SOPYCZCR.js → chunk-NJZAWUGC.js} +1 -1
- package/dist/{chunk-SYVLFHWV.js → chunk-OD2XBMS6.js} +21 -2
- package/dist/{chunk-OF33XHOO.js → chunk-ORVIG2XW.js} +2 -2
- package/dist/{chunk-MY3T465I.js → chunk-Q7NNS2FW.js} +3 -3
- package/dist/{chunk-5KPXP4JF.js → chunk-TQRBDECQ.js} +329 -6886
- package/dist/{chunk-C2RCYSRB.js → chunk-UQWPZVOS.js} +3 -3
- package/dist/{chunk-NQZFS6N7.js → chunk-V75733EN.js} +18 -6
- package/dist/{chunk-ZKCLX2VR.js → chunk-XCQROWIZ.js} +3 -3
- package/dist/{chunk-KCXRF6DF.js → chunk-ZQDMK22B.js} +5 -6
- package/dist/executions.js +13 -12
- package/dist/history.js +8 -5
- package/dist/index.d.ts +110 -3
- package/dist/index.js +35 -39
- package/dist/nodes.js +2 -3
- package/dist/observability.js +8 -3
- package/dist/settings.js +8 -5
- package/dist/templates.js +12 -15
- package/dist/workflow-builder.js +11 -14
- package/dist/workflows-list.js +10 -10
- package/package.json +1 -1
- package/dist/ExecutionDetailPage-ZPM3HVVX.js +0 -15
- package/dist/ExecutionsListPage-BURTBLWB.js +0 -13
- package/dist/WorkflowBuilder-YBJ5FIVW.js +0 -22
- package/dist/WorkflowsList-QQLKSYVM.js +0 -16
- package/dist/chunk-4UAWCWS7.js +0 -162
- package/dist/chunk-AVJIWVHL.js +0 -34
- package/dist/chunk-ONVGFVNH.js +0 -167
- package/dist/chunk-VI2RFS65.js +0 -880
package/dist/chunk-4UAWCWS7.js
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { ENGLISH_FALLBACK_TRANSLATOR } from './chunk-UULVIT25.js';
|
|
2
|
-
import { CombinedGraphQLErrors, ServerError } from '@apollo/client/errors';
|
|
3
|
-
import { dispatchUpgradePrompt } from '@burdenoff/fe-libs/shared/components';
|
|
4
|
-
|
|
5
|
-
function describeGraphQLError(error) {
|
|
6
|
-
const code = typeof error.extensions?.code === "string" ? error.extensions.code : void 0;
|
|
7
|
-
switch (code) {
|
|
8
|
-
case "QUOTA_EXHAUSTED": {
|
|
9
|
-
const quota = /Quota exhausted for (\S+)/.exec(error.message)?.[1];
|
|
10
|
-
const allowance = quota ? `"${quota}" quota` : "usage quota";
|
|
11
|
-
return `Quota exhausted \u2014 your workspace has used up its ${allowance}. Upgrade your plan or wait for the quota to reset.`;
|
|
12
|
-
}
|
|
13
|
-
case "QUOTA_NOT_PROVISIONED":
|
|
14
|
-
return "This workspace's plan does not include this usage allowance yet. Contact your workspace admin or support to have it provisioned.";
|
|
15
|
-
case "UNAUTHENTICATED":
|
|
16
|
-
return "Your session has expired. Please sign in again.";
|
|
17
|
-
case "FORBIDDEN":
|
|
18
|
-
return error.message || "You don't have permission to perform this action.";
|
|
19
|
-
default:
|
|
20
|
-
return error.message || "Unknown error";
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function firstGraphQLErrorInBody(bodyText) {
|
|
24
|
-
try {
|
|
25
|
-
const parsed = JSON.parse(bodyText);
|
|
26
|
-
if (typeof parsed !== "object" || parsed === null) return null;
|
|
27
|
-
const errors = parsed.errors;
|
|
28
|
-
if (!Array.isArray(errors) || errors.length === 0) return null;
|
|
29
|
-
const first = errors[0];
|
|
30
|
-
if (typeof first !== "object" || first === null) return null;
|
|
31
|
-
const message = first.message;
|
|
32
|
-
if (typeof message !== "string") return null;
|
|
33
|
-
return first;
|
|
34
|
-
} catch {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
function describeOperationError(error, fallback = "Unknown error") {
|
|
39
|
-
if (CombinedGraphQLErrors.is(error)) {
|
|
40
|
-
const first = error.errors[0];
|
|
41
|
-
return first ? describeGraphQLError(first) : error.message || fallback;
|
|
42
|
-
}
|
|
43
|
-
if (ServerError.is(error)) {
|
|
44
|
-
const first = firstGraphQLErrorInBody(error.bodyText);
|
|
45
|
-
if (first) return describeGraphQLError(first);
|
|
46
|
-
}
|
|
47
|
-
if (error instanceof Error) {
|
|
48
|
-
return error.message || fallback;
|
|
49
|
-
}
|
|
50
|
-
if (typeof error === "string" && error.length > 0) {
|
|
51
|
-
return error;
|
|
52
|
-
}
|
|
53
|
-
return fallback;
|
|
54
|
-
}
|
|
55
|
-
function throwIfResultError(result) {
|
|
56
|
-
if (result.error) {
|
|
57
|
-
throw new Error(describeOperationError(result.error), {
|
|
58
|
-
cause: result.error
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// src/billing/quota.ts
|
|
65
|
-
var RUNS_QUOTA_NAME = "fluidgrids.runs.monthly";
|
|
66
|
-
var WORKFLOWS_QUOTA_NAME = "fluidgrids.workflows.count";
|
|
67
|
-
var BILLING_PLANS_PATH = "/billing/plans";
|
|
68
|
-
var QUOTA_EXHAUSTED_CODE = "QUOTA_EXHAUSTED";
|
|
69
|
-
var QUOTA_NOT_PROVISIONED_CODE = "QUOTA_NOT_PROVISIONED";
|
|
70
|
-
function asRecord(value) {
|
|
71
|
-
return typeof value === "object" && value !== null ? value : null;
|
|
72
|
-
}
|
|
73
|
-
function extensionsOfList(list) {
|
|
74
|
-
if (!Array.isArray(list)) return [];
|
|
75
|
-
const found = [];
|
|
76
|
-
for (const entry of list) {
|
|
77
|
-
const extensions = asRecord(asRecord(entry)?.extensions);
|
|
78
|
-
if (extensions) found.push(extensions);
|
|
79
|
-
}
|
|
80
|
-
return found;
|
|
81
|
-
}
|
|
82
|
-
function extensionsOfBody(bodyText) {
|
|
83
|
-
if (typeof bodyText !== "string" || !bodyText.includes("errors")) return [];
|
|
84
|
-
try {
|
|
85
|
-
const parsed = JSON.parse(bodyText);
|
|
86
|
-
return extensionsOfList(asRecord(parsed)?.errors);
|
|
87
|
-
} catch {
|
|
88
|
-
return [];
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
var MAX_CAUSE_DEPTH = 5;
|
|
92
|
-
function collectExtensions(error) {
|
|
93
|
-
const found = [];
|
|
94
|
-
const seen = /* @__PURE__ */ new Set();
|
|
95
|
-
let current = error;
|
|
96
|
-
for (let depth = 0; depth < MAX_CAUSE_DEPTH; depth += 1) {
|
|
97
|
-
const host = asRecord(current);
|
|
98
|
-
if (!host || seen.has(host)) break;
|
|
99
|
-
seen.add(host);
|
|
100
|
-
const direct = asRecord(host.extensions);
|
|
101
|
-
if (direct) found.push(direct);
|
|
102
|
-
found.push(...extensionsOfList(host.errors));
|
|
103
|
-
found.push(...extensionsOfList(host.graphQLErrors));
|
|
104
|
-
const networkError = asRecord(host.networkError);
|
|
105
|
-
found.push(...extensionsOfList(asRecord(networkError?.result)?.errors));
|
|
106
|
-
found.push(...extensionsOfBody(networkError?.bodyText));
|
|
107
|
-
found.push(...extensionsOfList(asRecord(host.result)?.errors));
|
|
108
|
-
found.push(...extensionsOfBody(host.bodyText));
|
|
109
|
-
current = host.cause;
|
|
110
|
-
}
|
|
111
|
-
return found;
|
|
112
|
-
}
|
|
113
|
-
function stringField(extensions, key) {
|
|
114
|
-
const value = extensions[key];
|
|
115
|
-
return typeof value === "string" && value.length > 0 ? value : null;
|
|
116
|
-
}
|
|
117
|
-
function findQuotaRefusal(error) {
|
|
118
|
-
const all = collectExtensions(error);
|
|
119
|
-
const notProvisioned = all.find(
|
|
120
|
-
(ext) => ext.code === QUOTA_NOT_PROVISIONED_CODE
|
|
121
|
-
);
|
|
122
|
-
if (notProvisioned) {
|
|
123
|
-
return {
|
|
124
|
-
kind: "not-provisioned",
|
|
125
|
-
quotaName: stringField(notProvisioned, "quotaName"),
|
|
126
|
-
limitLeft: null
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
const exhausted = all.find((ext) => ext.code === QUOTA_EXHAUSTED_CODE);
|
|
130
|
-
if (exhausted) {
|
|
131
|
-
const limitLeft = exhausted.limitLeft;
|
|
132
|
-
return {
|
|
133
|
-
kind: "exhausted",
|
|
134
|
-
quotaName: stringField(exhausted, "quotaName"),
|
|
135
|
-
limitLeft: typeof limitLeft === "number" ? limitLeft : null
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
return null;
|
|
139
|
-
}
|
|
140
|
-
function isQuotaExhaustedFailure(error) {
|
|
141
|
-
return findQuotaRefusal(error)?.kind === "exhausted";
|
|
142
|
-
}
|
|
143
|
-
function openRunQuotaUpgradePrompt(error, tr = ENGLISH_FALLBACK_TRANSLATOR) {
|
|
144
|
-
const refusal = findQuotaRefusal(error);
|
|
145
|
-
if (refusal?.kind !== "exhausted") return false;
|
|
146
|
-
dispatchUpgradePrompt({
|
|
147
|
-
extensions: {
|
|
148
|
-
code: QUOTA_EXHAUSTED_CODE,
|
|
149
|
-
quotaName: refusal.quotaName ?? RUNS_QUOTA_NAME,
|
|
150
|
-
resource: tr("fluidgrids.billing.runQuota.resource", "workflow runs"),
|
|
151
|
-
...refusal.limitLeft !== null ? { limitLeft: refusal.limitLeft } : {}
|
|
152
|
-
},
|
|
153
|
-
title: tr("fluidgrids.billing.runQuota.title", "Monthly run limit reached"),
|
|
154
|
-
description: tr(
|
|
155
|
-
"fluidgrids.billing.runQuota.description",
|
|
156
|
-
"Your workspace has used all the workflow runs included in its plan this month. Upgrade your plan to keep running workflows, or wait for the monthly reset."
|
|
157
|
-
)
|
|
158
|
-
});
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export { BILLING_PLANS_PATH, RUNS_QUOTA_NAME, WORKFLOWS_QUOTA_NAME, describeOperationError, findQuotaRefusal, isQuotaExhaustedFailure, openRunQuotaUpgradePrompt, throwIfResultError };
|
package/dist/chunk-AVJIWVHL.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { NodeEndpointConfigsDocument } from './chunk-QEPYK454.js';
|
|
2
|
-
|
|
3
|
-
// src/utils/node-endpoint-configs.ts
|
|
4
|
-
var NODE_CONFIG_PAGE_SIZE = 500;
|
|
5
|
-
var NODE_CONFIG_MAX_PAGES = 20;
|
|
6
|
-
async function fetchAllNodeEndpointConfigs(client, filters = {}, fetchPolicy = "network-only") {
|
|
7
|
-
const byId = /* @__PURE__ */ new Map();
|
|
8
|
-
let offset = 0;
|
|
9
|
-
for (let page = 0; page < NODE_CONFIG_MAX_PAGES; page++) {
|
|
10
|
-
const { data } = await client.query({
|
|
11
|
-
query: NodeEndpointConfigsDocument,
|
|
12
|
-
variables: {
|
|
13
|
-
...filters,
|
|
14
|
-
pagination: { limit: NODE_CONFIG_PAGE_SIZE, offset }
|
|
15
|
-
},
|
|
16
|
-
fetchPolicy
|
|
17
|
-
});
|
|
18
|
-
const result = data?.nodeEndpointConfigs;
|
|
19
|
-
const configs = result?.configs ?? [];
|
|
20
|
-
for (const config of configs) {
|
|
21
|
-
if (config?.id && !byId.has(config.id)) byId.set(config.id, config);
|
|
22
|
-
}
|
|
23
|
-
if (!result?.pagination?.hasMore || configs.length === 0) {
|
|
24
|
-
return [...byId.values()];
|
|
25
|
-
}
|
|
26
|
-
offset += configs.length;
|
|
27
|
-
}
|
|
28
|
-
console.warn(
|
|
29
|
-
`[Workflows] Stopped loading node configs after ${NODE_CONFIG_MAX_PAGES} pages; the catalog may be incomplete.`
|
|
30
|
-
);
|
|
31
|
-
return [...byId.values()];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export { fetchAllNodeEndpointConfigs };
|
package/dist/chunk-ONVGFVNH.js
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-JL7CASN5.js';
|
|
2
|
-
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
3
|
-
import { forwardRef, createContext, useMemo, useContext, cloneElement } from 'react';
|
|
4
|
-
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
var TooltipProvider = TooltipPrimitive.Provider;
|
|
7
|
-
var Tooltip = TooltipPrimitive.Root;
|
|
8
|
-
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
9
|
-
var TooltipContent = forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
10
|
-
TooltipPrimitive.Content,
|
|
11
|
-
{
|
|
12
|
-
ref,
|
|
13
|
-
sideOffset,
|
|
14
|
-
className: cn(
|
|
15
|
-
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
16
|
-
className
|
|
17
|
-
),
|
|
18
|
-
...props
|
|
19
|
-
}
|
|
20
|
-
));
|
|
21
|
-
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
22
|
-
var ALLOW_ALL_PERMISSIONS = {
|
|
23
|
-
hasPermission: () => true,
|
|
24
|
-
isLoading: false,
|
|
25
|
-
enforced: false
|
|
26
|
-
};
|
|
27
|
-
var FluidGridsPermissionsContext = createContext(
|
|
28
|
-
ALLOW_ALL_PERMISSIONS
|
|
29
|
-
);
|
|
30
|
-
function FluidGridsPermissionsProvider({
|
|
31
|
-
hasPermission,
|
|
32
|
-
isLoading = false,
|
|
33
|
-
children
|
|
34
|
-
}) {
|
|
35
|
-
const value = useMemo(
|
|
36
|
-
() => ({ hasPermission, isLoading, enforced: true }),
|
|
37
|
-
[hasPermission, isLoading]
|
|
38
|
-
);
|
|
39
|
-
return /* @__PURE__ */ jsx(FluidGridsPermissionsContext.Provider, { value, children });
|
|
40
|
-
}
|
|
41
|
-
function evaluatePermissionCheck(ctx, permission) {
|
|
42
|
-
const permissions = typeof permission === "string" ? [permission] : permission;
|
|
43
|
-
return {
|
|
44
|
-
allowed: ctx.isLoading ? false : permissions.some((p) => ctx.hasPermission(p)),
|
|
45
|
-
isLoading: ctx.isLoading,
|
|
46
|
-
enforced: ctx.enforced
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function useFluidGridsPermission(permission) {
|
|
50
|
-
return evaluatePermissionCheck(
|
|
51
|
-
useContext(FluidGridsPermissionsContext),
|
|
52
|
-
permission
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
var DEFAULT_DENIED_TOOLTIP = "You don't have permission to perform this action";
|
|
56
|
-
function SdkPermissionButton({
|
|
57
|
-
permission,
|
|
58
|
-
deniedBehavior = "disable",
|
|
59
|
-
deniedTooltip = DEFAULT_DENIED_TOOLTIP,
|
|
60
|
-
children
|
|
61
|
-
}) {
|
|
62
|
-
const { allowed, isLoading } = useFluidGridsPermission(permission);
|
|
63
|
-
if (allowed) return children;
|
|
64
|
-
if (deniedBehavior === "hide") return null;
|
|
65
|
-
const disabledChild = cloneElement(children, {
|
|
66
|
-
disabled: true,
|
|
67
|
-
onClick: void 0
|
|
68
|
-
});
|
|
69
|
-
if (isLoading) return disabledChild;
|
|
70
|
-
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
71
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "inline-flex cursor-not-allowed", children: disabledChild }) }),
|
|
72
|
-
/* @__PURE__ */ jsx(TooltipContent, { children: deniedTooltip })
|
|
73
|
-
] }) });
|
|
74
|
-
}
|
|
75
|
-
function SdkPermissionGate({
|
|
76
|
-
permission,
|
|
77
|
-
fallback = null,
|
|
78
|
-
children
|
|
79
|
-
}) {
|
|
80
|
-
const { allowed } = useFluidGridsPermission(permission);
|
|
81
|
-
return /* @__PURE__ */ jsx(Fragment, { children: allowed ? children : fallback });
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// src/permissions/constants.ts
|
|
85
|
-
var FLUIDGRIDS_PERMISSIONS = {
|
|
86
|
-
// Workflow resources
|
|
87
|
-
WORKFLOW_LIST: "workflow:list",
|
|
88
|
-
WORKFLOW_READ: "workflow:read",
|
|
89
|
-
WORKFLOW_CREATE: "workflow:create",
|
|
90
|
-
WORKFLOW_UPDATE: "workflow:update",
|
|
91
|
-
WORKFLOW_DELETE: "workflow:delete",
|
|
92
|
-
WORKFLOW_EXECUTE: "workflow:execute",
|
|
93
|
-
// Workflow run resources
|
|
94
|
-
WORKFLOW_RUN_LIST: "workflow-run:list",
|
|
95
|
-
WORKFLOW_RUN_READ: "workflow-run:read",
|
|
96
|
-
WORKFLOW_RUN_EXECUTE: "workflow-run:execute",
|
|
97
|
-
// Node resources
|
|
98
|
-
NODE_LIST: "node:list",
|
|
99
|
-
NODE_READ: "node:read",
|
|
100
|
-
NODE_CREATE: "node:create",
|
|
101
|
-
NODE_DELETE: "node:delete",
|
|
102
|
-
// Node installation resources
|
|
103
|
-
NODE_INSTALLATION_LIST: "node-installation:list",
|
|
104
|
-
NODE_INSTALLATION_READ: "node-installation:read",
|
|
105
|
-
NODE_INSTALLATION_CREATE: "node-installation:create",
|
|
106
|
-
NODE_INSTALLATION_UPDATE: "node-installation:update",
|
|
107
|
-
NODE_INSTALLATION_DELETE: "node-installation:delete",
|
|
108
|
-
// Node endpoint config resources
|
|
109
|
-
NODE_ENDPOINT_CONFIG_LIST: "node-endpoint-config:list",
|
|
110
|
-
NODE_ENDPOINT_CONFIG_READ: "node-endpoint-config:read",
|
|
111
|
-
NODE_ENDPOINT_CONFIG_UPDATE: "node-endpoint-config:update",
|
|
112
|
-
NODE_ENDPOINT_CONFIG_DELETE: "node-endpoint-config:delete",
|
|
113
|
-
// Scheduled job resources
|
|
114
|
-
SCHEDULED_JOB_LIST: "scheduled-job:list",
|
|
115
|
-
SCHEDULED_JOB_READ: "scheduled-job:read",
|
|
116
|
-
SCHEDULED_JOB_CREATE: "scheduled-job:create",
|
|
117
|
-
SCHEDULED_JOB_UPDATE: "scheduled-job:update",
|
|
118
|
-
SCHEDULED_JOB_DELETE: "scheduled-job:delete",
|
|
119
|
-
// AI workflow resources
|
|
120
|
-
AI_WORKFLOW_EXECUTE: "ai-workflow:execute",
|
|
121
|
-
AI_WORKFLOW_CREATE: "ai-workflow:create",
|
|
122
|
-
// Artifact resources
|
|
123
|
-
ARTIFACT_LIST: "artifact:list",
|
|
124
|
-
ARTIFACT_READ: "artifact:read",
|
|
125
|
-
ARTIFACT_DELETE: "artifact:delete",
|
|
126
|
-
// Chat resources
|
|
127
|
-
CHAT_SESSION_LIST: "chat-session:list",
|
|
128
|
-
CHAT_SESSION_READ: "chat-session:read",
|
|
129
|
-
CHAT_SESSION_CREATE: "chat-session:create",
|
|
130
|
-
CHAT_SESSION_DELETE: "chat-session:delete",
|
|
131
|
-
// Submission resources
|
|
132
|
-
SUBMISSION_LIST: "submission:list",
|
|
133
|
-
SUBMISSION_READ: "submission:read",
|
|
134
|
-
SUBMISSION_DELETE: "submission:delete",
|
|
135
|
-
SUBMISSION_EXECUTE: "submission:execute",
|
|
136
|
-
// Event registration resources
|
|
137
|
-
EVENT_REGISTRATION_LIST: "event-registration:list",
|
|
138
|
-
EVENT_REGISTRATION_READ: "event-registration:read",
|
|
139
|
-
EVENT_REGISTRATION_CREATE: "event-registration:create",
|
|
140
|
-
EVENT_REGISTRATION_UPDATE: "event-registration:update",
|
|
141
|
-
EVENT_REGISTRATION_DELETE: "event-registration:delete",
|
|
142
|
-
// Usage resources
|
|
143
|
-
USAGE_LIST: "usage:list",
|
|
144
|
-
USAGE_READ: "usage:read",
|
|
145
|
-
// Dashboard resources
|
|
146
|
-
DASHBOARD_READ: "dashboard:read",
|
|
147
|
-
// System config resources
|
|
148
|
-
SYSTEM_CONFIG_READ: "system-config:read",
|
|
149
|
-
SYSTEM_CONFIG_UPDATE: "system-config:update",
|
|
150
|
-
// Workflow variable resources (BOFF-7517)
|
|
151
|
-
VARIABLE_READ: "workflow-variable:read",
|
|
152
|
-
VARIABLE_CREATE: "workflow-variable:create",
|
|
153
|
-
VARIABLE_UPDATE: "workflow-variable:update",
|
|
154
|
-
VARIABLE_DELETE: "workflow-variable:delete",
|
|
155
|
-
VARIABLE_REVEAL: "workflow-variable:reveal",
|
|
156
|
-
// External secrets provider config resources (BOFF-7517)
|
|
157
|
-
SECRETS_PROVIDER_CONFIG_READ: "secrets-provider-config:read",
|
|
158
|
-
SECRETS_PROVIDER_CONFIG_UPDATE: "secrets-provider-config:update",
|
|
159
|
-
SECRETS_PROVIDER_CONFIG_TEST: "secrets-provider-config:test",
|
|
160
|
-
// Integrations (wspace-integrations-svc)
|
|
161
|
-
INTEGRATION_CONNECTION_CREATE: "integration-connection:create",
|
|
162
|
-
// Self-hosted runners (wspace-sandbox-svc; @rbac resource "sandbox")
|
|
163
|
-
SANDBOX_READ: "sandbox:read",
|
|
164
|
-
SANDBOX_CREATE: "sandbox:create"
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
export { ALLOW_ALL_PERMISSIONS, FLUIDGRIDS_PERMISSIONS, FluidGridsPermissionsProvider, SdkPermissionButton, SdkPermissionGate, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, evaluatePermissionCheck, useFluidGridsPermission };
|