Skip to content

barakoBrew 1.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 09:52
· 38 commits to master since this release
c8246ee

Changed

  • Speaks API contracts 1 to 4. barakoCMS 4.2.0 moves the contract to 4: a locked account is answered
    like a wrong password (BaryoDev/barakoCMS#640) and a content type holds at most 200 fields
    (BaryoDev/barakoCMS#650). This console works against 4.1.x and 4.2.0, so upgrade the console before
    the API.

Added

  • API keys offer the content:destructive scope. Erasing an entry and rolling one back now need
    it, and content:write says it does not cover them. The new key dialog warns when that scope or
    * is picked. Needs BaryoDev/barakoCMS#863; an older API refuses the scope with its own message.

  • Site mode, the holding page and share links on the Site screen. A Mode select (Live or
    Holding, unset reads as Live, a choice field's own options when it has them) with a note that
    Holding changes what visitors see and hides nothing at the API. A holding page picker from the page
    tree, empty for the default holding page, typed as a path when the Pages module is off. A Share
    links panel creates a link with a label and an expiry of 1, 7, 30 or 90 days, shows
    {site address}/_share#{key} once with a copy button, lists each link as active, expired or
    revoked with when it was last used, and revokes after a confirmation. Mode and holding page show
    only when the site type has those fields, and the panel is hidden when
    /api/site/share-links answers 404. Needs BaryoDev/barakoCMS#850. (#147)

  • Pages has a tree. /pages shows the page tree from GET /api/pages/tree: drag a page, or use
    its move buttons, to reorder it or put it under another page, with the new path shown while
    dragging. Each move saves through the ordinary content update with If-Match, writing
    NavigationOrder and ParentPage. The API's refusal (a cycle, too deep, a reserved slug) is shown
    on the row, and a 412 reloads the tree and says someone else changed the page. Rows show status and
    path, switch the navigation flag, change the slug, add a page under a page, and open the entry.
    After a move or slug change that changes addresses, the screen offers a redirect from each old
    path. A 404 says the Pages module is not enabled, and a contract other than 1 lists the pages flat.
    Needs BaryoDev/barakoCMS#826. See docs/pages.md. (#91)

  • A page's blocks are edited as blocks. A json field named Blocks gets a list built from the
    block schema the site publishes at /api/blocks: add from a palette, drag or use Move up and Move
    down to reorder, remove, and a form per block using the same controls as entry fields, with blocks
    nested in a slots field such as columns. What the site would refuse to render is marked on the
    row and the field. A block of a type the site does not list is shown read-only and saved as it was.
    Set NEXT_PUBLIC_PRESS_URL to turn it on; without it, or when the schema cannot be read, the field
    stays the JSON editor. See docs/blocks.md. (#90)

  • Choice fields. The content type designer offers a Choice type: options with a value and a
    label, reordered by dragging or with the move buttons, and whether the field holds several values.
    Values that differ only in case are flagged before the API refuses them. In the entry editor a
    single choice is a radio group up to five options and a select beyond that, and a multiple choice
    is checkboxes. Clearing an optional choice leaves the value out of the save. A stored value the
    field no longer offers is marked "not offered any more" and the save waits until it is changed.
    A type's detail screen edits a choice field's options later through
    PUT /api/content-types/{name}/fields/{field}/options; when entries hold an option being removed,
    the API's message and entry count are shown with a Remove anyway button that resends with force.
    A saved query filters a choice by option; the entries list waits on BaryoDev/barakoCMS#825 for a
    field filter. Needs BaryoDev/barakoCMS#820; an API without the choice
    type refuses the content type and the page shows its message. (#136)

  • Site and Theme screens. Site edits a tenant's name, tagline, address, locale, logo, footer logo,
    favicon, share image, top bar, header links, footer columns and social links; image fields can pick a
    public image from Files. Theme edits the colour slots and site colours, fonts, corner radii, widths,
    visitor variants and colours per option, with a preview of a header, card, dark band and prose block.
    Each text colour is measured against its background, and a pair below WCAG AA is flagged but never
    blocks the save. Both edit the one entry of the site type and send the whole stored document back,
    so neither wipes what the other saved. A tenant without the type is offered the site blueprint, which
    needs barakoCMS after 4.1.0 (BaryoDev/barakoCMS#797). A link the renderer would drop is flagged, and a
    stored value not in the documented shape is shown as JSON rather than trimmed to fit. (#134)

  • Tenants shows and edits each tenant's domains. A domain another tenant holds is refused inline with
    the API's own sentence naming that tenant. The save sends the rest of the tenant back unchanged, since
    the endpoint overwrites every profile field. Needs BaryoDev/barakoCMS#796; an API that reports no
    domains shows that instead of an edit button. (#134)

  • Resolving an error asks for a reference and remarks. Resolve on the Errors screen opens a dialog
    with an optional reference (a pull request or ticket link, or a number such as AB#1234 or
    PROJ-42) and optional remarks. The error details show who resolved it, when, and both fields, with
    an http or https reference as a link. Needs BaryoDev/barakoCMS#790 to store them; an older API
    ignores the extra fields and resolves as before. (#130)

Changed

  • barakoBrew is MIT. LICENSE, the license field in package.json and the image's
    org.opencontainers.image.licenses label say MIT from this release. Releases up to and including
    1.2.0 keep MPL-2.0. The contributor terms in CLA.md now name barakoBrew rather than barakoCMS,
    state MIT, and grant a patent licence of their own, since MIT carries none. Follows the licence
    rule in BaryoDev/barakoCMS#815. (#135)

Fixed

  • An expired session keeps the base path. When a token refresh failed, the console sent the
    browser to /login at the domain root, so a build with NEXT_BASE_PATH (the playground and
    barakocms.com) left the console. It now goes to {base path}/login.

  • The PWA installs screen crashed on load with filter is not a function. It read
    GET /api/pwa/installs as a bare list, but the API returns the paged envelope and has since
    barakoCMS 4.0.0. The screen now reads items, asks for the largest page the API serves (100), and
    takes the device count from totalItems, saying so when there are more devices than the table
    shows. (#128)

  • Import says when a large sheet cannot be imported in full. The analyze step returns at most 500
    rows and the import is built from those, so the rows after them were never imported while the page
    said a large sheet was imported in full. The Import step now names how many rows will be left out
    and asks for a confirmation first. Importing a whole sheet on the server is BaryoDev/barakoCMS#870.

  • The Kubernetes health panel is hidden when the API has no Kubernetes endpoint. A 404 from
    GET /api/monitoring/k8s now hides the panel instead of showing an unnecessary error state.
    Other API failures remain visible with a retry action. (#103)


Image: ghcr.io/baryodev/barako-brew:1.3.0, linux/amd64 and linux/arm64. Also pushed as ghcr.io/baryodev/barako-admin:1.3.0 until 2.0.0.