Domain Configuration

A Domain Object has the following schema. Since these objects usually appear in a list, there is no inheritance from reference.conf and therefore no default values.

// Domain Object
{
  // The domain name this Domain Object is used for
  domain-name: "example.com"

  // The ordered list of Middleware Objects for this domain
  middleware-chain: [
    {...},
    {...}
  ]
  // Configuration objects for each middleware
  middleware: {
    id: {...}
  }

  // This set of Listener Objects for this domain
  listeners: [
    {...}
  ]
  // Configuration objects for each listener
  listener-config: {
    id: {...}
  }

  // The mapping of Key Value Stores for this domain.
  kvstores: {
    ???: { ... }
  }

  // The set of extensions to ignore on incoming requests.  These extensions are ignored when
  // determining which upstreams can handle a request.
  // Eg: "http://example.com/user/1234.json" will be routed as "http://example.com/user/1234"
  ignoreExtensions: [
    "json",
    "xml"
  ]

  // This section controls how the domain handles changing weights for upstream services.
  upstream-weighting: {

    // Controls how many steps there are between the initial weight and final weight when
    // changing the weight.
    step-count: 100

    // Controls how long each step lasts when changing the weight
    step-duration: 6 seconds
  }

  // Determines which method is used for discovering upstream microservices.
  // See options below
  upstream-watcher: StaticUpstreamWatcher
}

Middleware Objects

These objects specify the middleware Shield should use when processing a request. See more.

Listener Objects

These objects specify the listeners Shield should notify after processing a request. See more.

Key Value Stores

Shield uses Key Value Stores for persisting any state. See more.

Upstream Watcher Settings

Config Value: StaticUpstreamWatcher

A static set of upstream services. See more.

Config Value: S3UpstreamWatcher

Continuously polls a file in AWS S3 that contains the upstream services. See more.

Config Value: (Fully Qualified Class Name)

Shield will create an actor of the given class. This allows an external class to manage upstream service discovery. See more.