Collections filled from outside sources on a schedule: NuGet, GitHub, Medium and RSS through connectors
- Dominant language
- C#
- Stars
- 6
- Forks
- 7
- Avg merge
- 4h 42m
- Merged PRs (30d)
- 307
Description
Part of the configured sites plan in BaryoDev/barakoCMS#722: every site, barakocms.com included, runs the same barakoCMS, barakoBrew and barakoPress images, and everything that makes a site that site is data set in barakoBrew. Test sites, in order: rckoronadal.org, baryo.dev, barakocms.com.
**Phase 7.** baryo.dev reads NuGet download counts, Medium posts and GitHub repositories at build time from `lib/*.ts`. barakocms.com reads GitHub releases, milestones and contributors the same way. rckoronadal shows the Rotary International RSS feed. Each is code in a site repository today.
## Change
A collection whose entries are filled from an outside source on a schedule, set up in barakoBrew:
- **Source:** a connector plus a request (both exist) returning JSON, or an RSS or Atom URL.
- **Mapping:** which response field becomes which content field, and which field is the stable key, so a re-sync updates entries rather than duplicating them.
- **Schedule and floor:** how often to refresh, and optionally keep the higher of the stored and fetched value for counters, so a lagging registry index cannot walk a download count backwards (baryo.dev already does this).
- **Failure:** a failed sync keeps the last good entries and records the failure where an operator sees it.
Entries are ordinary content, so blocks and delivery treat them like any other collection.
## Done when
- A collection mapped to the NuGet search API for one profile shows each package and its downloads, refreshed on schedule.
- A failed fetch leaves the previous entries in place and shows the error in barakoBrew.
Contributor guide
Research direction
Start by reading the existing connectors in the site repositories' lib/*.ts files, including the NuGet, Medium, GitHub, and RSS implementations, and trace how collections are configured in barakoBrew. Define the scheduled sync, field mapping, stable-key updates, counter floor, failure retention, and operator-visible error behavior. Done means a NuGet-mapped collection refreshes package downloads and failed fetches preserve entries while reporting the error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, typescript
- Domain
- api, backend, data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100