Passport and ID data is highly sensitive. GuestFill is designed with privacy as a core requirement.
- No external API calls by default. All processing is local. Do not add network requests without explicit user configuration.
- No hidden network requests. Every network request must be visible and configurable.
- No logging of sensitive data. Never log passport numbers, ID numbers, full names, or raw OCR text.
- No logging full Excel rows. Summary statistics only.
- Temporary files must be cleaned. Use the designated temp directory and clean up after processing.
- Reviewed Excel is the source of truth. OCR output is draft data and must be reviewed before use.
- Local files only. The app only reads files explicitly selected by the user.
- Clipboard access only when triggered. Clipboard operations require explicit user action.
- Browser extension bridge binds to
127.0.0.1:43175only (localhost), with token-based auth viaX-GuestFill-Tokenheader. - Tauri capabilities restrict Rust commands to approved APIs. Adding a new Tauri command requires updating the capability manifest.
Use the masking utility for any display or logging of partially sensitive data:
A12345678 → A123****
123456789012 → 1234****
| Variable | Purpose | Required |
|---|---|---|
GUESTFILL_BRIDGE_PORT |
Localhost bridge port (default: 43175) | No |
GUESTFILL_LOG_LEVEL |
Logging verbosity (debug/info/warn/error) | No |
GUESTFILL_OCR_TIMEOUT |
OCR worker timeout in seconds | No |
See .env.example for the full list with defaults.