mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 06:05:24 +00:00
feat: client cert on the sync link types (sdk 1.0.18)
This commit is contained in:
1 parent
af87d09273
commit
6377798d45
5 files changed
+31
-4
No files matched your search
@@ -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,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,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": {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in new issue
Block a user