Skip to content

Releases: tot-ra/graphql-schema-registry

5.5.1 Redis is optional + knex bump

03 Feb 17:10
f768147
Compare
Choose a tag to compare

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

27 Oct 13:50
75ed3c0
Compare
Choose a tag to compare
  • 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

10 Oct 23:31
64a7a84
Compare
Choose a tag to compare
  • added global search input in menu
  • removed per-service search as redundant

Screenshot 2022-10-10 at 01 41 22

v5.2.0 logs tab added

08 Oct 13:42
72447af
Compare
Choose a tag to compare

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

Screenshot 2022-10-08 at 02 22 57

v5.1.1 fix re-opening navigation on refresh

07 Oct 20:05
2cc8285
Compare
Choose a tag to compare

v5.1.0 clients list UI

06 Oct 07:30
30859e5
Compare
Choose a tag to compare
  • added "clients" menu in UI part to display clients, versions and related persisted queries
    (clients are added by query analyzer)

Screenshot 2022-10-04 at 01 02 51

v5.0.0 Apollo Federation v2

27 Sep 18:49
400c684
Compare
Choose a tag to compare
  • 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

16 Jul 21:24
32ab008
Compare
Choose a tag to compare

Added

  • New Feature - schema usage
    • New DB migration adds clients, clients_persisted_queries_rel and schema_hit tables
    • Async worker which anzlyzes graphql queries and maps them onto schemas to generate schema hits (usage), see src/worker and also examples 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
  • 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

Screenshot 2022-07-17 at 02 02 24

Screenshot 2022-07-17 at 02 02 53

v3.5.0 knex dependency update

14 Jul 13:44
3a854fc
Compare
Choose a tag to compare
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

07 Jun 07:19
ea56756
Compare
Choose a tag to compare