provectus / kafka-ui

Open-Source Web UI for Apache Kafka Management
Apache License 2.0
8.98k stars 1.1k forks source link

Add configuration to normalize the schemas on registration #4375

Open pcoleman00st opened 4 months ago

pcoleman00st commented 4 months ago

Issue submitter TODO list

Is your proposal related to a problem?

I'm apoplectic with rage when I register perfectly valid protobuf to the schema registry (via UI), but then the KafkaProtobufSerializer fails to find the registered schema when serializing an object via the producer. The reason why the serializer does not find it is due to minor differences (syntactic but not semantic) in the schema. For example, placing "option java_package = "xx";" before "option java_multiple_files = true;". The two schemas are semantically identical and as such would want the serializer to find the registered schema.

Describe the feature you're interested in

I would want to be able to set the "?normalize=true" URL parameter when registering a schema via the Kafka-UI. I recognize not absolutely everybody will necessarily want or need this feature, so having it driven via configuration would be ideal. It's certainly fine if the default behavior is not to normalize on registration.

Describe alternatives you've considered

Writing down the list of cosmetic differences in protobuf to enforce some standardization. But this depends on human beings and is not particularly reliable. Similarly, ensuring that the submitted schema is already the normalized version is something I've considered, but again requires human beings to normalize the schema manually. This works to a degree, but would certainly prefer the ability to automatically upload normalized schemas.

Version you're running

56fa824

Additional context

No response

github-actions[bot] commented 4 months ago

Hello there pcoleman00st! šŸ‘‹

Thank you and congratulations šŸŽ‰ for opening your very first issue in this project! šŸ’–

In case you want to claim this issue, please comment down below! We will try to get back to you as soon as we can. šŸ‘€