Releases: tomperi/brisk
Releases · tomperi/brisk
Release list
v0.4.0
Added
- Plugins — a curated, forkable layer of first-party features a site opts
into (brisk.json"plugins": { … }), injected into served pages and driven
from a genericbrisk pluginCLI whose verbs load from the server. Adding a
plugin in a fork is one directory underworker/src/plugins/plus a registry
line — no worker-core or CLI changes. - Comments plugin (on by default) — leave feedback on any element, marked
by numbered pins (dashed = draft, blue = open, gray = resolved). Drafts are
local-first (localStorage; editable, copy as markdown to hand an agent),
publish to share viabrisk.dbwith realtime + an audit trail. Resolve,
reply, and soft-delete from the widget or the CLI
(brisk plugin comments …), or copy the whole log as markdown. Right-click
the toolbar for the command menu. Typing in the widget never triggers the
host page's own shortcuts. Minimize it to a corner bubble (click to reopen);
Shift+Cfully hides it.
Changed
- The
/hostpage now covers the self-hosted path (Docker Compose,
Kubernetes/Helm,npm create brisk, storage options) alongside Cloudflare,
instead of documenting the Worker deploy only.
Fixed
- The
/changelogpage renders**bold**in entries instead of showing the
literal asterisks.
v0.3.0
Added
- A provider-agnostic platform abstraction (storage, database, rooms, assets,
cache) behind six seams, so Brisk now runs on Node/self-host — with SQLite
plus S3 or the filesystem — in addition to Cloudflare, from the same core. - Self-host packaging under
deploy/: a multi-stage Dockerfile that builds and
runs the Node assembly, a Docker Compose stack (filesystem + SQLite by
default, optional MinIO for S3), and a Helm chart for Kubernetes. npm create brisk— an interactive wizard that scaffolds a self-host
deployment. Pick a target (Docker Compose, Kubernetes/Helm, or Cloudflare
Workers), auth mode, and storage backend, and it writes the matching
deployment config (docker-compose.yml+.env,brisk-values.yaml, or
.dev.vars+ a Cloudflare checklist) plus next steps.- The dashboard's drag-and-drop deploy takes a "deploying as" name, so a browser
deploy records anownerthe waybrisk deploy --usernamealready does. The
name is remembered between drops. Dropping onto a site someone else owns now
surfaces the same 409 the CLI does and asks you to launch again to overwrite,
instead of failing with no way through.
Fixed
- Google sign-in works behind a TLS-terminating reverse proxy. The OAuth
redirect_uri(and login URLs and the session cookie'sSecureflag) were
derived from the request the app received — plainhttpwhen a proxy
terminates TLS and doesn't forward the scheme — which Google rejects with
redirect_uri_mismatch.X-Forwarded-Protois now honored when present, and
any non-localhost host otherwise resolves ashttps. - Deploys are attributed to the asserted deployer, so the dashboard's "by"
column matches theownerlabel instead of the authenticated account. On
AUTH=noneevery request is the sameDevuser, which made every deploy read
asDevno matter who shipped it. - The 404 page tells a missing path apart from a missing site. A typo'd path on
a live site used to answer withbrisk deploy --site <name>— instructions
that would have overwritten the very site you were browsing. It now links back
to the site's root, and only an unclaimed name gets the deploy hint.
v0.2.0
Added
- Deploys record a self-asserted
owner(from--username, else the profile).
Overwriting a site owned by someone else now needs confirmation — the CLI
prompts, or pass--force/BRISK_FORCE=1. A spoofable label and footgun
guard, never access control: unowned sites and every other action stay open. DEPLOY_HISTORY=onretains every published deploy as an immutable version
in a newdeploystable — version history now, rollback later. Off by
default: the previous version is deleted after each atomic swap, keeping
storage bounded.- A
/changelogpage rendered from this file and linked from the dashboard
nav; tag pushes now cut their GitHub release notes from the same
CHANGELOG.md. - OpenGraph image and social meta tags, so shared Brisk links unfurl with a
preview card. - A
roomexample — a Three.js isometric diorama.
Changed
- Expanded the self-hosting guide with a how-it-works walkthrough, public
demo mode, and an architecture diagram. - Bumped
wranglerandesbuild, with a pinnedundicioverride.
Fixed
- Security hardening:
/auth/clibrowser sessions must confirm through a
CSRF-guarded consent page before a token is minted, API and dashboard
responses carrynosniffand anti-framing headers, and uploads serve as
attachments. - Closed a visitor cache-poisoning hole — static pages resolve the site from
the host only, never a client header — and an unsetAUTHon a public host
now fails closed instead of serving an open backend. - Hardened the open-instance guard so only a literal
AUTH=noneopens a public
host:AUTHis trimmed, and any other non-googlevalue — a mis-cased
Googleor a misspelledgoogl— now fails closed with the same 503 as an
unsetAUTH, instead of silently serving an anonymously-writable backend. - An open (
AUTH=none) public instance can no longer ship silently: the
fail-closed 503 now spells out the secure setup, the worker warns once when
open on purpose, andbrisk deploywarns and confirms before pushing to an
open host (bypass with--yes/BRISK_YES=1). - Generated assets (
/brisk.jsand the/changelogpage) are now built
duringwrangler deploy, so they ship with the worker instead of 404ing. - Dashboard mobile layout: compact site rows, tighter headings, and a header
that wraps instead of breaking mid-word.
v0.1.0
Full Changelog: https://github.com/tomperi/brisk/commits/v0.1.0