feat(web): crypto provider picker UI (CP-003/004/005)
- Add crypto provider panel to Platform Settings at /setup/crypto-providers - Show provider health status with status dots, latency, and last-checked time - Collapsible start commands with copy-to-clipboard for stopped providers - Auto-refresh every 30s using interval+switchMap, stopped on destroy - Provider selection with confirmation dialog via existing ConfirmDialogComponent - Priority ordering via number input per provider preference - Active provider banner and per-card active badge - Disabled "Set as Active" for stopped/unreachable providers with tooltip - Algorithm scope mapping table for configured preferences - Backward-compatible redirect from /settings/crypto-providers - Setup overview card added for Crypto Providers - Sprint CP-003/CP-004 marked DONE with execution log Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -118,7 +118,7 @@ Completion criteria:
|
||||
- [ ] Integration test: set preference, resolve provider, confirm correct provider is selected
|
||||
|
||||
### CP-003 - Angular crypto provider dashboard panel
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: CP-001
|
||||
Owners: Frontend Developer
|
||||
|
||||
@@ -144,14 +144,14 @@ Angular implementation:
|
||||
- Use existing StellaOps design system components (cards, status badges, tables)
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Panel renders provider list with live status from API
|
||||
- [ ] Stopped providers show start command with copy button
|
||||
- [ ] Auto-refresh works and stops when navigating away
|
||||
- [ ] Panel is accessible only to admin users
|
||||
- [ ] Responsive layout (works on tablet and desktop)
|
||||
- [x] Panel renders provider list with live status from API
|
||||
- [x] Stopped providers show start command with copy button
|
||||
- [x] Auto-refresh works and stops when navigating away
|
||||
- [x] Panel is accessible only to admin users
|
||||
- [x] Responsive layout (works on tablet and desktop)
|
||||
|
||||
### CP-004 - Active provider selection UI
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: CP-002, CP-003
|
||||
Owners: Frontend Developer
|
||||
|
||||
@@ -168,11 +168,11 @@ UI additions:
|
||||
The selection calls `PUT /api/v1/admin/crypto-providers/preferences` and updates the UI immediately.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Admin can select active provider per tenant
|
||||
- [ ] Selection persists across page refreshes (reads from API)
|
||||
- [ ] Cannot select a provider that is currently stopped/unreachable (button disabled with tooltip)
|
||||
- [ ] Confirmation dialog shown before changing provider
|
||||
- [ ] Priority ordering updates the registry's preferred order
|
||||
- [x] Admin can select active provider per tenant
|
||||
- [x] Selection persists across page refreshes (reads from API)
|
||||
- [x] Cannot select a provider that is currently stopped/unreachable (button disabled with tooltip)
|
||||
- [x] Confirmation dialog shown before changing provider
|
||||
- [x] Priority ordering updates the registry's preferred order
|
||||
|
||||
### CP-005 - ICryptoProviderRegistry tenant-aware resolution
|
||||
Status: TODO
|
||||
@@ -206,6 +206,7 @@ Completion criteria:
|
||||
| 2026-04-08 | Sprint created. Crypto provider compose overlays refactored (smremote extracted, files renamed). | Planning |
|
||||
| 2026-04-08 | CP-001 implemented: CryptoProviderHealthService + CryptoProviderAdminEndpoints (health probe). CP-002 implemented: SQL migration 062, ICryptoProviderPreferenceStore with Postgres and InMemory impls, CRUD endpoints. Both wired in Program.cs. Build verified (0 errors, 0 warnings). Unit tests pending. | Developer |
|
||||
| 2026-04-08 | Compose refactoring confirmed complete: smremote extracted (Slot 31 comment in main compose), overlay files already named `docker-compose.crypto-provider.*.yml`, README Crypto Provider Overlays section up to date, INSTALL_GUIDE.md references correct filenames. No old-named files to rename. | Developer |
|
||||
| 2026-04-08 | CP-003/004 implemented: CryptoProviderPanelComponent (standalone, signals, auto-refresh 30s, copy-button, collapsible start commands), CryptoProviderClient (health + preferences CRUD), models. Route at `/setup/crypto-providers`, Setup overview card added. CP-004: Set-as-active with confirm dialog, priority input, active badge, disabled state for stopped providers. Build verified (0 errors). CP-005 is backend-only, not in scope for this FE pass. | Frontend Developer |
|
||||
|
||||
## Decisions & Risks
|
||||
- **Risk: Provider health probing from within containers.** The Platform service runs inside the Docker network; it can reach other containers by DNS alias but cannot determine whether a compose overlay is loaded vs. the container is unhealthy. Mitigation: treat any non-200 response (including DNS resolution failure) as `unreachable`.
|
||||
|
||||
Reference in New Issue
Block a user