diff --git a/docs/PHASE-1B-NOTES.md b/docs/PHASE-1B-NOTES.md new file mode 100644 index 0000000..b7cecc8 --- /dev/null +++ b/docs/PHASE-1B-NOTES.md @@ -0,0 +1,55 @@ +# Phase 1B Planning Notes + +Design notes for Phase 1B GUI features. These are planning items, not +implementation specifications. + +## Stream Retention GUI + +### Per-Stream Configuration +- Show each stream from `config.streams` table +- Editable max_age_s with preset chips: 1d, 7d, 14d, 30d, 365d +- Custom numeric input allowed (operator can enter 90d, etc.) +- Changes trigger NATS stream update via supervisor hot-reload + +### Storage Monitor +Per stream, display: +- **Current bytes**: Live from `nats stream info` +- **Projected bytes**: Calculated from current rate × max_age +- **Days remaining**: Current_bytes / rate_per_day estimate +- Refresh: Real-time polling, not cached + +### Global Server Cap +- Show `max_file_store` value as read-only reference +- Editing requires NATS server restart (out of scope for GUI) +- Display per-stream ceiling (30% of server cap) as context + +## Region Picker + +### Interactive Map +- Bbox selection via click-drag rectangle +- Same UI component for all adapters (NWS, FIRMS, USGS) +- Stores `{north, south, east, west}` floats +- Preview of coverage area with state/country boundaries + +### Preset Regions +- Common presets: CONUS, Pacific Northwest, Mountain West +- Quick-select buttons alongside custom draw + +## API Key Management + +### Key Storage +- View configured API keys (alias only, not values) +- Add new keys with alias and value +- Values encrypted at rest in `config.api_keys` +- Rotation: update value, track `rotated_at` + +### Required Keys by Adapter +- **FIRMS** (Phase 1a-6): `MAP_KEY` for NASA FIRMS API +- Future adapters may require additional keys + +## Technical Notes + +- All GUI changes write to `config.*` tables +- Supervisor receives NOTIFY and hot-reloads +- No service restarts required for config changes +- Stream retention changes apply within 5 seconds