NextGen APIs

Setup.Properties

After setting the properties Redeploy (restart) the application, is MANDATORY!

When using IntegrationAPI project as a library, the setup.properties file is configurable in the Technical Settings-> System page.

  • mandatory property with a String value:

integrationlayer.privateapi.url

There is an issue with the WAF rule EC2MetaDataSSRF_BODY when manually adding "localhost" within the data body, so preferable avoid to use it.

  • optional properties :

Property

Type

Default value

Values

integrationlayer.privateapi.connection.timeout

int (seconds)

15


integrationlayer.privateapi.response.timeout

int (seconds)

50


integrationlayer.privateapi.read.timeout

int (seconds)

30


integrationlayer.privateapi.write.timeout

int (seconds)

5


integrationlayer.privateapi.error.url.printable

boolean

true


integrationlayer.privateapi.logging.webclient.tracing.enable

boolean

false


integrationlayer.privateapi.logging.webclient.console.enable

boolean

false


integrationlayer.privateapi.logging.webclient.console.show-header

boolean

false


integrationlayer.privateapi.logging.webclient.console.show-header-authorization

boolean

false


integrationlayer.privateapi.logging.webclient.console.show-body

boolean

false


integrationlayer.privateapi.pool.max-idle-time

int (seconds)

30


integrationlayer.privateapi.pool.max-life-time

int (seconds)

60


integrationlayer.privateapi.pool.evict-in-background

int (seconds)

30


integrationlayer.field-mapper.strategy

string

BeanUtils

BeanUtils

CachedM2Mapper

M2Mapper

integrationlayer.async.processing.global.property-autoconfigure.enabled

boolean

false


integrationlayer.global-cache.enabled

boolean

false


integrationlayer.global-cache.default.ttl

string



integrationlayer.global-cache.default.max-size

int


ISO-8601 duration. for example PT2H

integrationlayer.integration-api.redis.instance

string



integrationlayer.header-propagation.headers

string


List of strings separated by a comma (“,”)

Global cache setup.property example for apis

# Global cache
# Per-API configuration
integrationlayer.global-cache.apis.[/configurations/system-settings/r1/external-systems/{externalSystemId}].enabled=true
integrationlayer.global-cache.apis.[/configurations/system-settings/r1/external-systems/{externalSystemId}].ttl-minutes=PT1H
integrationlayer.global-cache.apis.[/configurations/system-settings/r1/external-systems/{externalSystemId}].max-size=800

Application yml example for private api cache enabled:

YAML
integration-api:
  global-cache:
    enabled: true
    apis:
      # Asset Services
      "[/assets/r1/status]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/r1/status/{assetStatusId}]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/r1/types]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/r1/types/{typeId}]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/accounts/r1/contact-types]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/assets/accounts/r1/contact-types/{contactTypeId}]":
        ttl: PT30M
        max-size: 1000
        enabled: true
      "[/assets/accounts/r1/converter-types]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/accounts/r1/meter-brands]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/accounts/r1/meter-classes]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/accounts/r1/meter-locations]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/accounts/r1/meter-types]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/accounts/r1/types]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/assets/accounts/r1/types/{accountTypeId}]":
        ttl: PT2H
        max-size: 500
        enabled: true

      # Configuration Services
      "[/configurations/characteristics/r1/class-types]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/configurations/characteristics/r1/usage]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/configurations/properties/r1/tenant]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/configurations/system-settings/r1/data-types]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/configurations/system-settings/r1/external-systems]":
        ttl: PT1H
        max-size: 500
        enabled: true
      "[/configurations/system-settings/r1/external-systems/{externalSystemId}]":
        ttl: PT1H
        max-size: 500
        enabled: true
      "[/configurations/system-settings/r1/measurement-units]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/configurations/system-settings/r1/public-holidays]":
        ttl: PT2H
        max-size: 500
        enabled: true

      # Material Services
      "[/inventory/materials/r1/classes]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/inventory/materials/r1/goods-groups]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/inventory/materials/r1/items]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/inventory/materials/r1/management-types]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/inventory/materials/r1/types]":
        ttl: PT24H
        max-size: 1000
        enabled: true

      # Scheduling Services
      "[/scheduling/r1/clocking-types]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/scheduling/r1/transfer-time-type]":
        ttl: PT24H
        max-size: 1000
        enabled: true

      # Workforce Calendar Services
      "[/workforce/calendars/r1/availability-types]":
        ttl: PT24H
        max-size: 1000
        enabled: true

      # Territory Services
      "[/territory/locations/r1/countries]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/territory/locations/r1/districts]":
        ttl: PT24H
        max-size: 1000
        enabled: true

      # Workforce Resource Services
      "[/workforce/resources/r1/resource-types]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/workforce/skills/r1/levels]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/workforce/skills/r1/skills]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/workforce/teams/r1/team-cardinalities]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/workforce/teams/r1/team-cardinalities/{teamCardinalityId}]":
        ttl: PT24H
        max-size: 1000
        enabled: true

      # Work Order Services
      "[/work-orders/execution/r1/encoded-notes]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/work-orders/execution/r1/outcome-reasons]":
        ttl: PT2H
        max-size: 500
        enabled: true
      "[/work-orders/r1/operation-status]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/work-orders/r1/operation-types]":
        ttl: PT30M
        max-size: 500
        enabled: true
      "[/work-orders/r1/request-types]":
        ttl: PT30M
        max-size: 500
        enabled: true
      "[/work-orders/r1/service-types]":
        ttl: PT30M
        max-size: 500
        enabled: true
      "[/work-orders/r1/status]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/work-orders/r1/status/{statusId}]":
        ttl: PT24H
        max-size: 1000
        enabled: true
      "[/work-orders/r1/types]":
        ttl: PT30M
        max-size: 500
        enabled: true
      "[/work-orders/r1/types/{typeId}]":
        ttl: PT30M
        max-size: 500
        enabled: true
      "[/work-orders/r1/urgencies]":
        ttl: PT30M
        max-size: 500
        enabled: true
      "[/work-orders/r1/urgencies/{urgencyId}]":
        ttl: PT30M
        max-size: 500
        enabled: true
      "[/work-orders/r1/work-cycles]":
        ttl: PT30M
        max-size: 500
        enabled: true