Repository navigation
feat: Docker images on GHCR per release, and update notices (systemUpdates) - #26
Merged
Merged
Conversation
- release.yml: a v* tag (or a manual run on main) builds ghcr.io/mgpl-diagnostics/api for amd64 and arm64 and creates the GitHub release with generated notes - systemUpdates (settings:manage): running vs newest api and dashboard releases, changelog, update steps - docker-compose.yml pulls the released api and dashboard images; nginx serves both on one origin - docs/18-updates.md; version read from the right package.json in dist (health showed 0.0.0) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018jBohmSXdQwAG8EmEBKYkQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018jBohmSXdQwAG8EmEBKYkQ
… update notices Both sides kept: imports and system modules/services, ImportService and SystemService, imports + updates + fetch in createServices. Releases doc renumbered 18 → 19 (18 is Partner-lab imports). client 1.6.0 (published). Generated files regenerated. 320 tests pass on PostgreSQL and MongoDB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Requested by Himanshu · project thread
What
Images per release.
.github/workflows/release.yml: av*tag (admin-only) or a manual run onmainchecks the tag equalspackage.json, buildsghcr.io/mgpl-diagnostics/apifor linux/amd64 and arm64 (tags1.2.3,1.2,1from 1.0,latest; kits read with the workflow token as a build secret) and creates the GitHub release with generated notes.Easy hosting.
docker-compose.ymlnow pulls the released api and dashboard images (MGPL_API_VERSION/MGPL_DASHBOARD_VERSION, defaultlatest) and adds the dashboard. nginx serves both on one origin:/graphqland/health→ api replicas, the rest → dashboard, soTRUST_PROXY=1stays right and there is no CORS. Building from a checkout moved todocker-compose.build.yml.Update notices. New query
systemUpdates(dashboardVersion, refresh)(permissionsettings:manage: owner and admin) compares this api's version and the dashboard's with the newest published GitHub releases of both repos, and returns the changelog in between plus the update steps. One GET per repo perUPDATE_CHECK_INTERVAL_MS(6 h) per process, "refresh" at most once a minute, last good answer kept on failure;UPDATE_CHECK=falsemakes no outbound call. Feed data is typed and capped; non-https links dropped; pre-releases and drafts ignored. New modulesystem(schema, controller, service), no change to existing modules.Fix.
health.versionread../../package.jsonrelative to the bundled chunk, so production images answered0.0.0;src/version.tsnow reads the right file in bothtsxanddist.Docs: new
docs/18-updates.md(images, hosting, updating, releasing, the check), config table,.env.example, 12/17 updated.schema.graphql, API reference andllms-full.txtregenerated.Merge order
@mgpl-diagnostics/client1.6.0 (mgpl-diagnostics/client PR) has thesystemUpdatesoperation, which the "every root field has a client operation" check needs, so this PR bumps the client to^1.6.0. Client main already includes the operations of #23 and #24, so: merge #24 and #23, then client 1.6.0 (tag it), then this.kits.json/package.json/lock will conflict with #24 on the client line; take1.6.0, thennpm installto refresh the lock andnpm run schema && npm run docs:reference && npm run llms.Tests
TEST_BACKENDS=pg npm testwith kits built from local checkouts: 16 new[updates]checks pass (versions, changelog window, cache, refresh limit, unknown dashboard version, UNAUTHENTICATED, FORBIDDEN for front desk, 403 feed,UPDATE_CHECK=false, repo validation). The one failure is the client-contract check against today's main, which lacks #23/#24's fields (goes away in the merge order above).docker compose configpasses for both compose files;nginx -tpasses; nginx routing checked with stub containers. The image build itself runs for the first time in CI on the first tag.After merging
api→ change visibility to Public (ordocker login ghcr.ioon servers).Generated by Claude Code