mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-11-04 17:45:24 +00:00
v26.10.3 (#1692)
* feat: shell controller, TabStage, layout and theme plugins with repair view * feat: move the classic layout into its own bundled plugin * feat: move color themes into a bundled themes plugin * fix: plugin tests and type checks work with a linked sdk * fix: home tab, layout switch and missing layout fallbacks for looks * chore: add classic layout and themes to the readme * chore: drop example plugin links from the plugin guide * feat: plugin filters by type, paged browse, hide plugins needing newer termix * feat: move desktop, status, import, audit and branding features into plugins * feat: host lock api so a plugin can load hosts from a config file (#1581) * chore: add hosts config to the plugin table * feat: login policy hook for plugins and optional https redirect (#1584) * chore: add login security to the plugin table * feat: api key socket tickets so a master can open remote sessions (#1654) * feat: sync moves to a plugin, desktop gets multiple accounts (#1580, #1654) * chore: add sync to the plugin table * feat: move the sync screens and wizard out of core into the plugin (#1580) * fix: add a neutral linked desktop hook for plugins (#1580) * fix: show the linked account's name and admin flag in the app (#1580) * feat: ssh transport providers, core ssh relay and plugin folders api * feat: support FIDO2 security keys through ssh agent * feat: add companion panels beside host tabs * feat: mTLS client certificates for desktop server links * feat: native web view for plugins in the desktop app * fix: detect the desktop link window by Electron's default user agent Fixes #1675 * fix: changelog for desktop link fix * fix: keep text primary keys in the plugin data export * fix: ship sharp binaries for Windows arm64 builds * feat: client cert on the sync link types (sdk 1.0.18) * chore: update translations * feat: themed title bar for the desktop app (#1690) * chore: changelog for the themed title bar * fix: draw the title bar in the sidebar color * feat: per host layout for the terminal panel bar * chore: sdk 1.0.19 for the panel bar layout * chore: bundle all 43 plugins for 26.10.3 * chore: update translations --------- Co-authored-by: SirHephaistos <60616553+SirHephaistos@users.noreply.github.com> Co-authored-by: Giovanny Aranda <garanda21@gmail.com>
This commit is contained in:
577 files changed
+76479
-101831
No files matched your search
@@ -152,6 +152,9 @@ export { useTabs, useTabsSafe } from "@/shell/TabContext";
|
||||
|
||||
// Slots: a plugin can offer places for other plugins to fill.
|
||||
export { ActionSlot, ComponentSlot } from "@/shell/ActionSlot";
|
||||
// For layouts: where tabs show, and the confirm a tab close asks with.
|
||||
export { TabStage } from "@/shell/stage/TabStage";
|
||||
export { ShellConfirmCapture } from "@/shell/controller/ShellControllerProvider";
|
||||
|
||||
// A plugin's manifest host settings, drawn inside its own host editor section.
|
||||
export {
|
||||
@@ -350,3 +353,470 @@ export {
|
||||
type ConnectionGateProps,
|
||||
} from "@/components/connection/ConnectionGate";
|
||||
export { type ConnectionUnavailable } from "@/components/connection/ConnectionScreen";
|
||||
|
||||
// For shell-level plugins such as a layout: the API client, shared types and
|
||||
// the shell's own state. These reach into core, so they may change with a core
|
||||
// release. An ordinary plugin should not need them.
|
||||
export { APP_VERSION } from "@/lib/app-version";
|
||||
// The palette's own input has to share the Command it sits in, so cmdk is
|
||||
// the shell's copy.
|
||||
export { Command as CommandPrimitive } from "cmdk";
|
||||
export {
|
||||
type AuthOverrideProtocol,
|
||||
SSH_AUTH_PROTOCOL,
|
||||
} from "@/types/auth-protocols";
|
||||
export {
|
||||
CREDENTIAL_ROW_FIELD_KEYS,
|
||||
type CredentialDensity,
|
||||
type CredentialRowFields,
|
||||
type CredentialSidebarFilterState,
|
||||
type CredentialSidebarPreferences,
|
||||
type CredentialSortKey,
|
||||
type CredentialTrayTrigger,
|
||||
defaultCredentialRowFields,
|
||||
defaultCredentialSidebarPreferences,
|
||||
sanitizeCredentialSidebarPreferences,
|
||||
} from "@/types/credential-sidebar-preferences";
|
||||
export {
|
||||
CORE_HOST_DEFAULTS,
|
||||
CORE_NAMESPACE,
|
||||
type DefaultOverrides,
|
||||
defaultValuesEqual,
|
||||
findCoreHostDefault,
|
||||
type HostDefaultsLevel,
|
||||
type ResolvedHostDefault,
|
||||
splitDefaultKey,
|
||||
} from "@/types/host-defaults";
|
||||
export {
|
||||
defaultHostRowFields,
|
||||
defaultHostSidebarPreferences,
|
||||
type HostClickBehavior,
|
||||
type HostDensity,
|
||||
type HostGroupKey,
|
||||
type HostRowFields,
|
||||
type HostSidebarFilterState,
|
||||
type HostSidebarPreferences,
|
||||
type HostTrayTrigger,
|
||||
sanitizeHostSidebarPreferences,
|
||||
type SortKey,
|
||||
} from "@/types/host-sidebar-preferences";
|
||||
export type {
|
||||
HostData,
|
||||
HostLock,
|
||||
HostProtocolAuthInput,
|
||||
ProxyNode,
|
||||
SSHHost,
|
||||
SSHHostData,
|
||||
} from "@/types";
|
||||
export {
|
||||
PRESETS,
|
||||
UI_AREA_KEYS,
|
||||
type UiAreaKey,
|
||||
type UiPreset,
|
||||
} from "@/types/ui-preferences";
|
||||
export type {
|
||||
AdminSection,
|
||||
Credential,
|
||||
DashboardCardId,
|
||||
FontSizeId,
|
||||
Host,
|
||||
HostFolder,
|
||||
SharePermissionLevel,
|
||||
Tab,
|
||||
TabType,
|
||||
ThemeId,
|
||||
ToolsTab,
|
||||
UiFontId,
|
||||
} from "@/types/ui-types";
|
||||
export {
|
||||
type AuditLog,
|
||||
type AuditLogFilters,
|
||||
getAuditLogActions,
|
||||
getAuditLogs,
|
||||
} from "@/api/audit-log-api";
|
||||
export {
|
||||
getUserSecondFactors,
|
||||
resetUserSecondFactors,
|
||||
type UserSecondFactorSummary,
|
||||
} from "@/api/auth-methods-api";
|
||||
export { getCredentials } from "@/api/credentials-api";
|
||||
export {
|
||||
getFolderDefaultsId,
|
||||
getHostDefaultsLevel,
|
||||
type HostDefaultsChange,
|
||||
type HostDefaultsTarget,
|
||||
previewHostDefaultsLevel,
|
||||
resetHostToDefaults,
|
||||
resolveHostDefaults,
|
||||
saveHostDefaultsLevel,
|
||||
waitForDefaultsJob,
|
||||
} from "@/api/host-defaults-api";
|
||||
export { getHostTags, saveHostTags } from "@/api/host-tags-api";
|
||||
export {
|
||||
getSessionTimeoutMinutes,
|
||||
getUserPreferences,
|
||||
parseCustomKeybindings,
|
||||
saveUserPreferences,
|
||||
} from "@/api/open-tabs-api";
|
||||
export {
|
||||
getDeveloperMode,
|
||||
getPluginAdminSettings,
|
||||
getPluginHostSettings,
|
||||
getPlugins,
|
||||
getPluginUserSettings,
|
||||
type PluginSettingsErrors,
|
||||
type PluginSettingsField,
|
||||
PluginSettingsValidationError,
|
||||
type PluginSummary,
|
||||
setAllPluginChannels,
|
||||
setDeveloperMode,
|
||||
setPluginOptions,
|
||||
updatePluginAdminSettings,
|
||||
updatePluginHostSettings,
|
||||
updatePluginUserSettings,
|
||||
} from "@/api/plugins-api";
|
||||
export {
|
||||
getNotificationPrivateEndpoints,
|
||||
setNotificationPrivateEndpoints,
|
||||
} from "@/api/private-endpoints-api";
|
||||
export {
|
||||
type CredentialPermissionLevel,
|
||||
type FolderAccessRule,
|
||||
getCredentialAccess,
|
||||
getFolderAccess,
|
||||
getRoles,
|
||||
revokeCredentialAccess,
|
||||
revokeFolderAccess,
|
||||
shareCredential,
|
||||
type ShareTarget,
|
||||
} from "@/api/rbac-api";
|
||||
export { type BrandingSettings, getBranding } from "@/api/settings-api";
|
||||
export {
|
||||
getChannelReleases,
|
||||
getUpdateChannel,
|
||||
type ReleaseInfo,
|
||||
setUpdateChannel,
|
||||
type UpdateChannelState,
|
||||
} from "@/api/system-status-api";
|
||||
export {
|
||||
getTlsStatus,
|
||||
type TlsStatus,
|
||||
uploadTlsCertificate,
|
||||
} from "@/api/tls-api";
|
||||
export {
|
||||
Command,
|
||||
CommandEmpty,
|
||||
CommandGroup,
|
||||
CommandItem,
|
||||
CommandList,
|
||||
} from "@/components/command";
|
||||
export { usePluginDocsUrl } from "@/components/docs-link";
|
||||
export {
|
||||
DEFAULT_FOLDER_COLOR,
|
||||
DEFAULT_FOLDER_ICON,
|
||||
FolderIconEl,
|
||||
HexColorPicker,
|
||||
IconPicker,
|
||||
} from "@/components/folder-style";
|
||||
export { useTheme } from "@/components/theme-provider";
|
||||
export { VersionBadge } from "@/components/version-badge";
|
||||
export { useBranding } from "@/contexts/BrandingContext";
|
||||
export {
|
||||
useAreaPreferences,
|
||||
useUiPreference,
|
||||
useUiPreferencesContext,
|
||||
} from "@/contexts/UiPreferencesContext";
|
||||
export {
|
||||
getRegisteredDashboardCard,
|
||||
useRegisteredDashboardCards,
|
||||
} from "@/dashboard/dashboard-cards-registry";
|
||||
export { useActionSlot } from "@/hooks/use-action-slot";
|
||||
export { useInstalledPlugins } from "@/hooks/use-installed-plugins";
|
||||
export { usePageVisibleInterval } from "@/hooks/use-page-visible-interval";
|
||||
export { usePermissions } from "@/hooks/use-permissions";
|
||||
export {
|
||||
getStatusClasses,
|
||||
useStatusColorScheme,
|
||||
} from "@/hooks/use-status-color-scheme";
|
||||
export { useSshAuthProviders } from "@/hooks/useSshAuthProviders";
|
||||
export { changeAppLanguage, normalizeLanguageCode } from "@/i18n/i18n";
|
||||
export { LANGUAGES } from "@/i18n/languages";
|
||||
export {
|
||||
getLiveHostStatus,
|
||||
useHostStatus,
|
||||
useServerStatus,
|
||||
useServerStatusMeta,
|
||||
} from "@/lib/ServerStatusContext";
|
||||
export { activityTarget } from "@/lib/activity-types";
|
||||
export { applyPresetSideEffects } from "@/lib/apply-ui-preset";
|
||||
export { getDatabaseTransferUrl } from "@/lib/database-transfer-url";
|
||||
export {
|
||||
canConfigureUpdates,
|
||||
type DesktopUpdateMode,
|
||||
desktopUpdates,
|
||||
type DesktopUpdateState,
|
||||
useDesktopUpdate,
|
||||
} from "@/lib/desktop-updates";
|
||||
export { type DocsPage, docsUrl } from "@/lib/docs";
|
||||
export { getErrorMessage } from "@/lib/error-message";
|
||||
export {
|
||||
getDefaultConnectionTab,
|
||||
resolveHostTabType,
|
||||
} from "@/lib/host-connection-tabs";
|
||||
export {
|
||||
DefaultsOnly,
|
||||
HostDefaultsContext,
|
||||
type HostDefaultsContextValue,
|
||||
HostOnly,
|
||||
} from "@/lib/host-defaults-context";
|
||||
export {
|
||||
invalidateHostsAndStatusCaches,
|
||||
invalidateServerStatusCache,
|
||||
} from "@/lib/hosts-request-cache";
|
||||
export { reportBetaFeedbackUrl, reportCoreIssueUrl } from "@/lib/issue-url";
|
||||
export { notifySyncChanged, useDesktopLinked } from "@/lib/linked-server";
|
||||
export {
|
||||
clearLocalAdaptivePreferences,
|
||||
getPreferredHostAction,
|
||||
recordHostActionPreference,
|
||||
} from "@/lib/local-adaptive-preferences";
|
||||
export { pluginKey, pluginName } from "@/lib/plugin-i18n";
|
||||
export { PluginIcon } from "@/lib/plugin-icon";
|
||||
export { rem } from "@/lib/rem";
|
||||
export { getConnectedRemoteApi } from "@/lib/remote-server-api";
|
||||
export { roleLabel } from "@/lib/role-label";
|
||||
export type { StatusValue } from "@/lib/server-status-store";
|
||||
export { parseServerTime } from "@/lib/server-time";
|
||||
export { tabJumpHotkeyKeys } from "@/lib/tab-jump-hotkey";
|
||||
export {
|
||||
ACCENT_PRESET_COLORS,
|
||||
applyAccentColor,
|
||||
applyFontSize,
|
||||
applyUiFont,
|
||||
DASHBOARD_CARDS,
|
||||
FONT_SIZES,
|
||||
UI_FONTS,
|
||||
} from "@/lib/theme";
|
||||
export { registerLayout } from "@/look/layout-registry";
|
||||
export { useChooseTheme } from "@/look/use-look-theme";
|
||||
export {
|
||||
type AccessRecord,
|
||||
type ActiveSessionInfo,
|
||||
adminCreateUser,
|
||||
adminCreateUserCredential,
|
||||
adminCreateUserHost,
|
||||
adminDeleteUserCredential,
|
||||
adminDeleteUserHost,
|
||||
adminExportUserData,
|
||||
adminGetHostPassword,
|
||||
adminGetUserCredentials,
|
||||
adminGetUserHosts,
|
||||
adminResetUserPassword,
|
||||
adminUpdateUserCredential,
|
||||
adminUpdateUserHost,
|
||||
type ApiKey,
|
||||
assignRoleToUser,
|
||||
bulkUpdateSSHHosts,
|
||||
changePassword,
|
||||
createApiKey,
|
||||
createCredential,
|
||||
type CreatedApiKey,
|
||||
createRole,
|
||||
createSSHHost,
|
||||
deleteAccount,
|
||||
deleteAllHostsInFolder,
|
||||
deleteApiKey,
|
||||
deleteCredential,
|
||||
deleteOpenTab,
|
||||
deleteRole,
|
||||
deleteSSHHost,
|
||||
deleteUser,
|
||||
duplicateCredential,
|
||||
getActiveSessions,
|
||||
getApiKeys,
|
||||
getCredentialDetails,
|
||||
getCredentialSidebarPreferences,
|
||||
getExternalAutoProvision,
|
||||
getHostAccess,
|
||||
getHostAuthOverride,
|
||||
getHostPassword,
|
||||
getHostPolicy,
|
||||
type HostPolicy,
|
||||
getHostSidebarPreferences,
|
||||
getHttpsSettings,
|
||||
type HttpsSettings,
|
||||
getLogLevel,
|
||||
getPasswordLoginAllowed,
|
||||
getPasswordResetAllowed,
|
||||
getPermissionsCatalog,
|
||||
getRegistrationAllowed,
|
||||
getSecondFactorAfterExternalLogin,
|
||||
getSessions,
|
||||
getSessionTimeout,
|
||||
getSSHFolders,
|
||||
getSSHHosts,
|
||||
getStatusCheckSettings,
|
||||
getUserInfo,
|
||||
getUserList,
|
||||
getUserRoles,
|
||||
type LinkedAccountInfo,
|
||||
linkExternalToPasswordAccount,
|
||||
logoutUser,
|
||||
makeUserAdmin,
|
||||
type OpenTabRecord,
|
||||
type PermissionCatalogEntry,
|
||||
releaseUrlFrom,
|
||||
removeAdminStatus,
|
||||
removeRoleFromUser,
|
||||
renameCredentialFolder,
|
||||
renameFolder,
|
||||
reorderCredentials,
|
||||
reorderFolders,
|
||||
reorderSSHHosts,
|
||||
resetRecentActivity,
|
||||
revokeAllUserSessions,
|
||||
revokeHostAccess,
|
||||
revokeSession,
|
||||
type Role,
|
||||
saveCredentialSidebarPreferences,
|
||||
saveHostSidebarPreferences,
|
||||
setHostAuthOverride,
|
||||
shareFolder,
|
||||
shareHost,
|
||||
type SSHHostWithStatus,
|
||||
unlinkExternalFromPasswordAccount,
|
||||
updateCredential,
|
||||
updateExternalAutoProvision,
|
||||
updateFolderMetadata,
|
||||
updateHostAccess,
|
||||
updateHttpsSettings,
|
||||
updateLogLevel,
|
||||
updatePasswordLoginAllowed,
|
||||
updatePasswordResetAllowed,
|
||||
updateRegistrationAllowed,
|
||||
updateRole,
|
||||
updateSecondFactorAfterExternalLogin,
|
||||
updateSessionTimeout,
|
||||
updateSSHHost,
|
||||
updateStatusCheckSettings,
|
||||
type UserPreferences,
|
||||
type UserRole,
|
||||
} from "@/main-axios";
|
||||
export {
|
||||
MANAGE_REQUEST_EVENT,
|
||||
type ManageMode,
|
||||
type ManageRequest,
|
||||
requestFromLegacyEvent,
|
||||
requestManage,
|
||||
takePendingManageRequest,
|
||||
} from "@/manage/manage-requests";
|
||||
export { useSshAuthEditors } from "@/plugin-host/auth-registry";
|
||||
export { usePluginStore } from "@/plugin-host/plugin-store";
|
||||
export { shell } from "@/plugin-host/shell-bridge";
|
||||
export { OPEN_PLUGINS_EVENT } from "@/plugins/open-plugins";
|
||||
export { isPrerelease } from "@/plugins/plugin-model";
|
||||
export { usePluginHostSections } from "@/settings/HostPluginSections";
|
||||
export { SettingsFieldRow } from "@/settings/SettingsFields";
|
||||
export { LookSettings } from "@/look/LookSettings";
|
||||
export { useThemeOptions } from "@/settings/appearance/appearance-controls";
|
||||
export {
|
||||
hasVisibleFields,
|
||||
isFieldShown,
|
||||
} from "@/settings/settings-fields-util";
|
||||
export { NativeView, type NativeViewProps } from "./NativeView";
|
||||
export { useShellController } from "@/shell/controller/ShellControllerProvider";
|
||||
export {
|
||||
type KeybindingActionDef,
|
||||
useKeybindingActions,
|
||||
useKeybindingDefaults,
|
||||
} from "@/shell/keybinding-registry";
|
||||
export {
|
||||
filterPaletteItems,
|
||||
loadPaletteGroup,
|
||||
paletteEntriesFor,
|
||||
type PaletteItemDef,
|
||||
usePaletteEntries,
|
||||
usePaletteGroups,
|
||||
} from "@/shell/palette-registry";
|
||||
export { getPanel, usePanels } from "@/shell/panel-registry";
|
||||
export { SplitLayoutMenu } from "@/shell/split/SplitLayoutMenu";
|
||||
export {
|
||||
beginSplitDrag,
|
||||
endSplitDrag,
|
||||
isSplitDragging,
|
||||
moveSplitDrag,
|
||||
} from "@/shell/split/split-drag";
|
||||
export {
|
||||
canJoinSplit,
|
||||
isSplitTab,
|
||||
type SplitSummary,
|
||||
type TabSplitAction,
|
||||
} from "@/shell/split/split-tabs";
|
||||
export {
|
||||
openInSplit,
|
||||
type SplitOpenTarget,
|
||||
useSplitTargets,
|
||||
} from "@/shell/split/split-targets";
|
||||
export { MAX_PANES } from "@/shell/split/split-tree";
|
||||
export { registerTabCloseGuard } from "@/shell/tab-close-guards";
|
||||
export { useTabHandlesVersion } from "@/shell/tab-handles";
|
||||
export {
|
||||
getTabType,
|
||||
isPersistentTabType,
|
||||
isSessionTabType,
|
||||
type TabShellCallbacks,
|
||||
} from "@/shell/tab-registry";
|
||||
export {
|
||||
markTabSurfaceUsed,
|
||||
preloadTabSurface,
|
||||
tabIcon,
|
||||
} from "@/shell/tabUtils";
|
||||
export { AuthEnrollmentSections } from "@/sidebar/AuthEnrollmentSections";
|
||||
export { mapCredentials, sshHostToHost } from "@/sidebar/HostManagerData";
|
||||
export {
|
||||
getHostEditorSection,
|
||||
makeHostSshSubTabs,
|
||||
makeHostTabs,
|
||||
useHostEditorSections,
|
||||
} from "@/sidebar/HostManagerTabs";
|
||||
export {
|
||||
actionOrder,
|
||||
defaultConnectAction,
|
||||
type HostActionDef,
|
||||
hostActionsFor,
|
||||
hostBadgesFor,
|
||||
hostEditorToolbarItemsFor,
|
||||
hostMenuItemsFor,
|
||||
hostStatusIndicatorsFor,
|
||||
listHostActions,
|
||||
runHostAction,
|
||||
useHostActions,
|
||||
useHostBadges,
|
||||
useHostContextMenuItems,
|
||||
useHostEditorToolbarItems,
|
||||
useHostStatusIndicators,
|
||||
} from "@/sidebar/host-contributions";
|
||||
export { useEditorDefaultKeys } from "@/sidebar/host-defaults/catalog";
|
||||
export {
|
||||
enabledHostProtocols,
|
||||
type HostProtocolDef,
|
||||
hostProtocolFlags,
|
||||
type HostProtocols,
|
||||
listHostProtocols,
|
||||
protocolEnabled,
|
||||
protocolPort,
|
||||
useHostProtocols,
|
||||
withProtocolSettings,
|
||||
} from "@/sidebar/host-protocols";
|
||||
export { quickConnectTargets } from "@/sidebar/quick-connect-host";
|
||||
export {
|
||||
groupRailItems,
|
||||
isCoreRailView,
|
||||
moveRailItem,
|
||||
promotableIds,
|
||||
type RailGroup,
|
||||
type RailItemDef,
|
||||
railItemLabel,
|
||||
rightDockableIds,
|
||||
useRailItems,
|
||||
} from "@/sidebar/rail-items";
|
||||
Reference in new issue
Block a user