Skip to content

What's new in 2.3.1#

This documentation covers everything new in Piler enterprise edition 2.3.0 and 2.3.1 (2.2.5 was not released). For the detailed engineering changelog, including fixes and security improvements, see the Changelog.

Revision #1

Publication date: 2026-NOV-08

E-invoices in the archive#

Piler recognizes e-invoices when it archives an email: XRechnung and other UBL or CII invoices, ZUGFeRD and Factur-X. Find them with attachment:einvoice or the "E-invoice" checkbox of the advanced search. For a tax audit, export the e-invoices of a period in one ZIP: each invoice as received, the email it came with, and an index with the checksum of every file. See GoBD.

Configuration report#

The admin UI writes the configuration part of your compliance documentation (Verfahrensdokumentation): the settings, retention and exclusion rules, roles, users and active legal holds of a tenant, in English or German, as Markdown or JSON, ready to print. See Procedural documentation.

Every configuration change in the audit log#

The audit log records every change made through the web UI or the API, with the new values: domains, groups, LDAP, profiles, import jobs, DLP and compliance rules, branding, quotas, Teams and Slack settings, and more. Passwords are never logged.

Import PST files directly#

pilerimport -pst imports Outlook, Exchange, Microsoft 365 and Enterprise Vault PST exports without a conversion step. Sent mail keeps its SMTP sender and recipients, Bcc included, and Exchange addresses of internal mail can be mapped to SMTP addresses from Active Directory. See Import PST files.

The Microsoft 365 download script retries throttled requests and continues an interrupted download where it stopped. See Import from Microsoft 365.

Native backups#

The deb/rpm packages come with a backup script: the databases, the search index, the stored emails and the settings go to a restic repository, and can be restored on a new host. The health page and the metrics show the last backup, with alerts for a failed, missing or too old one. See Backup.

Monitoring#

/metrics now reports per tenant the received and purged emails, the size of the archive and of its index, the archiving pipeline (archived, duplicate and failed emails, the queue, the S3 uploads) and the quotas. Alert rules, a Grafana dashboard and Prometheus and Grafana Cloud setups are ready to use. See Hosting: monitoring.

For service providers#

  • Quota banners: the master admin sees the tenants near or over a quota, and can show a tenant's own admin a banner too.
  • Billing API tokens: read-only tokens for billing scripts, limited to the billing endpoints, optionally to some addresses and with an expiry, so a script doesn't need the admin's password. See The billing API.
  • Active users: the user count is the addresses that received email in the last 90 days, so former employees don't count; the number of every archived address is shown too.

Turn off features per role#

DISABLED_FEATURES_USER and DISABLED_FEATURES_AUDITOR turn off features such as restore, tag, export or Smart Insights for the users or the auditors, per tenant: they're hidden in the UI and refused by the API. DATAOFFICER_REVIEW_ONLY limits the data officer to reviewing removal requests. See Config options.

Simpler retention#

  • A retention rule is active when saved, with no grace period to confirm. A rule shorter than the default retention asks you to type its days, so it isn't shortened by mistake.
  • The admin of a single-tenant install sets the default retention on the retention page (Compliance > Retention Policy), logged in the audit log. See Default retention.
  • ENABLE_TENANT_RETENTION_POLICIES and MIN_RETENTION_DAYS are in the .env, and can be set per tenant.

Clean up orphaned files#

purge -orphans finds the stored files no email refers to, in the local store or the S3 bucket, and removes them with -remove, with safeguards against emptying the store by mistake.

Thread view#

View Thread shows the whole conversation of an email; Exit Thread takes you back to the search results where you left them.