redhat-developer / redhat-developer/rhdh-plugins
OCI — Digest-Based Incremental Sync (issue 11 of 29)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 48
- Forks
- 120
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 337
Description
Labels: ready-to-code
Depends on: Issue 1 (#4039 shared infra), Issue 9 (#TBD core connector)
RHIDP Stories: RHIDP-15298
Feature: RHDHPLAN-1507 — Epic RHIDP-15294
Implement digest-based incremental sync: cursor storage schema (registryId, namespace, tagDigestMap, lastSync), tag-to-digest comparison detecting new/changed/removed tags, change detection algorithm translating to add/update/delete entity mutations, full refresh fallback for invalid cursors, and in-memory digest cache with 5-minute TTL and disk persistence.
Tasks
From openspec/changes/oci-skill-registry/tasks.md group 5 (RHIDP-15298):
- 5.1 Define cursor storage schema
- 5.2 Implement cursor persistence layer
- 5.3 Implement tag-to-digest comparison logic
- 5.4 Implement change detection algorithm
- 5.5 Implement full refresh fallback
- 5.6–5.7 Unit tests and performance test for incremental sync
From openspec/changes/oci-skill-connector/tasks.md group 3 (RHIDP-15326):
- 3.1 Implement in-memory digest cache
- 3.2 Implement 5-minute TTL on cache entries
- 3.3 Implement digest comparison logic: detect added, changed, removed skills
- 3.4 Implement delta mutation emission via
applyMutation({ type: 'delta' }) - 3.5 Implement full mutation on first sync
- 3.6 Implement disk persistence
- 3.7 Implement disk cache loading on startup
- 3.8 Implement cache re-validation after TTL expiration
- 3.9–3.10 Unit and integration tests for cache logic
Specifications
openspec/changes/oci-skill-registry/specs/digest-based-sync/spec.mdopenspec/changes/oci-skill-connector/specs/incremental-sync-scale/spec.md
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with openspec/changes/oci-skill-registry/specs/digest-based-sync/spec.md and openspec/changes/oci-skill-connector/specs/incremental-sync-scale/spec.md, then review the referenced task groups. Implement and test cursor persistence, digest comparison, cache expiry and persistence, delta mutations, and full-sync fallback as specified; completion is covered by the requested unit, integration, and performance tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100