Worker YAML Configuration

JFrog Installation & Setup Documentation

Content Type
Installation & Setup

The Worker System YAML supports shared configurations, Worker microservice configurations, and router configurations.

## Worker service configuration
# worker:
  ## Worker port for REST API
  # port: 8098
  ## Worker port for gRPC API
  # grpcPort: 8099
  ## Worker cache configuration
  # state: 
    # Defines how many key-value pairs can be stored in the state of a Worker
    # maxItems: 10
  # workerCache:
    ## Maximum number of workers stored in cache
    # max: 200
    ## Time to live for workers in cache
    # ttlMillis: 300000
  # worker:
    ## Amount of workers allowed per action
    # maxPerActionPerTenant: 10
    ## Defines how many memory max in Mb the node process can use per worker (child process)
    # maxOldSpace: 128
  # edition:
    # limits:
      ## Maximum number of code characters allowed in a single worker
      # maxCodeChars: 100000
      ## Maximum number of characters allowed in the ersion (when saving a Worker with version)
      # maxVersionNumberChars: 64
      ## Maximum number of version description characters allowed (when saving a Worker with version)
      # maxVersionDescriptionChars: 256
      ## Maximum number of version description characters allowed (when saving a Worker with version)
      # maxVersionCommitShaChars: 128
      ## Maximum number of versions kept per Worker
      # maxVersionByWorker: 50
  # execution:
    ## Set it to false to bypass the host check ; host check forbidds the 'context.clients.axios' client from calling localhost, unicast IPs and JFrog's domain names.
    # enableLocalNetworkValidation: true
    # errorRateLimiter:
      ## Backed off by 2^10 which is around 17 minutes
      # maxExponentBackoff: 10
      ## Reset errorRateLimiter every day (backoff exponent and current rate will be reset)
      # cleanIntervalMillis: 1000 * 60 * 60 * 24
      ## How many times we can fail withing cleanIntervalMillis before backing off
      # rateLimit: 10
    # limits:
      ## Maximum CPU time in milliseconds allowed for a single worker
      # cpuTimeMillis: 1000
      ## Maximum call time in milliseconds allowed for a single worker
      # callTimeMillis: 5000
      ## Maximum memory in Mb allowed for a single worker
      # memoryMB: 64
      ## How often we check for the worker status
      # checkIntervalMillis: 100
      ## Maximum call depth allowed for a single worker
      # maxCallDepth: 100
      ## Maximum time a worker can wait in the queue before being killed
      # maxWaitingInQueueMillis: 30000
      ## Maximum size of JSON payload in KB allowed to be sent to a worker
      # jsonPayloadLimitKB: 100
    # workers:
      ## Number of processes (execution unit) in worker pool
      # count: 10
    ## Security configuration for axios client used in workers
    # axios:
      ## List of axios config properties allowed for modification
      # requestConfigWhiteList: {}
      ## Whether to reset the request config base white list
      # resetRequestConfigBaseWhiteList: false
      ## DNS cache configuration
      # dnsCache:
        # enabled: true
        # maxTtlSeconds: 5
        # errorTtlSeconds: 1
    ## These fields will be skipped from obfuscation in the worker output
    # skipFieldsObfuscation:
      # - 'modifiedRepoPath'
    ## Execution history configuration
    # history:
      # enabled: false
      # storageConfig:
        ## The limit in Kb beyond which the entry will be truncated (essentially logs and custom data returned by the worker)
        # maxEntrySizeKb: 130
        ## Interval in milliseconds for trimming the history
        # trimIntervalMillis: 60000
        ## Maximum number of entries in the history for a single Worker
        # maxTrimLength: 100
        ## The target of the storage where the history will be saved.
        ## Must follow the pattern <protocol>://<valid_uri>
        ## protocol can be 'redis' (for Redis storage or Valkey), 'rediss' for Redis/Valkey connection over TLS/SSL or 'file'
        ## you can use several uri separated by a comma (will use the same protocol for all)
        ## Examples: redis://localhost:6379 or file:///var/logs/,another/path
        # url: 'file://$JFROG_HOME/var/log'
        ## Storage connection parameters separated by a semicolon
        ## List of parameters: username, password, mode (single or cluster), commandTimeoutMillis and connectionTimeoutMillis
        # params: 'mode=single'
        ## Number of seconds the history is kept in the storage such as Redis or Valkey (does not apply for file system storage mode)
        # streamTtlDurationSeconds: 1296000
    # security:
        # trustedCAFiles:
          # - $JFROG_HOME/var/etc/worker/keys/trusted
          # - $JFROG_HOME/var/etc/security/keys/trusted
    ## Configure the GRPC server (used by event producer to trigger Workers)
    # grpc:
        # maxConnectionAgeMillis: 300000
        # maxConnectionIdleMillis: 30000
    ## Config for fetching Worker code samples
    # marketplace:
        # enabled: true,
        ## you target your own GitHub repository for code samples. (Please refer to this README for the 
        # github:
            # baseUrl: 'https://github.com'
            # owner: 'jfrog'
            # repo: 'workers-sample'
            # samplesPath: 'samples'
            # branchRef: 'main'
        # pollingIntervalHours: 24
  ## Logging configuration
  # logging:
    ## Log throttle configuration
    # throttle:
      # maxItems: 50
      # intervalMillis: 250
    ## Application logging configuration
    # application:
      # dirPath: 'var/log'
      # level: 'info'
      # rotation:
        # frequency: '24h'
        # maxSizeMb: 25
        # maxFiles: 10
        # datePattern: 'YYYY-MM-DD-HH'
    ## Request logging configuration
    # request:
      # dirPath: 'var/log'
      # level: 'info'
      # rotation:
        # frequency: '24h'
        # maxSizeMb: 25
        # maxFiles: 10
        # datePattern: 'YYYY-MM-DD-HH'