redhat-developer / redhat-developer/rhdh-plugins

OCI — Digest-Based Incremental Sync (issue 11 of 29)

Open
#4,049 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

blocked workspace/boost
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.md
  • openspec/changes/oci-skill-connector/specs/incremental-sync-scale/spec.md

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.