Add nats-pure gem, Gitlab::Nats config, client, and app setting

What does this MR do and why?

Add nats-pure gem, Gitlab::Nats config, client, and app setting

Introduces the foundation for NATS-based audit event streaming:

  • Add the nats-pure gem (JetStream client).
  • Add Settings.nats (servers, TLS, connect_timeout, stream_replicas) and the config/gitlab.yml.example block. Empty servers means NATS is not configured and callers fall back to their non-NATS paths.
  • Add Gitlab::Nats (configured?/enabled? gates) and Gitlab::Nats::Client, a thin nats-pure wrapper (publish, pull_subscribe, stream management).
  • Add the use_nats_for_audit_streaming instance application setting (the operator master switch) with its JSON schema, model accessor, and Application Settings REST API exposure.

Closes #604448 (closed)

References

Screenshots or screen recordings

Before After

How to set up and validate locally

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Merge request reports

Loading
Loading