v2.1.0
v2.1.0 — Security Hardening & Canvas UX
Security Hardening
- API key storage moved to server-only. Keys are now stored exclusively in CosmosDB (AES-256-GCM encrypted via
backend/crypto.js). All localStorage key persistence has been removed. Legacy keys are wiped on load. - Azure Key Vault integration. New
backend/keyVault.jsmodule fetches the credential master key from Azure Key Vault at startup viaDefaultAzureCredential. Falls back to environment variables when Key Vault is not configured. - Bicep: optional Key Vault.
infra/staging.bicepnow accepts an optionalkeyVaultNameparameter. When set, it creates a Key Vault, stores the master key as a secret, grants the Container App system-assigned identity theKey Vault Secrets Userrole, and injectsKEY_VAULT_URLas an env var. - Fixed false "key required" error. Users with a server-saved key no longer see a spurious error asking them to provide a key.
Canvas UX Improvements
- Zoom centers on viewport. Zoom in, zoom out, and reset now scale around the visible viewport center — content no longer drifts away.
- Vertical toolbar toggles. New panel toggle buttons:
PanelLeftto show/hide the service catalog,FileTextto show/hide diagram annotations. - Properties panel collapsed label. The panel now shows "Properties" as vertical text when collapsed instead of a blank strip.
- Floating chevron buttons. Consistent
w-6 h-6rounded circle style for both catalog and Properties panel toggles. Properties chevron moved to the parent wrapper to fix clipping issues. - Transparent shape fills. Rectangle, circle, and diamond shapes now default to transparent fill with
#94a3b8stroke instead of the old blue gradient. - Toolbar tooltips fixed. All 7 toolbar tools now have accurate "Name — description" tooltips.
Copy/Paste & Image Paste (from v2.0.0)
Ctrl+C/Ctrl+V/Ctrl+D+ context menu Duplicate for canvas elements.- Paste images from clipboard directly onto the canvas (max 400×400, centred).