You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Permissions, encryption, data storage locations, and threat model for iPhotron.
Overview
iPhotron is a local-first photo manager. It does not upload data to any cloud service, does not require an internet connection for core functionality, and does not collect user telemetry. All library data remains on the user's local filesystem. The only network-facing flow is an optional user-triggered maps-extension download on platforms where a published extension archive exists.
iPhotron requires no network access for normal library operation. Map rendering,
reverse geocoding, and Assign Location search work offline when the maps
extension is installed.
Feature
Access
Purpose
Map rendering
Offline (bundled OBF/vector map assets)
Render map tiles for the location view
Reverse geocoding
Local database lookup
Convert GPS coordinates to place names (offline, via reverse-geocoder library)
Map extension download
Optional HTTPS download
Fetch a published extension archive only when the user chooses the download path
Note: No telemetry or cloud sync is performed. A network connection is only
needed if the user chooses to download a missing map extension from a release
archive.
Encryption
At Rest
iPhotron does not encrypt data at rest. The following files are stored in plaintext:
File
Format
Contents
.iphoto.album.json
JSON
Album metadata: cover image, featured photos, sort order
Asset/index facts plus repository-backed user state such as favorites, hidden/trash flags, pinned/order data, and manual metadata
.iPhoto/faces/face_index.db
SQLite
Rebuildable People runtime snapshot
.iPhoto/faces/face_state.db
SQLite
Stable People decisions: names, covers, hidden flags, groups, ordering
Thumbnail cache
Image files
Downscaled preview images
settings.json
JSON
Theme, language, recent library, export destination, and other application preferences
Rationale: The data managed by iPhotron (album organization, edit parameters, file metadata) is non-sensitive in most contexts. Users who require encryption should use full-disk encryption (e.g., BitLocker, FileVault, LUKS).
In Transit
No media, metadata, telemetry, or library state is transmitted by normal app
operation. The optional maps-extension download retrieves a release archive
only when the user chooses that path.
Map assets are rendered through local native/helper renderers or Qt/OpenGL paths, not a web view; no script execution is performed; published extension archives should be validated before release
T5: Supply Chain Attack via Dependencies
Threat
A compromised PyPI package is installed
Impact
Arbitrary code execution
Mitigation
Pin dependency versions in pyproject.toml; review dependency updates; use virtual environments
Security Best Practices for Users
Use full-disk encryption (BitLocker / FileVault / LUKS) if your photo library contains sensitive content.
Keep ExifTool and FFmpeg updated to receive security patches.
Install ExifTool only from a trusted source if you plan to use GPS write-back through Assign Location.
Run pip install --upgrade periodically to update Python dependencies.
Use OS-level file permissions to restrict access to your library folder.
Back up your library regularly β iPhotron's .iPhoto/ directory and .ipo files should be included in backups.
Reporting Security Issues
If you discover a security vulnerability, please report it via GitHub Security Advisories or email the maintainers directly. Do not open a public issue for security vulnerabilities.