mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 06:05:24 +00:00
ctx.auth.issueUserToken(userId, { purpose, ttlSeconds }) gives background
work a session for calling Termix's own API as an existing user. It needs
users:impersonate, defaults to 300s and is capped at 900s, is stored as a
normal session row marked as plugin-issued, and every issue is audited.
Such sessions are refused on routes that change the user's password,
second factors, API keys or linked logins.
ctx.users.getLocale(userId) reads the user's UI language under users:read.
SDK 1.0.11, plugin API 1.3.0.
5.2 KiB
5.2 KiB
Changelog
1.0.11
Plugin API 1.3.0.
Added
ctx.auth.issueUserToken()mints a short-lived session for a user, for calling Termix's own API as them from background work. Needsusers:impersonateandengine.api1.3ctx.users.getLocale()reads a user's UI language. Needsusers:readandengine.api1.3
1.0.10
Changed
termix-plugin packincludes the plugin'sLICENSEandNOTICEfiles, so third-party notices ship with it
1.0.9
Added
- Worker entries in
package.jsontermix.workers, each bundled on its own intodist/workers/<name>.js - A
.wasm,.ttfor.otfimport gives the file's bytes, intermix-plugin buildand in plugin tests
Fixed
- The plugin guide listed jszip, guacamole-lite and @anthropic-ai/sdk as shared packages, but they are bundled
1.0.8
Added
publicRateLimitonctx.http.router(), for a plugin whose public routes serve a proxied page
1.0.7
Fixed
- A migration file, or a part of one, holding only comments made core fail to start the plugin
1.0.6
Added
PLUGIN-GUIDE.md, a guide to building, testing and releasing a plugin, written so AI coding tools can read it too
1.0.5
Fixed
execCommandtimeout errors no longer include the command, which could hold a sudo passwordtermix-plugin validatefails when a plugin ships migrations for some database engines but not all threetermix-plugin migrationsloads the table definitions from a path with a#or other URL characters in it- Text, json and encrypted columns are
longtexton MySQL in new migrations, so they are no longer capped at 64KB. Existing migrations keeptext i18next,react-dom,react-i18nextandsonnerare optional peer dependencies, so npm stops installing them into backend-only pluginstermix-plugin validateaccepts a beta version like1.1.0-beta.1when the changelog's newest release is1.1.0or older, so beta releases pass
1.0.4
Fixed
termix-plugin buildputs a plugin's own Tailwind classes in core's utilities layer, so responsive, hover and group variants andclassNameoverrides on SDK components work. Plain classes core already ships stay below core's utilities as before, while variants core ships go with the plugin's own somax-h-56 md:max-h-nonekeeps its order. Rebuild a plugin to pick it up
1.0.3
Plugin API 1.2.0.
Added
docsmanifest field: an https link to the plugin's docs. Termix shows it as a Documentation link on the plugin's page and in its settingsenvmanifest field: the environment variables the plugin reads, listed in its docs and on its pageapp.docsanduseDocsUrl()for links into the plugin's own docs, andDocsLinkin@termix-ssh/plugin-sdk/uiPanelShelltakes adocslink and shows it as a book icon in the header@termix-ssh/plugin-sdk/openapiwithbuildOpenApi(), andtermix-plugin openapi, which writesdist/openapi.jsonfrom the@openapiblocks insrc/backend.buildruns it too@termix-ssh/plugin-sdk/docswithpluginDocsUrl(),pluginDocsPage()andpluginEnvVars()termix-plugin validatewarns whendocs/index.mdis missing or the source reads an env var the manifest does not list
1.0.2
Added
featuresmanifest field: up to 20 short lines about what the plugin does, shown on its page.pluginFeatures()reads them
Changed
parseChangelog()andvalidateChangelog()flag a## Unreleasedsection. Notes go under the version they ship in
Removed
Changelog.unreleased
1.0.1
Added
- Plugin API 1.1
app.registerOnboardingStep()adds a step to onboarding, withOnboardingStepPropsandOnboardingStepContribution. Needsengine.api1.1videomanifest field: a YouTube link shown at the top of the plugin's page, read withyoutubeVideoId()@termix-ssh/plugin-sdk/changelogparses and checks a plugin'sCHANGELOG.mdtermix-plugin changelogprints one version's notes fromCHANGELOG.mdtermix-plugin devinstalls a plugin on a running server and reinstalls it on every change. Needs developer mode and an admin API keyrenderOnboardingStep()andregistered.onboardingSteps()inrenderWithApp()AddButton,FormFooter,ListRow,ListRowAction,ListRowFolder,ListBadgeandPanelListin@termix-ssh/plugin-sdk/uiPanelSearchtakesdisabled,title,onEnterandinputRef, andSurfaceScopetakesonClose
Changed
- Release notes moved from
CHANGELOG.jsontoCHANGELOG.md, whichpacknow ships.validateflags a leftoverCHANGELOG.json ConnectionScreendroppederrorMessageandretryLabeland gainedonClose.ConnectionLogPaneldroppedposition- Plugin tests run in worker threads, since forked workers crash now and then on Windows
- The test setup stubs
ResizeObserverfor Radix controls under jsdom onboardingis a reserved plugin id
Deprecated
- The
onboarding.*action slots. UseregisterOnboardingStep()
Removed
schema/changelog.schema.json
1.0.0
Added
- Backend, frontend, database, manifest, capability and settings types for plugin API 1.0
- Testing helpers and a Vitest preset for plugin tests
- The
@termix-ssh/plugin-sdk/uicomponent set - The
termix-pluginCLI to build, validate, test, pack, sign and write migrations