Skip to main content

Agent Overview

The jokowipe agent is a lightweight, single-binary process that runs on your database server. It is the execution layer of jokowipe.id — it performs the actual backup operations locally and reports results to the control plane API.

Architecture​

What the Agent Does​

  1. Registers with the jokowipe.id API using an agent token
  2. Long-polls the API for pending backup jobs
  3. Executes backup commands (pg_dump, mysqldump, mongodump, etc.)
  4. Compresses the backup output (gzip by default)
  5. Uploads the compressed backup to your configured storage target
  6. Verifies the upload with a SHA-256 checksum
  7. Reports job status, metrics, and logs to the API
  8. Cleans up expired backup files from storage (based on retention policy)

Key Properties​

PropertyValue
LanguageGo (single static binary)
Binary size~15 MB
Memory footprint~20 MB idle, ~50-100 MB during backup
CPU usageLow idle, moderate during backup/upload
NetworkOutbound HTTPS only (no inbound ports needed)
AuthJWT agent token (short-lived, auto-refreshed)
OS SupportLinux (amd64, arm64), macOS, Windows

Security Model​

  • The agent communicates outbound only over HTTPS (port 443)
  • No inbound firewall rules are required
  • Agent tokens are JWTs signed by the API and auto-refreshed before expiry
  • Storage credentials are delivered to the agent over encrypted channels and stored in memory only (not written to disk)
  • The agent runs as a non-root user (recommended: dedicated jokowipe system user)

Agent vs. API Key​

Agent TokenAPI Key
PurposeAuthenticate the agent processAuthenticate API calls from code/scripts
ScopeExecute backup jobs assigned to this agentFull API access based on user role
RotationAuto-refreshed by the agentManual rotation required
Where usedagent.yaml config fileHTTP Authorization header

Supported Platforms​

PlatformArchitecturesPackage Formats
Linuxamd64, arm64, armv7Binary, deb, rpm, Docker
macOSamd64, arm64 (Apple Silicon)Binary, Homebrew
Windowsamd64Binary, MSI, Chocolatey

Next Steps​