├── .editorconfig ├── .github ├── FUNDING.yml └── workflows │ ├── main.yml │ └── release.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── docker-compose.yml ├── examples ├── .gitignore ├── User.avsc ├── base.yml ├── foo.json ├── foo.proto ├── with-references.avsc ├── with_references.yml └── without_compatibility.avsc ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── renovate.json ├── schema-registry-gitops.svg ├── settings.gradle.kts └── src ├── main ├── kotlin │ └── dev │ │ └── domnikl │ │ └── schemaregistrygitops │ │ ├── CLI.kt │ │ ├── Compatibility.kt │ │ ├── Configuration.kt │ │ ├── Main.kt │ │ ├── ParsedSchema.kt │ │ ├── SchemaParseException.kt │ │ ├── SchemaRegistryClient.kt │ │ ├── ServerVersionMismatchException.kt │ │ ├── State.kt │ │ ├── Subject.kt │ │ ├── cli │ │ ├── Apply.kt │ │ ├── Dump.kt │ │ └── Plan.kt │ │ └── state │ │ ├── Applier.kt │ │ ├── Diffing.kt │ │ ├── Dumper.kt │ │ └── Persistence.kt └── resources │ ├── logback.xml │ └── version.txt └── test ├── kotlin └── dev │ └── domnikl │ └── schemaregistrygitops │ ├── CLITest.kt │ ├── ConfigurationTest.kt │ ├── ParsedSchemaTest.kt │ ├── SchemaRegistryClientTest.kt │ ├── StateTest.kt │ ├── TestUtils.kt │ ├── cli │ ├── ApplyTest.kt │ ├── DumpTest.kt │ └── PlanTest.kt │ └── state │ ├── ApplierTest.kt │ ├── DiffingTest.kt │ ├── DumperTest.kt │ └── PersistenceTest.kt └── resources ├── client.properties ├── empty.yml ├── neither_schema_nor_file.yml ├── no_compatibility.yml ├── only_compatibility.yml ├── only_normalize.yml ├── referenced_file_does_not_exist.yml ├── schemas ├── avsc.diff ├── deltaA.avsc ├── deltaA.json ├── deltaA.proto ├── deltaB.avsc ├── deltaB.json ├── deltaB.proto ├── json.diff ├── key.avsc ├── proto.diff ├── with_subjects.avsc └── with_subjects_and_references.avsc ├── subject_name_is_missing.yml ├── version.txt ├── with_inline_schema.yml ├── with_subjects.yml ├── with_subjects_and_compatibility.yml └── with_subjects_and_references.yml /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/examples/.gitignore -------------------------------------------------------------------------------- /examples/User.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/examples/User.avsc -------------------------------------------------------------------------------- /examples/base.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/examples/base.yml -------------------------------------------------------------------------------- /examples/foo.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/examples/foo.json -------------------------------------------------------------------------------- /examples/foo.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/examples/foo.proto -------------------------------------------------------------------------------- /examples/with-references.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/examples/with-references.avsc -------------------------------------------------------------------------------- /examples/with_references.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/examples/with_references.yml -------------------------------------------------------------------------------- /examples/without_compatibility.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/examples/without_compatibility.avsc -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/gradlew.bat -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/renovate.json -------------------------------------------------------------------------------- /schema-registry-gitops.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/schema-registry-gitops.svg -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "schema-registry-gitops" 2 | -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/CLI.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/CLI.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/Compatibility.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/Compatibility.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/Configuration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/Configuration.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/Main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/Main.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/ParsedSchema.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/ParsedSchema.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/SchemaParseException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/SchemaParseException.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/SchemaRegistryClient.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/SchemaRegistryClient.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/ServerVersionMismatchException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/ServerVersionMismatchException.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/State.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/State.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/Subject.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/Subject.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/cli/Apply.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/cli/Apply.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/cli/Dump.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/cli/Dump.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/cli/Plan.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/cli/Plan.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/state/Applier.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/state/Applier.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/state/Diffing.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/state/Diffing.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/state/Dumper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/state/Dumper.kt -------------------------------------------------------------------------------- /src/main/kotlin/dev/domnikl/schemaregistrygitops/state/Persistence.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/kotlin/dev/domnikl/schemaregistrygitops/state/Persistence.kt -------------------------------------------------------------------------------- /src/main/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/resources/logback.xml -------------------------------------------------------------------------------- /src/main/resources/version.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/main/resources/version.txt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/CLITest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/CLITest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/ConfigurationTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/ConfigurationTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/ParsedSchemaTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/ParsedSchemaTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/SchemaRegistryClientTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/SchemaRegistryClientTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/StateTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/StateTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/TestUtils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/TestUtils.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/cli/ApplyTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/cli/ApplyTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/cli/DumpTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/cli/DumpTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/cli/PlanTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/cli/PlanTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/state/ApplierTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/state/ApplierTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/state/DiffingTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/state/DiffingTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/state/DumperTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/state/DumperTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/dev/domnikl/schemaregistrygitops/state/PersistenceTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/kotlin/dev/domnikl/schemaregistrygitops/state/PersistenceTest.kt -------------------------------------------------------------------------------- /src/test/resources/client.properties: -------------------------------------------------------------------------------- 1 | schema.registry.url=foo 2 | -------------------------------------------------------------------------------- /src/test/resources/empty.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/test/resources/neither_schema_nor_file.yml: -------------------------------------------------------------------------------- 1 | subjects: 2 | - name: foo 3 | -------------------------------------------------------------------------------- /src/test/resources/no_compatibility.yml: -------------------------------------------------------------------------------- 1 | subjects: 2 | -------------------------------------------------------------------------------- /src/test/resources/only_compatibility.yml: -------------------------------------------------------------------------------- 1 | compatibility: FORWARD 2 | -------------------------------------------------------------------------------- /src/test/resources/only_normalize.yml: -------------------------------------------------------------------------------- 1 | normalize: true 2 | -------------------------------------------------------------------------------- /src/test/resources/referenced_file_does_not_exist.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/referenced_file_does_not_exist.yml -------------------------------------------------------------------------------- /src/test/resources/schemas/avsc.diff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/avsc.diff -------------------------------------------------------------------------------- /src/test/resources/schemas/deltaA.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/deltaA.avsc -------------------------------------------------------------------------------- /src/test/resources/schemas/deltaA.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/deltaA.json -------------------------------------------------------------------------------- /src/test/resources/schemas/deltaA.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/deltaA.proto -------------------------------------------------------------------------------- /src/test/resources/schemas/deltaB.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/deltaB.avsc -------------------------------------------------------------------------------- /src/test/resources/schemas/deltaB.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/deltaB.json -------------------------------------------------------------------------------- /src/test/resources/schemas/deltaB.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/deltaB.proto -------------------------------------------------------------------------------- /src/test/resources/schemas/json.diff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/json.diff -------------------------------------------------------------------------------- /src/test/resources/schemas/key.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/key.avsc -------------------------------------------------------------------------------- /src/test/resources/schemas/proto.diff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/proto.diff -------------------------------------------------------------------------------- /src/test/resources/schemas/with_subjects.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/with_subjects.avsc -------------------------------------------------------------------------------- /src/test/resources/schemas/with_subjects_and_references.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/schemas/with_subjects_and_references.avsc -------------------------------------------------------------------------------- /src/test/resources/subject_name_is_missing.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/subject_name_is_missing.yml -------------------------------------------------------------------------------- /src/test/resources/version.txt: -------------------------------------------------------------------------------- 1 | test -------------------------------------------------------------------------------- /src/test/resources/with_inline_schema.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/with_inline_schema.yml -------------------------------------------------------------------------------- /src/test/resources/with_subjects.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/with_subjects.yml -------------------------------------------------------------------------------- /src/test/resources/with_subjects_and_compatibility.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/with_subjects_and_compatibility.yml -------------------------------------------------------------------------------- /src/test/resources/with_subjects_and_references.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/domnikl/schema-registry-gitops/HEAD/src/test/resources/with_subjects_and_references.yml --------------------------------------------------------------------------------