Frontend SDK
The frontend stack in Dynamia Platform now follows a modular approach:
- Core SDK:
@dynamia-tools/sdk - UI adapter (beta):
@dynamia-tools/vue - Extension SDKs when your backend enables extra modules (
reports,entity-files,saas)
This page explains the new approach and how to combine these packages.
Frontend Stack (v26)
Section titled “Frontend Stack (v26)”1) Core SDK (@dynamia-tools/sdk)
Section titled “1) Core SDK (@dynamia-tools/sdk)”The core SDK is always the base layer. It gives you typed access to metadata, navigation, CRUD, and actions.
pnpm add @dynamia-tools/sdkimport { DynamiaClient } from '@dynamia-tools/sdk';
export const client = new DynamiaClient({ baseUrl: import.meta.env.VITE_API_URL, token: localStorage.getItem('auth_token') ?? undefined,});2) Vue support (@dynamia-tools/vue) - Beta
Section titled “2) Vue support (@dynamia-tools/vue) - Beta”If you are building a Vue 3 app, use the official Vue adapter.
pnpm add vue @dynamia-tools/vue @dynamia-tools/ui-core @dynamia-tools/sdkSee the dedicated guide: Vue Support (Beta).
3) Extension SDKs (optional)
Section titled “3) Extension SDKs (optional)”Install these only when your backend uses the corresponding extension:
@dynamia-tools/reports-sdk@dynamia-tools/files-sdk@dynamia-tools/saas-sdk
See Extensions for installation and usage details.
Recommended Architecture
Section titled “Recommended Architecture”Use one shared DynamiaClient and pass client.http to extension SDKs.
import { DynamiaClient } from '@dynamia-tools/sdk';import { ReportsApi } from '@dynamia-tools/reports-sdk';import { FilesApi } from '@dynamia-tools/files-sdk';import { SaasApi } from '@dynamia-tools/saas-sdk';
const client = new DynamiaClient({ baseUrl: import.meta.env.VITE_API_URL, token: localStorage.getItem('auth_token') ?? undefined,});
export const reports = new ReportsApi(client.http);export const files = new FilesApi(client.http);export const saas = new SaasApi(client.http);Core Capabilities in the New Flow
Section titled “Core Capabilities in the New Flow”Metadata and Navigation
Section titled “Metadata and Navigation”const app = await client.metadata.getApp();const navigation = await client.metadata.getNavigation();console.log(app.name, navigation.navigation.length);CRUD by virtual path
Section titled “CRUD by virtual path”const booksApi = client.crud('library/books');const page = await booksApi.findAll({ page: 1, size: 20, q: 'clean code' });Global and entity actions
Section titled “Global and entity actions”await client.actions.executeGlobal('exportBooksToExcel', { params: { format: 'xlsx' },});Authentication
Section titled “Authentication”The same auth model is reused across all frontend SDK packages through the same HttpClient:
tokenfor Bearer auth (recommended for SPA)username+passwordfor Basic authwithCredentials: truefor cookie/session-based auth
Error Handling
Section titled “Error Handling”import { DynamiaApiError } from '@dynamia-tools/sdk';
try { await client.crud('library/books').findById(999999);} catch (error) { if (error instanceof DynamiaApiError) { console.error(`[${error.status}] ${error.message}`); }}Next Steps
Section titled “Next Steps”- Read Vue Support (Beta)
- Explore Extensions
- Review the package docs in the monorepo:
platform/packages/sdkplatform/packages/vueextensions/*/packages/*-sdk