@mandaitor/react 0.2.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/dist/components/APIKeyManager.d.ts +4 -0
- package/dist/components/APIKeyManager.d.ts.map +1 -0
- package/dist/components/APIKeyManager.js +58 -0
- package/dist/components/APIKeyManager.js.map +1 -0
- package/dist/components/MandaitorProvider.d.ts +31 -0
- package/dist/components/MandaitorProvider.d.ts.map +1 -0
- package/dist/components/MandaitorProvider.js +29 -0
- package/dist/components/MandaitorProvider.js.map +1 -0
- package/dist/components/MandateCreator.d.ts +16 -0
- package/dist/components/MandateCreator.d.ts.map +1 -0
- package/dist/components/MandateCreator.js +57 -0
- package/dist/components/MandateCreator.js.map +1 -0
- package/dist/components/MandateManager.d.ts +22 -0
- package/dist/components/MandateManager.d.ts.map +1 -0
- package/dist/components/MandateManager.js +119 -0
- package/dist/components/MandateManager.js.map +1 -0
- package/dist/components/MandateVerifier.d.ts +18 -0
- package/dist/components/MandateVerifier.d.ts.map +1 -0
- package/dist/components/MandateVerifier.js +104 -0
- package/dist/components/MandateVerifier.js.map +1 -0
- package/dist/components/MandateViewer.d.ts +13 -0
- package/dist/components/MandateViewer.d.ts.map +1 -0
- package/dist/components/MandateViewer.js +83 -0
- package/dist/components/MandateViewer.js.map +1 -0
- package/dist/components/WidgetConfigDashboard.d.ts +2 -0
- package/dist/components/WidgetConfigDashboard.d.ts.map +1 -0
- package/dist/components/WidgetConfigDashboard.js +365 -0
- package/dist/components/WidgetConfigDashboard.js.map +1 -0
- package/dist/hooks/useMandaitorSDK.d.ts +13 -0
- package/dist/hooks/useMandaitorSDK.d.ts.map +1 -0
- package/dist/hooks/useMandaitorSDK.js +13 -0
- package/dist/hooks/useMandaitorSDK.js.map +1 -0
- package/dist/hooks/useMandate.d.ts +16 -0
- package/dist/hooks/useMandate.d.ts.map +1 -0
- package/dist/hooks/useMandate.js +42 -0
- package/dist/hooks/useMandate.js.map +1 -0
- package/dist/hooks/useMandates.d.ts +20 -0
- package/dist/hooks/useMandates.d.ts.map +1 -0
- package/dist/hooks/useMandates.js +69 -0
- package/dist/hooks/useMandates.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMandaitorContext } from "./MandaitorProvider";
|
|
3
|
+
import { useMandate } from "../hooks/useMandate";
|
|
4
|
+
export function MandateViewer({ mandateId, showAuditTrail = true, showProof = false, onClose, className, }) {
|
|
5
|
+
const { theme } = useMandaitorContext();
|
|
6
|
+
const { mandate, events, isLoading, error } = useMandate(mandateId, {
|
|
7
|
+
includeEvents: showAuditTrail,
|
|
8
|
+
});
|
|
9
|
+
if (isLoading) {
|
|
10
|
+
return (_jsx("div", { className: className, style: { padding: 40, textAlign: "center", fontFamily: theme.fontFamily }, children: _jsxs("div", { style: { opacity: 0.6 }, children: ["Loading mandate ", mandateId.slice(0, 12), "..."] }) }));
|
|
11
|
+
}
|
|
12
|
+
if (error || !mandate) {
|
|
13
|
+
return (_jsxs("div", { className: className, style: { padding: 20, fontFamily: theme.fontFamily }, children: [_jsx("div", { style: { color: "#ef4444", fontSize: 14 }, children: error || "Mandate not found" }), onClose && (_jsx("button", { onClick: onClose, style: {
|
|
14
|
+
marginTop: 12,
|
|
15
|
+
color: theme.primaryColor,
|
|
16
|
+
cursor: "pointer",
|
|
17
|
+
background: "none",
|
|
18
|
+
border: "none",
|
|
19
|
+
}, children: "\u2190 Back" }))] }));
|
|
20
|
+
}
|
|
21
|
+
const sectionStyle = {
|
|
22
|
+
marginBottom: 20,
|
|
23
|
+
padding: 16,
|
|
24
|
+
borderRadius: theme.borderRadius,
|
|
25
|
+
border: "1px solid " + (theme.mode === "dark" ? "#1e2d42" : "#e2e8f0"),
|
|
26
|
+
background: theme.mode === "dark" ? "#0f1d30" : "#f8fafc",
|
|
27
|
+
};
|
|
28
|
+
const labelStyle = {
|
|
29
|
+
fontSize: 11,
|
|
30
|
+
fontWeight: 600,
|
|
31
|
+
textTransform: "uppercase",
|
|
32
|
+
letterSpacing: "0.05em",
|
|
33
|
+
opacity: 0.5,
|
|
34
|
+
marginBottom: 4,
|
|
35
|
+
};
|
|
36
|
+
const valueStyle = { fontSize: 14, fontWeight: 500 };
|
|
37
|
+
const statusColor = {
|
|
38
|
+
ACTIVE: "#22c55e",
|
|
39
|
+
SUSPENDED: "#f59e0b",
|
|
40
|
+
REVOKED: "#ef4444",
|
|
41
|
+
EXPIRED: "#6b7280",
|
|
42
|
+
}[mandate.status];
|
|
43
|
+
return (_jsxs("div", { className: className, style: { fontFamily: theme.fontFamily }, children: [_jsxs("div", { style: {
|
|
44
|
+
display: "flex",
|
|
45
|
+
justifyContent: "space-between",
|
|
46
|
+
alignItems: "center",
|
|
47
|
+
marginBottom: 20,
|
|
48
|
+
}, children: [_jsxs("div", { children: [_jsx("div", { style: { fontSize: 11, opacity: 0.5 }, children: "MANDATE" }), _jsx("code", { style: { fontSize: 14, color: theme.primaryColor }, children: mandate.mandate_id })] }), _jsx("span", { style: {
|
|
49
|
+
fontSize: 12,
|
|
50
|
+
fontWeight: 600,
|
|
51
|
+
padding: "4px 12px",
|
|
52
|
+
borderRadius: "4px",
|
|
53
|
+
background: statusColor + "20",
|
|
54
|
+
color: statusColor,
|
|
55
|
+
}, children: mandate.status })] }), _jsxs("div", { style: { display: "grid", gridTemplateColumns: "1fr 1fr", gap: 16, marginBottom: 20 }, children: [_jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Principal (Delegator)" }), _jsx("div", { style: valueStyle, children: mandate.principal.display_name || mandate.principal.subject_id }), _jsx("div", { style: { fontSize: 12, opacity: 0.6 }, children: mandate.principal.type })] }), _jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Delegate (Receiver)" }), _jsx("div", { style: valueStyle, children: mandate.delegate.display_name || mandate.delegate.subject_id }), _jsx("div", { style: { fontSize: 12, opacity: 0.6 }, children: mandate.delegate.type })] })] }), _jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Scope" }), _jsx("div", { style: { marginBottom: 8 }, children: _jsx("span", { style: {
|
|
56
|
+
fontSize: 11,
|
|
57
|
+
fontWeight: 600,
|
|
58
|
+
padding: "2px 6px",
|
|
59
|
+
borderRadius: "3px",
|
|
60
|
+
background: mandate.scope.effect === "ALLOW" ? "#22c55e20" : "#ef444420",
|
|
61
|
+
color: mandate.scope.effect === "ALLOW" ? "#22c55e" : "#ef4444",
|
|
62
|
+
}, children: mandate.scope.effect }) }), _jsx("div", { style: { fontSize: 13, fontWeight: 500, marginBottom: 4 }, children: "Actions:" }), _jsx("ul", { style: { margin: 0, paddingLeft: 20 }, children: mandate.scope.actions.map((a) => (_jsx("li", { style: { fontSize: 13 }, children: _jsx("code", { children: a }) }, a))) }), _jsx("div", { style: { fontSize: 13, fontWeight: 500, marginTop: 8, marginBottom: 4 }, children: "Resources:" }), _jsx("ul", { style: { margin: 0, paddingLeft: 20 }, children: mandate.scope.resources.map((r) => (_jsx("li", { style: { fontSize: 13 }, children: _jsx("code", { children: r }) }, r))) })] }), _jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Constraints" }), mandate.constraints.time && (_jsxs("div", { style: { fontSize: 13, marginBottom: 4 }, children: [_jsx("strong", { children: "Time:" }), " ", mandate.constraints.time.expires_at
|
|
63
|
+
? `Expires ${new Date(mandate.constraints.time.expires_at).toLocaleString()}`
|
|
64
|
+
: mandate.constraints.time.duration || "No time limit"] })), mandate.constraints.require_human_confirmation && (_jsx("div", { style: { fontSize: 13, color: "#f59e0b" }, children: "\u26A0 Human confirmation required per invocation" })), mandate.constraints.rate_limits && (_jsxs("div", { style: { fontSize: 13 }, children: [_jsx("strong", { children: "Rate Limits:" }), " ", JSON.stringify(mandate.constraints.rate_limits)] }))] }), showProof && mandate.proof && (_jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Cryptographic Proof" }), _jsxs("div", { style: { fontSize: 12 }, children: [_jsxs("div", { children: [_jsx("strong", { children: "Algorithm:" }), " ", mandate.proof.algorithm] }), _jsxs("div", { children: [_jsx("strong", { children: "Key ID:" }), " ", _jsx("code", { style: { fontSize: 11 }, children: mandate.proof.key_id })] }), _jsxs("div", { children: [_jsx("strong", { children: "Signed at:" }), " ", new Date(mandate.proof.signed_at).toLocaleString()] }), _jsxs("div", { style: { marginTop: 8 }, children: [_jsx("strong", { children: "Signature:" }), _jsx("code", { style: {
|
|
65
|
+
display: "block",
|
|
66
|
+
fontSize: 10,
|
|
67
|
+
wordBreak: "break-all",
|
|
68
|
+
marginTop: 4,
|
|
69
|
+
opacity: 0.7,
|
|
70
|
+
}, children: mandate.proof.signature })] })] })] })), showAuditTrail && events && events.length > 0 && (_jsxs("div", { children: [_jsxs("div", { style: labelStyle, children: ["Audit Trail (", events.length, " events)"] }), _jsx("div", { style: {
|
|
71
|
+
borderLeft: "2px solid " + theme.primaryColor + "40",
|
|
72
|
+
paddingLeft: 16,
|
|
73
|
+
marginTop: 8,
|
|
74
|
+
}, children: events.map((evt) => (_jsxs("div", { style: { marginBottom: 12 }, children: [_jsxs("div", { style: { display: "flex", gap: 8, alignItems: "center" }, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 600, color: theme.primaryColor }, children: evt.event_type }), _jsx("span", { style: { fontSize: 11, opacity: 0.5 }, children: new Date(evt.timestamp).toLocaleString() })] }), _jsxs("div", { style: { fontSize: 12, opacity: 0.6 }, children: ["by ", evt.actor.subject_id] })] }, evt.event_id))) })] })), onClose && (_jsx("button", { onClick: onClose, style: {
|
|
75
|
+
marginTop: 16,
|
|
76
|
+
color: theme.primaryColor,
|
|
77
|
+
cursor: "pointer",
|
|
78
|
+
background: "none",
|
|
79
|
+
border: "none",
|
|
80
|
+
fontSize: 14,
|
|
81
|
+
}, children: "\u2190 Back to list" }))] }));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=MandateViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MandateViewer.js","sourceRoot":"","sources":["../../src/components/MandateViewer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetConfigDashboard.d.ts","sourceRoot":"","sources":["../../src/components/WidgetConfigDashboard.tsx"],"names":[],"mappings":"AAuDA,wBAAgB,qBAAqB,4CA4GpC"}
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import { useMandaitorSDK } from "../hooks/useMandaitorSDK";
|
|
4
|
+
export function WidgetConfigDashboard() {
|
|
5
|
+
const { sdk } = useMandaitorSDK();
|
|
6
|
+
const [activeTab, setActiveTab] = useState("idps");
|
|
7
|
+
const [config, setConfig] = useState(null);
|
|
8
|
+
const [saving, setSaving] = useState(false);
|
|
9
|
+
const [idpStatuses, setIdpStatuses] = useState([]);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
sdk.getWidgetConfig().then(setConfig);
|
|
12
|
+
}, [sdk]);
|
|
13
|
+
const tabs = [
|
|
14
|
+
{ id: "idps", label: "Identity Providers", icon: "🔐" },
|
|
15
|
+
{ id: "taxonomies", label: "Taxonomies & Templates", icon: "📚" },
|
|
16
|
+
{ id: "branding", label: "Widget Branding", icon: "🎨" },
|
|
17
|
+
{ id: "webhooks", label: "Webhooks & Events", icon: "🔗" },
|
|
18
|
+
{ id: "approval", label: "Approval Workflow", icon: "✅" },
|
|
19
|
+
{ id: "constraints", label: "Default Constraints", icon: "⚙️" },
|
|
20
|
+
];
|
|
21
|
+
const handleSave = async () => {
|
|
22
|
+
if (!config)
|
|
23
|
+
return;
|
|
24
|
+
setSaving(true);
|
|
25
|
+
try {
|
|
26
|
+
await sdk.updateWidgetConfig(config);
|
|
27
|
+
// Show success notification
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Show error notification
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
setSaving(false);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const validateIdP = async (idpType) => {
|
|
37
|
+
if (!config)
|
|
38
|
+
return;
|
|
39
|
+
setIdpStatuses((prev) => prev.map((s) => (s.type === idpType ? { ...s, validating: true } : s)));
|
|
40
|
+
try {
|
|
41
|
+
const result = await sdk.validateIdPConfig(idpType, config.idpConfigs[idpType] ?? {});
|
|
42
|
+
setIdpStatuses((prev) => prev.map((s) => s.type === idpType ? { ...s, validating: false, valid: result.valid } : s));
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
setIdpStatuses((prev) => prev.map((s) => (s.type === idpType ? { ...s, validating: false, valid: false } : s)));
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
if (!config)
|
|
49
|
+
return _jsx("div", { children: "Loading configuration..." });
|
|
50
|
+
return (_jsxs("div", { className: "max-w-5xl mx-auto p-6", children: [_jsxs("div", { className: "flex items-center justify-between mb-8", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold", children: "Widget Configuration" }), _jsxs("p", { className: "text-muted-foreground mt-1", children: ["Widget ID: ", _jsx("code", { children: config.widgetId }), " \u00B7 Version ", config.configVersion] })] }), _jsx("button", { onClick: handleSave, disabled: saving, className: "px-6 py-2 bg-primary text-primary-foreground rounded-lg font-medium", children: saving ? "Saving..." : "Save Configuration" })] }), _jsx("div", { className: "flex gap-1 border-b border-border mb-6 overflow-x-auto", children: tabs.map((tab) => (_jsxs("button", { onClick: () => setActiveTab(tab.id), className: `px-4 py-3 text-sm font-medium whitespace-nowrap border-b-2 transition-colors ${activeTab === tab.id
|
|
51
|
+
? "border-primary text-primary"
|
|
52
|
+
: "border-transparent text-muted-foreground hover:text-foreground"}`, children: [_jsx("span", { className: "mr-2", children: tab.icon }), tab.label] }, tab.id))) }), activeTab === "idps" && (_jsx(IdPConfigPanel, { config: config, onChange: setConfig, statuses: idpStatuses, onValidate: validateIdP })), activeTab === "taxonomies" && _jsx(TaxonomyConfigPanel, { config: config, onChange: setConfig }), activeTab === "branding" && _jsx(BrandingConfigPanel, { config: config, onChange: setConfig }), activeTab === "webhooks" && _jsx(WebhookConfigPanel, { config: config, onChange: setConfig }), activeTab === "approval" && _jsx(ApprovalConfigPanel, { config: config, onChange: setConfig }), activeTab === "constraints" && (_jsx(ConstraintConfigPanel, { config: config, onChange: setConfig }))] }));
|
|
53
|
+
}
|
|
54
|
+
// ─── Identity Provider Configuration Panel ────────────────────────
|
|
55
|
+
function IdPConfigPanel({ config, onChange, statuses, onValidate }) {
|
|
56
|
+
const idps = [
|
|
57
|
+
{
|
|
58
|
+
type: "eidas_wallet",
|
|
59
|
+
name: "eIDAS 2.0 / EUDI Wallet",
|
|
60
|
+
description: "European Digital Identity Wallet — OpenID4VP verification",
|
|
61
|
+
fields: ["rpRegistration", "requestedAttributes", "verification", "presentationFlow"],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: "entra_id",
|
|
65
|
+
name: "Microsoft Entra ID",
|
|
66
|
+
description: "Enterprise IAM — OAuth 2.0, OBO Flow, Workload Identity",
|
|
67
|
+
fields: ["appRegistration", "permissions", "delegationMapping", "agentIdentity"],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
type: "auth0",
|
|
71
|
+
name: "Auth0",
|
|
72
|
+
description: "Customer-facing CIAM — Organizations, Actions, OpenFGA",
|
|
73
|
+
fields: ["tenant", "organization", "rbac", "actions", "openFga", "m2m"],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: "okta",
|
|
77
|
+
name: "Okta",
|
|
78
|
+
description: "Enterprise workforce — Custom Auth Server, SCIM, Event Hooks",
|
|
79
|
+
fields: ["orgConfig", "scopes", "groupMapping", "eventHooks", "scim"],
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
const toggleIdP = (type) => {
|
|
83
|
+
onChange({
|
|
84
|
+
...config,
|
|
85
|
+
idpConfigs: {
|
|
86
|
+
...config.idpConfigs,
|
|
87
|
+
[type]: {
|
|
88
|
+
...config.idpConfigs?.[type],
|
|
89
|
+
type,
|
|
90
|
+
enabled: !config.idpConfigs?.[type]?.enabled,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "Enable and configure the Identity Providers your end-users will use to authenticate before creating or receiving delegations. Each IdP requires provider-specific credentials." }), idps.map((idp) => {
|
|
96
|
+
const idpConfig = config.idpConfigs?.[idp.type] || {};
|
|
97
|
+
const status = statuses.find((s) => s.type === idp.type);
|
|
98
|
+
return (_jsxs("div", { className: "border border-border rounded-lg overflow-hidden", children: [_jsxs("div", { className: "flex items-center justify-between p-4 bg-muted/30", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("label", { className: "relative inline-flex items-center cursor-pointer", children: [_jsx("input", { type: "checkbox", checked: idpConfig.enabled || false, onChange: () => toggleIdP(idp.type), className: "sr-only peer" }), _jsx("div", { className: "w-10 h-5 bg-muted rounded-full peer-checked:bg-primary transition-colors" })] }), _jsxs("div", { children: [_jsx("div", { className: "font-medium text-sm", children: idp.name }), _jsx("div", { className: "text-xs text-muted-foreground", children: idp.description })] })] }), idpConfig.enabled && (_jsx("button", { onClick: () => onValidate(idp.type), disabled: status?.validating, className: "text-xs px-3 py-1.5 rounded border border-border hover:bg-muted", children: status?.validating
|
|
99
|
+
? "Validating..."
|
|
100
|
+
: status?.valid === true
|
|
101
|
+
? "✓ Valid"
|
|
102
|
+
: status?.valid === false
|
|
103
|
+
? "✗ Invalid"
|
|
104
|
+
: "Validate" }))] }), idpConfig.enabled && (_jsxs("div", { className: "p-4 border-t border-border space-y-4", children: [idp.type === "entra_id" && (_jsx(EntraIdFields, { config: (config.idpConfigs?.["entra_id"] || {}), onChange: (c) => {
|
|
105
|
+
onChange({
|
|
106
|
+
...config,
|
|
107
|
+
idpConfigs: { ...config.idpConfigs, entra_id: c },
|
|
108
|
+
});
|
|
109
|
+
} })), idp.type === "auth0" && (_jsx(Auth0Fields, { config: (config.idpConfigs?.["auth0"] || {}), onChange: (c) => {
|
|
110
|
+
onChange({
|
|
111
|
+
...config,
|
|
112
|
+
idpConfigs: { ...config.idpConfigs, auth0: c },
|
|
113
|
+
});
|
|
114
|
+
} })), idp.type === "okta" && (_jsx(OktaFields, { config: (config.idpConfigs?.["okta"] || {}), onChange: (c) => {
|
|
115
|
+
onChange({
|
|
116
|
+
...config,
|
|
117
|
+
idpConfigs: { ...config.idpConfigs, okta: c },
|
|
118
|
+
});
|
|
119
|
+
} })), idp.type === "eidas_wallet" && (_jsx(EidasFields, { config: (config.idpConfigs?.["eidas_wallet"] || {}), onChange: (c) => {
|
|
120
|
+
onChange({
|
|
121
|
+
...config,
|
|
122
|
+
idpConfigs: { ...config.idpConfigs, eidas_wallet: c },
|
|
123
|
+
});
|
|
124
|
+
} }))] }))] }, idp.type));
|
|
125
|
+
})] }));
|
|
126
|
+
}
|
|
127
|
+
// ─── Entra ID Configuration Fields ────────────────────────────────
|
|
128
|
+
function EntraIdFields({ config, onChange, }) {
|
|
129
|
+
return (_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Client ID" }), _jsx("input", { type: "text", value: config.appRegistration?.clientId || "", onChange: (e) => onChange({
|
|
130
|
+
...config,
|
|
131
|
+
appRegistration: { ...config.appRegistration, clientId: e.target.value },
|
|
132
|
+
}), placeholder: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Tenant ID" }), _jsx("input", { type: "text", value: config.appRegistration?.tenantId || "", onChange: (e) => onChange({
|
|
133
|
+
...config,
|
|
134
|
+
appRegistration: { ...config.appRegistration, tenantId: e.target.value },
|
|
135
|
+
}), placeholder: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx or 'common'", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { className: "md:col-span-2", children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Client Secret" }), _jsx("input", { type: "password", value: config.appRegistration?.clientSecret || "", onChange: (e) => onChange({
|
|
136
|
+
...config,
|
|
137
|
+
appRegistration: { ...config.appRegistration, clientSecret: e.target.value },
|
|
138
|
+
}), placeholder: "Enter client secret (stored in Secrets Manager)", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" }), _jsx("p", { className: "text-xs text-muted-foreground mt-1", children: "Stored securely in AWS Secrets Manager. Never exposed in API responses." })] }), _jsxs("div", { className: "md:col-span-2", children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Role \u2192 Scope Mapping" }), _jsx("p", { className: "text-xs text-muted-foreground mb-2", children: "Map Entra ID App Roles to Mandaitor delegation scopes" }), _jsx("div", { className: "border border-dashed border-border rounded p-3 text-xs text-muted-foreground", children: "Example: \"Finance Approver\" \u2192 [\"finance:approve\", \"finance:read\"]" })] })] }));
|
|
139
|
+
}
|
|
140
|
+
// ─── Auth0 Configuration Fields ───────────────────────────────────
|
|
141
|
+
function Auth0Fields({ config, onChange, }) {
|
|
142
|
+
return (_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Auth0 Domain" }), _jsx("input", { type: "text", value: config.tenant?.domain || "", onChange: (e) => onChange({
|
|
143
|
+
...config,
|
|
144
|
+
tenant: { ...config.tenant, domain: e.target.value },
|
|
145
|
+
}), placeholder: "your-tenant.eu.auth0.com", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Client ID" }), _jsx("input", { type: "text", value: config.tenant?.clientId || "", onChange: (e) => onChange({
|
|
146
|
+
...config,
|
|
147
|
+
tenant: { ...config.tenant, clientId: e.target.value },
|
|
148
|
+
}), placeholder: "Auth0 Application Client ID", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Organization ID" }), _jsx("input", { type: "text", value: config.organization?.orgId || "", onChange: (e) => onChange({
|
|
149
|
+
...config,
|
|
150
|
+
organization: { ...config.organization, orgId: e.target.value },
|
|
151
|
+
}), placeholder: "org_xxxxxxxxxx", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "API Audience" }), _jsx("input", { type: "text", value: config.tenant?.audience || "", onChange: (e) => onChange({
|
|
152
|
+
...config,
|
|
153
|
+
tenant: { ...config.tenant, audience: e.target.value },
|
|
154
|
+
}), placeholder: "https://api.mandaitor.eu", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { className: "md:col-span-2", children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Client Secret" }), _jsx("input", { type: "password", value: config.tenant?.clientSecret || "", onChange: (e) => onChange({
|
|
155
|
+
...config,
|
|
156
|
+
tenant: { ...config.tenant, clientSecret: e.target.value },
|
|
157
|
+
}), placeholder: "Enter client secret (stored in Secrets Manager)", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsx("div", { className: "md:col-span-2", children: _jsxs("label", { className: "flex items-center gap-2 text-xs font-medium", children: [_jsx("input", { type: "checkbox", checked: config.m2m?.enabled || false, onChange: (e) => onChange({
|
|
158
|
+
...config,
|
|
159
|
+
m2m: { ...config.m2m, enabled: e.target.checked },
|
|
160
|
+
}) }), "Enable M2M (Agent-to-Agent) Authentication"] }) })] }));
|
|
161
|
+
}
|
|
162
|
+
// ─── Okta Configuration Fields ────────────────────────────────────
|
|
163
|
+
function OktaFields({ config, onChange, }) {
|
|
164
|
+
return (_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Okta Org URL" }), _jsx("input", { type: "text", value: config.orgConfig?.orgUrl || "", onChange: (e) => onChange({
|
|
165
|
+
...config,
|
|
166
|
+
orgConfig: { ...config.orgConfig, orgUrl: e.target.value },
|
|
167
|
+
}), placeholder: "https://your-org.okta.com", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Auth Server ID" }), _jsx("input", { type: "text", value: config.orgConfig?.authServerId || "", onChange: (e) => onChange({
|
|
168
|
+
...config,
|
|
169
|
+
orgConfig: { ...config.orgConfig, authServerId: e.target.value },
|
|
170
|
+
}), placeholder: "Custom authorization server ID", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Client ID" }), _jsx("input", { type: "text", value: config.orgConfig?.clientId || "", onChange: (e) => onChange({
|
|
171
|
+
...config,
|
|
172
|
+
orgConfig: { ...config.orgConfig, clientId: e.target.value },
|
|
173
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Client Secret" }), _jsx("input", { type: "password", value: config.orgConfig?.clientSecret || "", onChange: (e) => onChange({
|
|
174
|
+
...config,
|
|
175
|
+
orgConfig: { ...config.orgConfig, clientSecret: e.target.value },
|
|
176
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsx("div", { className: "md:col-span-2", children: _jsxs("label", { className: "flex items-center gap-2 text-xs font-medium", children: [_jsx("input", { type: "checkbox", checked: config.scim?.enabled || false, onChange: (e) => onChange({
|
|
177
|
+
...config,
|
|
178
|
+
scim: { ...config.scim, enabled: e.target.checked },
|
|
179
|
+
}) }), "Enable SCIM 2.0 Provisioning"] }) }), _jsx("div", { className: "md:col-span-2", children: _jsxs("label", { className: "flex items-center gap-2 text-xs font-medium", children: [_jsx("input", { type: "checkbox", checked: config.eventHooks?.enabled || false, onChange: (e) => onChange({
|
|
180
|
+
...config,
|
|
181
|
+
eventHooks: { ...config.eventHooks, enabled: e.target.checked },
|
|
182
|
+
}) }), "Enable Event Hooks (lifecycle sync)"] }) })] }));
|
|
183
|
+
}
|
|
184
|
+
// ─── eIDAS Wallet Configuration Fields ────────────────────────────
|
|
185
|
+
function EidasFields({ config, onChange, }) {
|
|
186
|
+
return (_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Registrar Country" }), _jsxs("select", { value: config.rpRegistration?.registrarCountry || "", onChange: (e) => onChange({
|
|
187
|
+
...config,
|
|
188
|
+
rpRegistration: { ...config.rpRegistration, registrarCountry: e.target.value },
|
|
189
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background", children: [_jsx("option", { value: "", children: "Select country..." }), _jsx("option", { value: "DE", children: "Germany" }), _jsx("option", { value: "FR", children: "France" }), _jsx("option", { value: "NL", children: "Netherlands" }), _jsx("option", { value: "AT", children: "Austria" }), _jsx("option", { value: "ES", children: "Spain" }), _jsx("option", { value: "IT", children: "Italy" })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "RP Identifier" }), _jsx("input", { type: "text", value: config.rpRegistration?.rpIdentifier || "", onChange: (e) => onChange({
|
|
190
|
+
...config,
|
|
191
|
+
rpRegistration: { ...config.rpRegistration, rpIdentifier: e.target.value },
|
|
192
|
+
}), placeholder: "Unique RP identifier from Registrar", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Presentation Mode" }), _jsxs("select", { value: config.presentationFlow?.mode || "both", onChange: (e) => onChange({
|
|
193
|
+
...config,
|
|
194
|
+
presentationFlow: { ...config.presentationFlow, mode: e.target.value },
|
|
195
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background", children: [_jsx("option", { value: "cross_device", children: "Cross-device (QR Code)" }), _jsx("option", { value: "same_device", children: "Same-device (Deep Link)" }), _jsx("option", { value: "both", children: "Both" })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Trusted List URL" }), _jsx("input", { type: "url", value: config.verification?.trustedListUrl || "", onChange: (e) => onChange({
|
|
196
|
+
...config,
|
|
197
|
+
verification: { ...config.verification, trustedListUrl: e.target.value },
|
|
198
|
+
}), placeholder: "https://trusted-list.example.eu", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { className: "md:col-span-2", children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Requested PID Attributes" }), _jsx("div", { className: "flex flex-wrap gap-2 mt-1", children: ["family_name", "given_name", "birth_date", "nationality", "age_over_18"].map((attr) => (_jsxs("label", { className: "flex items-center gap-1.5 text-xs", children: [_jsx("input", { type: "checkbox", checked: config.requestedAttributes?.pid?.includes(attr) || false, onChange: (e) => {
|
|
199
|
+
const current = config.requestedAttributes?.pid || [];
|
|
200
|
+
const updated = e.target.checked
|
|
201
|
+
? [...current, attr]
|
|
202
|
+
: current.filter((a) => a !== attr);
|
|
203
|
+
onChange({
|
|
204
|
+
...config,
|
|
205
|
+
requestedAttributes: { ...config.requestedAttributes, pid: updated },
|
|
206
|
+
});
|
|
207
|
+
} }), attr] }, attr))) })] })] }));
|
|
208
|
+
}
|
|
209
|
+
// ─── Taxonomy Configuration Panel ─────────────────────────────────
|
|
210
|
+
function TaxonomyConfigPanel({ config, onChange }) {
|
|
211
|
+
const availableTaxonomies = [
|
|
212
|
+
{
|
|
213
|
+
id: "@mandaitor/taxonomy-construction",
|
|
214
|
+
name: "Construction",
|
|
215
|
+
partner: "monco.ai",
|
|
216
|
+
actions: 14,
|
|
217
|
+
description: "BIM access, site management, subcontractor delegation",
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
id: "@mandaitor/taxonomy-realestate",
|
|
221
|
+
name: "Real Estate",
|
|
222
|
+
partner: "Mitarbyte",
|
|
223
|
+
actions: 12,
|
|
224
|
+
description: "Property management, tenant communication, listing management",
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
id: "@mandaitor/taxonomy-venture",
|
|
228
|
+
name: "Venture Capital",
|
|
229
|
+
partner: "SouthStarter",
|
|
230
|
+
actions: 10,
|
|
231
|
+
description: "Due diligence, portfolio management, investor relations",
|
|
232
|
+
},
|
|
233
|
+
];
|
|
234
|
+
const toggleTaxonomy = (id) => {
|
|
235
|
+
const current = config.taxonomyLibraries || [];
|
|
236
|
+
const updated = current.includes(id)
|
|
237
|
+
? current.filter((t) => t !== id)
|
|
238
|
+
: [...current, id];
|
|
239
|
+
onChange({ ...config, taxonomyLibraries: updated });
|
|
240
|
+
};
|
|
241
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "Select the industry-specific taxonomy libraries that define the available mandate types, scopes, actions, and constraints for your widget." }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: availableTaxonomies.map((tax) => {
|
|
242
|
+
const selected = config.taxonomyLibraries?.includes(tax.id);
|
|
243
|
+
return (_jsxs("div", { onClick: () => toggleTaxonomy(tax.id), className: `border rounded-lg p-4 cursor-pointer transition-all ${selected ? "border-primary bg-primary/5" : "border-border hover:border-primary/50"}`, children: [_jsxs("div", { className: "flex items-center justify-between mb-2", children: [_jsx("span", { className: "font-medium text-sm", children: tax.name }), _jsx("input", { type: "checkbox", checked: selected, readOnly: true, className: "pointer-events-none" })] }), _jsx("p", { className: "text-xs text-muted-foreground", children: tax.description }), _jsxs("div", { className: "flex items-center gap-3 mt-3 text-xs text-muted-foreground", children: [_jsxs("span", { children: [tax.actions, " Actions"] }), _jsx("span", { children: "\u00B7" }), _jsxs("span", { children: ["Partner: ", tax.partner] })] })] }, tax.id));
|
|
244
|
+
}) }), _jsxs("div", { className: "mt-8", children: [_jsx("h4", { className: "font-medium text-sm mb-3", children: "Mandate Templates" }), _jsx("p", { className: "text-xs text-muted-foreground mb-3", children: "Pre-configured mandate templates that appear in the delegation widget for quick creation." }), _jsx("div", { className: "border border-dashed border-border rounded p-4 text-center text-xs text-muted-foreground", children: "Templates are auto-populated from selected taxonomy libraries. Custom templates can be added via the API." })] })] }));
|
|
245
|
+
}
|
|
246
|
+
// ─── Branding Configuration Panel ─────────────────────────────────
|
|
247
|
+
function BrandingConfigPanel({ config, onChange }) {
|
|
248
|
+
const branding = config.branding || {};
|
|
249
|
+
return (_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Logo URL" }), _jsx("input", { type: "url", value: branding.logoUrl || "", onChange: (e) => onChange({
|
|
250
|
+
...config,
|
|
251
|
+
branding: { ...branding, logoUrl: e.target.value },
|
|
252
|
+
}), placeholder: "https://your-company.com/logo.svg", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Primary Color" }), _jsxs("div", { className: "flex gap-2", children: [_jsx("input", { type: "color", value: branding.primaryColor || "#1A56DB", onChange: (e) => onChange({
|
|
253
|
+
...config,
|
|
254
|
+
branding: { ...branding, primaryColor: e.target.value },
|
|
255
|
+
}), className: "w-10 h-10 rounded border border-border cursor-pointer" }), _jsx("input", { type: "text", value: branding.primaryColor || "#1A56DB", onChange: (e) => onChange({
|
|
256
|
+
...config,
|
|
257
|
+
branding: { ...branding, primaryColor: e.target.value },
|
|
258
|
+
}), className: "flex-1 px-3 py-2 text-sm border border-border rounded bg-background" })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Consent Title" }), _jsx("input", { type: "text", value: branding.consentText?.title || "", onChange: (e) => onChange({
|
|
259
|
+
...config,
|
|
260
|
+
branding: {
|
|
261
|
+
...branding,
|
|
262
|
+
consentText: { ...branding.consentText, title: e.target.value },
|
|
263
|
+
},
|
|
264
|
+
}), placeholder: "Authorize Delegation", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Locale" }), _jsxs("select", { value: branding.consentText?.locale || "de-DE", onChange: (e) => onChange({
|
|
265
|
+
...config,
|
|
266
|
+
branding: {
|
|
267
|
+
...branding,
|
|
268
|
+
consentText: { ...branding.consentText, locale: e.target.value },
|
|
269
|
+
},
|
|
270
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background", children: [_jsx("option", { value: "de-DE", children: "Deutsch (DE)" }), _jsx("option", { value: "en-US", children: "English (US)" }), _jsx("option", { value: "fr-FR", children: "Fran\u00E7ais (FR)" }), _jsx("option", { value: "es-ES", children: "Espa\u00F1ol (ES)" }), _jsx("option", { value: "it-IT", children: "Italiano (IT)" })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Border Radius" }), _jsxs("select", { value: branding.borderRadius || "md", onChange: (e) => onChange({
|
|
271
|
+
...config,
|
|
272
|
+
branding: { ...branding, borderRadius: e.target.value },
|
|
273
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background", children: [_jsx("option", { value: "none", children: "None (sharp corners)" }), _jsx("option", { value: "sm", children: "Small (4px)" }), _jsx("option", { value: "md", children: "Medium (8px)" }), _jsx("option", { value: "lg", children: "Large (12px)" })] })] }), _jsx("div", { children: _jsxs("label", { className: "flex items-center gap-2 text-xs font-medium", children: [_jsx("input", { type: "checkbox", checked: branding.darkMode || false, onChange: (e) => onChange({
|
|
274
|
+
...config,
|
|
275
|
+
branding: { ...branding, darkMode: e.target.checked },
|
|
276
|
+
}) }), "Dark Mode Widget"] }) })] }));
|
|
277
|
+
}
|
|
278
|
+
// ─── Webhook Configuration Panel ──────────────────────────────────
|
|
279
|
+
function WebhookConfigPanel({ config, onChange }) {
|
|
280
|
+
const webhooks = config.webhooks || [];
|
|
281
|
+
const addWebhook = () => {
|
|
282
|
+
onChange({
|
|
283
|
+
...config,
|
|
284
|
+
webhooks: [
|
|
285
|
+
...webhooks,
|
|
286
|
+
{
|
|
287
|
+
id: `wh_${Date.now()}`,
|
|
288
|
+
url: "",
|
|
289
|
+
events: [],
|
|
290
|
+
secret: "",
|
|
291
|
+
active: true,
|
|
292
|
+
retryPolicy: { maxRetries: 3, backoffMultiplier: 2 },
|
|
293
|
+
},
|
|
294
|
+
],
|
|
295
|
+
});
|
|
296
|
+
};
|
|
297
|
+
const allEvents = [
|
|
298
|
+
"mandate.created",
|
|
299
|
+
"mandate.activated",
|
|
300
|
+
"mandate.revoked",
|
|
301
|
+
"mandate.expired",
|
|
302
|
+
"mandate.used",
|
|
303
|
+
"delegation.requested",
|
|
304
|
+
"delegation.approved",
|
|
305
|
+
"delegation.rejected",
|
|
306
|
+
"agent.registered",
|
|
307
|
+
"agent.deactivated",
|
|
308
|
+
];
|
|
309
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "Configure webhook endpoints to receive real-time notifications for mandate lifecycle events." }), _jsx("button", { onClick: addWebhook, className: "text-xs px-3 py-1.5 rounded border border-border hover:bg-muted", children: "+ Add Webhook" })] }), webhooks.map((wh, i) => (_jsxs("div", { className: "border border-border rounded-lg p-4 space-y-3", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Endpoint URL" }), _jsx("input", { type: "url", value: wh.url, onChange: (e) => {
|
|
310
|
+
const updated = [...webhooks];
|
|
311
|
+
updated[i] = { ...wh, url: e.target.value };
|
|
312
|
+
onChange({ ...config, webhooks: updated });
|
|
313
|
+
}, placeholder: "https://your-app.com/webhooks/mandaitor", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Signing Secret" }), _jsx("input", { type: "password", value: wh.secret, onChange: (e) => {
|
|
314
|
+
const updated = [...webhooks];
|
|
315
|
+
updated[i] = { ...wh, secret: e.target.value };
|
|
316
|
+
onChange({ ...config, webhooks: updated });
|
|
317
|
+
}, placeholder: "HMAC signing secret", className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-2", children: "Subscribed Events" }), _jsx("div", { className: "flex flex-wrap gap-2", children: allEvents.map((evt) => (_jsxs("label", { className: "flex items-center gap-1 text-xs", children: [_jsx("input", { type: "checkbox", checked: wh.events?.includes(evt), onChange: (e) => {
|
|
318
|
+
const updated = [...webhooks];
|
|
319
|
+
updated[i] = {
|
|
320
|
+
...wh,
|
|
321
|
+
events: e.target.checked
|
|
322
|
+
? [...(wh.events || []), evt]
|
|
323
|
+
: wh.events.filter((ev) => ev !== evt),
|
|
324
|
+
};
|
|
325
|
+
onChange({ ...config, webhooks: updated });
|
|
326
|
+
} }), evt] }, evt))) })] })] }, wh.id)))] }));
|
|
327
|
+
}
|
|
328
|
+
// ─── Approval Workflow Panel ──────────────────────────────────────
|
|
329
|
+
function ApprovalConfigPanel({ config, onChange }) {
|
|
330
|
+
const workflow = config.approvalWorkflow || {};
|
|
331
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsx("div", { className: "flex items-center gap-3", children: _jsxs("label", { className: "flex items-center gap-2 text-sm font-medium", children: [_jsx("input", { type: "checkbox", checked: workflow.enabled || false, onChange: (e) => onChange({
|
|
332
|
+
...config,
|
|
333
|
+
approvalWorkflow: { ...workflow, enabled: e.target.checked },
|
|
334
|
+
}) }), "Enable Approval Workflow"] }) }), workflow.enabled && (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Approval Mode" }), _jsxs("select", { value: workflow.mode || "manual", onChange: (e) => onChange({
|
|
335
|
+
...config,
|
|
336
|
+
approvalWorkflow: {
|
|
337
|
+
...workflow,
|
|
338
|
+
mode: e.target.value,
|
|
339
|
+
},
|
|
340
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background max-w-xs", children: [_jsx("option", { value: "auto", children: "Auto-approve all" }), _jsx("option", { value: "manual", children: "Manual approval required" }), _jsx("option", { value: "conditional", children: "Conditional (rule-based)" })] })] }), workflow.mode === "conditional" && (_jsx("div", { className: "border border-dashed border-border rounded p-4 text-xs text-muted-foreground", children: "Conditional rules: auto-approve low-risk delegations, require approval for high-value scopes or agent-to-agent chains. Configure rules via the API." })), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Notification Channel" }), _jsxs("select", { value: workflow.notificationChannel || "email", onChange: (e) => onChange({
|
|
341
|
+
...config,
|
|
342
|
+
approvalWorkflow: {
|
|
343
|
+
...workflow,
|
|
344
|
+
notificationChannel: e.target.value,
|
|
345
|
+
},
|
|
346
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background max-w-xs", children: [_jsx("option", { value: "email", children: "Email" }), _jsx("option", { value: "webhook", children: "Webhook" }), _jsx("option", { value: "both", children: "Both" })] })] })] }))] }));
|
|
347
|
+
}
|
|
348
|
+
// ─── Constraint Defaults Panel ────────────────────────────────────
|
|
349
|
+
function ConstraintConfigPanel({ config, onChange }) {
|
|
350
|
+
const constraints = config.constraintDefaults || {};
|
|
351
|
+
return (_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Max Mandate Duration" }), _jsxs("select", { value: constraints.maxDuration || 86400, onChange: (e) => onChange({
|
|
352
|
+
...config,
|
|
353
|
+
constraintDefaults: { ...constraints, maxDuration: parseInt(e.target.value) },
|
|
354
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background", children: [_jsx("option", { value: 3600, children: "1 hour" }), _jsx("option", { value: 28800, children: "8 hours" }), _jsx("option", { value: 86400, children: "24 hours" }), _jsx("option", { value: 604800, children: "7 days" }), _jsx("option", { value: 2592000, children: "30 days" }), _jsx("option", { value: 31536000, children: "1 year" })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-medium mb-1", children: "Max Delegation Chain Depth" }), _jsx("input", { type: "number", min: 1, max: 10, value: constraints.maxDelegationDepth || 3, onChange: (e) => onChange({
|
|
355
|
+
...config,
|
|
356
|
+
constraintDefaults: { ...constraints, maxDelegationDepth: parseInt(e.target.value) },
|
|
357
|
+
}), className: "w-full px-3 py-2 text-sm border border-border rounded bg-background" }), _jsx("p", { className: "text-xs text-muted-foreground mt-1", children: "How many levels deep can delegations be chained (A \u2192 B \u2192 C = depth 2)" })] }), _jsx("div", { children: _jsxs("label", { className: "flex items-center gap-2 text-xs font-medium", children: [_jsx("input", { type: "checkbox", checked: constraints.requireGeoFence || false, onChange: (e) => onChange({
|
|
358
|
+
...config,
|
|
359
|
+
constraintDefaults: { ...constraints, requireGeoFence: e.target.checked },
|
|
360
|
+
}) }), "Require Geo-Fence for all mandates"] }) }), _jsx("div", { children: _jsxs("label", { className: "flex items-center gap-2 text-xs font-medium", children: [_jsx("input", { type: "checkbox", checked: constraints.requireMfa || false, onChange: (e) => onChange({
|
|
361
|
+
...config,
|
|
362
|
+
constraintDefaults: { ...constraints, requireMfa: e.target.checked },
|
|
363
|
+
}) }), "Require MFA for mandate creation"] }) })] }));
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=WidgetConfigDashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetConfigDashboard.js","sourceRoot":"","sources":["../../src/components/WidgetConfigDashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MandaitorConfigClient } from "@mandaitor/sdk";
|
|
2
|
+
export interface UseMandaitorSDKResult {
|
|
3
|
+
sdk: MandaitorConfigClient;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Hook that provides the {@link MandaitorConfigClient} for widget
|
|
7
|
+
* configuration operations (tenant dashboard).
|
|
8
|
+
*
|
|
9
|
+
* Pass `configAuthToken` (a Cognito JWT) to {@link MandaitorProvider} to
|
|
10
|
+
* authenticate config API requests.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useMandaitorSDK(): UseMandaitorSDKResult;
|
|
13
|
+
//# sourceMappingURL=useMandaitorSDK.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMandaitorSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useMandaitorSDK.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,qBAAqB,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,qBAAqB,CAGvD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useMandaitorContext } from "../components/MandaitorProvider";
|
|
2
|
+
/**
|
|
3
|
+
* Hook that provides the {@link MandaitorConfigClient} for widget
|
|
4
|
+
* configuration operations (tenant dashboard).
|
|
5
|
+
*
|
|
6
|
+
* Pass `configAuthToken` (a Cognito JWT) to {@link MandaitorProvider} to
|
|
7
|
+
* authenticate config API requests.
|
|
8
|
+
*/
|
|
9
|
+
export function useMandaitorSDK() {
|
|
10
|
+
const { configClient } = useMandaitorContext();
|
|
11
|
+
return { sdk: configClient };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=useMandaitorSDK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMandaitorSDK.js","sourceRoot":"","sources":["../../src/hooks/useMandaitorSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAOtE;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC/C,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;AAC/B,CAAC"}
|