Apicurio Sync

open source cli

Apicurio Sync is a command line tool used to synchronize artifacts between an instance of Apicurio Registry and a local folder.

It is used to share schema definitions such as ProtoBuf IDL files between multiple codebases using Apicurio Registry, eliminating the need to fetch the schemas at runtime.

Schemas can be published during the regular CI/CD build step, and pulled by a developer when they want to update the vendored copy in another project. It uses a lockfile to avoid unexpectedly pulling in new versions of schemas

It also supports autenticating against multiple registries independently of the managed schemas, allowing to synchronize the same definitions on different registries for different uses, e.g. to separate prod and staging schema versions.

push:
  - group: example
    artifact: push
    name: Push example
    description: An example Protobuf schema to demonstrate the push capabilities of apicurio-sync
    path: proto/example/push.proto
    type: PROTOBUF
    labels:
      - example
    properties:
      example.com/hello: world

pull:
 - group: example
   artifact: push
   path: proto/example/pull.proto
   version: 1

$ apicurio-sync context init
$ apicurio-sync context set production --url https://registry.example.com --current
$ apicurio-sync context login oidc https://auth.example.com --client-id my-client-id-for-apicurio-sync
$ apicurio-sync update
$ apicurio-sync
INFO apicurio_sync: Syncing artifacts with remote registry
INFO apicurio_sync: Sync completed