BaryoDev / BaryoDev/barakoCMS

What the barakoBrew redesign needs from this API

Open
#677 0 comments 0 reactions 1 assignee Claimed by @arnelirobles View on GitHub
enhancement epic
Dominant language
C#
Stars
6
Forks
7
Avg merge
4h 42m
Merged PRs (30d)
307

Description

**The other direction from BaryoDev/barakoBrew#38.** That issue reviews what the console owes this API. This one is what the console cannot draw until this API returns it.

Eleven asks, spread across six console issues, tracked nowhere as a set. Six of the eight redesigned screens are gated on at least one of them, which is why they are worth arguing as one set rather than discovering one screen at a time.

Source: the barakoBrew 2026 redesign, `docs/design/barakobrew-2026/README.md`, read against `BaryoDev/barakoBrew` @ `master`.

## Content and the entries list

| Ask | Wanted by | Note |
|---|---|---|
| A search parameter on `GET /api/contents` | BaryoDev/barakoBrew#10 | The filter bar's "Search 148 entries". No query parameter exists. Bounded like every other list. |
| A status filter, and the Scheduled decision | BaryoDev/barakoBrew#10 | `ContentStatus` is `Draft \| Published \| Archived`. Scheduled is derived from `scheduledPublishAt`. Making it a real status touches the write path and the sweeper; making it a filter the server understands is cheaper and keeps the model honest. |
| Version on `ContentListItem` | BaryoDev/barakoBrew#10 | The design's `V` column. Only `ContentDetail` carries a version. |
| Content status counts | BaryoDev/barakoBrew#9 | The Published stat card reads "121, with 27 draft and 3 scheduled". Without counts the console pages the whole collection to draw one card. |

## Metrics

| Ask | Wanted by | Note |
|---|---|---|
| Windowed delivery metrics: 24h, cache hit rate, p95, uptime | BaryoDev/barakoBrew#9 | `MetricsSummary` is cumulative since process start. The Overview header pill reads `p95 38ms · err 0.04%` and the System card wants uptime. |
| A previous-period analytics series | BaryoDev/barakoBrew#14 | `AnalyticsRange` is a closed union of four values with no from and to, so there is no way to ask for the window before the one on screen. The design draws it as a dashed line behind the current one. Small change in `BarakoCMS.Analytics.Umami`. |
| A server-side referrer favicon cache | BaryoDev/barakoBrew#51 | The design forbids the browser fetching favicons from a favicon service, because that hands every referring domain in the list to a third party. Same reason the Umami proxy exists. Not filed anywhere until now. |

## Activity and modules

| Ask | Wanted by | Note |
|---|---|---|
| A projected activity feed with its own stable vocabulary | BaryoDev/barakoBrew#9 | The Overview rail lists `ContentStatusChanged`, `FieldUpdated`, `JournalEntryPosted`. Those are event type names, and #229 decided they never leave. So this is a projection with its own labels plus an endpoint, and the naming is the work. Do not solve it by adding an event type to a response. |
| A way for a module to contribute a problem, and a row state | BaryoDev/barakoBrew#9, BaryoDev/barakoBrew#10, BaryoDev/barakoBrew#52 | The Overview "Needs you" list wants Accounting to say "this journal entry is unbalanced" and Email events to say "two bounces". The Entries table shows `Unbalanced` and `Posted` pills on `journal-entry` rows. Neither mechanism exists. The alternative answer is that a module cannot, and both parts of the design are wrong. |

## Workflows and tenants

| Ask | Wanted by | Note |
|---|---|---|
| A workflow enabled flag, plus update and delete | BaryoDev/barakoBrew#13 | `WorkflowDefinition` has no enabled field, and the console has read, create, validate and dry-run but no update and no delete. The design draws an enable toggle and dims paused workflows. Today the only way to stop a workflow is nothing. |
| The caller's role per tenant on `/api/me/tenants` | BaryoDev/barakoBrew#15 | `TenantSummary` is `{ slug, name, logoUrl, branding }`. The switcher shows `slug · role`, and its own footer says a role can differ per tenant, which is only useful if the list shows what it is. |

## How to use this

Each row is a build ticket once it is agreed. Several may be cheaper than they look, and at least two (the activity feed, the module contribution mechanism) are design decisions before they are endpoints. Break out what is real and close this.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.