GitHub
07/28/2026, 9:41 PMtools/json2yaml-config, that converts the old (pre 0.5.0) osctrl JSON configuration files into the single per-service YAML configuration file used by osctrl-tls, osctrl-admin and osctrl-api since the YAML migration.
The old configuration was split across multiple JSON files, each wrapped in a top-level key:
| Old file | Top-level key | Contents |
| -------------------------------- | ----------------- | ------------------------------------------------------------------------ |
| tls.json / admin.json / api.json | tls / admin / api | Service values (listener, port, auth, logger/carver type, sessionKey...) |
| db.json | db | PostgreSQL backend |
| redis.json | redis | Cache |
| jwt.json | jwt | JWT for admin/api |
| saml.json | saml | SAML for admin |
| logger_<service>.json | logger type | Graylog, Splunk, Elastic, Logstash, Kinesis, S3 or Kafka |
| carver_<service>.json | s3 | S3 carver |
Usage
# Old TLS configuration with graylog logger and S3 carver
go run ./tools/json2yaml-config -service tls \
-config config/tls.json -db config/db.json -redis config/redis.json \
-logger config/graylog.json -carver config/carver_tls.json -output tls.yml
# Old admin configuration with SAML auth
go run ./tools/json2yaml-config -service admin \
-config config/admin.json -db config/db.json -redis config/redis.json \
-jwt config/jwt.json -saml config/saml.json -output admin.yml
# Print to stdout
go run ./tools/json2yaml-config -service api -config config/api.
jmpsec/osctrlGitHub
07/28/2026, 9:46 PM