Client consumes /api/config and merges managed connections
- Dominant language
- TypeScript
- Stars
- 481
- Forks
- 108
- Avg merge
- 8d 9h
- Merged PRs (30d)
- 7
Description
## Parent PRD
#1660
## What to build
Update the client to fetch `GET /api/config` at startup instead of `/defaultConnection`. Managed connections (from the config file) are locked in the UI — users cannot edit or delete them. Users can still create their own connections through the UI, persisted to IndexedDB.
On each startup, the client reconciles managed connections: new ones are added, removed ones are deleted (along with associated data), modified ones are updated while preserving user's schema and session data. The connection's stable key from the config is used for matching.
Replace `defaultConnection.ts`, the `DefaultConnectionDataSchema`, and the related `AppStatusLoader` logic.
## Acceptance criteria
- [ ] Client fetches `/api/config` at startup
- [ ] Managed connections from config are displayed and functional
- [ ] Managed connections are not editable or deletable in the UI
- [ ] User-created connections (IndexedDB) coexist with managed connections
- [ ] Removing a connection from config removes it from client on next load
- [ ] Modifying a connection in config updates it but preserves schema/session data
- [ ] Old `defaultConnection.ts` and `DefaultConnectionDataSchema` removed
- [ ] Unit tests for connection merge/reconciliation logic
## Blocked by
- Blocked by #1663
## User stories addressed
- User story 7
- User story 9
## Related Issues
- Part of #1660
Contributor guide
Research direction
Start with blocked issue #1663, then inspect defaultConnection.ts, DefaultConnectionDataSchema, and the related AppStatusLoader logic. Trace startup loading and IndexedDB connection handling before defining unit tests for merge and reconciliation behavior. Done means /api/config connections coexist with user connections, managed entries are locked, and config changes preserve schema and session data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100