Appearance
Migration & Data Portability
This guide covers exporting your data, migrating to a new infrastructure environment, and import paths when moving from another AI governance tool.
Exporting Your Data
All data stored in BitDrip is owned by your organization and can be exported at any time.
Audit Logs
Export the complete audit log as JSON:
bash
# Full export (all records)
curl -H "Authorization: Bearer $ADMIN_TOKEN" \
"http://your-policy-engine:3002/api/v1/audit/export" \
> audit-export.json
# Date-range export
curl -H "Authorization: Bearer $ADMIN_TOKEN" \
"http://your-policy-engine:3002/api/v1/audit/export?from=2026-01-01&to=2026-06-01" \
> audit-2026-h1.jsonEach record in the export includes:
id— UUIDtimestamp— ISO 8601 UTCorganizationIduserId— pseudonymizedaction—block,warn, orlogriskScorecontentHash— SHA-256 of the evaluated contentmatchedRules— array of rule IDs and categoriesprevHash— SHA-256 chain link to the previous entryhash— SHA-256 of this entry
Policy Configuration
Export all custom rules and compliance profile settings:
bash
# Export policies
curl -H "Authorization: Bearer $ADMIN_TOKEN" \
"http://your-policy-engine:3002/api/v1/policies/export" \
> policies-export.json
# Export compliance profile assignments
curl -H "Authorization: Bearer $ADMIN_TOKEN" \
"http://your-policy-engine:3002/api/v1/compliance/export" \
> compliance-export.jsonUsers and Organizations
bash
# Export user roster (no password hashes — use for re-provisioning only)
curl -H "Authorization: Bearer $ADMIN_TOKEN" \
"http://your-policy-engine:3002/api/v1/admin/users/export" \
> users-export.jsonFull Database Export
For a complete data snapshot including all tables:
bash
pg_dump "$DATABASE_URL" \
--no-owner \
--no-privileges \
--format=custom \
--compress=9 \
--file="bitdrip-full-export-$(date +%Y%m%d).pgdump"See the Database guide for detailed backup and restore procedures.
Migrating to a New Environment
Staging to Production Promotion
To move a tested staging deployment to production:
Export the staging database:
bashpg_dump "$STAGING_DATABASE_URL" --format=custom > staging.pgdumpSet up PostgreSQL and Redis on your production infrastructure
Restore to production:
bashpg_restore --dbname="$PROD_DATABASE_URL" --no-owner --no-privileges staging.pgdumpCopy environment variables —
JWT_SECRET,INTERNAL_SERVICE_SECRET, and other secrets must match between your staging export and the services that consume them. See Security Hardening for the full list.Deploy the same image tags that passed staging testing
Verify
/healthreturns200on all services before switching DNS
Moving to New Infrastructure (VM / Kubernetes)
- Export your current database (see above)
- Set up PostgreSQL and Redis on the target infrastructure
- Restore the database dump to the new PostgreSQL instance
- Configure environment variables (see Installation and Security Hardening)
- Deploy the Docker images from GHCR (see Container Registry)
- Point your DNS records at the new deployment
- Verify with health checks before decommissioning the old servers
Migrating from Another Tool
If you are moving from a competing AI governance or DLP tool, follow this process to import your existing policies and maintain audit continuity.
Importing Custom Rules
BitDrip's custom rule format:
json
{
"rules": [
{
"name": "Internal project codes",
"pattern": "PROJ-[0-9]{4,6}",
"category": "proprietary",
"action": "warn",
"confidence": "medium",
"message": "Internal project code detected"
}
]
}Import via API:
bash
curl -s -X POST \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d @rules-import.json \
"http://your-policy-engine:3002/api/v1/policies/import"Mapping Rule Actions from Other Tools
| Source tool action | BitDrip action |
|---|---|
| Deny / Block | block |
| Alert / Warn | warn |
| Monitor / Audit | log |
| Allow (explicit) | No rule needed — BitDrip allows by default |
Preserving Audit Log Continuity
If you need to import historical audit records from a previous tool for compliance continuity:
- Export your historical records in JSON format (one object per line, NDJSON preferred)
- Contact support@bitdrip.app for the audit import utility — historical records are imported with a special flag that marks them as migrated entries and does not include them in the active hash chain (preserving chain integrity)
Uninstalling BitDrip
Before uninstalling, export all data you need to retain:
- Export audit logs (JSON) — retain per your compliance framework's requirements
- Export policy configuration — in case you reinstall later
- Export compliance reports from the Dashboard using CSV or the printable report flow
Then remove the deployment:
bash
# Docker Compose
docker compose down -v # -v removes volumes and all stored dataWARNING
docker compose down -v permanently deletes all data stored in named volumes. Ensure your exports are complete before running this command.
Data Residency
BitDrip stores data only in the infrastructure you control. You choose where to deploy — on-premises, a cloud provider, a specific region — and data stays there.
No policy evaluation content is sent to Anchor Cyber Security servers. License validation requires an outbound connection to portal.bitdrip.app to verify the license JWT signature, but no content is transmitted.
For EU data residency requirements, deploy BitDrip on EU-based infrastructure and ensure your database and Redis instances are also in the EU region.
