Releases: tot-ra/graphql-schema-registry
Releases · tot-ra/graphql-schema-registry
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
v5.1.1 fix re-opening navigation on refresh
Oct-07-2022.12-03-45.mp4
v5.1.0 clients list UI
v5.0.0 Apollo Federation v2
- apollo federation v2 is used within schema validation.
You likely will need to upgrade gateway (see examples folder) and change subgraph schemas. Follow migration guide by apollo. - apollo composition library migrated from MIT license to ELv2, which adds limitations on how you can use it, which does not affect graphql-schema-registry source code as we only reference it (and its up to you, client, to install and use the library), but docker image is affected as it bundles/distributes the library. Basically you cannot use graphql-schema-registry docker image to commercially compete with Apollo Studio, otherwise its fine to use as internal tool. If you feel this is unfair, feel free to create PR with alternative/pluggable schema validation method.
v4.0.0
Added
- New Feature - schema usage
- New DB migration adds
clients
,clients_persisted_queries_rel
andschema_hit
tables - Async worker which anzlyzes graphql queries and maps them onto schemas to generate schema hits (usage), see
src/worker
and alsoexamples
for more details. As this requires manual setup, released as major version. - graphql schemas & resolvers to provide schema usage
- UI to see schema usage tab (under specific service schema)
- Added rumble-charts dependency to draw graphs
- UI - renamed schemas -> services in menu & added counter
- New DB migration adds
- Added redlock dependency - it now locks schema registration for some time in case multiple instances of new service try to register same schema & overload the DB. Now only one instance gets access and others wait
- Tooling
- added integration tests, mostly useful for worker testing as its async
Updated
- async-redis -> ioredis
- docker-compose files are now simpler and more composable
v3.5.0 knex dependency update
3.5.0-RC - upgrade knex version to 2.1.0 (#138) * upgrade knex version * fix unit test eslint fixes * Update package.json * Update CHANGELOG.md
v3.4.0 node version updated 14 -> 16
Update package.json