Skip to content

feat(console): add console (Next.js) chart alongside console-v3 - #419

Closed
reslene wants to merge 1 commit into
mainfrom
feat/console-nextjs-new-deployment
Closed

reslene wants to merge 1 commit into
mainfrom
feat/console-nextjs-new-deployment

Conversation

@reslene

@reslene reslene commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

What

Reintroduces a console Helm chart, modeled on console-v3, for the Next.js app at apps/console in formancehq/platform-ui. The two consoles coexist:

chart image tech default host
console ghcr.io/formancehq/console Next.js 16 console.<domain>
console-v3 ghcr.io/formancehq/console-v3 Remix / React Router console.v3.<domain>

Also cleans up an untracked charts/console/charts/core-1.2.6.tgz left behind when Console V2 was removed in #247.

console-v3 is untouched

Verified, not assumed: rendering charts/cloudprem with default values on this branch is byte-identical to main, apart from the membership chart version label (3.6.3 → 3.7.0) and the checksum/config annotation that is computed over those labels. No console-v3 file is in the diff.

Chart contents

Same values, env vars, probes, migration job, HPA, PDB, ingress and AWS target-group binding as console-v3. The only deliberate divergences are the runtime entrypoints, because the prod-next Docker target ships Next's standalone output and has no pnpm at runtime:

console-v3 (prod-remix) console (prod-next)
deployment pnpm run start:prod node server.js
migration job pnpm run db:migrate node dist/migrate.cjs

Version scheme

console starts at 3.0.0. The chart name was previously used by Console V2, deleted at 2.3.1 (#247) — a new major keeps the OCI repository monotonic and makes the generation change unambiguous for consumers.

Cascade

chart version why
console new — 3.0.0, appVersion v1.0.0 the chart itself
membership 3.6.3 → 3.7.0 global.platform.console OAuth client (registers console in staticClients, secret via $CONSOLE_OAUTH_CLIENT_SECRET)
cloudprem 5.2.0 → 5.3.0 console dependency + global.platform.console
formance 2.2.1 → 2.3.0 global.platform.console + NOTES.txt entry

portal and console-v3 are not bumped — neither is touched.

Disabled by default everywhere (global.platform.console.enabled: false), so existing consumers see no behavior change on upgrade.

Validation

  • just pre-commit — all 11 charts lint --strict and render clean, including the new one
  • cascade audit: every modified Chart.lock has its owning chart's version in the diff
  • rendered cloudprem with global.platform.console.enabled=true: cp-console Deployment / Service / Ingress / Job / SA render alongside cp-console-v3, and membership's ConfigMap registers console, console-v3 and portal as three distinct static clients

Depends on

formancehq/platform-ui — appVersion: "v1.0.0" does not resolve to a real image until that PR lands and the console/v1.0.0 tag is cut:

  • /_info health route (the probes and the ALB health check target it)
  • build:migrate script, so the Job's node dist/migrate.cjs exists in the image
  • release.yml gate opened to console/* tags

A companion formancehq/infra PR wires the chart into staging.

Reintroduces a `console` chart, modeled on `console-v3`, for the Next.js
app living at `apps/console` in platform-ui. Both consoles now coexist:

  console      -> ghcr.io/formancehq/console      (Next.js) console.<domain>
  console-v3   -> ghcr.io/formancehq/console-v3   (Remix)   console.v3.<domain>

`console-v3` is untouched: rendering cloudprem with default values is
byte-identical to main apart from the membership chart version label.

The chart mirrors console-v3's values, env, probes, migration job, HPA,
PDB, ingress and target-group binding. Only the runtime entrypoints
differ, because the `prod-next` image ships Next's standalone output
(no pnpm at runtime):

  deployment: node server.js       (was: pnpm run start:prod)
  job:        node dist/migrate.cjs (was: pnpm run db:migrate)

Version starts at 3.0.0: the `console` chart name was previously used by
Console V2, removed at 2.3.1 in #247. A new major keeps the OCI
repository monotonic.

Cascade:
- console       new, 3.0.0 (appVersion v1.0.0)
- membership    3.6.3 -> 3.7.0  (global.platform.console oauth client)
- cloudprem     5.2.0 -> 5.3.0  (console dependency + global.platform.console)
- formance      2.2.1 -> 2.3.0  (global.platform.console + NOTES)

Disabled by default everywhere (`global.platform.console.enabled: false`).

Depends on formancehq/platform-ui: the `/_info` health route, the
`build:migrate` bundle and the `console/vX.Y.Z` release tag must land
before appVersion v1.0.0 resolves to a real image.
@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant