central/docs/PHASE-1B-NOTES.md

93 lines
3.2 KiB
Markdown
Raw Normal View History

# 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
## FIRMS Adapter Configuration
### MAP_KEY Management
- Display key alias () and timestamp
- Allow operator to rotate key value (re-encrypt new key)
- Show warning if key not present (polling disabled)
- No key value display (security)
### Satellite Selection
- Toggle individual satellites: VIIRS_SNPP, VIIRS_NOAA20, VIIRS_NOAA21
- Stored in array
- Changes hot-reload to adapter without restart
### SNPP End-of-Life Notice
- NASA timeline: SNPP mission ends ~October 2026
- GUI should display warning banner when SNPP is enabled and date approaches
- Recommend adding NOAA-21 to satellites list before SNPP EOL
- After EOL, adapter will fail to fetch SNPP data (404); GUI should surface this
## FIRMS Adapter Configuration
### MAP_KEY Management
- Display key alias (firms) and last_used_at timestamp
- Allow operator to rotate key value (re-encrypt new key)
- Show warning if key not present (polling disabled)
- No key value display (security)
### Satellite Selection
- Toggle individual satellites: VIIRS_SNPP, VIIRS_NOAA20, VIIRS_NOAA21
- Stored in config.adapters.settings.satellites array
- Changes hot-reload to adapter without restart
### SNPP End-of-Life Notice
- NASA timeline: SNPP mission ends ~October 2026
- GUI should display warning banner when SNPP is enabled and date approaches
- Recommend adding NOAA-21 to satellites list before SNPP EOL
- After EOL, adapter will fail to fetch SNPP data (404); GUI should surface this