@termix-ssh/plugin-sdk 1.0.17 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.18
4
+
5
+ Plugin API 1.10.0.
6
+
7
+ ### Added
8
+
9
+ - `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
10
+
3
11
  ## 1.0.17
4
12
 
5
13
  Plugin API 1.9.0.
package/PLUGIN-GUIDE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Termix plugin guide
2
2
 
3
- SDK 1.0.17 | Plugin API 1.9.0
3
+ SDK 1.0.18 | Plugin API 1.10.0
4
4
 
5
5
  This guide is for anyone, person or AI coding tool, building a Termix plugin. It ships inside
6
6
  `@termix-ssh/plugin-sdk`, so the copy in your `node_modules` always matches the SDK you have installed.
package/dist/backend.d.ts CHANGED
@@ -260,6 +260,14 @@ export interface SyncBasicAuth {
260
260
  username: string;
261
261
  password: string;
262
262
  }
263
+ /** A client certificate for a server that asks for mutual TLS. */
264
+ export interface SyncClientCert {
265
+ /** Base64 of the PFX/P12 file. */
266
+ pfx: string;
267
+ passphrase: string;
268
+ /** The file name, to show which certificate is saved. */
269
+ name: string | null;
270
+ }
263
271
  /** Extra per server connection options. Kept open so new ones need no migration. */
264
272
  export type SyncLinkOptions = Record<string, unknown>;
265
273
  /** One server a desktop is linked to, with a replica of its data. */
@@ -274,6 +282,7 @@ export interface SyncLinkInfo {
274
282
  customHeaders: SyncProxyHeader[];
275
283
  basicAuth: SyncBasicAuth | null;
276
284
  allowInvalidCertificate: boolean;
285
+ clientCert: SyncClientCert | null;
277
286
  remoteUserId: string | null;
278
287
  remoteUsername: string | null;
279
288
  account: {
@@ -302,11 +311,12 @@ export interface SyncLinkCreate {
302
311
  customHeaders?: SyncProxyHeader[];
303
312
  basicAuth?: SyncBasicAuth | null;
304
313
  allowInvalidCertificate?: boolean;
314
+ clientCert?: SyncClientCert | null;
305
315
  remoteUserId?: string | null;
306
316
  remoteUsername?: string | null;
307
317
  }
308
- export type SyncLinkPatch = Partial<Pick<SyncLinkInfo, "serverName" | "serverVersion" | "sessionToken" | "customHeaders" | "basicAuth" | "allowInvalidCertificate" | "remoteUserId" | "remoteUsername" | "account" | "disabledTypes" | "options" | "knownTypes" | "cursor" | "status" | "lastError" | "lastSyncAt">>;
309
- export type SyncRemoteErrorKind = "offline" | "tls" | "proxy" | "basic_auth" | "signed_out" | "server";
318
+ export type SyncLinkPatch = Partial<Pick<SyncLinkInfo, "serverName" | "serverVersion" | "sessionToken" | "customHeaders" | "basicAuth" | "allowInvalidCertificate" | "clientCert" | "remoteUserId" | "remoteUsername" | "account" | "disabledTypes" | "options" | "knownTypes" | "cursor" | "status" | "lastError" | "lastSyncAt">>;
319
+ export type SyncRemoteErrorKind = "offline" | "tls" | "client_cert" | "proxy" | "basic_auth" | "signed_out" | "server";
310
320
  export interface SyncRemoteError extends Error {
311
321
  readonly kind: SyncRemoteErrorKind;
312
322
  readonly status?: number;
@@ -317,6 +327,7 @@ export interface SyncRemoteTarget {
317
327
  customHeaders?: SyncProxyHeader[];
318
328
  basicAuth?: SyncBasicAuth | null;
319
329
  allowInvalidCertificate?: boolean;
330
+ clientCert?: SyncClientCert | null;
320
331
  }
321
332
  export interface SyncRemoteRequest {
322
333
  method?: string;
@@ -20,7 +20,7 @@ export { ENV_NAME_PATTERN, MAX_ENV_DESCRIPTION_LENGTH, pluginDocsPage, pluginDoc
20
20
  * "^1.2" needs 1.2 or later). engine.termix is checked against the core
21
21
  * version by the server.
22
22
  */
23
- export declare const PLUGIN_API_VERSION = "1.9.0";
23
+ export declare const PLUGIN_API_VERSION = "1.10.0";
24
24
  /** The API major, the default engine.api for a new plugin. */
25
25
  export declare const SUPPORTED_PLUGIN_API_VERSION: string;
26
26
  /** Whether this build's plugin API satisfies a manifest's engine.api. */
package/dist/manifest.js CHANGED
@@ -22,7 +22,7 @@ export { ENV_NAME_PATTERN, MAX_ENV_DESCRIPTION_LENGTH, pluginDocsPage, pluginDoc
22
22
  * "^1.2" needs 1.2 or later). engine.termix is checked against the core
23
23
  * version by the server.
24
24
  */
25
- export const PLUGIN_API_VERSION = "1.9.0";
25
+ export const PLUGIN_API_VERSION = "1.10.0";
26
26
  /** The API major, the default engine.api for a new plugin. */
27
27
  export const SUPPORTED_PLUGIN_API_VERSION = String(semver.major(PLUGIN_API_VERSION));
28
28
  /** Whether this build's plugin API satisfies a manifest's engine.api. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@termix-ssh/plugin-sdk",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "description": "The contract between Termix core and a plugin: types, the capability catalog and the manifest schema.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {