Configuration

Sieve is configured via application.yml (or environment variables following Spring Boot’s relaxed binding rules).

Sanctions Lists

Each list provider can be independently enabled, pointed at a custom URL, and scheduled for automatic refresh.

sieve:
  lists:
    ofac-sdn:
      enabled: true
      url: https://sanctionslistservice.ofac.treas.gov/api/PublicationPreview/exports/SDN.XML
      refresh-cron: "0 0 2 * * *"    # 2 AM daily
    eu-consolidated:
      enabled: false
      url: https://webgate.ec.europa.eu/fsd/fsf/public/files/xmlFullSanctionsList_1_1/content?token=dG9rZW4tMjAxNw
      refresh-cron: "0 0 3 * * *"
    un-consolidated:
      enabled: false
      url: https://scsanctions.un.org/resources/xml/en/consolidated.xml
      refresh-cron: "0 0 4 * * *"
    uk-hmt:
      enabled: false
      url: https://ofsistorage.blob.core.windows.net/publishlive/2022format/ConList.xml
      refresh-cron: "0 0 5 * * *"

Screening

sieve:
  screening:
    default-threshold: 0.80   # Score cutoff when client omits threshold
    max-results: 50           # Maximum matches returned per request

Index Storage

sieve:
  index:
    type: in-memory           # Default: ConcurrentHashMap-based index

# For PostgreSQL persistence, activate the postgres profile:
# SPRING_PROFILES_ACTIVE=postgres

Address Normalization

sieve:
  address:
    libpostal-enabled: false          # Requires native libpostal installation
    libpostal-data-dir: /opt/libpostal-data

Server

server:
  port: 8080

logging:
  level:
    dev.sieve: INFO
    root: WARN

All properties can be overridden via environment variables using Spring Boot’s relaxed binding. For example:

SIEVE_LISTS_OFAC_SDN_ENABLED=true
SIEVE_SCREENING_DEFAULT_THRESHOLD=0.85
SERVER_PORT=9090