avro-schema-parser
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

avro-schema-parser

Flatten AVRO schema's which reference other schema's, so the Kafka schema registry will accept them.

The Kafka schema registry only supports schema files with one schema at the root, even though the AVRO specifications allows you to specify multiple schema's in one JSON file. This makes sense, since otherwise you would need to specify the specific schema in the multi-schema file that you are going to use to encode/decode messages. However, in case you already have a multi-schema file, this utility will try to inline your schema's.

The first time it encounters a reference to another schema, it will inline it, the next time it will reference it.

To test if your schema is valid, you can use the official avro-tools from the releases website.

cls && java -jar avro-tools-1.8.2.jar compile schema driver.eu.alert.avsc tmp

This package was tested by running the tool on the data/cap.avsc schema, and posting the resulting json schema file to the Confluence schema-registry using another small utility, postj, which you can install via npm i -g postj. Please note that the Landoop schema-registry-ui v0.9.3 may say that the schema is invalid, as is the case here, while posting it will still work.

Caveat

Several cases have not been tested, and will probably not work:

  • In case you have an ENUM that is used multiple times.
  • When working with the MAP or FIXED schema type.

Dependents (0)

Package Sidebar

Install

npm i avro-schema-parser

Weekly Downloads

2

Version

0.0.3

License

MIT

Last publish

Collaborators

  • erikvullings