Skip to content

packaging: portable data root (QUERYA_PORTABLE / QueryaData) #380

Description

@ZhuchkaTriplesix

Parent

Part of #379

Problem

Portable zip runs without install, but SQLite/themes/extensions/logs still use OS app-support paths. True USB-style portable needs an opt-in data root next to the binary.

Proposal

  1. Detect portable mode when:
    • env QUERYA_PORTABLE=1, or
    • sidecar directory QueryaData/ next to querya_desktop / querya_desktop.exe / $APPIMAGE
  2. Centralize path resolution (DB, themes, extensions, logs) behind one root helper; OS paths remain default for installable builds.
  3. Document that secrets still use OS keyring in v1 (libsecret / Credential Manager / Keychain) unless a later issue adds a portable secrets store.

Acceptance

  • Single resolver used by local_db, theme paths, extension paths, sandbox logs
  • Unit/integration tests for detection + path redirect
  • Docs: how to enable portable profile; what stays in the OS keyring
  • Installable / normal builds unchanged when flag/folder absent

References

  • lib/core/storage/local_db.dart
  • lib/core/theme/theme_paths.dart
  • lib/core/extensions/extension_paths.dart
  • lib/core/extensions/sandbox/sandbox_log_paths.dart

Metadata

Metadata

Labels

coreCore library logic and servicesenhancementNew feature or requeststorageTheme parser epic label: storage

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions