Important

You are viewing documentation for an older version of Confluent Platform. For the latest, click here.

Schema Registry Changelog

Version 5.4.0

  • PR-1244 - DG-134: Fix NPE when schema.registry.ssl.protocol not specified
  • PR-1242 - DG-128: Allow DNS lookup policy to be configurable
  • PR-1235 - DG-114: Fix tombstone behavior that causes CPU utilization to go up
  • PR-1228 - DG-42: Upgrade to Avro 1.9.1; fixes #1122
  • PR-1225 - Remove javax.validation::validation-api dependency from Schema Registry client
  • PR-1026 - CC-3759 - Regenerate ID if in use during registration
  • PR-1207 - Add /v1/metadata/id endpoint to display Schema Registry cluster information
  • PR-1220 - Add optional query parameter to /schemas/ids/{id} to retrieve the current max ID of all schemas
  • PR-1214 - MINOR: remove type parameter on Avro deserializer
  • PR-1212 - CC-6428 - Use values to preserve defaults for SSL configuration
  • PR-1210 - MMA-5160 - Add defaultToGlobal flag for config API
  • PR-1144 - Add a configurable proxy to Schema Registry client
  • PR-1208 - Retain RestService SSL method API
  • PR-1167 - Mark API parameter for API Spec
  • PR-969 - Avro Console Consumer print.timestamp property
  • PR-957 - Ability to configure SSL truststore and keystore for Schema Registry clients
  • PR-1205 - Use constant time lookup to check subject exists
  • PR-1111 - Support reflection-based Avro serialization
  • PR-1196 - API to retrieve all subjects associated with a schema id
  • PR-1183 - MINOR: Change int to Integer for schemaRegistryPort
  • PR-1180 - MINOR: handle null in RecordNameStrategy; fixes #1165 (TopicRecordNameStrategy creates invalid names on null values)
  • PR-1179 - MINOR: add transitive levels to messages; fixes #1150 (Client reports misleading error when providing an unsupported compatibility level)
  • PR-965 - Invalid compatibility message update to include three transitive states
  • PR-1178 - Fix createParentPath issue where it was actually creating the child path
  • PR-1135 - #941. Avoid NPE on parsing Avro schemas by throwing InvalidSchemaException (which is handled as BadRequest)
  • PR-1172 - Add protected method for configuring forceOptional
  • PR-1038 - Use try-with-resources to avoid NPE in RestService
  • PR-1171 - MINOR: refactor configuration of RestService
  • PR-1170 - MINOR: close admin client in tests
  • PR-1006 - Fix issue “RecordNameStrategy throws SerializationException on null values”
  • PR-1149 - CC-5036: Use swagger-maven-plugin to generate API specifications
  • PR-1163 - CC-5283: Add temporary replacement for kafka.utils.ZkUtils
  • PR-1148 - Use the new AbstractCoordinator interface
  • PR-1140 - CC-4099: JsonErrorHandler for Schema Registry
  • PR-1088 - CC-4345: Add per-subject locking and lastOffset tracking
  • PR-1136 - Fix compilation error caused by signature change to TestUtils.createBrokerConfig
  • PR-1127 - MINOR: fix abstract coordinator usage

Version 5.3.0

  • PR-1009 - CC-3741: Remove use of IdentityHashMap
  • PR-1020 - CC-3803: Corrected support for handling defaults of logical schema types
  • PR-1018 - DOCS-319: Add reference to SR security plugin
  • PR-1064 - DEVX-768: 5.2 C3 feature focus: new Schema Registry capabilities
  • PR-1039 - DOCS-900: use compatibilityLevel for GET response examples
  • PR-1067 - DOCS-1437: Change sr-short to sr for proper substitution
  • PR-1073 - DOCS-1440: Remove CP install from SR lefthand TOC
  • PR-1065 - DOCS-1333: Add Schema Migration docs
  • PR-1055 - DOCS-1094: Schema Registry ACLs
  • PR-1060 - MINOR: Backport of: Fix checkstyle to pass on 8.5 after upgrade from 6.19 (#857)
  • PR-1074 - MINOR: Fix exception string formatting in Avro converter
  • PR-1022 - MINOR: improve err message during duplicate ID detection
  • PR-1021 - MINOR: add defensive check for tombstoning

Version 5.2.0

  • PR-1062 - CC-4091: Enable reregistration of schema with different ID
  • PR-1056 - CC-4062: Fix NPE caused after _schemas topic is compacted
  • PR-1054 - CC-4056: Pass id/version when secondary forwards register requests
  • PR-1045 - CC-4015 : Clean up tombstones from internal caches
  • PR-1043 - Support explicit names for non-string map schemas.
  • PR-1035 - CC-3956: Revert “Merge pull request #687 from sunbit-dev/canonical-schemas
  • PR-687 - Fix #28: Normalize schemas to canonical form
  • PR-1031 - CC-3930: Only send version/id if not null
  • PR-1023 - MINOR: swap deleted w/non-deleted before clearing; fix javadoc
  • PR-953 - CC-2669 Allow id and version to be passed to register; add modes
  • PR-992 - CC-3635 - Add config to specify location of static resources
  • PR-994 - Ability to pass additional topic configs to the schemas topic
  • PR-948 - Make CachedSchemaRegistryClient thread-safe
  • PR-930 - CC-3003 : Ability to inject custom headers to CachedSchemaRegistryClient
  • PR-939 - MINOR: ensure store is initialized for getAllKeys

Version 5.1.0

  • PR-933 - DOCS-989 - Fix legacy SR doc issues
  • PR-936 - DOCS-929 - Fix confusing anchor links
  • PR-938 - Duplicate Heading Update (#937)
  • PR-921 - Pass ClientDnsLookup to NetworkClient and parseAndValidateAddresses
  • PR-873 - Refactor SR to pull lookup datastructure to its own interface and Id Generation to its own interface
  • PR-888 - CC-2674: Point to the right checkstyle suppression file
  • PR-846 - CC-2367 : Tombstone deleted schemakey if the same schema is registered again in the subject
  • PR-853 - CC-2441 : Add Cyclic schema support
  • PR-861 - MINOR: Add Timer class. Change from Kafka (commit fc5f6b0e46ff81302b3e445fed0cdf454c942792)
  • PR-857 - Fix checkstyle to pass on 8.5 after upgrade from 6.19

Version 5.0.0

  • PR-837 - CC-2185: Deprecate schema.registry. prefixes on commonly modified configs and allow unprefixed versions
  • PR-834 - DOCS-381 - Rename quick start and improve navigation
  • PR-813 - Update maven-plugin-plugin to fix out of bounds error in build
  • PR-811 - Fix SchemaRegistryCoordinator for upstream changes
  • PR-810 - Remove KafkaJsonEncoder since Scala producers have been removed from Kafka
  • PR-809 - Remove KafkaAvroEncoder since the Scala producers have been removed from Kafka
  • PR-808 - Use java.util.Base64 instead of javax.xml.bind.DatatypeConverter
  • PR-807 - Fix usage of internal Jersey utilities that no longer exist
  • PR-806 - Inherit maven compiler plugin definition from common
  • PR-804 - Ability to plugin an implementation of BasicAuthCredentialProvider
  • PR-803 - CC-1958: Verify configs if createTopic fails because topic already exists
  • PR-792 - Improve GC options
  • PR-784 - Docs for Subject Name Strategy and Basic Auth
  • PR-774 - Revert “Remove ZooKeeper from title”
  • PR-773 - Remove ZooKeeper from title
  • PR-756 - CLIENTS-986 Forward Auth headers
  • PR-748 - confluent.maven.repo: use ‘https’
  • PR-731 - Issue #704 - Make Serde constructors public

Version 4.1.2

  • PR-840 - CC-2201: Handle NPE exception when tombstone messages are encountered
  • PR-839 - CC-2024 : Fix schema not found issue
  • PR-801 - CC-1902 : pass all configs to underlying Serializer/deserializer

Version 4.1.1

  • PR-792 - Improve GC options
  • PR-787 - Docs for Subject Name Strategy and Basic Auth

Version 4.1.0

  • PR-757 - Add WantedBy dependency to ensure startup order
  • PR-741 - CC-1511 : Fix for subject strategy when used with new SubjectNameStrategy.
  • PR-742 - Added delete to the client.
  • PR-738 - CLIENTS-896: Fix path to patch/series
  • PR-735 - Change to use updated Kafka internal API for JaasContext
  • PR-718 - Log properly when Exception raised on SchemaRegistryRestApplication
  • PR-723 - Merge packaging branches into master and add systemd init scripts
  • PR-545 - #544: Add null check for schema doc while adding the property “connect.enum.doc” for schema conversion of enum types
  • PR-680 - New (key|value).multi.type option for Avro serialization
  • PR-710 - Support Multiple SchemaRegistryResourceExtension
  • PR-702 - Set metrics tag for SR metrics
  • PR-694 - check kafkaTopicReader and producer not null before closing
  • PR-686 - issue#629: endpoint to return schema literal
  • PR-696 - Fix sasl inherit
  • PR-683 - Systemd
  • PR-681 - Add getAllVersions to SchemaRegistryClient
  • PR-673 - CLIENTS-729 : ability to inject BasicAuth credentials from producer/consumer SASL
  • PR-676 - CLIENTS-774 : ability to forward authorization header
  • PR-664 - CLIENTS-708 & CLIENTS-720 Fix enum type in fromConnectData
  • PR-571 - Support basic auth credentials embedded in the schema.registry.url
  • PR-657 - Add maxPollTimeout parameter to ConsumerNetworkClient constructor

Version 4.0.1

This release upgrades Jackson 2.5.4 to 2.9.4, and fixes handling of Avro enums.

  • PR-753 - Bump Jackson version
  • PR-692 - MINOR: Backport enum fixes to 4.0.x

Version 4.0.0

  • PR-686 <https://github.com/confluentinc/schema-registry/pull/686> - Added REST endpoint to return the unescaped Avro schema for a specific subject and version.

Upgrade Notes

In 4.0.0, initial creation or validation of the topic used to store schemas has been reimplemented to use native Kafka protocol requests instead of accessing ZooKeeper directly. This means that you are no longer required to have direct access to the ZooKeeper cluster backing your Kafka cluster. However, note that this also requires appropriate permissions to create topics (on first execution of Schema Registry) or describe topics and configs (on subsequent executions to validate the topic is configured correctly). If you have authentication and authorization enabled on your Kafka cluster, you must ensure your principal has the correct permissions before upgrading Schema Registry cluster. Your principal must have the following permissions:

Create Schemas Topic

Operation Resource Reason
Describe Topic: kafkastore.topic Check existence of topic
Create Cluster Create the schemas topic, set compaction policy

Validate Schemas Topic

Operation Resource Reason
Describe Topic: kafkastore.topic Check existence of topic
DescribeConfigs Topic: kafkastore.topic Validate correct compaction policy on topic

Version 3.3.0

  • Upgrade avro to 1.8.2
  • PR-561 - Use TO_AVRO_LOGICAL_CONVERTERS to convert default values that are Kafka connect logical data types to internal format which correspond to schema type. Logic copied from AvroData fromConnectData
  • PR-549 - Replace usage of deprecated ZkUtils.DefaultAcls()
  • Allow for some retries when validating that all nodes have the same primary
  • Relocate Avro serdes under a new avro package
  • Increment Magic Byte for SchemaKey and add compatibility tests
  • Add Delete Schema support
  • Added avro-serde for Kafka Streams. Pulled from the example project.
  • #506 - The AvroMessageFormatter passes byte[] to an Avro encoder, but Avro only likes ByteBuffer. So we need to ByteBuffer.wrap() instead.
  • Added optional kafkastore.group.id config to override the one automatically created by Schema Registry
  • PR-476 - Adapt to KAFKA-4636 changes: Per listener security settings overrides (KIP-103)

Version 3.2.1

  • PR-503 - CLIENTS-244: Update 3.2.0 changelog
  • PR-499 - making sure Schema Registry doesn’t start with uncompacted topic
  • PR-497 - CLIENTS-103: Fix ArrayIndexOutOfBoundsException in SchemaRegistryPerformance by counting the registration attempt even if it failed.
  • PR-493 - Fixes for CLIENTS-257
  • PR-494 - MINOR: Add compact schemas topic doc
  • PR-458 - CLIENTS-104: Add a few retries during startup to allow for slow metadata propagation after creating the _schemas topic.

Version 3.2.0

  • PR-428 - Maven Checkstyle
  • PR-425 - Logical Type support
  • PR-440 - Documentation changes to reflect pull request 415
  • PR-451 - Generalize schema incompatibility message.
  • PR-457 - Update ClusterTestHarness to use o.a.k.common.utils.Time.
  • PR-458 - CLIENTS-104: Add a few retries during startup to allow for slow metadata propagation after creating the _schemas topic.
  • PR-464 - Improve request URL building in client
  • PR-465 - Add topic to error string to make debugging easier.
  • PR-448 - Fixes the following avro issues (complex union, document preservation, output schema != input schema)
  • PR-468 - CC-443: AvroData’s caches should be synchronized for thread-safety
  • PR-473 - Fix build to work post KIP-103.
  • PR-474 - Fix broker endpoint extraction to correctly translate to the non-ListenerName version that clients use to initiate broker connections.
  • PR-472 - Handle primitive types when specific.avro.reader is true
  • PR-477 - Docchangefor3.2
  • PR-488 - Don’t re-invoke SchemaBuilder.version() and SchemaBuilder.name() if the value has already been set.
  • PR-494 - MINOR: Add compact schemas topic doc

Version 3.1.1

No changes

Version 3.1.0

Schema Registry

  • PR-429 - Moving licenses and notices to a new format, generated by an internal script.
  • PR-415 - Option to apply fully transitive schema compatibility checking
  • PR-412 - Require bash since we use some bashisms and fix a copyright.
  • PR-396 - ZooKeeper and Kafka SASL support.
  • PR-384 - Update the link to Google Java code Style
  • PR-372 - Update KafkaStore to use moved TopicExistsException class.
  • PR-373 - Added get all subjects.
  • PR-364 - Increase testing timeouts from 5000ms to 15000ms
  • PR-346 - configured log4j to write to log file

Serializers, Formatters, and Converters

  • PR-403 - CLIENTS-101: Document wire format for Avro.
  • PR-379 - Maven plugin
  • PR-355 - Adding support for Fixed data types
  • PR-352 - Fix schemas.cache.config can’t be overrided

Version 3.0.1

Schema Registry

  • PR-369 - Introducing a new config: kafkastore.bootstrap.servers
  • PR-371 - Fixing a bug where the listener port wasn’t used in ZooKeeper
  • PR-390 - Include cURL output in quickstart
  • PR-392 - Fix schemes used for listeners

Serializers, Formatters, and Converters

  • PR-363 - 3.0.x duplicate schema support
  • PR-365 - Fix API compatibility regression from #363
  • PR-378 - Support null namespace for Array of Records

Version 3.0.0

Schema Registry

  • PR-212 - change the documentation on port to have a high priority and list it higher up in the docs
  • PR-298 - Bump version to 3.0.0-SNAPSHOT and Kafka dependency to 0.10.0.0-SNAPSHOT
  • PR-300 - Using the new 0.9 Kafka consumer.
  • PR-302 - Fix build to handle rack aware changes in Kafka.
  • PR-305 - Update to match changed methods in CoreUtils
  • PR-317 - Change the ‘host.name’ importance to high
  • PR-319 - KafkaStore SSL support.
  • PR-320 - API reference uses ‘integer’ Avro type which isn’t supported. ‘int’ is supported.
  • PR-329 - https support.

Serializers, Formatters, and Converters

  • PR-264 - Add null checks to json serializer/deserializer
  • PR-274 - Add support for Avro projections in decoders
  • PR-275 - Fixed references to confluent common version
  • PR-276 - Unit tests and bugfix for NPE when using nested optional fields
  • PR-278 - Test cases for optional nested structs
  • PR-280 - Fix fromConnectData for optional complex types
  • PR-290 - Issue #284 Cannot set max.schemas.per.subject due to cast exception
  • PR-297 - Allows any CharSequence implementation to be considered a string
  • PR-318 - Minor cleanup
  • PR-323 - Fix #142 - handle parsing non-json responses in the RestService
  • PR-332 - Add status storage topic to Connect Avro sample config.

Version 2.0.1

Schema Registry

  • PR-286 - Update Kafka version to 0.9.0.1-cp1.

Version 2.0.0

Schema Registry

  • PR-141 - Incorrect path to log4j.properties file for simple zip file layout
  • PR-143 - schema-registry-start does not work with -daemon argument
  • PR-152 - Added point about Google code style to Readme.
  • PR-163 - Expose more information when registry fails to start
  • PR-165 - Add compatibility support for SchemaRegistryClient
  • PR-167 - Update the versionCache with a new schemaVersionMap for a subject
  • PR-169 - Use correct URL to update compatibility setting of a subject
  • PR-180 - GH-177: Remove unneeded content-type headers for GET ops in quickstart and README
  • PR-184 - Support multiple registry URLs in client
  • PR-186 - Rename LocalSchemaRegistryClient to make it clear it is only intended to be used as a mock in tests. Fixes #185.
  • PR-187 - Correct example response for POST /subjects/(string: subject)/versions
  • PR-188 - Address GH-168; enable unit testing of CachedSchemaRegistryClient
  • PR-195 - Fixed typo in Exception message
  • PR-196 - Require Java 7
  • PR-197 - Enable test code sharing
  • PR-198 - Update jersey, jackson and junit versions to match rest-utils
  • PR-202 - Correct minor docs error in example response
  • PR-203 - Issue 194 rename main
  • PR-207 - Issue #170: PUT /config/(string: subject) should return 4xx for unknown subjects
  • PR-210 - Issue #208: Several RestApiTest test cases don’t test proper exception behavior
  • PR-219 - Update Kafka version to 0.8.3-SNAPSHOT so we can start developing using upcoming 0.8.3 features.
  • PR-237 - Update uses of ZkUtils to match changes made in KAFKA-2639.
  • PR-240 - Fixes Typo in the docs. ‘actsas’ -> ‘acts as’
  • PR-242 - Fixed Schema Registry build against kafka trunk
  • PR-243 - Use x.y.z versioning scheme (i.e. 2.0.0-SNAPSHOT)
  • PR-245 - Fix mvn assembly setup
  • PR-252 - Use Kafka compiled with Scala 2.11
  • PR-257 - Updated classpath in schema-registry-run-class to reflect changes in pom.xml
  • PR-258 - CC-53: Add worker configs for Avro Kafka Connect that integrates with Schema Registry.

Serializers, Formatters, and Converters

  • PR-146 - Added decoder to return a specific Avro record from bytes.
  • PR-162 - Add implementation of new Deserializer interface.
  • PR-192 - Add new module for Kafka JSON serialization stuff
  • PR-193 - Add more JSON codec support
  • PR-200 - Switch serializer config classes to use AbstractConfig from confluent-common instead of from Kafka.
  • PR-222 - Add AvroConverter in new copycat-avro-converter jar to convert Copycat and Avro data.
  • PR-234 - Add AvroConverter support for Decimal, Date, Time, and Timestamp logical types.
  • PR-235 - Add caching of schema conversions in AvroData and AvroConverter.
  • PR-247 - Update for Copycat -> Kafka Connect renaming.
  • PR-251 - Add tests of conversion of null values from Kafka Connect and fix handling of null for int8 and int16 types.
  • PR-254 - Ensure AvroConverter passes through null values without adding schemas and that deserialized null values are converted to SchemaAndValue.NULL.
  • PR-255 - CC-44: Include version when deserializing Kafka Connect data.
  • PR-256 - Encode null values for schemaless array entries and map keys and values as an Anything record.