[PR #213] refactor: WebApiCredential, SshCredential, C#14 extension members, SSH docs #296

Closed
opened 2026-03-07 19:57:28 +03:00 by kerem · 0 comments
Owner

Original Pull Request: https://github.com/Corsinvest/cv4pve-admin/pull/213

State: closed
Merged: Yes


Summary

  • WebApiCredential — nuova classe che eredita Credential e raggruppa AccessType, ApiToken, Timeout, ValidateCertificate; sostituisce i campi flat in ClusterSettings
  • SshCredential / SshAuthMethod — classi dedicate alle credenziali SSH
  • Legacy migration — setter set-only con [JsonPropertyName] in ClusterSettings per deserializzare configurazioni precedenti senza breaking change
  • C# 14 extension membersClusterSettingsExtensions sposta fuori dalla classe tutta la logica calcolata (TypeLabel, TypeIcon, DisplayName, FullDisplayName, ApiHostsAndPortHA, SshIsConfigured, GetNodeSettings)
  • RenameDecodeTypeTypeLabel, IconTypeIcon, FullNamePart1DisplayName, FullNameFullDisplayName
  • ComponentiApiAccessSettings rinominato in WebApiCredentialSettings; aggiunto SshCredentialSettings; aggiunto SshRequiredGate
  • Docs — badge CSS .ssh; note SSH required in node-protect.md e update-manager.md; sezione "Web API Access" con tabella campi e "SSH Configuration" in admin-area.md

Test plan

  • Configurazione cluster esistente deserializzata correttamente (legacy migration)
  • Salvataggio configurazione scrive il nuovo formato WebApi: { ... }
  • AllowCalculateSnapshotSize disabilitato se SSH non configurato
  • UI dialog cluster mostra sezioni Web API Access e SSH correttamente
  • Documentazione renderizza badge SSH e sezioni correttamente
**Original Pull Request:** https://github.com/Corsinvest/cv4pve-admin/pull/213 **State:** closed **Merged:** Yes --- ## Summary - **`WebApiCredential`** — nuova classe che eredita `Credential` e raggruppa `AccessType`, `ApiToken`, `Timeout`, `ValidateCertificate`; sostituisce i campi flat in `ClusterSettings` - **`SshCredential` / `SshAuthMethod`** — classi dedicate alle credenziali SSH - **Legacy migration** — setter set-only con `[JsonPropertyName]` in `ClusterSettings` per deserializzare configurazioni precedenti senza breaking change - **C# 14 extension members** — `ClusterSettingsExtensions` sposta fuori dalla classe tutta la logica calcolata (`TypeLabel`, `TypeIcon`, `DisplayName`, `FullDisplayName`, `ApiHostsAndPortHA`, `SshIsConfigured`, `GetNodeSettings`) - **Rename** — `DecodeType`→`TypeLabel`, `Icon`→`TypeIcon`, `FullNamePart1`→`DisplayName`, `FullName`→`FullDisplayName` - **Componenti** — `ApiAccessSettings` rinominato in `WebApiCredentialSettings`; aggiunto `SshCredentialSettings`; aggiunto `SshRequiredGate` - **Docs** — badge CSS `.ssh`; note SSH required in `node-protect.md` e `update-manager.md`; sezione "Web API Access" con tabella campi e "SSH Configuration" in `admin-area.md` ## Test plan - [ ] Configurazione cluster esistente deserializzata correttamente (legacy migration) - [ ] Salvataggio configurazione scrive il nuovo formato `WebApi: { ... }` - [ ] `AllowCalculateSnapshotSize` disabilitato se SSH non configurato - [ ] UI dialog cluster mostra sezioni Web API Access e SSH correttamente - [ ] Documentazione renderizza badge SSH e sezioni correttamente
kerem 2026-03-07 19:57:28 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cv4pve-admin#296
No description provided.