Skip to content

feat(instance): optional brand theming via spec.branding.cssConfigMapRef - #86

Merged
stubbi merged 1 commit into
mainfrom
feat/brand-theming
Jun 14, 2026
Merged

feat(instance): optional brand theming via spec.branding.cssConfigMapRef#86
stubbi merged 1 commit into
mainfrom
feat/brand-theming

Conversation

@stubbi

@stubbi stubbi commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

Adds optional spec.branding.cssConfigMapRef to the Instance CRD. When set, the operator mounts that ConfigMap read-only at /etc/paperclip/branding and sets PAPERCLIP_BRAND_DIR on the product container (gated like objectStorage: unset = no volume/mount/env). Pairs with the fork PAPERCLIP_BRAND_DIR hook. Codegen + chart CRD/RBAC synced. Part of go-live Brand Theming (paperclipinc/mono#141).

Add an optional Branding spec so a deployer can apply a runtime UI brand theme
without rebuilding the product image. When spec.branding.cssConfigMapRef is set,
the operator (mirroring the spec.objectStorage != nil gating pattern):

- mounts the referenced ConfigMap read-only at /etc/paperclip/branding, and
- sets PAPERCLIP_BRAND_DIR to that path.

The product then serves the directory under /branding and loads
/branding/brand.css after its bundled stylesheet, letting the ConfigMap's
brand.css override the app's CSS variables. Unset = unchanged default (no
volume, no mount, no env), so existing instances are untouched.

Regenerated CRD/deepcopy via controller-gen and synced the Helm chart CRD.
Adds branding wiring tests; make test green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@stubbi
stubbi force-pushed the feat/brand-theming branch from a677f7b to 5f1320a Compare June 14, 2026 08:49
@stubbi
stubbi merged commit e5da3ab into main Jun 14, 2026
13 of 14 checks passed
@stubbi
stubbi deleted the feat/brand-theming branch June 14, 2026 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant