Security

Security is the product

Every change is attributable. Secrets can be injected from an optional external store — Vault, CyberArk, Azure Key Vault and more — never baked into images or env vars. Every external HTTP endpoint is TLS-only.

Data residency and GDPR

ip·Solis is self-hosted and runs entirely on your own infrastructure — no data ever leaves your network to a third-party cloud. There are no external API calls at runtime and no telemetry sent to XenPool. That makes it a natural fit for GDPR-sensitive environments — healthcare, finance, the public sector — where data residency and processor chains matter.

Append-only audit log

Every mutation is recorded with attribution to a user, admin session, API token or webhook, and includes JSON diffs of the before / after state. Records cannot be edited or deleted through the application — database triggers enforce append-only. Streaming export is available for SIEM integration.

Role-based access control

Admin users have explicit roles for portal, admin and operator personas. The principle of least privilege governs every screen and every API endpoint.

Scoped API tokens

API tokens carry scopes. A read-only reporting token cannot mutate state. Tokens can be rotated and revoked from the admin UI, and every state-changing API call is captured in the audit log.

Secret handling

Integration credentials are stored in the app_config table (not in environment variables or container images) and can optionally be resolved from an external secret store (Vault, CyberArk, Azure Key Vault, AWS Secrets Manager, or Conjur) with a 60-second TTL cache. Secrets never appear in logs or the audit diff.

Container builds

Container images are built in CI with Docker Buildx and published on every tagged release.

Responsible disclosure

Found something? Email us. We acknowledge within one business day, and we will credit you in the changelog if you would like.

security@xenpool.de
Security is the product — ip·Solis