Config-NINI

 view release on metacpan or  search on metacpan

t/relay.nini  view on Meta::CPAN

###############################################################
# relay.nini - example payment-relay daemon configuration
# exercises most NINI features in a single file
###############################################################

# root scalars, a presence flag, an explicit empty
service     relay
version     3.2.1

# valueless key is presence flag and will have value of "1"
daemonize
pidfile     /run/relay/relay.pid

# '#' is not special when is not line leading (i.e. comment)
banner      relay #4 - primary

# explicit empty, NOT a presence flag
maintenance ""


# abstract template (removed from the result), used via "&name"
*endpoint_defaults
  timeout_ms 5000
  retries    3
  keepalive
  tls_ciphers[:] ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256


*endpoint_defaults log
  level    info
  facility local0


# logging (defined here, extended again lower down)
=log
  dir     /var/log/relay
  rotate  daily

  # inline comment: two weeks
  keep    14
  formats[] json text syslog

# listeners: an auto-index list of records
=listener *
  # inherit template keys + nested 'log'
  & *endpoint_defaults

  bind  0.0.0.0:8583
  proto iso8583


=listener *
  &&& *endpoint_defaults
  &&& log
  bind      127.0.0.1:9090
  proto     http

  # local override of inherited default
  timeout_ms 2000

=hsm

  zzz xxx

# HSM pool (auto-index records)
=hsm pool *
  host  hsm-1.lan:1500
  slot  0
  label Primary HSM

  & hsm pool

=hsm pool *
  host  hsm-2.lan:1500
  slot  0
  label Backup HSM

  & hsm

# routing table keyed by path segments ('/' is a name char)
=route /iso/auth
  upstream hsm

  # mti is array with "," as values separator
  mti[,]   0100, 0110

  # ':' is ordinary in a value
  pan_mask 6:4

=route /iso/reversal
  upstream hsm

  # same mti array but when separator is not defined it will be whitespace
  mti[]   0400  0410

=route /admin/health
  upstream none

  # presence flag
  public


# plugins: whitespace list keeps ':' inside each element
=plugins
  load[] Relay:Filter  Relay:Audit  Relay:Metrics

  namespace[:] Relay:Filter:PCI
  searchpath[;] /opt/relay/lib; /usr/local/lib; /usr/lib


# clear flag: wipe a subtree before redefining (for layering)
=features experimental !!
  enabled false



( run in 1.265 second using v1.01-cache-2.11-cpan-c966e8aa7e8 )