Alpaca Remote Configuration

This guide details all configurations that are available within the Alpaca Remote. All configurations can be used in the application-prod.yml file located in the /etc/alpaca/remote/config.

Any changes made while Alpaca Remote is running will not take effect until after a restart. Use the following command to restart Alpaca Remote - service alpaca-remote restart.

YAML (YAML Ain't Markup Language)

All Alpaca configurations are in the YAML (.yml) format.

Basic Rules

  • YAML is case sensitive.
  • YAML does not allow the use of tabs. Spaces are used instead as tabs are not universally supported.
  • A dictionary is represented in a simple key: value form (the colon must be followed by a space):

        alpaca:
            migration:
              announcementRepositoryUsername: "BoNjOuRlEsAmIs049"
              announcementRepositoryPassword: "viveLEROILouis14"
              htmlEncodeExports: true
    
  • All members of a list are lines beginning at the same indentation level starting with a - (a dash and a space):

      broadworks:
        profileServer:
        - cluster: Production
          fileRepo: ProfileServer
          username: fileadmin
          password: P@ssw0rd
        - cluster: Lab
          fileRepo: ProfileServer
          username: fileadmin
          password: P@ssw0rd
    
  • Comments are denoted by #.

      # Alpaca Configuration
      alpaca:
          # Migration Configuration
          migration:
            announcementRepositoryUsername: "BoNjOuRlEsAmIs049"
            announcementRepositoryPassword: "viveLEROILouis14"
            htmlEncodeExports: true
    

Full Documentation

Complete YAML documentation can be found here.

Spring Boot

Alpaca Configurations are built upon Spring Boot. Within Spring there are a wide variety of pre-defined configurations. The complete list of configuration options can be found here.

Example Configuration

This sample configuration is meant as a guide only. Do not copy and paste the entire content into your configuration.

# ===================================================================
# Remote Configuration on BW Application Server
# ===================================================================
alpaca:
  remote:
    servers:
      - scheme: https
        hostname: alpaca.server.com
        port: 8443
        authenticationToken: XXXXYYYYZZZZ1111
        clients:
          - type: AUDIT_LOG
            paths: /path/to/audit/logs
            maximum-queue-size-per-server-in-megabytes: 3
          - type: BW_LICENSE
            paths: /path/to/bw/license
          - type: CDR
            paths:
              - /var/broadworks/billing/active
              - /var/broadworks/billing/latest
              - /var/broadworks/billing/archive

Remote (alpaca.remote)

  • servers: List of configured Servers.
    • scheme: The scheme used to connect to the Alpaca server. HTTPS is the only scheme that is currently supported.
    • hostname: The hostname of the Alpaca server.
    • protocols: The TLS protocols to use, ex. TLSv1.2.
    • port: The port the Alpaca server is running on.
    • authenticationToken: The authentication token generated from the Alpaca server that identifies the reader.
    • clients: List of configured clients.
    • type: The type of client. Valid options are AUDIT_LOG, ACCESS_LOG, BW_LICENSE, and CDR.
    • paths: The path to the directory to read. If type is CDR, a list of paths is accepted.
    • maximum-queue-size-per-server-in-megabytes: (Optional) The maximum size the audit log queue can be before transmitting to the server. Defaults to 5mb if not specified.
    • outbound-message-size-in-megabytes: (Optional) The size at which to send outbound messages. Defaults to 1mb if not provided.

JAVA_HOME

Alpaca Remote requires Java 8. This can be Oracle Java, OpenJDK, or Amazon Corretto.

If the server that Alpaca Remote is installed is running multiple versions of Java, and the required version for Alpaca is not the default, the JAVA_HOME variable for Alpaca can be manually set in the /ALPACA_REMOTE_HOME/configuration file. See below:

# Java Home
export JAVA_HOME=/usr/lib/jvm/<required_java_version>/jre/