All notable changes to Nakadi
will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Do not log a complete stack trace when a user tries to publish to a non-existing event type
- Changed the way how nakadi parses events, eliminating the need of json serialization during publish
- Do not log a complete stack trace when a user makes a request for a non-existing subscription
- Allow to select partitions to read from a subscription
- Added support of future format of session in ZK
- Updated json-schema validation library, now using RE2/J for regex pattern matching
- Provides optional warning header when creating or updating event types. The purpose is to warn users of the archival of all events.
- Applications with READ rights to all_data_access can read from all event types, regardless of the event types' authorization policy
- Low-level API marked as deprecated
- Optimize subscription rebalance with inter-region zookeepers
- Server does not implement Problem JSON for auth errors
- Updated json-schema validation library
- Allow to patch subscription cursors in case when they were not initialized
- Allow to update event types with recursion in schemas
- Distinguish between employee token and service token in KPI events
- Do not create connection to kafka if kafka services are not needed
- Added publishing of subscription log events
- Nakadi collects event publishing KPI data
- Nakadi collects event streaming KPI data
- Allow changing event type category from NONE to BUSINESS
- Added timeout for subscription locking
- Fixed sending of KPI events after feature toggling
- Nakadi collects access log events
- Sending of KPI metrics for event-types count
- Optimized stream initialization
- Periodically recreate topology listener while streaming subscription
- Fix concurrency issue when switching Timelines
- NullPointer when changing additionalProperties from true to Object.
- Fixed issue with subscription stats, which would fail when the last committed offset is on a storage that was deleted
- Fixed issue with deletion of event types which had obsolete timelines
- Switch from local token info service to remote one
- Change default storage via env var or at runtime
- Limited stream_timeout for consumption to 1h ± 10min
- Fixed displaying of streamId for /stats endpoint
- Massive topic deletion while switching timelines is now made with small interval between deletions
- Improve SLO log with application and event type names
- Create first timeline for event type by default
- Optimized reactions on offset change while streaming subscription
- Committing with empty X-Nakadi-StreamId causes 503
- Create event type with SAFE rack-awareness
- New database table for authorization
- Endpoints for getting and updating the lists of administrators
- Default administrator defined in application.yml
- Allow admins to bypass event type authorization restrictions
- Admin endpoints use list of admins from Postgres
- Added logging of POST requests with compressed body.
- Enable lz4 compression type for Kafka producer
- Fixed DEBUG-level logging
- Sync flush batches when using gzip streams.
- Using Jetty instead of Tomcat as Servlet container.
- Using Jetty fixes a rare concurrency issue where messages could be delivered to the wrong stream.
- Added validation of offsets availability when resetting subscription cursors.
- Removed authorization for subscription creation
- Changed imports format to have the same structure
- Removed read_scopes and write_scopes from event types
- Removed CHECK_APPLICATION_LEVEL_PERMISSIONS feature
- Fixed bug with incorrect lag calculation for subscirption.
- Optimized subscription stats endpoint for subscriptions with many event types inside.
- Now it's possible to have a digit after the dot in event-type name.
- Updated kafka client library to 0.10.1.0
- Returned back CHECK_APPLICATION_LEVEL_PERMISSIONS feature toggle.
- The Nakadi manual merged to the project docs.
- The template added to generate Nakadi website using github pages.
- Addition of a new authentication mode, 'REALM'
- The metrics endpoint documentation key "summary" changed to "description" in Open API file.
- Event type authorization refactoring
- Removed unused feature toggle CHECK_APPLICATION_LEVEL_PERMISSIONS for authorization based on owning_application.
- Fixed formatting of CursorDistanceResult in Open API file.
- Fixed log level of InvalidStreamIdException.
- Fixed reading events with Low Level API from event type with expired timeline.
- Authorization on reading from, modifying and publishing to an event type.