@schemavaults/auth-ui 0.13.9 → 0.14.1
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/ApiServersCard/api_servers_card.d.ts +15 -0
- package/dist/components/ApiServersCard/api_servers_card.js +33 -3
- package/dist/components/ApiServersCard/api_servers_card.js.map +1 -1
- package/dist/components/ApiServersTable/ApiServerRowActions.js +20 -6
- package/dist/components/ApiServersTable/ApiServerRowActions.js.map +1 -1
- package/dist/components/ApiServersTable/ApiServersTable.d.ts +12 -1
- package/dist/components/ApiServersTable/ApiServersTable.js +14 -15
- package/dist/components/ApiServersTable/ApiServersTable.js.map +1 -1
- package/dist/components/ApiServersTable/ApiServersTableConfigContext.d.ts +6 -0
- package/dist/components/ApiServersTable/ApiServersTableConfigContext.js +1 -0
- package/dist/components/ApiServersTable/ApiServersTableConfigContext.js.map +1 -1
- package/dist/components/ApiServersTable/columns.js +3 -1
- package/dist/components/ApiServersTable/columns.js.map +1 -1
- package/dist/components/ApiServersTable/useApiServersList.d.ts +6 -0
- package/dist/components/AppsCard/apps_card.d.ts +15 -0
- package/dist/components/AppsCard/apps_card.js +36 -5
- package/dist/components/AppsCard/apps_card.js.map +1 -1
- package/dist/components/AppsTable/AppsTable.d.ts +12 -1
- package/dist/components/AppsTable/AppsTable.js +14 -8
- package/dist/components/AppsTable/AppsTable.js.map +1 -1
- package/dist/components/AppsTable/columns.d.ts +1 -1
- package/dist/components/AppsTable/columns.js +5 -3
- package/dist/components/AppsTable/columns.js.map +1 -1
- package/dist/components/AppsTable/frontend_app_actions.d.ts +2 -1
- package/dist/components/AppsTable/frontend_app_actions.js +19 -3
- package/dist/components/AppsTable/frontend_app_actions.js.map +1 -1
- package/dist/components/CreateApiServerDialog/CreateApiServerDialog.d.ts +7 -2
- package/dist/components/CreateApiServerDialog/CreateApiServerDialog.js +2 -4
- package/dist/components/CreateApiServerDialog/CreateApiServerDialog.js.map +1 -1
- package/dist/components/CreateApiServerDialog/CreateApiServerForm.d.ts +7 -3
- package/dist/components/CreateApiServerDialog/CreateApiServerForm.js +8 -4
- package/dist/components/CreateApiServerDialog/CreateApiServerForm.js.map +1 -1
- package/dist/components/CreateAppDialog/CreateAppDialog.d.ts +7 -2
- package/dist/components/CreateAppDialog/CreateAppDialog.js +2 -4
- package/dist/components/CreateAppDialog/CreateAppDialog.js.map +1 -1
- package/dist/components/CreateAppDialog/CreateAppForm.d.ts +7 -3
- package/dist/components/CreateAppDialog/CreateAppForm.js +8 -11
- package/dist/components/CreateAppDialog/CreateAppForm.js.map +1 -1
- package/dist/components/CreateAppDialog/requested-ownership-fields.d.ts +9 -0
- package/dist/components/CreateAppDialog/requested-ownership-fields.js +26 -0
- package/dist/components/CreateAppDialog/requested-ownership-fields.js.map +1 -0
- package/dist/components/OwnerTypeFilter/OwnerTypeFilter.d.ts +39 -0
- package/dist/components/OwnerTypeFilter/OwnerTypeFilter.js +65 -0
- package/dist/components/OwnerTypeFilter/OwnerTypeFilter.js.map +1 -0
- package/dist/components/OwnerTypeFilter/index.d.ts +2 -0
- package/dist/components/OwnerTypeFilter/index.js +2 -0
- package/dist/components/OwnerTypeFilter/index.js.map +1 -0
- package/dist/components/ResourceOwnerLabel/ResourceOwnerLabel.d.ts +20 -0
- package/dist/components/ResourceOwnerLabel/ResourceOwnerLabel.js +52 -0
- package/dist/components/ResourceOwnerLabel/ResourceOwnerLabel.js.map +1 -0
- package/dist/components/ResourceOwnerLabel/index.d.ts +4 -0
- package/dist/components/ResourceOwnerLabel/index.js +3 -0
- package/dist/components/ResourceOwnerLabel/index.js.map +1 -0
- package/dist/components/ResourceOwnerLabel/useCanManageListedResource.d.ts +32 -0
- package/dist/components/ResourceOwnerLabel/useCanManageListedResource.js +44 -0
- package/dist/components/ResourceOwnerLabel/useCanManageListedResource.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -5,7 +5,8 @@ import Link from "next/link";
|
|
|
5
5
|
import { FrontendApplicationActions } from "./frontend_app_actions";
|
|
6
6
|
import AppDomainsList from "./AppDomainsList";
|
|
7
7
|
import { AppWindowMac, Globe } from "lucide-react";
|
|
8
|
-
|
|
8
|
+
import { ResourceOwnerLabel } from "../ResourceOwnerLabel";
|
|
9
|
+
export function getAppsTableColumns(queryType, preloaded, isOrgOwner, managedOrganizationIds) {
|
|
9
10
|
const columns = [
|
|
10
11
|
{
|
|
11
12
|
id: "select",
|
|
@@ -41,7 +42,8 @@ export function getAppsTableColumns(queryType, preloaded, isOrgOwner) {
|
|
|
41
42
|
{
|
|
42
43
|
id: "owner_organization_id",
|
|
43
44
|
accessorKey: "owner_organization_id",
|
|
44
|
-
header: "Owner
|
|
45
|
+
header: "Owner",
|
|
46
|
+
cell: ({ row }) => (_jsx(ResourceOwnerLabel, { resource: row.original })),
|
|
45
47
|
},
|
|
46
48
|
{
|
|
47
49
|
id: "web",
|
|
@@ -82,7 +84,7 @@ export function getAppsTableColumns(queryType, preloaded, isOrgOwner) {
|
|
|
82
84
|
id: "actions",
|
|
83
85
|
cell: ({ row }) => {
|
|
84
86
|
const app = row.original;
|
|
85
|
-
return _jsx(FrontendApplicationActions, { app: app, queryType: queryType, isOrgOwner: isOrgOwner });
|
|
87
|
+
return (_jsx(FrontendApplicationActions, { app: app, queryType: queryType, isOrgOwner: isOrgOwner, managedOrganizationIds: managedOrganizationIds }));
|
|
86
88
|
},
|
|
87
89
|
},
|
|
88
90
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/AppsTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/AppsTable/columns.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ interface FrontendApplicationActionsProps {
|
|
|
4
4
|
app: SchemaVaultsApp;
|
|
5
5
|
queryType: ListAppsQueryType;
|
|
6
6
|
isOrgOwner?: boolean;
|
|
7
|
+
managedOrganizationIds?: readonly string[];
|
|
7
8
|
}
|
|
8
|
-
export declare function FrontendApplicationActions({ app, queryType, isOrgOwner, }: FrontendApplicationActionsProps): ReactElement;
|
|
9
|
+
export declare function FrontendApplicationActions({ app, queryType, isOrgOwner, managedOrganizationIds, }: FrontendApplicationActionsProps): ReactElement;
|
|
9
10
|
export {};
|
|
@@ -12,10 +12,11 @@ import { useAppDomains } from "./useAppDomains";
|
|
|
12
12
|
import { launchWebApp } from "./launchWebApp";
|
|
13
13
|
import { CreateAppDomainDialogOpenDispatchContext } from "../CreateAppDomainDialog";
|
|
14
14
|
import { DeleteAppDialog } from "../DeleteAppDialog";
|
|
15
|
+
import { useCanManageListedResource } from "../ResourceOwnerLabel/useCanManageListedResource";
|
|
15
16
|
const dropdownMenuActionsClassName = "hover:cursor-pointer flex flex-row gap-2 items-center justify-start pointer-events-auto";
|
|
16
17
|
class CantCopyWithinInsecureContextError extends Error {
|
|
17
18
|
}
|
|
18
|
-
export function FrontendApplicationActions({ app, queryType, isOrgOwner, }) {
|
|
19
|
+
export function FrontendApplicationActions({ app, queryType, isOrgOwner, managedOrganizationIds, }) {
|
|
19
20
|
const app_id = app.app_id;
|
|
20
21
|
const { toast } = useToast();
|
|
21
22
|
const [authorizingApp, startAuthorizingApp] = useTransition();
|
|
@@ -61,8 +62,23 @@ export function FrontendApplicationActions({ app, queryType, isOrgOwner, }) {
|
|
|
61
62
|
appDomains.data.length === 0 ||
|
|
62
63
|
launchableAppDomains.length === 0;
|
|
63
64
|
const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
// Whether the viewer may manage this particular app: global admins, an
|
|
66
|
+
// organization owner/admin on an org page, the owning user of a
|
|
67
|
+
// user-owned app, or (on the "accessible" list) an owner/admin of the
|
|
68
|
+
// owning organization. The server enforces every action regardless.
|
|
69
|
+
const canManageApp = useCanManageListedResource({
|
|
70
|
+
resource: app,
|
|
71
|
+
queryType,
|
|
72
|
+
isOrgOwner,
|
|
73
|
+
managedOrganizationIds,
|
|
74
|
+
});
|
|
75
|
+
const isDeleteAppDisabled = app.hardcoded || !canManageApp;
|
|
76
|
+
const showAddAppDomain = !app.hardcoded &&
|
|
77
|
+
canManageApp &&
|
|
78
|
+
(queryType === "all" ||
|
|
79
|
+
queryType === "org" ||
|
|
80
|
+
queryType === "owned" ||
|
|
81
|
+
queryType === "accessible");
|
|
66
82
|
const showConnectApi = admin && queryType === "all";
|
|
67
83
|
return (_jsxs(_Fragment, { children: [_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-8 w-8 p-0", "data-testid": "app-actions-button", children: [_jsx("span", { className: "sr-only", children: "Open menu" }), _jsx(MoreHorizontal, { className: "h-4 w-4" })] }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsx(DropdownMenuLabel, { children: "Actions" }), _jsx(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), asChild: true, children: _jsxs(Link, { href: `/apps/${app.app_id}`, children: [_jsx(Eye, { className: "h-4 w-4" }), " View app details"] }) }), !launchAppDisabled && (_jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: launchAppDisabled
|
|
68
84
|
? undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend_app_actions.js","sourceRoot":"","sources":["../../../src/components/AppsTable/frontend_app_actions.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAQb,OAAO,EAEL,QAAQ,EACR,aAAa,EACb,OAAO,EACP,UAAU,GACX,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,aAAa,EACb,SAAS,EACT,GAAG,EACH,cAAc,EACd,UAAU,EACV,OAAO,EACP,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,OAAO,GACR,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wCAAwC,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"frontend_app_actions.js","sourceRoot":"","sources":["../../../src/components/AppsTable/frontend_app_actions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
import { useSWRConfig } from "swr";
|
|
3
|
+
import type { RequestedResourceOwnership } from "@schemavaults/app-definitions";
|
|
3
4
|
interface CreateApiServerDialogProps {
|
|
4
5
|
clearApiServersCache: (mutate: ReturnType<typeof useSWRConfig>["mutate"]) => void;
|
|
5
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Who the new API server will belong to: the platform (admins only), an
|
|
8
|
+
* organization the user administers, or the user's own account.
|
|
9
|
+
*/
|
|
10
|
+
ownership: RequestedResourceOwnership;
|
|
6
11
|
open: boolean;
|
|
7
12
|
onOpenChange: (val: boolean) => void;
|
|
8
13
|
uuid: () => string;
|
|
9
14
|
}
|
|
10
|
-
export declare function CreateApiServerDialog({ clearApiServersCache,
|
|
15
|
+
export declare function CreateApiServerDialog({ clearApiServersCache, ownership, open, onOpenChange, uuid, }: CreateApiServerDialogProps): ReactElement;
|
|
11
16
|
interface CreateApiServerDialogTriggerProps {
|
|
12
17
|
onOpenChange: (val: boolean) => void;
|
|
13
18
|
}
|
|
@@ -4,10 +4,8 @@ import { Button } from "@schemavaults/ui";
|
|
|
4
4
|
import { Dialog, DialogContent } from "@schemavaults/ui";
|
|
5
5
|
import { Server } from "lucide-react";
|
|
6
6
|
import CreateApiServerForm from "./CreateApiServerForm";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const ownerOrganizationId = useAuthUiOwnerOrganizationId();
|
|
10
|
-
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsx(DialogContent, { id: "create-api-server-dialog-content", className: "sm:max-w-[425px] max-h-[90vh] overflow-y-auto", children: _jsx(CreateApiServerForm, { clearApiServersCache: clearApiServersCache, owner_organization_id: owner_organization_id ? owner_organization_id : ownerOrganizationId, onSuccess: () => onOpenChange(false), uuid: uuid }) }) }));
|
|
7
|
+
export function CreateApiServerDialog({ clearApiServersCache, ownership, open, onOpenChange, uuid, }) {
|
|
8
|
+
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsx(DialogContent, { id: "create-api-server-dialog-content", className: "sm:max-w-[425px] max-h-[90vh] overflow-y-auto", children: _jsx(CreateApiServerForm, { clearApiServersCache: clearApiServersCache, ownership: ownership, onSuccess: () => onOpenChange(false), uuid: uuid }) }) }));
|
|
11
9
|
}
|
|
12
10
|
export function CreateApiServerDialogTrigger({ onOpenChange, }) {
|
|
13
11
|
return (_jsxs(Button, { id: "open-create-api-server-dialog-button", onClick: (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateApiServerDialog.js","sourceRoot":"","sources":["../../../src/components/CreateApiServerDialog/CreateApiServerDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateApiServerDialog.js","sourceRoot":"","sources":["../../../src/components/CreateApiServerDialog/CreateApiServerDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAiBxD,MAAM,UAAU,qBAAqB,CAAC,EACpC,oBAAoB,EACpB,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,IAAI,GACuB;IAC3B,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,YAC5C,KAAC,aAAa,IACZ,EAAE,EAAC,kCAAkC,EACrC,SAAS,EAAC,+CAA+C,YAEzD,KAAC,mBAAmB,IAClB,oBAAoB,EAAE,oBAAoB,EAC1C,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EACpC,IAAI,EAAE,IAAI,GACV,GACY,GACT,CACV,CAAC;AACJ,CAAC;AAKD,MAAM,UAAU,4BAA4B,CAAC,EAC3C,YAAY,GACsB;IAClC,OAAO,CACL,MAAC,MAAM,IACL,EAAE,EAAC,sCAAsC,EACzC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,aAED,KAAC,MAAM,IAAC,SAAS,EAAC,cAAc,GAAG,mBAC5B,CACV,CAAC;AACJ,CAAC;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
import { useSWRConfig } from "swr";
|
|
3
|
-
import type
|
|
3
|
+
import { type RequestedResourceOwnership } from "@schemavaults/app-definitions";
|
|
4
4
|
interface CreateApiServerFormProps {
|
|
5
5
|
clearApiServersCache: (mutate: ReturnType<typeof useSWRConfig>["mutate"]) => void;
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Who the new API server will belong to: the platform (admins only), an
|
|
8
|
+
* organization the user administers, or the user's own account.
|
|
9
|
+
*/
|
|
10
|
+
ownership: RequestedResourceOwnership;
|
|
7
11
|
uuid: () => string;
|
|
8
12
|
onSuccess: () => void;
|
|
9
13
|
}
|
|
10
|
-
export declare function CreateApiServerForm({ clearApiServersCache,
|
|
14
|
+
export declare function CreateApiServerForm({ clearApiServersCache, ownership, uuid, onSuccess, }: CreateApiServerFormProps): ReactElement;
|
|
11
15
|
export default CreateApiServerForm;
|
|
@@ -9,9 +9,11 @@ import { schemaVaultsApiServerDefinitionSchema, } from "@schemavaults/app-defini
|
|
|
9
9
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
10
10
|
import { Server } from "lucide-react";
|
|
11
11
|
import { useAuthUiFriendlyName } from "../FriendlyNameProvider";
|
|
12
|
-
|
|
12
|
+
import { requestedOwnershipToDefinitionFields } from "../CreateAppDialog/requested-ownership-fields";
|
|
13
|
+
export function CreateApiServerForm({ clearApiServersCache, ownership, uuid, onSuccess, }) {
|
|
13
14
|
const { toast } = useToast();
|
|
14
15
|
const friendlyName = useAuthUiFriendlyName();
|
|
16
|
+
const ownershipFields = useMemo(() => requestedOwnershipToDefinitionFields(ownership), [ownership]);
|
|
15
17
|
const defaultValues = useMemo(() => {
|
|
16
18
|
return {
|
|
17
19
|
api_server_name: "",
|
|
@@ -20,9 +22,9 @@ export function CreateApiServerForm({ clearApiServersCache, owner_organization_i
|
|
|
20
22
|
public: false,
|
|
21
23
|
created_at: Date.now(),
|
|
22
24
|
hardcoded: false,
|
|
23
|
-
|
|
25
|
+
...ownershipFields,
|
|
24
26
|
};
|
|
25
|
-
}, [
|
|
27
|
+
}, [ownershipFields, uuid]);
|
|
26
28
|
const form = useForm({
|
|
27
29
|
resolver: zodResolver(schemaVaultsApiServerDefinitionSchema),
|
|
28
30
|
defaultValues,
|
|
@@ -45,7 +47,9 @@ export function CreateApiServerForm({ clearApiServersCache, owner_organization_i
|
|
|
45
47
|
}
|
|
46
48
|
await authClient.createApiServer({
|
|
47
49
|
...values,
|
|
48
|
-
|
|
50
|
+
// The owner is fixed by the card this form was opened from, never
|
|
51
|
+
// by form input.
|
|
52
|
+
...ownershipFields,
|
|
49
53
|
});
|
|
50
54
|
}
|
|
51
55
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateApiServerForm.js","sourceRoot":"","sources":["../../../src/components/CreateApiServerDialog/CreateApiServerForm.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAqB,MAAM,OAAO,CAAC;AAEnD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"CreateApiServerForm.js","sourceRoot":"","sources":["../../../src/components/CreateApiServerDialog/CreateApiServerForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
import { useSWRConfig } from "swr";
|
|
3
|
+
import type { RequestedResourceOwnership } from "@schemavaults/app-definitions";
|
|
3
4
|
interface CreateFrontendAppDialogProps {
|
|
4
5
|
clearFrontendAppsCache: (mutate: ReturnType<typeof useSWRConfig>["mutate"]) => void;
|
|
5
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Who the new app will belong to: the platform (admins only), an
|
|
8
|
+
* organization the user administers, or the user's own account.
|
|
9
|
+
*/
|
|
10
|
+
ownership: RequestedResourceOwnership;
|
|
6
11
|
open: boolean;
|
|
7
12
|
onOpenChange: (val: boolean) => void;
|
|
8
13
|
uuid: () => string;
|
|
9
14
|
}
|
|
10
|
-
export declare function CreateAppDialog({ clearFrontendAppsCache,
|
|
15
|
+
export declare function CreateAppDialog({ clearFrontendAppsCache, ownership, ...props }: CreateFrontendAppDialogProps): ReactElement;
|
|
11
16
|
export declare function CreateAppDialogTrigger(): ReactElement;
|
|
12
17
|
export default CreateAppDialog;
|
|
@@ -3,13 +3,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { Button } from "@schemavaults/ui";
|
|
4
4
|
import { useContext } from "react";
|
|
5
5
|
import { Dialog, DialogContent } from "@schemavaults/ui";
|
|
6
|
-
import { useAuthUiOwnerOrganizationId } from "../OwnerOrganizationProvider";
|
|
7
6
|
import { AppWindow } from "lucide-react";
|
|
8
7
|
import CreateAppForm from "./CreateAppForm";
|
|
9
8
|
import CreateAppDialogOpenDispatchContext from "./CreateAppDialogOpenDispatchContext";
|
|
10
|
-
export function CreateAppDialog({ clearFrontendAppsCache,
|
|
11
|
-
|
|
12
|
-
return (_jsx(Dialog, { open: props.open, onOpenChange: props.onOpenChange, children: _jsx(DialogContent, { id: "create-app-dialog-content", className: "sm:max-w-[425px] max-h-[90vh] overflow-y-auto", children: _jsx(CreateAppForm, { owner_organization_id: owner_organization_id ?? ownerOrganizationId, clearFrontendAppsCache: clearFrontendAppsCache, onSuccess: () => props.onOpenChange(false), uuid: props.uuid }) }) }));
|
|
9
|
+
export function CreateAppDialog({ clearFrontendAppsCache, ownership, ...props }) {
|
|
10
|
+
return (_jsx(Dialog, { open: props.open, onOpenChange: props.onOpenChange, children: _jsx(DialogContent, { id: "create-app-dialog-content", className: "sm:max-w-[425px] max-h-[90vh] overflow-y-auto", children: _jsx(CreateAppForm, { ownership: ownership, clearFrontendAppsCache: clearFrontendAppsCache, onSuccess: () => props.onOpenChange(false), uuid: props.uuid }) }) }));
|
|
13
11
|
}
|
|
14
12
|
export function CreateAppDialogTrigger() {
|
|
15
13
|
const onOpenChange = useContext(CreateAppDialogOpenDispatchContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAppDialog.js","sourceRoot":"","sources":["../../../src/components/CreateAppDialog/CreateAppDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAqB,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CreateAppDialog.js","sourceRoot":"","sources":["../../../src/components/CreateAppDialog/CreateAppDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAqB,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AAgBtF,MAAM,UAAU,eAAe,CAAC,EAC9B,sBAAsB,EACtB,SAAS,EACT,GAAG,KAAK,EACqB;IAC7B,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,YACxD,KAAC,aAAa,IACZ,EAAE,EAAC,2BAA2B,EAC9B,SAAS,EAAC,+CAA+C,YAEzD,KAAC,aAAa,IACZ,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAC1C,IAAI,EAAE,KAAK,CAAC,IAAI,GAChB,GACY,GACT,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,YAAY,GAA4B,UAAU,CACtD,kCAAkC,CACnC,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,IACL,EAAE,EAAC,+BAA+B,EAClC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,aAED,KAAC,SAAS,IAAC,SAAS,EAAC,cAAc,GAAG,mBAC/B,CACV,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
import { useSWRConfig } from "swr";
|
|
3
|
-
import { type
|
|
3
|
+
import { type RequestedResourceOwnership } from "@schemavaults/app-definitions";
|
|
4
4
|
export interface CreateAppFormProps {
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Who the new app will belong to: the platform (admins only), an
|
|
7
|
+
* organization the user administers, or the user's own account.
|
|
8
|
+
*/
|
|
9
|
+
ownership: RequestedResourceOwnership;
|
|
6
10
|
clearFrontendAppsCache: (mutate: ReturnType<typeof useSWRConfig>["mutate"]) => void;
|
|
7
11
|
onSuccess: () => void;
|
|
8
12
|
uuid: () => string;
|
|
9
13
|
}
|
|
10
|
-
export default function CreateAppForm({
|
|
14
|
+
export default function CreateAppForm({ ownership, clearFrontendAppsCache, onSuccess, uuid, }: CreateAppFormProps): ReactElement;
|
|
@@ -9,10 +9,10 @@ import { schemaVaultsAppDefinitionSchema, } from "@schemavaults/app-definitions"
|
|
|
9
9
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
10
10
|
import { AppWindow } from "lucide-react";
|
|
11
11
|
import { useAuthUiFriendlyName } from "../FriendlyNameProvider";
|
|
12
|
-
import {
|
|
13
|
-
export default function CreateAppForm({
|
|
12
|
+
import { requestedOwnershipToDefinitionFields } from "../CreateAppDialog/requested-ownership-fields";
|
|
13
|
+
export default function CreateAppForm({ ownership, clearFrontendAppsCache, onSuccess, uuid, }) {
|
|
14
14
|
const friendlyName = useAuthUiFriendlyName();
|
|
15
|
-
const
|
|
15
|
+
const ownershipFields = useMemo(() => requestedOwnershipToDefinitionFields(ownership), [ownership]);
|
|
16
16
|
const defaultValues = useMemo(() => {
|
|
17
17
|
return {
|
|
18
18
|
app_name: "",
|
|
@@ -22,9 +22,9 @@ export default function CreateAppForm({ owner_organization_id, clearFrontendApps
|
|
|
22
22
|
web: true,
|
|
23
23
|
created_at: Date.now(),
|
|
24
24
|
hardcoded: false,
|
|
25
|
-
|
|
25
|
+
...ownershipFields,
|
|
26
26
|
};
|
|
27
|
-
}, [
|
|
27
|
+
}, [ownershipFields, uuid]);
|
|
28
28
|
const form = useForm({
|
|
29
29
|
resolver: zodResolver(schemaVaultsAppDefinitionSchema),
|
|
30
30
|
defaultValues,
|
|
@@ -46,13 +46,10 @@ export default function CreateAppForm({ owner_organization_id, clearFrontendApps
|
|
|
46
46
|
const authClient = auth.ready ? auth.client.current : undefined;
|
|
47
47
|
const createAppRequestBody = {
|
|
48
48
|
...values,
|
|
49
|
+
// The owner is fixed by the card this form was opened from, never
|
|
50
|
+
// by form input.
|
|
51
|
+
...ownershipFields,
|
|
49
52
|
};
|
|
50
|
-
if (typeof owner_organization_id === "string") {
|
|
51
|
-
createAppRequestBody["owner_organization_id"] = owner_organization_id;
|
|
52
|
-
}
|
|
53
|
-
else if (!owner_organization_id && authClient?.currentUser?.admin) {
|
|
54
|
-
createAppRequestBody["owner_organization_id"] = ownerOrganizationId;
|
|
55
|
-
}
|
|
56
53
|
// if we're creating it from this form then it must be non-hardcoded/dynamic...
|
|
57
54
|
createAppRequestBody["hardcoded"] = false;
|
|
58
55
|
createAppRequestBody["created_at"] = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAppForm.js","sourceRoot":"","sources":["../../../src/components/CreateAppDialog/CreateAppForm.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAqB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateAppForm.js","sourceRoot":"","sources":["../../../src/components/CreateAppDialog/CreateAppForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RequestedResourceOwnership, ResourceOwnershipFields } from "@schemavaults/app-definitions";
|
|
2
|
+
/**
|
|
3
|
+
* @description Maps the ownership a create form was opened with onto the
|
|
4
|
+
* ownership fields of a creation request body (`POST /api/apps`,
|
|
5
|
+
* `POST /api/apis`). The server re-validates that the caller may create
|
|
6
|
+
* resources for that owner; see `resolveRequestedOwnershipForCreation`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function requestedOwnershipToDefinitionFields(ownership: RequestedResourceOwnership): Required<Pick<ResourceOwnershipFields, "owner_type" | "owner_organization_id" | "owner_uid">>;
|
|
9
|
+
export default requestedOwnershipToDefinitionFields;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Maps the ownership a create form was opened with onto the
|
|
3
|
+
* ownership fields of a creation request body (`POST /api/apps`,
|
|
4
|
+
* `POST /api/apis`). The server re-validates that the caller may create
|
|
5
|
+
* resources for that owner; see `resolveRequestedOwnershipForCreation`.
|
|
6
|
+
*/
|
|
7
|
+
export function requestedOwnershipToDefinitionFields(ownership) {
|
|
8
|
+
switch (ownership.owner_type) {
|
|
9
|
+
case "platform":
|
|
10
|
+
return { owner_type: "platform", owner_organization_id: null, owner_uid: null };
|
|
11
|
+
case "organization":
|
|
12
|
+
return {
|
|
13
|
+
owner_type: "organization",
|
|
14
|
+
owner_organization_id: ownership.owner_organization_id,
|
|
15
|
+
owner_uid: null,
|
|
16
|
+
};
|
|
17
|
+
case "user":
|
|
18
|
+
return {
|
|
19
|
+
owner_type: "user",
|
|
20
|
+
owner_organization_id: null,
|
|
21
|
+
owner_uid: ownership.owner_uid,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export default requestedOwnershipToDefinitionFields;
|
|
26
|
+
//# sourceMappingURL=requested-ownership-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requested-ownership-fields.js","sourceRoot":"","sources":["../../../src/components/CreateAppDialog/requested-ownership-fields.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,UAAU,oCAAoC,CAClD,SAAqC;IAErC,QAAQ,SAAS,CAAC,UAAU,EAAE,CAAC;QAC7B,KAAK,UAAU;YACb,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAClF,KAAK,cAAc;YACjB,OAAO;gBACL,UAAU,EAAE,cAAc;gBAC1B,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,UAAU,EAAE,MAAM;gBAClB,qBAAqB,EAAE,IAAI;gBAC3B,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B,CAAC;IACN,CAAC;AACH,CAAC;AAED,eAAe,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { ResourceOwnerType, ResourceOwnershipFields } from "@schemavaults/app-definitions";
|
|
3
|
+
/**
|
|
4
|
+
* "all" shows every listed resource; any other value keeps only resources
|
|
5
|
+
* whose resolved `owner_type` matches.
|
|
6
|
+
*/
|
|
7
|
+
export type OwnerTypeFilterValue = "all" | ResourceOwnerType;
|
|
8
|
+
export declare const OWNER_TYPE_FILTER_VALUES: readonly ["all", "user", "organization", "platform"];
|
|
9
|
+
export declare function isOwnerTypeFilterValue(value: unknown): value is OwnerTypeFilterValue;
|
|
10
|
+
/**
|
|
11
|
+
* @description Applies an owner-type filter to a list of app/API server
|
|
12
|
+
* definitions. Definitions whose ownership cannot be resolved are kept
|
|
13
|
+
* under "all" and dropped under a specific filter.
|
|
14
|
+
*/
|
|
15
|
+
export declare function filterByOwnerType<T extends ResourceOwnershipFields>(resources: readonly T[], filter: OwnerTypeFilterValue, platform_owner_organization_id: string): readonly T[];
|
|
16
|
+
/**
|
|
17
|
+
* @description Applies {@link filterByOwnerType} with the platform owner
|
|
18
|
+
* organization id from context.
|
|
19
|
+
*/
|
|
20
|
+
export declare function useOwnerTypeFilteredResources<T extends ResourceOwnershipFields>(resources: readonly T[] | undefined, filter: OwnerTypeFilterValue | undefined): readonly T[] | undefined;
|
|
21
|
+
export interface OwnerTypeFilterProps {
|
|
22
|
+
value: OwnerTypeFilterValue;
|
|
23
|
+
onValueChange: (value: OwnerTypeFilterValue) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Whether to offer the "Platform" option. Only global admins can see
|
|
26
|
+
* platform-owned resources, so pages hide it for everyone else.
|
|
27
|
+
*/
|
|
28
|
+
showPlatform?: boolean;
|
|
29
|
+
className?: string;
|
|
30
|
+
/** Test/automation hook; defaults to "owner-type-filter". */
|
|
31
|
+
id?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @description A single-select toggle group for filtering listed apps / API
|
|
35
|
+
* servers by who owns them: all, the current user's own account, one of
|
|
36
|
+
* their organizations, or the platform.
|
|
37
|
+
*/
|
|
38
|
+
export declare function OwnerTypeFilter({ value, onValueChange, showPlatform, className, id, }: OwnerTypeFilterProps): ReactElement;
|
|
39
|
+
export default OwnerTypeFilter;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ToggleGroup, ToggleGroupItem, cn } from "@schemavaults/ui";
|
|
4
|
+
import { resolveResourceOwnership } from "@schemavaults/app-definitions";
|
|
5
|
+
import { Building2, Layers, Server, User as UserIcon } from "lucide-react";
|
|
6
|
+
import { useAuthUiFriendlyName } from "../FriendlyNameProvider";
|
|
7
|
+
import { useAuthUiOwnerOrganizationId } from "../OwnerOrganizationProvider";
|
|
8
|
+
export const OWNER_TYPE_FILTER_VALUES = [
|
|
9
|
+
"all",
|
|
10
|
+
"user",
|
|
11
|
+
"organization",
|
|
12
|
+
"platform",
|
|
13
|
+
];
|
|
14
|
+
export function isOwnerTypeFilterValue(value) {
|
|
15
|
+
return (typeof value === "string" &&
|
|
16
|
+
OWNER_TYPE_FILTER_VALUES.includes(value));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @description Applies an owner-type filter to a list of app/API server
|
|
20
|
+
* definitions. Definitions whose ownership cannot be resolved are kept
|
|
21
|
+
* under "all" and dropped under a specific filter.
|
|
22
|
+
*/
|
|
23
|
+
export function filterByOwnerType(resources, filter, platform_owner_organization_id) {
|
|
24
|
+
if (filter === "all") {
|
|
25
|
+
return resources;
|
|
26
|
+
}
|
|
27
|
+
return resources.filter((resource) => {
|
|
28
|
+
try {
|
|
29
|
+
return (resolveResourceOwnership(resource, { platform_owner_organization_id })
|
|
30
|
+
.owner_type === filter);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @description Applies {@link filterByOwnerType} with the platform owner
|
|
39
|
+
* organization id from context.
|
|
40
|
+
*/
|
|
41
|
+
export function useOwnerTypeFilteredResources(resources, filter) {
|
|
42
|
+
const platformOrganizationId = useAuthUiOwnerOrganizationId();
|
|
43
|
+
if (!resources || !filter || filter === "all") {
|
|
44
|
+
return resources;
|
|
45
|
+
}
|
|
46
|
+
return filterByOwnerType(resources, filter, platformOrganizationId);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @description A single-select toggle group for filtering listed apps / API
|
|
50
|
+
* servers by who owns them: all, the current user's own account, one of
|
|
51
|
+
* their organizations, or the platform.
|
|
52
|
+
*/
|
|
53
|
+
export function OwnerTypeFilter({ value, onValueChange, showPlatform = false, className, id = "owner-type-filter", }) {
|
|
54
|
+
const friendlyName = useAuthUiFriendlyName();
|
|
55
|
+
const itemClassName = "flex flex-row flex-nowrap items-center gap-2";
|
|
56
|
+
return (_jsxs(ToggleGroup, { id: id, type: "single", value: value, onValueChange: (next) => {
|
|
57
|
+
// Radix-style toggle groups emit "" when the active item is
|
|
58
|
+
// clicked again; keep the current selection in that case.
|
|
59
|
+
if (isOwnerTypeFilterValue(next)) {
|
|
60
|
+
onValueChange(next);
|
|
61
|
+
}
|
|
62
|
+
}, variant: "outline", size: "sm", className: cn("flex flex-row flex-wrap gap-1", className), "aria-label": "Filter by owner", children: [_jsxs(ToggleGroupItem, { value: "all", className: itemClassName, "data-testid": `${id}-all`, children: [_jsx(Layers, { className: "h-4 w-4" }), " All"] }), _jsxs(ToggleGroupItem, { value: "user", className: itemClassName, "data-testid": `${id}-user`, title: "Owned by your account", children: [_jsx(UserIcon, { className: "h-4 w-4" }), " Personal"] }), _jsxs(ToggleGroupItem, { value: "organization", className: itemClassName, "data-testid": `${id}-organization`, title: "Owned by one of your organizations", children: [_jsx(Building2, { className: "h-4 w-4" }), " Organization"] }), showPlatform && (_jsxs(ToggleGroupItem, { value: "platform", className: itemClassName, "data-testid": `${id}-platform`, title: `Owned by the ${friendlyName} platform`, children: [_jsx(Server, { className: "h-4 w-4" }), " Platform"] }))] }));
|
|
63
|
+
}
|
|
64
|
+
export default OwnerTypeFilter;
|
|
65
|
+
//# sourceMappingURL=OwnerTypeFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwnerTypeFilter.js","sourceRoot":"","sources":["../../../src/components/OwnerTypeFilter/OwnerTypeFilter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/OwnerTypeFilter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,IAAI,OAAO,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import { type ResourceOwnership, type ResourceOwnershipFields } from "@schemavaults/app-definitions";
|
|
3
|
+
export interface ResourceOwnerLabelProps {
|
|
4
|
+
/** The app or API server definition whose owner should be displayed. */
|
|
5
|
+
resource: ResourceOwnershipFields;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @description Resolves the ownership of an app/API server definition in
|
|
10
|
+
* browser code, using the platform owner organization id from context (the
|
|
11
|
+
* env var is not available in client bundles).
|
|
12
|
+
*/
|
|
13
|
+
export declare function useResolvedResourceOwnership(resource: ResourceOwnershipFields): ResourceOwnership | null;
|
|
14
|
+
/**
|
|
15
|
+
* @description Renders who owns a client application or API server: the
|
|
16
|
+
* platform (with the auth server's friendly name), an organization (linked
|
|
17
|
+
* to its page), or a user account ("You" for the current user).
|
|
18
|
+
*/
|
|
19
|
+
export declare function ResourceOwnerLabel({ resource, className, }: ResourceOwnerLabelProps): ReactElement;
|
|
20
|
+
export default ResourceOwnerLabel;
|