Graylog2 / Graylog2/graylog2-server

Add machine-readable schema files for Graylog configuration

Open
#22,657 2 comments 0 reactions 0 assignees View on GitHub
feature triaged
Dominant language
Java
Stars
8.1k
Forks
1.1k
Avg merge
1d 20h
Merged PRs (30d)
217

Description

## What?

Introduce machine-readable schema files (e.g., YAML or JSON Schema) that formally describe the accepted configuration structure of `graylog.conf`, `datanode.conf`, etc.

These schema files should live in a top-level `schema/` directory (versioned like `graylog-server-6.2.schema.yaml`) and contain metadata such as key types, allowed values, default values, descriptions, and whether a field is required.

These schemas would not affect runtime behavior, but provide formal structure for validation, automation, documentation, and tooling.

## Why?

We deploy Graylog in automated and declarative environments, where it's important to **validate configuration correctness before startup**.

Having machine-readable schemas would enable:

- Early detection of misconfiguration
- CI validation pipelines
- Automated documentation generation
- Version-based change tracking
- Better integration into external tools (e.g., custom builders, deployers, or testing pipelines)

This would benefit a wide range of use cases while not interfering with core functionality.

It’s also important to note that machine-readable schemas are **not just useful in containerized or cloud-native environments**, but also on **traditional operating systems** where administrators want to lint or pre-validate configuration files before rolling them out across systems.

I am happy to contribute the initial schema + structure proposal if this idea is welcomed.

## Your Environment

* Graylog Version: 6.2.x (target)
* OpenSearch Version: N/A
* MongoDB Version: N/A
* Operating System: Kubernetes / Bare-metal / Cloud / Traditional OS environments
* Browser version: N/A

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.