= pusher
:type: output
:status: experimental
:categories: ["Services"]



////
     THIS FILE IS AUTOGENERATED!

     To make changes, edit the corresponding source file under:

     https://github.com/redpanda-data/connect/tree/main/internal/impl/<provider>.

     And:

     https://github.com/redpanda-data/connect/tree/main/cmd/tools/docs_gen/templates/plugin.adoc.tmpl
////

// © 2024 Redpanda Data Inc.


component_type_dropdown::[]


Output for publishing messages to Pusher API (https://pusher.com)

Introduced in version 4.3.0.


[tabs]
======
Common::
+
--

```yml
# Common config fields, showing default values
output:
  label: ""
  pusher:
    batching:
      count: 0
      byte_size: 0
      period: ""
      check: ""
    channel: my_channel # No default (required)
    event: "" # No default (required)
    appId: "" # No default (required)
    key: "" # No default (required)
    secret: "" # No default (required)
    cluster: "" # No default (required)
    secure: true
    max_in_flight: 1
```

--
Advanced::
+
--

```yml
# All config fields, showing default values
output:
  label: ""
  pusher:
    batching:
      count: 0
      byte_size: 0
      period: ""
      check: ""
      processors: [] # No default (optional)
    channel: my_channel # No default (required)
    event: "" # No default (required)
    appId: "" # No default (required)
    key: "" # No default (required)
    secret: "" # No default (required)
    cluster: "" # No default (required)
    secure: true
    max_in_flight: 1
```

--
======

== Fields

=== `batching`

maximum batch size is 10 (limit of the pusher library)


*Type*: `object`


```yml
# Examples

batching:
  byte_size: 5000
  count: 0
  period: 1s

batching:
  count: 10
  period: 1s

batching:
  check: this.contains("END BATCH")
  count: 0
  period: 1m
```

=== `batching.count`

A number of messages at which the batch should be flushed. If `0` disables count based batching.


*Type*: `int`

*Default*: `0`

=== `batching.byte_size`

An amount of bytes at which the batch should be flushed. If `0` disables size based batching.


*Type*: `int`

*Default*: `0`

=== `batching.period`

A period in which an incomplete batch should be flushed regardless of its size.


*Type*: `string`

*Default*: `""`

```yml
# Examples

period: 1s

period: 1m

period: 500ms
```

=== `batching.check`

A xref:guides:bloblang/about.adoc[Bloblang query] that should return a boolean value indicating whether a message should end a batch.


*Type*: `string`

*Default*: `""`

```yml
# Examples

check: this.type == "end_of_transaction"
```

=== `batching.processors`

A list of xref:components:processors/about.adoc[processors] to apply to a batch as it is flushed. This allows you to aggregate and archive the batch however you see fit. Please note that all resulting messages are flushed as a single batch, therefore splitting the batch into smaller batches using these processors is a no-op.


*Type*: `array`


```yml
# Examples

processors:
  - archive:
      format: concatenate

processors:
  - archive:
      format: lines

processors:
  - archive:
      format: json_array
```

=== `channel`

Pusher channel to publish to. Interpolation functions can also be used
This field supports xref:configuration:interpolation.adoc#bloblang-queries[interpolation functions].


*Type*: `string`


```yml
# Examples

channel: my_channel

channel: ${!json("id")}
```

=== `event`

Event to publish to


*Type*: `string`


=== `appId`

Pusher app id


*Type*: `string`


=== `key`

Pusher key


*Type*: `string`


=== `secret`

Pusher secret


*Type*: `string`


=== `cluster`

Pusher cluster


*Type*: `string`


=== `secure`

Enable SSL encryption


*Type*: `bool`

*Default*: `true`

=== `max_in_flight`

The maximum number of parallel message batches to have in flight at any given time.


*Type*: `int`

*Default*: `1`


