Releases: tot-ra/graphql-schema-registry
Releases · tot-ra/graphql-schema-registry
Release list
6.0.0 Core store upgrades. Mysql -> Postgres, Kafka -> Redis, Node 25, UI update, Subscriptions, Analytics
6.0.0 Core store upgrades. Mysql -> Postgres, Kafka -> Redis, Node 25, UI update, Subscriptions, Analytics
Latest
What's Changed
- update mysql2 lib version for security by @tot-ra in #196
- update jest by @tot-ra in #199
- Disable post-install hooks for security (ex. shai-hulud worm protection) by @tot-ra in #201
- fix(dev): remove USER nobody from dev Dockerfile and add auto database creation by @tot-ra in #202
- refactor: Migrate frontend build from Webpack 5 to Vite by @tot-ra in #203
- chore: migrate from eslint/prettier to biome and oxlint by @tot-ra in #204
- feat: migrate schema registry from MySQL to Postgres by @tot-ra in #205
- release: 6.0.0-rc (Node 25 + pnpm migration) by @tot-ra in #206
- Add Schema supergraph explorer with interactive entity graph by @tot-ra in #207
- Simplify schema registry messaging: Redis pub/sub instead of Kafka by @tot-ra in #208
- feat: expand analytics views and add hourly usage tracking by @tot-ra in #209
- Add subscription registry API, UI, and docs by @tot-ra in #210
- Add subscription metrics analytics pipeline and UI tab by @tot-ra in #211
Full Changelog: 5.5.4...6.0.0
6.0.0-rc - Node 25, Postgres, PNPM, Vite
Changed
- Upgraded runtime and build environment to Node.js 25
- Updated
.nvmrcto 25 - Updated Docker images from
node:22-alpinetonode:25-alpine
- Updated
- Migrated package management workflow from npm to pnpm
- Added
packageManager: pnpm@10.29.2 - Replaced npm commands with pnpm in
justfile, Dockerfiles, and docker-compose startup commands - Added
pnpm-lock.yamland removedpackage-lock.json
- Added
- Updated docker-compose development services to run non-interactive pnpm installs in containers
- Added
CI=true pnpm install --forcein container startup commands - Added
/app/node_modulesvolume mounts for container-local dependencies
- Added
- Updated Postgres volume mounts to use
/var/lib/postgresqlfor compatibility with Postgres 18 images- Fixed startup failures caused by legacy data directory mount layout
Fixed
- Resolved npm dependency resolution errors during install (
ERESOLVEwith Material UI / React type peer constraints) by switching service install/build flow to pnpm
Changed
- Migrated frontend build from Webpack 5 to Vite for faster development startup and build times
- Replaced webpack, babel-loader, and related plugins with Vite and @vitejs/plugin-react
- Added vite.config.ts with UMD library build configuration
- Added tsconfig.client.json for frontend TypeScript configuration
- Updated build-frontend script to use vite build
- Added develop-frontend script for Vite dev server
- Updated setupDev.ts to use Vite middleware instead of webpack-dev-middleware
- Fixed circular reference in CodeDiff.jsx
- Renamed usePrism.js to usePrism.jsx for proper JSX handling
- Updated @types/node to v20 for Vite compatibility
- Removed 14 webpack-related dev dependencies
Fixed
- Remove
USER nobodyfrom dev.Dockerfile to fix webpack permission errors in development
Added
- Auto-create database if it doesn't exist during startup
Mysql -> Postgres migration
Summary
- migrate DB runtime and migrations from MySQL to Postgres
- add MySQL -> Postgres data migration script and documentation
- update Docker/compose configs so local startup works with Postgres
- preserve API compatibility for existing clients/UI, including ID normalization
- add startup health smoke test and Postgres-related test updates
Key fixes included
- install/use
pgand Postgres knex wiring - Postgres-safe SQL and migration updates (including explicit table IDs)
- type-safe handling for raw results and bigint/boolean behavior differences
- fix GraphQL service/schema loading mismatch that caused UI message "No service passed"
- fix functional test DB reset for FK constraints
Validation
npm run build-backendnpm run test:functionalnpm run test:integration- manual GraphQL/API checks for register + latest + compose + service details
Migration docs
docs/POSTGRES_MIGRATION.mdscripts/migrate-mysql-to-postgres.ts
5.5.4 Apollo v2 federation support
Add supergraph endpoint (#189) (#197) * Add supergraph endpoint (#189) * Add route to return supergraphSdl * Cache supegraph in memory * Fix schema composition error message * Move invalidation post graph mutation * Add integration tests and fix invalidation * Add example setup with Apollo Router * Add supegraph rollback integration test * add wundergraph link * update App to open list of services by default * remove "connecting to DB mysql:3306" log * Fix diff view (#192) * Fix diff view * lint fix * fix workflows * Update @apollo/client and @apollo/composition dependencies (#194) This enables registering schemas using the latest versions of the GraphQL Federation specification. * Update node version 16 -> 22 (#195) * update node version 16 -> 22 * bump github workflow versions * update changelog with v5.5.3 * update package-lock * update package-lock * update README * fix lint --------- Co-authored-by: Alexandru Gologan <alexandru.gologan@gmail.com> Co-authored-by: Andrew Garcia <95447089+agarcia-narvar@users.noreply.github.com>
5.5.3 Update node version to 22, apollo dependencies, fix UI bug in diff view
5.5.1 Redis is optional + knex bump
NB! repository moved from pipedrive namespace. Make sure to use new docker image namespace
Changes:
- knex dependency update
- redis changes from @ehardy PR #172 :
- Passing the Redis password to the RedisTransport constructor in src/logger.ts.
- Initializing Redis in the init() function in src/index.ts. With this change the warnings in the logs disappear.
- In order to cover the Redis/password cases, the docker-compose.base.yml now makes sure to launch Redis with password protection.
- Adding an environment variable called LOG_STREAMING_ENABLED to further control if log streaming over Redis should be enabled or not.
v5.4.0 Schema UUID added, uniqueness check improved
- Add schema normalization (re-formatting) - this should get rid of extra tabbing & spacing when services register their schemas inconsistently
- Fix knex migration generation from commandline (
npm run new-db-migration my-new-migration) - Improve migration scripts to support JS migrations. Possibly somewhat breaking change for organizations that relied only on .sql files
- Migrate schemas to now include UUID (js migration). If your organization didn't expect/run js migrations, you will have empty UUIDs, but follow-up schema registrations should have it in new schemas, so not a big deal, just may be a bit confusing in the UI
- We do not delete duplicate schemas her, as its a bit dangerous. You may have had duplicate schemas before, if you need to clean them up, here is a script:
UPDATE `container_schema` t3
INNER JOIN `schema` t1
INNER JOIN `schema` t2
SET t3.schema_id = t1.id
WHERE t1.UUID IS NOT null
AND t1.id < t2.id
AND t1.UUID = t2.UUID
AND t3.schema_id = t2.id;
DELETE t2
FROM `schema` t1
INNER JOIN `schema` t2
WHERE
t2.UUID IS NOT null AND
t1.id < t2.id AND
t1.UUID = t2.UUID;Use with caution
v5.3.0 Global search
v5.2.0 logs tab added
Problem
Sometimes when schema registration fails, its hard to trace why.
You need to either check schema-registry logs, or you need to debug endpoint response output on client side
This adds Logs UI which shows all logs that schema-registry does via regular logger.error() functions, just uses redis as a temporary storage
Changes
- add logs tab (reads from redis)
- add info component
- add winston-redis-stream for temporary storage for logs


