#306: instance branding - logo and favicon, cropped in the browser #314
No reviewers
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#314
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "issue-306-instance-branding"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements #306. Touches the same files as #313 (#304) — whichever merges second gets rebased.
What it adds
BRANDING_DIR(./data/branding) with the full three-step registration #303 paid for: env default +data-dirs.ts+ compose volume + themkdir/chownline in the api Dockerfile.GET /branding(metadata),GET /branding/logo?variant=,GET /branding/favicon?size=- all unauthenticated;POST/DELETE /admin/branding/...for management.instance.name; a static<link rel="icon">whose resource is dynamic.branding.changed).The decisions worth reviewing
--network noneoffline build. It validates the PNG signature, the IHDR dimensions (fixed offsets) and the caps - as far as one can go without a decoder.theme-init.jsresolvesdata-themebefore first paint, so the right logo is the one PAINTED, not the one that appears after a flash.PATCH /admin/settingsA hole closed on the way
createArchivetolerates a missing directory wordlessly - which is exactly why #303's omission stayed invisible until a restore would have come up short. The newdata-dirs.test.tsdemands that every*_DIRthe backup env declares actually travels in the archive. Checked against the real defect: removing theBRANDING_DIRline fails it by name.Verification
public-apiECONNRESET under local parallel load, green in isolation - the documented local flake./adminmeasured at 320px with the new section - overflow 0.instance.name-> the light logo stays put underdata-theme="dark".Deploy note (like #303)
The stage composes on ONE need the
brandingvolume before the next CD deploy - CD does not sync them. Without it, uploaded branding lands in the container filesystem and is lost on the next redeploy. Same merker for prod at release time.Not done: a full backup-and-restore drill against a live stack. What is proven instead is the registration (the new fence plus the existing archive round-trip); the drill belongs to the next restore-drill run.
Closes #306
e279d26a55to76a5e92f2e76a5e92f2eto6377faf332