Skip to content

Xferity — Secure Self-Hosted Managed File Transfer (MFT) Platform

Xferity is a secure, self-hosted managed file transfer (MFT) platform that automates encrypted B2B file exchange across SFTP, FTPS, AS2, and Amazon S3 — with tamper-evident audit logging, a continuous security posture engine, and zero mandatory cloud dependencies.

Deploys as a single Go binary on Linux, Docker, or Windows. The only optional runtime dependency is PostgreSQL.


What mattersHow Xferity handles it
No config driftSingle canonical role model used by validation, UI, preflight, and runtime — no hidden divergence
No silent misconfigurationUnknown YAML fields fail at startup, not silently at runtime
No hardcoded credentials7 secrets providers; hardened mode rejects plaintext at startup
Verifiable audit trailSHA-256 hash chain links every event; verifiable with standard jq/awk tooling
Safe GnuPG automationEach operation gets an isolated GnuPG home; no shared keyring, no agent side effects
Continuous security posture6-domain posture engine with regression alerting, trend charts, and suppression tracking
Air-gap readyNo mandatory outbound connections; license validation is local by default
Deployment simplicitySingle Go binary, Docker Compose included, runs on Linux or Windows

Xferity supports the following enterprise transfer protocols:

  • SFTP — SSH host key verification, password and key authentication, remote stability checks, per-partner retry
  • FTPS — Explicit TLS, passive mode, SHA-256 certificate fingerprint validation
  • AS2 — Certificate-based B2B messaging, MDN receipts (sync and async), inbound + outbound
  • Amazon S3 / S3-compatible — Upload and download, IAM + static credentials, endpoint override for MinIO and R2

Xferity executes transfers as durable jobs. Failed jobs are retried with exponential backoff. Interrupted flows can be resumed from their last committed state without reprocessing completed files.


  • Flow-driven execution — every transfer is defined as a named, versioned YAML flow
  • Durable job queue — PostgreSQL-backed job queue with worker polling; jobs survive restarts
  • Scheduling — six-field cron expressions per flow; service-mode daemon execution
  • Retry with exponential backoff — configurable max attempts, base delay, cap; jitter prevents retry storms
  • Idempotency — SHA-256 content hash tracking prevents duplicate transfers across retries and reruns
  • Flow locking — distributed locks prevent concurrent execution of the same flow; stale locks auto-expire
  • Resume supportxferity resume re-enters a flow from last committed state
  • Dead-letter handling — files that exhaust retries move to a configurable dead-letter directory
  • OpenPGP encryption and decryption — native Go provider (gopenpgp) and GnuPG provider
  • OpenPGP signing and verification — detached and inline signatures
  • GnuPG fallback — controlled auto mode for enterprise key structures not handled by native provider
  • Isolated GnuPG execution — temporary GnuPG home per operation; no shared keyring
  • X.509 certificate management — import, generate, store, bind to partner roles; expiry tracking
  • PGP Key inventory — import, store with capabilities and capability verification, bind to partner roles
  • AS2 message crypto — per-partner certificate roles for signing, encryption, verification, HTTPS trust

Xferity continuously evaluates the security health of every partner, flow, and platform setting. Findings are organized across six domains:

DomainWhat it evaluates
CryptoCertificate expiry, PGP key bindings, AS2 cert roles
SecretsPlaintext credentials in config, missing secret references
TransportSFTP host key status, FTPS TLS settings, AS2 TLS settings
AuthUI authentication enforcement, rate limiting
Flow driftScheduled flows with no recent execution
PlatformRuntime health, required backend features

The posture engine produces Active Findings, Suppressed Findings, hourly snapshots, trend charts, and regression alerts when security state worsens. Alerts are delivered via Email, Slack, Webhook, Ntfy, Gotify, or Pushover.

Xferity resolves credentials from 7 providers at runtime. No hardcoded passwords in config:

ProviderReference format
Environment variableenv:MY_VAR
Filefile:/run/secrets/password
Local vault (AES-256)local-vault:key-name
HashiCorp Vault (KV v2)vault:secret/data/path#field
AWS Secrets Manageraws-sm:secret-id#field
Azure Key Vaultazure-kv:secret-name
Literal (testing only)literal:value
  • Structured JSONL audit log — one JSON event per line, per file operation
  • Tamper-evident SHA-256 hash chain — each event includes chain_seq, prev_hash, and event_hash; any modification, insertion, or deletion breaks the chain
  • Query index sidecar — fast file lifecycle lookup without scanning the full log
  • File tracexferity trace filename.xml shows every event for a given file
  • Strict redaction mode — strips PII, bearer tokens, private key blocks, and file paths from events
  • Configurable retention — prune events older than N days
  • Local auth — username + password with bcrypt, session-backed, CSRF protected
  • OIDC — OpenID Connect login for browser sessions in Postgres-backed deployments
  • Rate limiting — configurable per-IP rate limits on the UI and API
  • Hardened mode — fails startup if any security rule is violated (plaintext secrets, insecure TLS, etc.)

Available in Postgres-backed deployments:

  • Partner management — view, create, edit, test partner definitions
  • Certificate inventory — import, generate, view, bind to partner roles, expiry tracking
  • PGP Key inventory — import, view capabilities, bind to partner roles
  • Partner Crypto Policy — unified view of all crypto roles per partner
  • Security posture dashboard — Active Findings, Suppressed Findings, trend charts
  • Flow status and history — per-flow run history, last outcome, retry counts
  • Local secrets vault — create and manage local-vault: secrets without ever exposing plaintext
  • AS2 inbox — inbound AS2 messages and MDN tracking
  • License status — current license, feature flags, activation state

Every UI page is backed by an authenticated HTTP REST API.

  • Prometheus metrics — flow runs, job queue depth, transfer bytes, retries, certificate expiry, auth failures
  • Health endpoints/health/worker (unauthenticated), /health, /health/secrets, /health/certificates
  • Structured JSON application logslevel, flow, run_id, correlation_id on every line
  • Crypto observability fieldsprovider, fallback_used, fallback_reason, cleanup_status
  • Prometheus alert rules — pre-built alert rules for certificate expiry, queue buildup, flow failure rate

DeploymentWhen to use
Docker (single container)fastest path; Compose file included
Docker Compose (with PostgreSQL)full feature set with persistent state
Native binary (Linux)direct control over service management
Native binary (Windows)replacing Windows-based MFT or WinSCP scripts
Air-gappedno mandatory outbound connections; local vault for secrets

Xferity requires no inbound internet access to operate. License validation is local by default. All secrets providers (Vault, AWS SM, Azure KV) are optional.


  • SFTP — SSH host verification, auth, remote stability, posture
  • FTPS — explicit TLS, fingerprint validation
  • AS2 — certificate roles, MDN, inbound and outbound
  • S3-Compatible Storage — AWS S3, MinIO, Cloudflare R2

Xferity supports the following enterprise transfer protocols:

  • SFTP, FTPS, AS2, Amazon S3, S3-compatible storage (MinIO, Cloudflare R2)

Xferity secrets management supports:

  • environment variables, files, local AES-256 vault, HashiCorp Vault KV v2, AWS Secrets Manager, Azure Key Vault

Xferity notification channels include:

  • Email (SMTP), Slack (incoming webhook), HTTP Webhook, Ntfy, Gotify, Pushover

Xferity writes audit events as structured JSONL with SHA-256 hash-chain linkage per event. The chain is verifiable with standard JSON tooling.

Xferity retries failed transfers with configurable exponential backoff — max attempts, base delay, delay cap, and jitter to prevent retry storms.

Xferity tracks each processed file by SHA-256 content hash. Duplicate transfers are skipped across retries, restarts, and manual reruns.

Xferity evaluates security posture continuously across 6 domains: crypto, secrets, transport, auth, flow drift, and platform health.

Xferity runs with no mandatory outbound internet connections. License validation is local by default.

Xferity configuration is YAML under version control. Every partner, flow, and setting is a reviewable file.

Xferity deploys as a single Go binary. No Java runtime, no container-only deployment requirement, no phone-home licensing.