mirror of
https://github.com/zvx-echo6/central.git
synced 2026-05-21 18:14:44 +02:00
112 lines
3.8 KiB
Markdown
112 lines
3.8 KiB
Markdown
# 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
|
||
|
||
## USGS Quake Adapter Configuration
|
||
|
||
### Feed Selection
|
||
- Default: all_hour (updated every minute, low latency)
|
||
- Options: all_hour, all_day, all_week, all_month
|
||
- Operators can switch to all_day for less frequent polling with broader window
|
||
- Stored in config.adapters.settings.feed
|
||
|
||
### Magnitude Tier Color Coding
|
||
For GUI display of earthquake events:
|
||
- **minor** (M < 3.0): Gray
|
||
- **light** (3.0-3.9): Yellow
|
||
- **moderate** (4.0-4.9): Orange
|
||
- **strong** (5.0-5.9): Red
|
||
- **major** (6.0-6.9): Dark Red
|
||
- **great** (M >= 7.0): Purple
|
||
|
||
Colors follow USGS conventions for earthquake hazard communication.
|