Skip to main content

CHANGELOG.md

# Changelog

## [3.0.1](https://github.com/intility/off_broadway_splunk/compare/v3.0.0...v3.0.1) (2026-05-15)


### Bug Fixes

* **producer:** Prevent adding nil to completed_jobs set ([f36a24a](https://github.com/intility/off_broadway_splunk/commit/f36a24a31d2df16ad5e05af825287857154a8158))

## [3.0.0](https://github.com/intility/off_broadway_splunk/compare/v2.1.4...v3.0.0) (2026-04-14)


### ⚠ BREAKING CHANGES

* add telemetry error events and stop producer on auth failures (v3.0.0) ([#14](https://github.com/intility/off_broadway_splunk/issues/14))

### Features

* add telemetry error events and stop producer on auth failures (v3.0.0) ([#14](https://github.com/intility/off_broadway_splunk/issues/14)) ([46fba50](https://github.com/intility/off_broadway_splunk/commit/46fba506f32d92057582d7ef933b366c55cc1f92))

## [2.1.4](https://github.com/intility/off_broadway_splunk/compare/v2.1.3...v2.1.4) (2026-04-14)

### Bug Fixes

* correct typespec annotations in Producer module ([5bafbd9](https://github.com/intility/off_broadway_splunk/commit/5bafbd97c16d33293e3e4cef0ae8aec961d9cace))
* **producer:** handle refetch when job already in progress ([53b3019](https://github.com/intility/off_broadway_splunk/commit/53b301959025856b06da5d8a7f56d6c9539baeb7))

### Documentation

* Update README badges and links ([069f548](https://github.com/intility/off_broadway_splunk/commit/069f5482769936465a39fd45af6c7d989540a4c4))

### CI

* Configure automated releases with release-please ([b18df30](https://github.com/intility/off_broadway_splunk/commit/b18df30437498cbb65a352a0d7ab74d9c344a899))

### Styles

* Reformat code to use 120 character line length ([3029b41](https://github.com/intility/off_broadway_splunk/commit/3029b41cc81e5d41ae56a9c97e94e4d876b761f4))

### Tests

* **logger:** Disable colored console output in test environment ([a3133e3](https://github.com/intility/off_broadway_splunk/commit/a3133e328cc3476bb040f8bbba153f8bcb291384))

## [2.1.3](https://github.com/intility/off_broadway_splunk/compare/v2.1.1...v2.1.3) (2024-08-20)

- Replace `:only_new` and `:only_latest` options with a `:jobs` option. Set `:jobs` to `:new` to only process new jobs, and `:latest`
  to only process the latest available job.
- Add deprecation warnings to `:only_new` and `:only_latest` option. The options are still accepted but will be removed in the
  next major release.
- If the client receives an `{:error, reason}` tuple, reschedule another fetch instead of blowing up.

## [2.1.1](https://github.com/intility/off_broadway_splunk/compare/v2.1.0...v2.1.1) (2023-12-28)

- Generate unique message IDs using the `_bkt` and `_cd` metadata fields.

## 2.1.1 (2023-12-07)

- Make the producer accept `{:error, reason}` tuples as response from API client. Whenever this occurs,
  simply reschedule a fetch after `receive_interval` milliseconds.

## [2.1.0](https://github.com/intility/off_broadway_splunk/compare/v2.0.0...v2.1.0) (2023-12-06)

### Options

- Add new option `only_new` to skip consuming any existing jobs. The pipeline will ignore currently known
  jobs, and only consume new jobs that arrives after the pipeline has started.
- Add new option `only_latest` to only consume the most recent job for given report or alert.

### Other

- Remove `OffBroadway.Splunk.Queue` GenServer process and keep the queue in the producer.
  This makes the producer process fully self-contained and we no longer need to communicate with
  another process to know what job we should produce messages for.
- New telemetry events `[:off_broadway_splunk, :process_job, :start]` and `[:off_broadway_splunk, :process_job, :stop]`
  are generated whenever a new job is started.
- Log error and return empty list of messages when receiving an `{:error, reason}` tuple while trying to fetch
  messages from Splunk.

## [2.0.0](https://github.com/intility/off_broadway_splunk/compare/v1.2.4...v2.0.0) (2023-05-23)

This almost a complete rewrite and is **incompatible** with the `v1.x` branch.
Instead of targeting a specific `SID` to produce messages for, this release is focused around producing messages
from Splunk Reports or (triggered) Alerts.

### Options

- Replace `sid` option with `name`. Pipelines should now be given the name of a report or alert.
- Remove `endpoint` option. All messages will be downloaded using the `results` endpoint.
- Remove `offset` option, as it is only available for the `events` endpoint.
- Add `refetch_interval` option. This is the amount in milliseconds the `OffBroadway.Splunk.Queue` process will
  wait before refetching the list of available jobs.

### Other

- Add `OffBroadway.Splunk.Queue` GenServer process that will start as part of the pipeline supervision tree.
- Remove `OffBroadway.Splunk.Leader` GenServer process as it is not usable anymore.
- Refactored `OffBroadway.Splunk.Producer` and `OffBroadway.Splunk.SplunkClient` to new workflow.
- Updated `telemetry` events to new workflow.

## [1.2.4](https://github.com/intility/off_broadway_splunk/compare/v1.2.3...v1.2.4) (2023-04-20)

### Bug Fixes

- Using `state.is_done` proved unreliable when consuming certain jobs. Replaced calculation of retry timings
  to be based on `receive_interval`.
- Fixed typings for `OffBroadway.Splunk.Leader` struct.

## [1.2.3](https://github.com/intility/off_broadway_splunk/compare/v1.2.2...v1.2.3) (2023-04-05)

- Remove `Tesla.Middleware.Logger` from default `OffBroadway.Splunk.SplunkClient` tesla client because
  of too much noise.

## [1.2.2](https://github.com/intility/off_broadway_splunk/compare/v1.2.1...v1.2.2) (2023-04-03)

- Filter `authorization` headers for `Tesla.Middleware.Logger`
- Replace some enumerations with streams

## [1.2.1](https://github.com/intility/off_broadway_splunk/compare/v1.2.0...v1.2.1) (2023-03-28)

- Accept `nimble_options` version `v1.0`

## [1.2.0](https://github.com/intility/off_broadway_splunk/compare/v1.1.1...v1.2.0) (2023-01-23)

### New options

- `api_version` - Configures if messages should be produced from the `v1` or `v2` versioned API endpoints.

### Dependencies

- Accept `telemetry` version `1.1` or `1.2`
- Accept `tesla` version `1.4` or `1.5`

## [1.1.1](https://github.com/intility/off_broadway_splunk/compare/v1.1.0...v1.1.1) (2023-01-16)

### New options

- `shutdown_timeout` - Configurable number of milliseconds Broadway should wait before timing out when trying to stop
  the pipeline.
- `endpoint` - Choose to consume messages using the `events` or `results` endpoint of the Splunk Web API.
- `offset` - Allow passing a custom initial offset to start consuming messages from. Passing a negative value will
  cause the pipeline to consume messages from the "end" of the results.
- `max_events` - If set to a positive integer, shut down the pipeline after producing this many messages.

## 1.1.0 (2022-10-28)

The first release targeted consuming a single SID (Search ID) produced by saving a triggered alert.