@revenexx/studio-integrations
| Install | |
|---|---|
npm install @revenexx/studio-integrations |
|
| Latest Version: | 3.0.3 |
| Vue: | 3 |
| License: | Custom |
| Last Updated: | Oct 22, 2026 |
| Links: | npm |
@revenexx/studio-integrations
The revenexx Integration Studio (core: Dashboard, Workflows + node editor,
Runs, Schedules, Credentials, Secrets, Audit) as a distributable Nuxt module.
Registers its /integrations/* pages, components and composables. Data/auth flow
through the usePlatformAuth / usePlatformTenant seam (from
@revenexx/studio-shared).
Install
Public on npm — no registry config or token needed:
pnpm add @revenexx/studio-integrations @revenexx/studio-shared @revenexx/studio
Use
// nuxt.config.ts
export default defineNuxtConfig({
// studio-shared is a Nuxt MODULE since 0.2.0 (shell primitives by their
// bare names + the platform provider) — do NOT `extends` it anymore.
modules: ['@solar-icons/nuxt', '@revenexx/studio-shared', '@revenexx/studio-integrations'],
})
Point it at your Integrations backend via NUXT_PUBLIC_INTEGRATIONS_API and
supply a token/tenant through the platform provider (override
usePlatformAuth / usePlatformTenant, or the standalone defaults read
NUXT_PUBLIC_DEV_TOKEN / NUXT_PUBLIC_DEV_TENANT).
Language
The studio speaks English and German. That covers both halves of a screen: the text node packages publish (names, descriptions, settings) and the studio's own chrome — headings, buttons, tabs, empty states, toasts. Both fall back to English. The studio has no switcher of its own, so hand the choice over one of two ways:
// nuxt.config.ts — a language that does not change
export default defineNuxtConfig({
studioIntegrations: { locale: 'de' }, // or NUXT_PUBLIC_STUDIO_INTEGRATIONS_LOCALE
})
// a host plugin — a language the user switches while the app is running
const { setLocale } = useIntegrationsLocale()
watch(hostLocale, l => setLocale(l), { immediate: true })
A switch reaches surfaces that are already open; nothing is refetched. With
neither wired, the studio is English. The module carries its own message
catalogue (runtime/i18n/messages/*.json) — it never reads the host's, and needs
no i18n library installed in the host. See
docs/interface-language.md.
⚠️ Tailwind: you MUST scan this package
The module ships its runtime as source-ish .vue; Tailwind generates the
classes from your build. Scan both this module and studio-shared, or
component styling silently breaks:
@import "tailwindcss";
@import "@revenexx/studio/tokens";
@import "@revenexx/studio/fonts";
@source "../node_modules/@revenexx/studio-shared/dist/runtime";
@source "../node_modules/@revenexx/studio-integrations/dist/runtime";
Adjust the relative paths to reach node_modules from your CSS file.
Peers
@revenexx/studio ^0.2.3, @revenexx/studio-shared ^0.3.2 (module form), nuxt ^4, vue ^3.5,
@vue-flow/* + @dagrejs/dagre (workflow editor), lucide-vue-next; register
@solar-icons/nuxt in the host.
Develop
This repo is the source of truth for the module (it used to live in the
cockpit monorepo under packages/studio-integrations).
pnpm install # runs the module `prepare` (nuxt-module-build)
pnpm test # vitest
pnpm lint # eslint — `pnpm lint --fix` fixes what has a fix, layout above all
pnpm build # dist/
pnpm changeset # record what your change does to the version
Branch off main as feature/<desc>, fix/<desc> or chore/<desc> — GitHub refuses
the first push of any other name, and main itself takes a reviewed pull request with
CI green: docs/branch-protection.md. A separate,
non-blocking Security Scan reports secrets and dependency advisories:
docs/security-scanning.md.
Hosts to develop against:
- Playground (
playground/, in this repo): thin standalone Nuxt host that loads the module fromsrc/— seeplayground/README.mdfor the full runbook against a local integrations service (docker compose -f playground/docker-compose.dev.yml up). - Cockpit (
../revenexx-cockpit): its dev server loads this module from the sibling checkout'ssrc/module.tsautomatically (dev-from-source, see the cockpit'snuxt.config.ts). Editsrc/**here, the cockpit HMRs. - Integrations service (
../integrations): thestudio-uidev host consumes a packed tarball —studio-ui/scripts/pack-vendor.shbuilds and packs this repo intostudio-ui/vendor/.
Release
Versioning is driven by Changesets,
so version in package.json is never edited by hand. Every pull request
records what it does to the version — CI fails without it:
pnpm changeset # pick patch/minor/major, then write the note
pnpm changeset --empty # …for a PR that intentionally releases nothing
Releasing is then merging a pull request. Pushes to main that carry changesets
make CI open a "Version Packages" PR with the bump and CHANGELOG.md
applied; merging that PR publishes to npm (Trusted Publishing over OIDC, no
token) and notifies the cockpit.
Full policy, the SemVer contract, and why publishing is deliberately not
changeset publish: docs/versioning.md.
Related Packages
Commerce Studio (manifest-driven AppRenderer: list/detail/form/widgets over inst...
Nuxt Image provider for the revenexx Storage CDN. Build optimized, on-the-fly im...
Server-rendered cookie consent for Nuxt without a third-party script: an SSR con...
Consent-gated tag manager for Nuxt, built on @nuxt/scripts: loads the tags publi...
Cover — revenexx design system for Nuxt. Distributed as a Nuxt layer: generic UI...
Version History
| Version | Released | License |
|---|---|---|
| 3.0.3 | Custom | |
| 3.0.2 | Custom | |
| 3.0.1 | Custom | |
| 3.0.0 | Custom | |
| 2.10.0 | Custom | |
| 2.9.0 | Custom | |
| 2.8.1 | Custom | |
| 2.8.0 | Custom | |
| 2.7.0 | Custom | |
| 2.6.0 | Custom | |
| 2.5.1 | Custom | |
| 2.5.0 | Custom | |
| 2.4.0 | Custom | |
| 2.3.0 | Custom | |
| 2.2.0 | Custom | |
| 2.1.0 | Custom | |
| 2.0.0 | Custom | |
| 1.4.1 | Custom | |
| 1.4.0 | Custom | |
| 1.3.0 | Custom | |
| 1.2.0 | Custom | |
| 1.1.1 | Custom | |
| 1.1.0 | Custom | |
| 1.0.0 | Custom | |
| 0.7.0 | Custom | |
| 0.6.0 | Custom | |
| 0.5.1 | Custom | |
| 0.5.0 | Custom | |
| 0.4.0 | Custom | |
| 0.3.0 | Custom |
Showing the latest 30 of 36. See every release on npm