Repository navigation
chore(demo): refresh the console demo from the cozystack monorepo - #698
Merged
Merged
Conversation
✅ Deploy Preview for cozystack ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 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. Comment |
Andrei Kvapil (kvaps)
marked this pull request as ready for review
September 15, 2026 15:40
Andrei Kvapil (kvaps)
requested review from
Timofei Larkin (lllamnyp),
myasnikovdaniil and
Timur Tukaev (tym83)
as code owners
September 15, 2026 15:40
Build the /demo/ console from the cozystack monorepo instead of the archived cozystack-ui, and bring the mock layer up to the current console. - build.sh clones packages/system/dashboard/images/console sparse and labels the header; the refresh workflow watches static/demo-app. - The smoke check sees un-mocked calls now and crawls 250 screens. - Mock Repositories, Migration, KubeVirt power state and the option sources behind the create forms; populate every instance's tabs. - Resolve inherited module status, drop sign out, and show Repositories under Admin ahead of cozystack/cozystack#4286 through a temporary patch. Assisted-by: LLM Signed-off-by: Andrei Kvapil <[email protected]>
Andrei Kvapil (kvaps)
force-pushed
the
chore/refresh-demo-app
branch
from
September 15, 2026 15:51
a0eae79 to
09ff1c3
Compare
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.
The demo was still built from cozystack/cozystack-ui. That repo was archived in June when the console moved into the monorepo, under
packages/system/dashboard/images/console. The clone kept working, so nothing ever failed, the weekly refresh just rebuilt a June snapshot every Monday.demo-src/build.shclones the monorepo sparse now and lifts the console tree into a repo of its own, so the overlay and the patches stay rooted where they were. All four patches applied unchanged.The workflow was also diffing
static/demo, which the build stopped writing to when the bundle moved tostatic/demo-app. It would never have opened a PR.The smoke check could not fail on a screen the mock layer had never heard of. MSW passes unhandled requests to the network, and the test server answered any unknown path with index.html, so an un-mocked call came back 200 text/html and looked fine. It answers 404 on /api and /apis now, and crawls three waves out instead of one, 250 destinations instead of 88. That found three endpoints added upstream since June and never mocked:
core.cozystack.iotaps, Marketplace -> Repositoriesforklift.cozystack.iovmimportsources and vmimporttasks, Console -> MigrationBoth are mocked now, with the CRD schemas their create forms read and the option sources behind their dropdowns.
Instance detail tabs were also populated for 5 of the 20 demo instances, the capture only covered a few in depth. Pods, services and volumes are synthesized at read time now for whatever the fixtures don't carry.
Checked on the built bundle by hand, not only by exit code: marketplace, repositories, both migration screens, import detail, VM and disk pages, admin. Deployed a Redis from the marketplace and watched it install and turn ready. Picked a connection in the New import form, the dependent machine list loads.
VNC can't work, there is no VM behind it. Imported machines report as stopped, so the console says "not running, start it to use the VNC console" instead of failing to connect.
One thing I left alone: the marketplace catalog is a snapshot of a live cluster taken on 12 August, 27 app types with create-form schemas of that date. Upstream ships 32 now. Generating it from
packages/system/*-rd/cozyrds/*.yamlat build time would keep it in step.Admin -> Modules showed four modules as Unknown. The status is looked up at whichever tenant provides the module,
tenant-roothere per thenamespace.cozystack.io/<module>labels, and the registry only carried workshop00's own info module. Added the four TenantModules in tenant-root, they render as inherited from an ancestor the demo user cannot see. The smoke check cannot catch that one, nothing 404s, the badge just says Unknown.The header carries a version label now, where a release build shows its version. It is pinned to
v1.7.0-rc.2in the refresh workflow; withoutDEMO_VERSIONa branch build reads asmain@<sha>and a tag build as the tag.The demo also shows Repositories under Admin already. That comes from cozystack/cozystack#4286, carried as a temporary patch (
06-repositories-in-admin.patch). Once #4286 is merged the patch stops applying and the build stops with "upstream drifted", then the file just gets deleted.Sign out is gone from the demo. It was the only entry in the user menu and sent the page to /oauth2/sign_out, which nothing serves on the site.