Servers define network listeners and expose NativeLink services.
Server Definition
Server identifier for logging and telemetry. Defaults to index in servers array.
Network listener configuration.
Services to expose on this server.
Listener Configuration
HTTP/HTTPS/HTTP2 listener.{
listener: {
http: {
socket_address: "0.0.0.0:50051",
tls: {
cert_file: "/etc/certs/server.crt",
key_file: "/etc/certs/server.key"
}
}
}
}
Bind address. Examples:
0.0.0.0:50051 - All interfaces on port 50051
127.0.0.1:8080 - Localhost only
:50051 - All interfaces (shorthand)
TLS configuration.
Server certificate file path.
Client CA for mutual TLS (mTLS).
Certificate revocation list for mTLS.
HTTP compression configuration.Show compression properties
send_compression_algorithm
Server response compression.Options: none, gzip
accepted_compression_algorithms
Accept compressed requests from clients.accepted_compression_algorithms: ["gzip"]
max_decoding_message_size
Maximum GRPC message decode size (bytes). Default: 4MB.
Advanced HTTP/2 tuning parameters.
http2_keep_alive_interval
HTTP/2 keepalive ping interval (seconds).
experimental_http2_max_concurrent_streams
Maximum concurrent HTTP/2 streams.
experimental_http2_initial_stream_window_size
Initial HTTP/2 stream window size (bytes).
experimental_http2_initial_connection_window_size
Initial HTTP/2 connection window size (bytes).
experimental_http2_adaptive_window
Enable adaptive window sizing.
experimental_http2_max_frame_size
Maximum HTTP/2 frame size (bytes).
experimental_http2_keep_alive_timeout
HTTP/2 keepalive timeout (seconds).
experimental_http2_max_send_buf_size
Maximum send buffer size (bytes).
Services
Services expose Remote Execution API and administrative endpoints.
CAS
ActionCache
Execution
Capabilities
ByteStream
WorkerAPI
Admin
Health
Content Addressable Storage service.{
services: {
cas: [
{
instance_name: "main",
cas_store: "CAS_STORE"
}
]
}
}
Remote Execution API instance name. Clients specify via --remote_instance_name.
Action Cache service.{
services: {
ac: [
{
instance_name: "main",
ac_store: "AC_STORE",
read_only: false
}
]
}
}
Remote Execution API instance name.
Reference to Action Cache store.
Disable writes to Action Cache.
Remote Execution service.{
services: {
execution: [
{
instance_name: "main",
cas_store: "CAS_STORE",
scheduler: "MAIN_SCHEDULER"
}
]
}
}
CAS store for action inputs/outputs.
Scheduler to submit tasks to.
Server capabilities service.{
services: {
capabilities: [
{
instance_name: "main",
remote_execution: {
scheduler: "MAIN_SCHEDULER"
}
}
]
}
}
Remote execution capability.
Scheduler reference for capability information.
Streaming upload/download service.{
services: {
bytestream: [
{
instance_name: "main",
cas_store: "CAS_STORE",
max_bytes_per_stream: "64kb",
persist_stream_on_disconnect_timeout: 10
}
]
}
}
Chunk size per stream (bytes). Optimal: 16KB-64KB.
persist_stream_on_disconnect_timeout
Seconds to keep upload stream open after client disconnect for resume.
Worker registration and communication service.{
services: {
worker_api: {
scheduler: "MAIN_SCHEDULER"
}
}
}
Serve WorkerAPI on a separate non-public port. Workers have different permissions than clients.
Scheduler workers connect to.
Administrative REST API.{
services: {
admin: {
path: "/admin"
}
}
}
HTTP path for admin endpoint.
Health check endpoint.{
services: {
health: {
path: "/status",
timeout_seconds: 5
}
}
}
HTTP path for health endpoint.
Multiple Instances
Services can serve multiple instances with different configurations:
{
services: {
cas: [
{ instance_name: "dev", cas_store: "DEV_STORE" },
{ instance_name: "prod", cas_store: "PROD_STORE" }
],
ac: [
{ instance_name: "dev", ac_store: "DEV_AC" },
{ instance_name: "prod", ac_store: "PROD_AC" }
]
}
}
Example Configurations
Public CAS/AC Server
{
name: "public",
listener: {
http: {
socket_address: "0.0.0.0:50051"
}
},
services: {
cas: [{ cas_store: "CAS_MAIN" }],
ac: [{ ac_store: "AC_MAIN" }],
bytestream: [{ cas_store: "CAS_MAIN" }],
capabilities: [{}],
health: {}
}
}
Scheduler Server
{
name: "scheduler",
listener: {
http: {
socket_address: "0.0.0.0:50052"
}
},
services: {
execution: [{
cas_store: "CAS_MAIN",
scheduler: "MAIN_SCHEDULER"
}],
capabilities: [{
remote_execution: {
scheduler: "MAIN_SCHEDULER"
}
}]
}
}
Worker API Server (Internal)
{
name: "workers",
listener: {
http: {
socket_address: "127.0.0.1:50061" // Localhost only
}
},
services: {
worker_api: {
scheduler: "MAIN_SCHEDULER"
},
admin: {},
health: {}
}
}