This UCAIug repository hosts the exploration and development of approaches for producing Apache Avro schemas for the Common Information Model (CIM).
The focus is on generating Avro schemas for data suitable for exchange on Kafka, scheduled transfers, or real-time streams where minimum latency between source and destination is critical. The design goal is to enable lightweight online validation while still providing sufficient structure for extensive offline validation. Time-series data are expected to remain within defined limits, consistent with the resources described in the structured data exchange.
The Avro4CIM project leverages CIMTool (version 2.3.0-RC3) to generate Avro schema definitions in alignment with the evolving CIM specification. This approach is intended to complement existing CIM XML/XSD-based exchanges by providing Avro as an additional serialization and integration option.
For latest details on development of the Avro schema builder reference implementation visit Case Study Overview.
-
Clone This Repository: to access the CIMTool project that defines the CSA 2.4 Security Analysis Result Avro Profile.
-
For Information on CIMTool: see https://cimtool.ucaiug.io/
-
To Download: see CIMTool-2.3.0-RC3
-
Import the Avro builder: use the "Import XSLT Transform Builder" wizard with the following settings:
- 1.0.0-beta
- The beta release is available here on GitHub at apache-avro-schema.xsl.
We welcome contributions. Please use the standard fork → branch → pull request workflow when proposing changes.
- Make branch names informative (e.g., include an issue or feature number).
- Editorial fixes (clarity, typos, documentation improvements) are always welcome.
- Please review CONTRIBUTING.md for guidance on licensing contributions.
This repository operates under a Code of Conduct.
Distributed under the Apache 2.0 license.
See LICENSE for details.
Experimental use of CIMTool to generate Apache Avro schemas for CIM streaming and real-time exchanges