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