Overview

The following is an example of a complete Xray system YAML file showing all the different parameters that you may configure.

It is recommended to use the templates available under $JFROG_HOME/xray/var/etc/

  • system.basic-template.yaml includes most commonly used system configurations
  • system.full-template.yaml includes a list of all available configurations



YAML File Format

The YAML file is constructed with keys and entities, using the following key: [entity] format.

  • Shared configurations specified under the shared section, are used by all micro-services.
  • Micro-service specific configuration are set under each micro-service section and override similar shared configurations for the specific micro-service.


Supported Configurations

Shared Configurations

## JFROG XRAY SYSTEM CONFIGURATION FILE

## HOW TO USE: comment-out any field and keep the correct yaml indentation by deleting only the leading '#' character.

configVersion: 1

## NOTE: JFROG_HOME is a place holder for the JFrog root directory containing the deployed product, the home directory for all JFrog products.
## Replace JFROG_HOME with the real path!
## For example, in RPM install, JFROG_HOME=/opt/jfrog

## NOTE: Sensitive information such as passwords and join key are encrypted on first read.
## NOTE: The provided commented key and value is the default.

## SHARED CONFIGURATIONS
## A shared section for keys across all services in this config
shared:
  ## Base URL of the JFrog Platform Deployment (JPD)
  ## This is the URL to the machine where JFrog Artifactory is deployed, or the load balancer pointing to it. It is recommended to use DNS names rather than direct IPs.
  ## Examples: "http://jfrog.acme.com" or "http://10.20.30.40:8082"
  #jfrogUrl:

  ## Security Configuration
  security:
    ## Join key value for joining the cluster (takes precedence over 'joinKeyFile')
    #joinKey: "<Your joinKey>"

    ## Join key file location
    #joinKeyFile: "<For example: JFROG_HOME/xray/var/etc/security/join.key>"
    
    ## Master key file location
    ## Generated by the product on first startup if not provided
    #masterKeyFile: "<For example: JFROG_HOME/xray/var/etc/security/master.key>"

    ## Maximum time to wait for key files (master.key and join.key)
    #bootstrapKeysReadTimeoutSecs: 120

  ## Logging Configuration
  logging:
    consoleLog:
      ## If true, all services' console logs willl be redirected to a common console.log
      #enabled: true

    ## Log rotation settings
    rotation:
      ## The max file size at which enforce rotation
      #maxSizeMb: 25

      ## The number of backup files to maintain
      #maxFiles: 10

      ## Whether to compress the backup file
      #compress: true

  ## Node Configuration
  node:
    ## A unique id to identify this node.
    ## Default: auto generated at startup.
    #id: "<For example: xray1>"
    ## Default: auto resolved by startup script
    #ip:

  ## Database Configuration
  ## PostgreSQL database used by all xray services
  database:
    #type: postgresql
    #driver: org.postgresql.Driver
    #url: postgres://<your db url, for example: localhost:5432>/xraydb?sslmode=disable
    #username: xray
    #password: xray

  ## RabbitMQ Configuration
  ## RabbitMQ messaging system used by all xray services
  rabbitMq:
    active:
      node:
        ## RabbitMQ node name used for rabbitMq initialisation and clusterring - $(hostname -s)
        #name:

    erlangCookie:
      ## Erlang cookie used for authentication between RabbitMQ nodes
      #value: JFXR_RABBITMQ_COOKIE

    #url: amqp://<your RabbitMQ url, for example: localhost:5672>/
    ## Controls whether to automatically clean up stale nodes
    #clean: "N"
    #username: guest
    #password: guest

  ## Add any custom environment variables to be passed to all the services
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

## XRAY SERVER TEMPLATE
server:
  #port: 8000

  ## Xray server logging configuration
  logging:
    ## Server log settings
    application:
      ## The log level: error, warning, info, debug, trace
      #level: info

      ## The log format: jfxr, json
      #format: "jfxr"

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxAgeDays: 0
        #maxFiles: 10

    ## Request log settings
    request:
      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxAgeDays: 0
        #maxFiles: 10

  ## Add any custom environment variables to be passed to all the services
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

Xray Operational Microservices

## XRAY ANALYSIS TEMPLATE
analysis:
  #port: 7000

  ## Xray analysis logging configuration
  logging:
    ## Analysis log settings
    application:
      ## The log level: error, warning, info, debug, trace
      #level: info

      ## The log format: jfxana, json
      #format: "jfxana"

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxFiles: 10

  ## Add any custom environment variables to be passed to all the services
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

## XRAY INDEXER TEMPLATE
indexer:
  #port: 7002

  ## Xray indexer logging configuration
  logging:
    ## Indexer log settings
    application:
      ## The log level: error, warning, info, debug, trace
      #level: info

      ## The log format: jfxidx, json
      #format: "jfxidx"

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxFiles: 10

  ## Add any custom environment variables to be passed to all the services
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

## XRAY PERSIST TEMPLATE
persist:
  #port: 7003

  ## Xray persist logging configuration
  logging:
    ## Persist log settings
    application:
      ## The log level: error, warning, info, debug, trace
      #level: info

      ## The log format: jfxpst, json
      #format: "jfxpst"

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxFiles: 10

  ## Add any custom environment variables to be passed to all the services
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

Router Configuration

## ROUTER TEMPLATE
router:
  ## Profiling related settings
  profiling:
    ## Enable profiling endpoints
    #enabled: true

  ## Corporate proxy related settings
  proxy:
    ## Proxy url for all outgoing http requests
    #httpUrl: ""

    ## Proxy url for all outgoing https requests
    #httpsUrl: ""

    ## List of target hosts to communicate with directly, bypassing the proxy.
    ## "localhost" will always be added to this list automatically.
    #ignoredHosts:
    #- "ignore.me.com"
    #- "ignore.me2.com"

  ## Router entry points
  entrypoints:
    ## The internal port, used by local services to communicate with the router and any other service (local and external)
    #internalPort: 8046

    ## The external port, registered in the service registry, used by external services to communicate with services in this node
    #externalPort: 8082

    ## An internal port used for internal Traefik (and Router) REST API
    #traefikApiPort: 8049

    ## An internal port used for Router's gRPC API
    #grpcPort: 8047

  ## Service registry (Access) communication settings
  serviceRegistry:

    ## Service registry (Access) TLS verification skipped if enabled
    #insecure: false

    ## Service registry (Access) request timeout
    #requestTimeout: 15s

  ## Topology related settings
  topology:
    ## Local topology settings
    local:
      ## Settings for checking the health of local services
      healthCheck:
        ## Duration between health checks
        #interval: 5s

        ## Health check request timeout
        #requestTimeout: 5s

        ## The number of consecutive successful health checks that must occur before declaring an instance healthy
        #healthyThreshold: 2

        ## The number of consecutive failed health checks that must occur before declaring an instance unhealthy
        #unhealthyThreshold: 2

    ## External topology settings
    external:
      ## Settings for refreshing the router with external topology from the service registry
      refresh:
        ## Refresh interval
        #interval: 3s

        ## The maximum duration a service can be considered as healthy since its last heartbeat
        #maxStaleHeartbeat: 30s

  ## Support bundle aggregation settings
  supportBundle:
    ## The maximum duration support bundle aggregation is allowed before it is automatically cancelled
    #aggregationTimeout: 1h

  ## Logging settings
  logging:
    ## Router log settings
    application:
      ## The log level: error, warning, info, debug, trace
      #level: "info"

      ## The log format: jftext, json
      #format: "jftext"

      ## Whether to include the caller information (runtime frame)
      #caller: false

      ## Whether to print the log also to stdout
      #console: true

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxAgeDays: 0
        #maxFiles: 10

    ## Traefik log settings
    traefik:
      ## The log level: error, warning, info, debug, trace
      #level: "info"

      ## The log format: jftext, json
      #format: "jftext"

      ## Whether to include the caller information (runtime frame)
      #caller: false

      ## Whether to print the log also to stdout
      #console: true

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxAgeDays: 0
        #maxFiles: 10

    ## Request log settings
    request:
      ## If true, request log will contain additional information
      ## This may result in a slight performance overhead
      #verbose: false

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 100
        #maxAgeDays: 0
        #maxFiles: 10

  ## Add any custom environment variables to be passed to this service
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64