registry/internal
Repository files (latest commit first)
Filename Latest commit message Latest commit date
adam jones 747ad310bb
Fix atomic latest version update to prevent missing isLatest flags (#530)
## Summary
Fixes a race condition where a server could have no version marked as
`isLatest` if the database operations failed independently.

## Changes
- **CreateServer signature**: Now accepts `oldLatestVersionID` parameter
to atomically unmark previous latest version
- **PostgreSQL implementation**: Uses a transaction to ensure UPDATE
(unmark old latest) and INSERT (create new version) happen atomically
- **Service layer**: Maintains `WithPublishLock` for concurrent
operation serialization
- **Two-level protection**: Advisory lock prevents races, transaction
ensures atomicity

## Test plan
- [x] Existing race condition tests pass
- [x] Integration tests pass
- [x] Unit tests pass

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-24 18:27:36 +01:00
..
api Remove the in-memory database (#537) 2025-09-23 16:40:20 +01:00
auth Deduplicate server JSON structs between publisher and registry (#318) 2025-08-28 14:58:15 +01:00
config Remove leftover psql references (#541) 2025-09-23 23:22:11 +01:00
database Fix atomic latest version update to prevent missing isLatest flags (#530) 2025-09-24 18:27:36 +01:00
importer Fix atomic latest version update to prevent missing isLatest flags (#530) 2025-09-24 18:27:36 +01:00
service Fix atomic latest version update to prevent missing isLatest flags (#530) 2025-09-24 18:27:36 +01:00
telemetry Add OpenTelemetry metrics instrumentation (#290) 2025-08-21 14:23:37 +01:00
validators Extra validation for registries (#484) 2025-09-23 23:05:10 +01:00