Summary
While reviewing cuebot/src/main/resources/opencue.properties it became clear that a substantial number of properties have no inline documentation (no preceding comment describing what the property does, units, valid range, or default behavior). This makes it hard for operators to know what they can safely tune, what units values are in, and what the behavioral implications are — especially when overriding via JVM -D / Spring Boot CLI args / env vars in Docker deployments.
This issue is documentation-only — proposing inline comments be added above each listed property in opencue.properties. No behavior change is requested.
Properties with no inline documentation
File: cuebot/src/main/resources/opencue.properties
Top-of-file properties
- L1
cue.proxy — what is this Ice/legacy proxy string used for? Is it still needed?
- L2
spring.velocity.checkTemplateLocation — why is this set, and is it still needed given current Spring Boot version?
Datasource (HikariCP) — no section header, no per-property docs
- L4
datasource.cue-data-source.driver-class-name
- L5
datasource.cue-data-source.jdbc-url
- L6
datasource.cue-data-source.username
- L7
datasource.cue-data-source.password
HikariCP — likely incorrect comment
- L29-30
datasource.cue-data-source.leak-detection-threshold — comment reads How often to check for idle connections that can be evicted (30 seconds), but this property is HikariCP's leak detection threshold (time a connection can be out of the pool before a leak is logged), not an idle-eviction interval. The doc should be corrected.
gRPC ports / message size
- L32
grpc.cue_port — Cuebot's main gRPC port (clients/GUI)
- L33
grpc.rqd_server_port — RQD report server port
- L34
grpc.max_message_bytes — max inbound gRPC message size; units (bytes)
Thread pools — section header # Healthy Threadpool Executor exists, but per-property docs are missing
- L49
booking_queue.threadpool.health_threshold
- L50
booking_queue.threadpool.core_pool_size
- L51
booking_queue.threadpool.max_pool_size
- L52
booking_queue.threadpool.queue_capacity
- L53
dispatch.threadpool.core_pool_size
- L54
dispatch.threadpool.max_pool_size
- L55
dispatch.threadpool.queue_capacity
- L56
healthy_threadpool.health_threshold
- L57
healthy_threadpool.min_unhealthy_period_min
Report / kill queues
- L62
report_queue.threadPoolSizeInitial
- L63
report_queue.threadPoolSizeMax
- L66
kill_queue.threadPoolSizeInitial
- L67
kill_queue.threadPoolSizeMax
- L68
kill_queue.queueSize
Kafka producer settings — section header only, no per-property docs
- L249
monitoring.kafka.acks (valid values: 0, 1, all)
- L250
monitoring.kafka.retries
- L251
monitoring.kafka.batch.size (bytes)
- L252
monitoring.kafka.linger.ms
- L253
monitoring.kafka.buffer.memory (bytes)
- L254
monitoring.kafka.compression.type (valid: none/gzip/snappy/lz4/zstd)
Kafka consumer settings — section header only, no per-property docs
- L257
monitoring.kafka.consumer.group.id
- L258
monitoring.kafka.consumer.auto.offset.reset (valid: earliest/latest/none)
- L259
monitoring.kafka.consumer.enable.auto.commit
- L260
monitoring.kafka.consumer.auto.commit.interval.ms
- L261
monitoring.kafka.consumer.max.poll.records
Elasticsearch connection — section header only, no per-property docs
- L268
monitoring.elasticsearch.host
- L269
monitoring.elasticsearch.port
- L270
monitoring.elasticsearch.scheme (valid: http/https)
Suggested format
For consistency with the well-documented sections (e.g. dispatcher.memory.*, maintenance.*), each entry should include:
- One-line description of what the property controls.
- Units, where applicable (ms, seconds, bytes, percent, etc.).
- Default value.
- Valid values / range, where applicable.
- Behavioral side-effect (e.g.
setting this above X may cause Y).
Why this matters
Cuebot is a Spring Boot application — every property here can be overridden via JVM -Dprop=value, Spring Boot --prop=value, or environment variables when running in Docker. Operators tuning a deployment (pool sizes, gRPC limits, Kafka/ES integrations) currently have to read Java source to understand what each property does. Inline comments would dramatically lower that bar.
Summary
While reviewing
cuebot/src/main/resources/opencue.propertiesit became clear that a substantial number of properties have no inline documentation (no preceding comment describing what the property does, units, valid range, or default behavior). This makes it hard for operators to know what they can safely tune, what units values are in, and what the behavioral implications are — especially when overriding via JVM-D/ Spring Boot CLI args / env vars in Docker deployments.This issue is documentation-only — proposing inline comments be added above each listed property in
opencue.properties. No behavior change is requested.Properties with no inline documentation
File:
cuebot/src/main/resources/opencue.propertiesTop-of-file properties
cue.proxy— what is this Ice/legacy proxy string used for? Is it still needed?spring.velocity.checkTemplateLocation— why is this set, and is it still needed given current Spring Boot version?Datasource (HikariCP) — no section header, no per-property docs
datasource.cue-data-source.driver-class-namedatasource.cue-data-source.jdbc-urldatasource.cue-data-source.usernamedatasource.cue-data-source.passwordHikariCP — likely incorrect comment
datasource.cue-data-source.leak-detection-threshold— comment readsHow often to check for idle connections that can be evicted (30 seconds), but this property is HikariCP's leak detection threshold (time a connection can be out of the pool before a leak is logged), not an idle-eviction interval. The doc should be corrected.gRPC ports / message size
grpc.cue_port— Cuebot's main gRPC port (clients/GUI)grpc.rqd_server_port— RQD report server portgrpc.max_message_bytes— max inbound gRPC message size; units (bytes)Thread pools — section header
# Healthy Threadpool Executorexists, but per-property docs are missingbooking_queue.threadpool.health_thresholdbooking_queue.threadpool.core_pool_sizebooking_queue.threadpool.max_pool_sizebooking_queue.threadpool.queue_capacitydispatch.threadpool.core_pool_sizedispatch.threadpool.max_pool_sizedispatch.threadpool.queue_capacityhealthy_threadpool.health_thresholdhealthy_threadpool.min_unhealthy_period_minReport / kill queues
report_queue.threadPoolSizeInitialreport_queue.threadPoolSizeMaxkill_queue.threadPoolSizeInitialkill_queue.threadPoolSizeMaxkill_queue.queueSizeKafka producer settings — section header only, no per-property docs
monitoring.kafka.acks(valid values:0,1,all)monitoring.kafka.retriesmonitoring.kafka.batch.size(bytes)monitoring.kafka.linger.msmonitoring.kafka.buffer.memory(bytes)monitoring.kafka.compression.type(valid:none/gzip/snappy/lz4/zstd)Kafka consumer settings — section header only, no per-property docs
monitoring.kafka.consumer.group.idmonitoring.kafka.consumer.auto.offset.reset(valid:earliest/latest/none)monitoring.kafka.consumer.enable.auto.commitmonitoring.kafka.consumer.auto.commit.interval.msmonitoring.kafka.consumer.max.poll.recordsElasticsearch connection — section header only, no per-property docs
monitoring.elasticsearch.hostmonitoring.elasticsearch.portmonitoring.elasticsearch.scheme(valid:http/https)Suggested format
For consistency with the well-documented sections (e.g.
dispatcher.memory.*,maintenance.*), each entry should include:setting this above X may cause Y).Why this matters
Cuebot is a Spring Boot application — every property here can be overridden via JVM
-Dprop=value, Spring Boot--prop=value, or environment variables when running in Docker. Operators tuning a deployment (pool sizes, gRPC limits, Kafka/ES integrations) currently have to read Java source to understand what each property does. Inline comments would dramatically lower that bar.