@tryvienna/sdk
v0.1.7
Published
SDK for building Vienna plugins — define entities, integrations, and UI extensions
Maintainers
Readme
@tryvienna/sdk
Plugin SDK for building Vienna integrations. Define entities, connect external APIs, extend the GraphQL schema, and contribute UI surfaces — all from a single package.
Installation
pnpm add @tryvienna/sdkQuick Start
A minimal plugin definition:
import { definePlugin, defineIntegration } from "@tryvienna/sdk";
import { MyDrawer } from "./ui/MyDrawer";
const myApi = defineIntegration({
id: "my_api",
name: "My API",
icon: { svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>' },
createClient: async () => ({}),
});
export const myPlugin = definePlugin({
id: "my_plugin",
name: "My Plugin",
description: "A simple Vienna plugin",
icon: { svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>' },
integrations: [myApi],
canvases: {
"nav-sidebar": { component: MyDrawer, label: "My Plugin", priority: 50 },
drawer: { component: MyDrawer, label: "My Plugin" },
},
});Documentation
- Full documentation — API references, canvas surfaces, entity definitions, schema extensions, and more.
- Build your first plugin — Step-by-step tutorial from zero to a working plugin.
License
Apache-2.0
