feat: client cert on the sync link types (sdk 1.0.18)

This commit is contained in:
LukeGus committed 2026-10-19 23:27:58 -05:00
1 parent af87d09273
commit 6377798d45
5 files changed
+31 -4

No files matched your search

+8
View File
@@ -1,5 +1,13 @@
# Changelog # Changelog
## 1.0.18
Plugin API 1.10.0.
### Added
- `clientCert` on the sync link, link patch and remote target, and the `client_cert` remote error kind, so a sync plugin can link to a server that needs mutual TLS
## 1.0.17 ## 1.0.17
Plugin API 1.9.0. Plugin API 1.9.0.
+1 -1
View File
@@ -1,6 +1,6 @@
# Termix plugin guide # Termix plugin guide
SDK 1.0.17 | Plugin API 1.9.0 SDK 1.0.18 | Plugin API 1.10.0
This guide is for anyone, person or AI coding tool, building a Termix plugin. It ships inside This guide is for anyone, person or AI coding tool, building a Termix plugin. It ships inside
`@termix-ssh/plugin-sdk`, so the copy in your `node_modules` always matches the SDK you have installed. `@termix-ssh/plugin-sdk`, so the copy in your `node_modules` always matches the SDK you have installed.
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@termix-ssh/plugin-sdk", "name": "@termix-ssh/plugin-sdk",
"version": "1.0.17", "version": "1.0.18",
"description": "The contract between Termix core and a plugin: types, the capability catalog and the manifest schema.", "description": "The contract between Termix core and a plugin: types, the capability catalog and the manifest schema.",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {
+20 -1
View File
@@ -308,6 +308,15 @@ export interface SyncBasicAuth {
password: string; password: string;
} }
/** A client certificate for a server that asks for mutual TLS. */
export interface SyncClientCert {
/** Base64 of the PFX/P12 file. */
pfx: string;
passphrase: string;
/** The file name, to show which certificate is saved. */
name: string | null;
}
/** Extra per server connection options. Kept open so new ones need no migration. */ /** Extra per server connection options. Kept open so new ones need no migration. */
export type SyncLinkOptions = Record<string, unknown>; export type SyncLinkOptions = Record<string, unknown>;
@@ -323,6 +332,7 @@ export interface SyncLinkInfo {
customHeaders: SyncProxyHeader[]; customHeaders: SyncProxyHeader[];
basicAuth: SyncBasicAuth | null; basicAuth: SyncBasicAuth | null;
allowInvalidCertificate: boolean; allowInvalidCertificate: boolean;
clientCert: SyncClientCert | null;
remoteUserId: string | null; remoteUserId: string | null;
remoteUsername: string | null; remoteUsername: string | null;
account: { account: {
@@ -352,6 +362,7 @@ export interface SyncLinkCreate {
customHeaders?: SyncProxyHeader[]; customHeaders?: SyncProxyHeader[];
basicAuth?: SyncBasicAuth | null; basicAuth?: SyncBasicAuth | null;
allowInvalidCertificate?: boolean; allowInvalidCertificate?: boolean;
clientCert?: SyncClientCert | null;
remoteUserId?: string | null; remoteUserId?: string | null;
remoteUsername?: string | null; remoteUsername?: string | null;
} }
@@ -365,6 +376,7 @@ export type SyncLinkPatch = Partial<
| "customHeaders" | "customHeaders"
| "basicAuth" | "basicAuth"
| "allowInvalidCertificate" | "allowInvalidCertificate"
| "clientCert"
| "remoteUserId" | "remoteUserId"
| "remoteUsername" | "remoteUsername"
| "account" | "account"
@@ -379,7 +391,13 @@ export type SyncLinkPatch = Partial<
>; >;
export type SyncRemoteErrorKind = export type SyncRemoteErrorKind =
"offline" | "tls" | "proxy" | "basic_auth" | "signed_out" | "server"; | "offline"
| "tls"
| "client_cert"
| "proxy"
| "basic_auth"
| "signed_out"
| "server";
export interface SyncRemoteError extends Error { export interface SyncRemoteError extends Error {
readonly kind: SyncRemoteErrorKind; readonly kind: SyncRemoteErrorKind;
@@ -392,6 +410,7 @@ export interface SyncRemoteTarget {
customHeaders?: SyncProxyHeader[]; customHeaders?: SyncProxyHeader[];
basicAuth?: SyncBasicAuth | null; basicAuth?: SyncBasicAuth | null;
allowInvalidCertificate?: boolean; allowInvalidCertificate?: boolean;
clientCert?: SyncClientCert | null;
} }
export interface SyncRemoteRequest { export interface SyncRemoteRequest {
+1 -1
View File
@@ -37,7 +37,7 @@ export {
* "^1.2" needs 1.2 or later). engine.termix is checked against the core * "^1.2" needs 1.2 or later). engine.termix is checked against the core
* version by the server. * version by the server.
*/ */
export const PLUGIN_API_VERSION = "1.9.0"; export const PLUGIN_API_VERSION = "1.10.0";
/** The API major, the default engine.api for a new plugin. */ /** The API major, the default engine.api for a new plugin. */
export const SUPPORTED_PLUGIN_API_VERSION = String( export const SUPPORTED_PLUGIN_API_VERSION = String(