= nsq
:type: input
:status: stable
: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::[]


Subscribe to an NSQ instance topic and channel.


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

```yml
# Common config fields, showing default values
input:
  label: ""
  nsq:
    nsqd_tcp_addresses: [] # No default (required)
    lookupd_http_addresses: [] # No default (required)
    topic: "" # No default (required)
    channel: "" # No default (required)
    user_agent: "" # No default (optional)
    max_in_flight: 100
    max_attempts: 5
```

--
Advanced::
+
--

```yml
# All config fields, showing default values
input:
  label: ""
  nsq:
    nsqd_tcp_addresses: [] # No default (required)
    lookupd_http_addresses: [] # No default (required)
    tls:
      enabled: false
      skip_cert_verify: false
      enable_renegotiation: false
      root_cas: ""
      root_cas_file: ""
      client_certs: []
    topic: "" # No default (required)
    channel: "" # No default (required)
    user_agent: "" # No default (optional)
    max_in_flight: 100
    max_attempts: 5
```

--
======

== Metadata

This input adds the following metadata fields to each message:

- nsq_attempts
- nsq_id
- nsq_nsqd_address
- nsq_timestamp

You can access these metadata fields using xref:configuration:interpolation.adoc#bloblang-queries[function interpolation].


== Fields

=== `nsqd_tcp_addresses`

A list of nsqd addresses to connect to.


*Type*: `array`


=== `lookupd_http_addresses`

A list of nsqlookupd addresses to connect to.


*Type*: `array`


=== `tls`

Custom TLS settings can be used to override system defaults.


*Type*: `object`


=== `tls.enabled`

Whether custom TLS settings are enabled.


*Type*: `bool`

*Default*: `false`

=== `tls.skip_cert_verify`

Whether to skip server side certificate verification.


*Type*: `bool`

*Default*: `false`

=== `tls.enable_renegotiation`

Whether to allow the remote server to repeatedly request renegotiation. Enable this option if you're seeing the error message `local error: tls: no renegotiation`.


*Type*: `bool`

*Default*: `false`
Requires version 3.45.0 or newer

=== `tls.root_cas`

An optional root certificate authority to use. This is a string, representing a certificate chain from the parent trusted root certificate, to possible intermediate signing certificates, to the host certificate.
[CAUTION]
====
This field contains sensitive information that usually shouldn't be added to a config directly, read our xref:configuration:secrets.adoc[secrets page for more info].
====



*Type*: `string`

*Default*: `""`

```yml
# Examples

root_cas: |-
  -----BEGIN CERTIFICATE-----
  ...
  -----END CERTIFICATE-----
```

=== `tls.root_cas_file`

An optional path of a root certificate authority file to use. This is a file, often with a .pem extension, containing a certificate chain from the parent trusted root certificate, to possible intermediate signing certificates, to the host certificate.


*Type*: `string`

*Default*: `""`

```yml
# Examples

root_cas_file: ./root_cas.pem
```

=== `tls.client_certs`

A list of client certificates to use. For each certificate either the fields `cert` and `key`, or `cert_file` and `key_file` should be specified, but not both.


*Type*: `array`

*Default*: `[]`

```yml
# Examples

client_certs:
  - cert: foo
    key: bar

client_certs:
  - cert_file: ./example.pem
    key_file: ./example.key
```

=== `tls.client_certs[].cert`

A plain text certificate to use.


*Type*: `string`

*Default*: `""`

=== `tls.client_certs[].key`

A plain text certificate key to use.
[CAUTION]
====
This field contains sensitive information that usually shouldn't be added to a config directly, read our xref:configuration:secrets.adoc[secrets page for more info].
====



*Type*: `string`

*Default*: `""`

=== `tls.client_certs[].cert_file`

The path of a certificate to use.


*Type*: `string`

*Default*: `""`

=== `tls.client_certs[].key_file`

The path of a certificate key to use.


*Type*: `string`

*Default*: `""`

=== `tls.client_certs[].password`

A plain text password for when the private key is password encrypted in PKCS#1 or PKCS#8 format. The obsolete `pbeWithMD5AndDES-CBC` algorithm is not supported for the PKCS#8 format.

Because the obsolete pbeWithMD5AndDES-CBC algorithm does not authenticate the ciphertext, it is vulnerable to padding oracle attacks that can let an attacker recover the plaintext.
[CAUTION]
====
This field contains sensitive information that usually shouldn't be added to a config directly, read our xref:configuration:secrets.adoc[secrets page for more info].
====



*Type*: `string`

*Default*: `""`

```yml
# Examples

password: foo

password: ${KEY_PASSWORD}
```

=== `topic`

The topic to consume from.


*Type*: `string`


=== `channel`

The channel to consume from.


*Type*: `string`


=== `user_agent`

A user agent to assume when connecting.


*Type*: `string`


=== `max_in_flight`

The maximum number of pending messages to consume at any given time.


*Type*: `int`

*Default*: `100`

=== `max_attempts`

The maximum number of attempts to successfully consume a messages.


*Type*: `int`

*Default*: `5`


