import { useActionMutation, useActionQuery, } from "@agent-native/core/client/hooks"; import { useOrgRole } from "@agent-native/core/client/org"; import { IconChevronDown, IconChevronRight, IconEdit, IconEye, IconEyeOff, IconKey, IconPlus, IconRefresh, IconTrash, IconX, } from "@tabler/icons-react"; import { useState } from "react"; import { toast } from "sonner"; import { ActionQueryError } from "../../components/action-query-error"; import { DispatchShell } from "../../components/dispatch-shell"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "../../components/ui/alert-dialog"; import { Badge } from "../../components/ui/badge"; import { Button } from "../../components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "../../components/ui/dialog"; import { Input } from "../../components/ui/input"; import { Label } from "../../components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "../../components/ui/select"; import { Skeleton } from "../../components/ui/skeleton"; import { Switch } from "../../components/ui/switch"; import { Tabs, TabsContent, TabsList, TabsTrigger, } from "../../components/ui/tabs"; import { Textarea } from "../../components/ui/textarea"; const PROVIDERS = [ "google", "slack", "sendgrid", "github", "stripe", "hubspot", "jira", "bigquery", "anthropic", "other", ]; const PROVIDER_NONE_VALUE = "__none__"; type VaultAccessMode = "all-apps" | "manual"; export function meta() { return [{ title: "Vault — Dispatch" }]; } function AddSecretDialog() { const [open, setOpen] = useState(false); const [credentialKey, setCredentialKey] = useState(""); const [name, setName] = useState(""); const [value, setValue] = useState(""); const [provider, setProvider] = useState(""); const [description, setDescription] = useState(""); const create = useActionMutation("create-vault-secret", { onSuccess: () => { toast.success("Secret created"); setOpen(false); setCredentialKey(""); setName(""); setValue(""); setProvider(""); setDescription(""); }, onError: (err) => toast.error(String(err)), }); return ( Add vault secret Store a credential that can be granted to workspace apps.
setName(e.target.value)} />
setCredentialKey(e.target.value)} className="font-mono text-sm" />
setValue(e.target.value)} />