All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
ApiaryGlueSync
overrideskipArchive
to betrue
by default. Backward incompatible behavior that turns off table archiving by default. Allows for per table overrides if needed. If you don't rely on Glue table version it is safe to upgrade to this version of the glue listener without making changes.
- Upgrade aws version from
1.11.520
to1.12.276
inapiary-receiver-sqs
.
- Add
aws-java-sdk-sts
to enable IRSA authentication inapiary-receiver-sqs
.
- Add
aws-java-sdk-sts
to enable IRSA authentication inapiary-metastore-listener
.
max.request.size
Kafka property inkafka-metastore-listener
.
compression.type
Kafka property inkafka-metastore-listener
.
apiary-gluesync-listener
when getting nullSortOrder
in Hive & Iceberg tables.
apiary-gluesync-listener
when getting last access time in Hive & Iceberg tables.
- Add
aws-java-sdk-sts
to enable IRSA authentication inapiary-gluesync-listener
.
aws-java-sdk
version to1.12.276
(was1.11.333
) so we can switch from KIAM to IRSA.
hive-hooks
- Logging table name when no conversion can take place.
hive-hooks
- Fixing potential NullPointerException inApiaryMetastoreFilter
andPathConverter
.
hive-event-listeners/apiary-gluesync-listener
- Added implementation for Glue database sync.
hive-event-listeners/apiary-gluesync-listener
added fix for NullPointerException on unpartitioned tables.
log4j
managed dependencies to overwrite transitive dependencies with log4j security issues being pulled in. These dependencies come from Hive and are provided but they break our tests.
- Same as
7.2.2
. Released while configuring GitHub actions workflow.
- Same as
7.2.2
. Released while configuring GitHub actions workflow.
hive-hooks
component to convert Storage Descriptor Info 'path' parameter (instead of Storage Descriptor).
hive-hooks
component to convert Storage Descriptor 'path' parameter.hive-hooks
component to convert table parameter 'avro.schema.url'.
- Excluded
org.pentaho:pentaho-aggdesigner-algorithm
fromkafka-metastore-events
,apiary-gluesync-listener
,apiary-metastore-auth
andapiary-ranger-metastore-plugin
.
- Added
hive-hooks
component for generic path and table location modification.
- Relocated Kafka libraries in
kafka-metastore-listener
undercom.expediagroup.apiary.extensions.shaded.org.apache.kafka
to avoid clashes when moving other components to a newer version of Kafka. eg-oss-parent
version updated to 2.3.2 (was 1.2.0).jdk.tools
excluded as a transitive dependency everywhere to allow compilation on Java 11.- A few transitive dependencies made explicit to allow compilation on Java 11.
- Renamed
hive-metastore-events
submodule tohive-event-listeners
.
- Upgraded version of
hive.version
to2.3.7
(was2.3.3
). Allows apiary-extensions to be used on JDK>=9.
- Bug in
privileges-grantor-lambda
where Apiary Events were not being deserialized properly.
client.id
is now required to configure Listener.topic
Kafka configuration parameter is now calledtopic.name
.- No longer sending MetaStore uris with Kafka message.
- Kafka Receiver is now configured using a builder.
eg-oss-parent
version updated to 1.2.0 (was 1.1.0).
sns-metastore-event
SNS message attribute:qualifiedTableName
.
- Upgraded Solr version to
7.7.1
(was5.5.4
) to fix issue where Ranger plugin jar (version2.0.0
) could not instantiate Solr client correctly.
- Moved
apiary-gluesync-listener
,apiary-metastore-auth
andapiary-ranger-metastore-plugin
(all previously top-level modules) to be submodules under a new top-level module namedhive-metastore-events
. - Grouped
apiary-metastore-consumers
,apiary-metastore-listener
andapiary-receivers
(all previously submodules inapiary-metastore-events
) in a new module namedsns-metastore-events
, itself a submodule ofapiary-metastore-events
. - Updated
apiary-ranger-metastore-plugin
to use Ranger 2.0.0 (was 1.1.0). - Changed parent to
com.expediagroup:eg-oss-parent:1.1.0
(wascom.hotels:hotels-oss-parent:4.0.1
).
apiary-ranger-metastore-plugin
module has anApiaryRangerAuthAllAccessPolicyProvider
class that can be configured inranger-hive-security.xml
to allow for an audit-only Ranger pre-event listener. Intent is to configure it on the Apiary read-only HMS instances.
privileges-grantor-lambda
supports granting access to tables that were renamed.apiary-metastore-consumers
sub-module ofapiary-metastore-events
.metastore-consumer-common
module that contains common metastore consumer classes.privileges-grantor-core
module that grants "SELECT" privileges on a table.privileges-grantor-lambda
module that triggersprivileges-grantor-core
logic from an AWS Lambda.DbName
andTableName
as additional message attributes for SNS.
apiary-metastore-events
module and movedapiary-metastore-listener
andapiary-receivers
into this.
apiary-metastore-listener
andapiary-receivers
package paths renamed fromcom.expediagroup.apiary.extensions
tocom.expediagroup.apiary.extensions.events
(if you refer to these classes by fully qualified name downstream you will need to update these references before upgrading to this version).
apiary-metastore-listener
now serializes metastore table properties as a Map instead of a String.
- Maven group ID is now
com.expediagroup.apiary
(wascom.expedia.apiary
). - All Java classes moved to
com.expediagroup.apiary
(wascom.expedia.apiary
). hotels-oss-parent
version updated to 4.0.1 (was 2.3.5).
MessageReader.read()
now returnsMessageEvent
, wrappingListenerEvent
andMessageProperty
.
SqsMessageReader.read()
no longer deletes messages. Instead,SqsMessageReader.delete()
has been added to give more control over inflight messages.
aws-java-sdk
dependency fromapiary-receiver-sqs
.
apiary-receivers
parent module andapiary-receiver-sqs
sub-module, a library to poll Apiary SQS messaging infrastructure for Hive events.
- Metastore events not published to SNS due to the Message Attribute type being undefined.
- Filtering of the SNS messages produced in ApiarySNSListener using the
eventType
Message Attribute.
- Filtering of the SNS messages produced in ApiarySNSListener using the
eventType
Message Attribute.
- Old locations for Table and Partitions to ApiarySNSListener events.
- Table parameters with a configurable regular expression to control which table parameters will be added to the ApiarySNSListener message. Default will be none.
- Apiary ReadOnly Auth Event Listener.
- Upgraded
hotels-oss-parent
version to 2.3.5 (was 2.3.3).
- Transitive dependency on
org.apache.hbase
hbase-client
. See #18.
- Partition Keys with Data types added to the JSON Events from ApiarySNSListener.
partition
is renamed topartitionValues
andoldPartition
tooldPartitionValues
in the JSON Events from ApiarySNSListener.
- JSON Events from ApiarySNSListener now marshals list as a JSONArray.
apiary-gluesync-listener
sub-module.apiary-metastore-metrics
sub-module.apiary-ranger-metastore-plugin
sub-module.
- Apiary SNS listener now configured using standard AWS configuration mechanisms. See #4.
- A
protocolVersion
field to the SNS messages generated byApiarySnsListener
. See #2. - Support for
INSERT
metastore events. See #6.
- Initial version to test that releases to Maven Central work.