diff --git a/.claude/skills/build-plugin/references/ui.md b/.claude/skills/build-plugin/references/ui.md index 7a67ad20..c42d5707 100644 --- a/.claude/skills/build-plugin/references/ui.md +++ b/.claude/skills/build-plugin/references/ui.md @@ -70,9 +70,7 @@ A **data stream** has its own `ui` array — the **tile-editor parameters** show } ``` -**`ignoreCertificateErrors`** — don't add this. The platform adds an "Ignore certificate errors" toggle to every plugin built on WebAPI, and passes the value to the WebAPI base plugin, so you don't need a ui.json field or a `base.config` mapping. - -Declaring a field named `ignoreCertificateErrors`, or setting the key in `base.config`, stops the platform adding its toggle. This only hides the option on the form: a value the user supplies (for example through the API) still overrides `base.config`. So only do it for an API where offering the option makes no sense: +**`ignoreCertificateErrors`** — don't add this. The platform adds an "Ignore certificate errors" toggle to every plugin built on WebAPI, and passes the value to the WebAPI base plugin, so you don't need a ui.json field or a `base.config` mapping. Declaring a field named `ignoreCertificateErrors`, or setting the key in `base.config`, stops the platform adding its toggle. This only hides the option on the form: a value the user supplies (for example through the API) still overrides `base.config`. So only do it for an API where offering the option makes no sense: ```json "base": { diff --git a/REVIEW.md b/REVIEW.md index 95d6cf37..d53f0b38 100644 --- a/REVIEW.md +++ b/REVIEW.md @@ -67,6 +67,7 @@ When suggesting changes: - Generally prefer API tokens or OAuth where possible, flag usage of username/password unless the API offers no alternative. - Check that only strictly required fields are marked as `required: true`. Advanced options should never block first-time success. +- Flag any field named `ignoreCertificateErrors`, and any `ignoreCertificateErrors` mapping in `base.config` in metadata.json. The platform adds this toggle to every plugin built on WebAPI. The only exception is a literal `false` in `base.config`, which deliberately hides it. - For each field in the array: - displayName - First word uppercase, then lowercase (e.g. “Table name", or "API key"). Single value: singular. Multiple values: “(s)" (e.g. Tables name(s)). Do not use “you" “Your" in display names. Keep text neutral, concise, and descriptive. - name - Should typically be the camel-cased version of the displayName. diff --git a/plugins/EcoStruxureIT-DCE/v1/docs/README.md b/plugins/EcoStruxureIT-DCE/v1/docs/README.md index f42a08d9..497d4060 100644 --- a/plugins/EcoStruxureIT-DCE/v1/docs/README.md +++ b/plugins/EcoStruxureIT-DCE/v1/docs/README.md @@ -9,7 +9,7 @@ You will need a Data Center Expert **user account** and network access to the se 1. Sign in to the Data Center Expert client as an administrator and create (or choose) a user for SquaredUp. Give it access to the **device groups** you want to monitor. The plugin only reads data, so a view-only user is enough. 2. Check the REST API is available by browsing to `https:///isxg/dce-rest-api.html`. You should see the **DCE REST API UI** page. Optionally, click **Authorize** and sign in with the new user to confirm the credentials work. 3. In SquaredUp, enter the server address in **Server URL**, and the user's credentials in **Username** and **Password**. -4. If the server uses a self-signed certificate (the default for Data Center Expert), tick **Ignore certificate errors**. +4. If the server uses a self-signed certificate (the default for Data Center Expert), turn on **Ignore certificate errors**. ## Configuration fields @@ -18,7 +18,7 @@ You will need a Data Center Expert **user account** and network access to the se | **Server URL** | Address of the Data Center Expert server, for example `https://dce.example.com`. The `/isxg` REST API path is added automatically. | The address you use to open the Data Center Expert web interface. | Yes | | **Username** | Data Center Expert user the plugin signs in as. | Data Center Expert client → user management. | Yes | | **Password** | Password for that user. | Set when the user is created. | Yes | -| **Ignore certificate errors** | Skips HTTPS certificate checks. | Tick this when the server uses a self-signed certificate. | No | +| **Ignore certificate errors** | Skips HTTPS certificate checks. | Turn this on when the server uses a self-signed certificate. | No | | **OAuth client ID** | OAuth client sent when requesting an access token. Leave blank unless sign-in fails (see below). | See [If sign-in fails](#if-sign-in-fails). | No | | **OAuth client secret** | Secret for the OAuth client above. | See [If sign-in fails](#if-sign-in-fails). | No | diff --git a/plugins/EcoStruxureIT-DCE/v1/metadata.json b/plugins/EcoStruxureIT-DCE/v1/metadata.json index 74d6af6a..d17ef699 100644 --- a/plugins/EcoStruxureIT-DCE/v1/metadata.json +++ b/plugins/EcoStruxureIT-DCE/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "ecostruxure-it-dce", "displayName": "EcoStruxure IT Data Center Expert", - "version": "1.0.0", + "version": "1.0.1", "author": { "name": "@shawn149", "type": "community" @@ -55,7 +55,6 @@ "oauth2Scope": "", "oauth2TokenExtraArgs": [], "oauth2TokenExtraHeaders": [], - "ignoreCertificateErrors": "{{ignoreCertificateErrors}}", "headers": [ { "key": "Accept", diff --git a/plugins/EcoStruxureIT-DCE/v1/ui.json b/plugins/EcoStruxureIT-DCE/v1/ui.json index e09dbf4d..7ad9d4bd 100644 --- a/plugins/EcoStruxureIT-DCE/v1/ui.json +++ b/plugins/EcoStruxureIT-DCE/v1/ui.json @@ -32,12 +32,6 @@ "required": true } }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "help": "Enable when the Data Center Expert server uses a self-signed certificate." - }, { "type": "fieldGroup", "name": "advanced", diff --git a/plugins/Healthchecks.io/v1/metadata.json b/plugins/Healthchecks.io/v1/metadata.json index c22b35f7..7791071e 100644 --- a/plugins/Healthchecks.io/v1/metadata.json +++ b/plugins/Healthchecks.io/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "healthchecks-io", "displayName": "Healthchecks.io", - "version": "1.0.0", + "version": "1.0.1", "author": { "name": "@adamkinniburgh", "type": "community" @@ -52,8 +52,7 @@ "value": "application/json" } ], - "queryArgs": [], - "ignoreCertificateErrors": "{{ typeof ignoreCertificateErrors !== 'undefined' && ignoreCertificateErrors === true }}" + "queryArgs": [] } } } diff --git a/plugins/Healthchecks.io/v1/ui.json b/plugins/Healthchecks.io/v1/ui.json index be7f0b6c..759f894a 100644 --- a/plugins/Healthchecks.io/v1/ui.json +++ b/plugins/Healthchecks.io/v1/ui.json @@ -23,12 +23,5 @@ "message": "Enter the full address of the Healthchecks instance, e.g. https://healthchecks.example.com" } } - }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "defaultValue": false, - "help": "Enable when connecting to a self-hosted instance that uses a self-signed or private CA certificate." } ] diff --git a/plugins/Ivanti-ITSM/v1/metadata.json b/plugins/Ivanti-ITSM/v1/metadata.json index 4cba21a1..97574ce5 100644 --- a/plugins/Ivanti-ITSM/v1/metadata.json +++ b/plugins/Ivanti-ITSM/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "ivanti-itsm", "displayName": "Ivanti ITSM", - "version": "1.0.0", + "version": "1.0.1", "author": { "name": "@shawn149", "type": "community" @@ -58,8 +58,7 @@ "value": "application/json" } ], - "queryArgs": [], - "ignoreCertificateErrors": "{{ignoreCertificateErrors}}" + "queryArgs": [] } } } diff --git a/plugins/Ivanti-ITSM/v1/ui.json b/plugins/Ivanti-ITSM/v1/ui.json index 38f6107f..b95ddc33 100644 --- a/plugins/Ivanti-ITSM/v1/ui.json +++ b/plugins/Ivanti-ITSM/v1/ui.json @@ -70,12 +70,6 @@ "label": "Configuration item filter", "placeholder": "Status eq 'Active'", "help": "Narrows which configuration items are imported, using the OData `$filter` syntax. Leave empty to import the whole CMDB." - }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "help": "Enable only for an on-premises instance presenting a self-signed or otherwise untrusted certificate." } ] } diff --git a/plugins/Jaeger/v1/metadata.json b/plugins/Jaeger/v1/metadata.json index 14acdff9..e5284378 100644 --- a/plugins/Jaeger/v1/metadata.json +++ b/plugins/Jaeger/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "jaeger", "displayName": "Jaeger", - "version": "1.1.0", + "version": "1.1.1", "author": { "name": "SquaredUp Labs", "type": "labs" @@ -47,8 +47,7 @@ "config": { "headers": [], "authMode": "none", - "baseUrl": "{{url}}", - "ignoreCertificateErrors": "{{ignoreCertificateErrors}}" + "baseUrl": "{{url}}" } } } diff --git a/plugins/Jaeger/v1/ui.json b/plugins/Jaeger/v1/ui.json index 0d0905ee..795431a0 100644 --- a/plugins/Jaeger/v1/ui.json +++ b/plugins/Jaeger/v1/ui.json @@ -9,13 +9,6 @@ "required": true } }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "defaultValue": false, - "help": "Enable when connecting to a Jaeger instance that uses a self-signed certificate." - }, { "type": "radio", "name": "dependencyStorage", diff --git a/plugins/Kubernetes/v1/metadata.json b/plugins/Kubernetes/v1/metadata.json index d4bae04d..cc6b95b7 100644 --- a/plugins/Kubernetes/v1/metadata.json +++ b/plugins/Kubernetes/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "kubernetes", "displayName": "Kubernetes", - "version": "1.0.0", + "version": "1.0.1", "author": { "name": "SquaredUp Labs", "type": "labs" diff --git a/plugins/Kubernetes/v1/ui.json b/plugins/Kubernetes/v1/ui.json index 5681c8aa..803e616a 100644 --- a/plugins/Kubernetes/v1/ui.json +++ b/plugins/Kubernetes/v1/ui.json @@ -18,11 +18,5 @@ "validation": { "required": true } - }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "help": "Enable when connecting to a cluster with a self-signed API server certificate (e.g. a local kind/minikube cluster)." } ] diff --git a/plugins/NetBox/v1/docs/README.md b/plugins/NetBox/v1/docs/README.md index 1b52d67e..4548479c 100644 --- a/plugins/NetBox/v1/docs/README.md +++ b/plugins/NetBox/v1/docs/README.md @@ -22,7 +22,7 @@ The token inherits the permissions of the user that owns it. Objects the user ca | **Token version** | The NetBox API token format. **v2** sends `Authorization: Bearer nbt_.`. **v1** sends `Authorization: Token `. | v2 tokens require NetBox 4.5 or later. | Yes | | **Token** | The API token. For v2, paste the full value NetBox shows (`Bearer nbt_.`). The `Bearer` prefix is optional. For v1, paste the 40-character token. | NetBox → user menu → **API Tokens**. | Yes | | **Key** | The public key of a v2 token. Only needed if **Token** contains just the secret, without the `nbt_.` prefix. Shown only when **Token version** is v2. | NetBox → user menu → **API Tokens**. | No | -| **Ignore certificate errors** | Skips TLS certificate validation. Only tick this for self-managed instances that use a self-signed or private CA certificate (common on new NetBox Enterprise installs). | n/a | No | +| **Ignore certificate errors** | Skips TLS certificate validation. Only turn this on for self-managed instances that use a self-signed or private CA certificate (common on new NetBox Enterprise installs). | n/a | No | When you save, the plugin checks two things: 1. It calls the NetBox status endpoint. A failure here means the address is unreachable, the token is invalid, expired or disabled, or the token's **Allowed IPs** blocks SquaredUp. diff --git a/plugins/NetBox/v1/metadata.json b/plugins/NetBox/v1/metadata.json index 921888b8..c1c029bf 100644 --- a/plugins/NetBox/v1/metadata.json +++ b/plugins/NetBox/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "netbox", "displayName": "NetBox", - "version": "1.0.0", + "version": "1.0.1", "author": { "name": "@shawn149", "type": "community" @@ -62,8 +62,7 @@ "value": "application/json" } ], - "queryArgs": [], - "ignoreCertificateErrors": "{{ignoreCertificateErrors}}" + "queryArgs": [] } } } diff --git a/plugins/NetBox/v1/ui.json b/plugins/NetBox/v1/ui.json index 1cda6ecd..acda4328 100644 --- a/plugins/NetBox/v1/ui.json +++ b/plugins/NetBox/v1/ui.json @@ -62,11 +62,5 @@ "validation": { "required": true } } ] - }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "help": "Enable when connecting to a self-managed NetBox instance that uses a self-signed or private CA certificate." } ] diff --git a/plugins/OpenSearch/v1/metadata.json b/plugins/OpenSearch/v1/metadata.json index bd6419bf..d6b8729f 100644 --- a/plugins/OpenSearch/v1/metadata.json +++ b/plugins/OpenSearch/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "open-search", "displayName": "OpenSearch", - "version": "1.0.4", + "version": "1.0.5", "author": { "name": "SquaredUp Labs", "type": "labs" @@ -26,8 +26,7 @@ "value": "application/json" } ], - "baseUrl": "{{instanceUrl}}", - "ignoreCertificateErrors": "{{ignoreCertificateErrors}}" + "baseUrl": "{{instanceUrl}}" } }, "links": [ diff --git a/plugins/OpenSearch/v1/ui.json b/plugins/OpenSearch/v1/ui.json index 8ec9c709..60ef90e6 100644 --- a/plugins/OpenSearch/v1/ui.json +++ b/plugins/OpenSearch/v1/ui.json @@ -48,11 +48,5 @@ "placeholder": "Enter a password" } ] - }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "help": "Ignore certificate errors when connecting to an OpenSearch instance with a self-signed certificate" } ] diff --git a/plugins/ProxmoxVE/v1/metadata.json b/plugins/ProxmoxVE/v1/metadata.json index 8f0613b8..917a4b4a 100644 --- a/plugins/ProxmoxVE/v1/metadata.json +++ b/plugins/ProxmoxVE/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "proxmox-ve", "displayName": "Proxmox VE", - "version": "1.3.1", + "version": "1.3.2", "author": { "name": "@iBePixel", "type": "community" }, "description": "Monitor your Proxmox VE cluster and Proxmox Backup Server — import nodes, VMs, containers, backup datastores, and backup groups, and track resource utilisation and backup health.", "category": "Infrastructure", diff --git a/plugins/ProxmoxVE/v1/ui.json b/plugins/ProxmoxVE/v1/ui.json index 3033c7f8..0590bc7b 100644 --- a/plugins/ProxmoxVE/v1/ui.json +++ b/plugins/ProxmoxVE/v1/ui.json @@ -23,12 +23,6 @@ "placeholder": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "validation": { "required": true } }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "help": "Enable when connecting to a Proxmox VE instance with a self-signed certificate." - }, { "type": "toggle", "name": "monitorBackupServer", diff --git a/plugins/TeamDynamix/v1/metadata.json b/plugins/TeamDynamix/v1/metadata.json index 19e5bcfe..a9a188d0 100644 --- a/plugins/TeamDynamix/v1/metadata.json +++ b/plugins/TeamDynamix/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "teamdynamix", "displayName": "TeamDynamix", - "version": "1.0.2", + "version": "1.0.3", "author": { "name": "@shawn149", "type": "community" diff --git a/plugins/TeamDynamix/v1/ui.json b/plugins/TeamDynamix/v1/ui.json index 19d4c0c4..dc7db6f6 100644 --- a/plugins/TeamDynamix/v1/ui.json +++ b/plugins/TeamDynamix/v1/ui.json @@ -53,12 +53,6 @@ "max": 10000, "valueAsNumber": true } - }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "help": "Enable only if the Web API endpoint presents a self-signed or otherwise untrusted certificate. A self-hosted instance can still have a properly trusted certificate and should not need this." } ] } diff --git a/plugins/VeeamBackupReplication/v1/metadata.json b/plugins/VeeamBackupReplication/v1/metadata.json index 01c77183..4c0c8c83 100644 --- a/plugins/VeeamBackupReplication/v1/metadata.json +++ b/plugins/VeeamBackupReplication/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "veeam-backup-replication", "displayName": "Veeam Backup & Replication", - "version": "1.0.1", + "version": "1.0.2", "author": { "name": "SquaredUp Labs", "type": "labs" @@ -39,7 +39,6 @@ "oauth2PasswordGrantUserName": "{{username}}", "oauth2PasswordGrantPassword": "{{password}}", "oauth2Scope": "", - "ignoreCertificateErrors": "{{ignoreCertificateErrors}}", "oauth2TokenExtraHeaders": [ { "key": "x-api-version", diff --git a/plugins/VeeamBackupReplication/v1/ui.json b/plugins/VeeamBackupReplication/v1/ui.json index 5b1eb914..f8128069 100644 --- a/plugins/VeeamBackupReplication/v1/ui.json +++ b/plugins/VeeamBackupReplication/v1/ui.json @@ -53,11 +53,5 @@ { "value": "1.1-rev0", "label": "1.1-rev0 (Veeam 12.0)" } ] } - }, - { - "type": "checkbox", - "name": "ignoreCertificateErrors", - "label": "Ignore certificate errors", - "help": "Enable when connecting to a server that uses a self-signed certificate." } ]