config.example.toml 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # PPS Quarantine Manager — example config.
  2. # Copy to config.toml and fill in real values. config.toml is gitignored.
  3. [pps]
  4. # Base URL of the PPS admin service (REST APIs live on the admin port, default 10000).
  5. base_url = "https://pps.example.com:10000"
  6. # API user (admin account with an API Role that has the Quarantine module enabled).
  7. username = "apiuser"
  8. password = "secret" # PoC only — plaintext.
  9. # PPS admin certs are frequently self-signed. Set false to skip TLS verification (PoC),
  10. # or set to a path to a CA bundle to verify against it.
  11. verify_tls = false
  12. # Seconds to wait on a single PPS API call. Actions can be slow, so this is generous.
  13. timeout = 120
  14. # Mutual TLS (client certificate). Required if PPS/nginx returns
  15. # "400 No required SSL certificate was sent". A ready-made self-signed PoC cert lives
  16. # in certs/ (upload certs/client.crt to PPS: System > Certificates > Client Certificates).
  17. # Either a combined cert+key PEM (leave client_key empty), or a cert PEM plus its key.
  18. # Leave both empty if client-cert auth is not used.
  19. client_cert = "certs/client.pem"
  20. client_key = ""
  21. [quarantine]
  22. default_folder = "Quarantine" # folder shown on first load
  23. # Full folder list — the API cannot enumerate folders, so this is the source of truth
  24. # for the folder switcher, the Move dropdown, and the delete/report targets below.
  25. # Names MUST match PPS exactly (case- and space-sensitive).
  26. folders = ["Quarantine", "Attachment Defense", "Debugging - Josef", "Deleted"]
  27. deleted_folder = "Deleted" # where Delete (and Release) send messages
  28. report_release_folder = "Debugging - Josef" # Report & Release moves a copy here
  29. default_limit = 200 # UI default row count (max 1000)
  30. # The search API requires a from/rcpt/subject filter — a bare wildcard means
  31. # "everything in the folder". If your PPS doesn't treat this as match-all, change it
  32. # (e.g. "rcpt=@yourdomain.com").
  33. list_query = "from=*"
  34. default_days_back = 7 # startdate window (API alone only returns last 24h)
  35. chunk_size = 25 # localguids per PPS POST when the worker batches
  36. [app]
  37. secret_key = "change-me-to-a-random-string" # Flask session signing key
  38. listen = "127.0.0.1"
  39. port = 8080
  40. db_path = "jobs.db" # SQLite job queue file
  41. log_level = "INFO" # DEBUG for full request/response tracing
  42. worker_log = "worker.log" # audit log: one line per message acted on (rotated)
  43. [auth]
  44. # Static PoC login. Replaced by SAML/OIDC later.
  45. username = "admin"
  46. password = "admin"