BaryoDev / BaryoDev/barakoCMS

Collections filled from outside sources on a schedule: NuGet, GitHub, Medium and RSS through connectors

Open
#794 0 comments 0 reactions 0 assignees View on GitHub
client-sites enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.