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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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