Repository navigation
docs(config): add white-label theming kit and admin guide - #482
Open
antonkatsapau wants to merge 49 commits into
Open
antonkatsapau wants to merge 49 commits into
antonkatsapau wants to merge 49 commits into
Conversation
add JSON Schema draft-07 for theme-package.yaml with all required fields (version, product, colors, typography, assets, links) and initial BATS test skeleton for schema validation. extend linting ignore rules for internal SDLC artifact directories. refs: EPMCDME-15168
add apply-theme bash script implementing validate (json schema + asset existence + enabled-link cross-check) and render phases (brand.css, values-codemie-ui.brand.yaml, values-codemie.brand.yaml). add bats test fixtures and stubs. extend cspell dictionary with theming terms and exclude shell scripts from spell checking. all 7 bats tests pass. refs: EPMCDME-15168
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
…ation Move the kit under docs/admin, emit the CSS variables the UI reads, mount brand.yaml into the API pod while merging release lists, pin the installed chart version, harden validation and value encoding, add smoke-check, approval gate and a CI job for the bats suite. Co-Authored-By: Claude Code <noreply@anthropic.com>
…colors at :root only Co-Authored-By: Claude Code <noreply@anthropic.com>
…iring Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…me classes Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… handling Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
antonkatsapau
force-pushed
the
EPMCDME-15168_white-label-theming
branch
from
October 13, 2026 12:57
2daa365 to
dca3dd4
Compare
antonkatsapau
marked this pull request as draft
October 13, 2026 13:02
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Check the keycloak block of a theme package before anything is rendered: properties policy, theme name, assets, email logo URL, SMTP rules and the theme size cap. Add --no-keycloak and the keycloak chart flags. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Add flags for the Keycloak and proxy releases, a read-only preflight of the child-theme hook, nulling of removed image keys, and ordered upgrades (UI, API, Keycloak with wait, proxy). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Add the Keycloak section (child theme, realm values, flags, steps, check after apply, render-only wiring), the warnings, and fix statements that the keycloak block made wrong. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Add the Keycloak section (themeName rules, smtp fields, secret refs only, host and from both-or-none), the email.images.logoUrl field, the value policy, and the Acme block in the complete example. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Drop .markdownlintignore, the .prettierignore and lint:markdown excludes, and the superpowers and .ai-run cspell ignores. They only covered local run files, which are not in the repository. Keep the cspell ignores and words the kit files need. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…el guide Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2 tasks done
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…guide Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
s5unanow
reviewed
Oct 28, 2026
s5unanow
reviewed
Oct 28, 2026
s5unanow
reviewed
Oct 28, 2026
s5unanow
reviewed
Oct 28, 2026
s5unanow
reviewed
Oct 28, 2026
s5unanow
reviewed
Oct 28, 2026
s5unanow
reviewed
Oct 28, 2026
…lock Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Linux limits one environment string to 128 KiB, so base64 assets above about 96 KiB made yq fail with Argument list too long. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
antonkatsapau
marked this pull request as ready for review
October 28, 2026 15:13
baduda
reviewed
Oct 29, 2026
baduda
reviewed
Oct 29, 2026
|
The guide does not say which kit version goes with which CodeMie version. The description says it does, but the "Kit Versions" table lists features, not CodeMie releases. This matters together with the |
…se the helm minimum to 3.13 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
Author
|
Re: kit version and CodeMie version table. Agreed. The "Kit Versions" table will get the minimum CodeMie release (chart and app) for each row after the backend and UI MRs are merged and released. I leave this comment open until then. The |
… default login theme Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
White-label theming kit and admin guide. A DevOps engineer fills in one theme package (product name, colours, fonts, logos, links, an optional email block and an optional Keycloak block) and runs
apply-theme. The script validates the package, renders values for the platform Helm releases, and applies them with pinnedhelm upgrade --reuse-valuescalls plus rollout restarts.--render-onlywrites the files for GitOps pipelines.Changes
docs/admin/configuration/white-label/index.mdandpackage-reference.md, with a sidebar entry. Two FAQ entries. TheEMAIL_FROM_NAMErow inapi-configuration.mdshows the new empty default and the fallback.apply-themescript, thetheme-package.yamltemplate, a JSON schema, the exampleacmepackage and an example GitHub Actions workflow.darkandlightvalue. Both are written tobrand.css, underhtml.codemieDarkandhtml.codemieLight.emailblock): sender name, signature, a five-colour palette, one logo and message texts for the five platform emails. Bad fields fail before any file is written or anyhelmorkubectlcall. The logo is stored asbinaryDataand mounted as a directory with no chart change. The checksum covers the logo bytes.keycloakblock): a theme name, an optional SMTP block (secret references only) and an HTTPS logo URL for the Keycloak email. With the block present, one run:helm --wait) and proxy releases in that order, each in its own namespace.effects.gradients(defaultornone); withnonethe UI removes every background gradient, and the kit makes two-colour gradients single-colour (the-tovalue follows-from). The guide lists the tokens for the side panels, button borders, the product tour, links, the "NEW" tag and the gradient fills.index.md, and a correctedproduct.namerow inpackage-reference.md. It lists the texts that follow the brand name (UI texts, the chat label "{product name} Thoughts", platform emails, Keycloak), the texts that do not change (pre-built assistants, katas, documents, release notes, user-created assistants, the support address, the default tab title), the fallbacks, and the API restart after a brand change.--chart-keycloak,--chart-proxy,--release-keycloak,--release-proxy,--namespace-keycloak,--namespace-proxy,--keycloak-timeoutand--no-keycloak.smtpblock (an emptykeycloak.smtp: {}clears them); the example workflow takes the Keycloak and proxy inputs; an unparsableextraVolumesstring stops the run; arguments after the assets directory are rejected; the UI asset size check covers the 1 MiB Helm release Secret andfontFaceCSShas a length cap; the smoke check handles names with&; restarts find workloads by release label. Each has bats tests.white-label-kit-tests.yml.Behaviour changes to note
EMAIL_FROM_NAMEdefault changes fromCodeMieto empty, and platform emails use neutral wording when no brand is set. The guide has the details.keycloakblock, the output and the Helm calls are the same as before.Operational notes (also in the guide)
Scope note
Pairing the kit with a specific release is out of scope for this change. No Release Notes entry is added.
Testing
apply-theme bats suiteis green on the merged head. (An earlier head was red on Linux: the UI asset data was passed toyqin an environment variable, and Linux limits one variable to 128 KiB, so assets over about 96 KiB crashed the render. It now goes through files; commit34d99d9.) markdownlint, prettier and cspell passed on the changed guide pages, including the two pages edited for EPMCDME-16332.npm run check,npm run buildandsecrets:check: passed on the earlier head; not re-run after the review fixes.cdmp-codemie-gke), 20 and 21 October:apply-themeupgraded the UI, API and Keycloak releases with a test package ("Example Co"), and a running Keycloak served the child login theme. These runs also hit the restart problem that review comment 7 describes (fixed inf9ba69d).KeycloakRealmresource), an upgrade with oversized assets, the example workflow on a real GitHub runner, and a mail sent by a running Keycloak.