keepassxreboot / keepassxc

KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.
https://keepassxc.org/
Other
21.39k stars 1.48k forks source link

Broken uuid references when dragging entries to a new database #11335

Closed Jaldebehot closed 1 month ago

Jaldebehot commented 1 month ago

Overview

When dragging entries from one database to another (from one tab to the other), the entry uuid changes which breaks all uuid based references.

Steps to Reproduce

  1. Create a database with at least 1 entry with a UUID-based field reference such as {REF:U@I:1234...}
  2. Create a 2nd database
  3. Drag and drop the entries from one database into the other

Expected Behavior

Either UUID doesn't change, or broken UUID references are detected with a visible warning, or UUID references are silently updated to reflect the UUID change.

Actual Behavior

All UUID references are silently broken. There is no way to automatically detect or correct this. There is not even a way to search/filter for entries with broken references either, making cleanup and recovery very difficult.

Context

keepassxc 2.7.9 flatpak :)

droidmonkey commented 1 month ago

7450

Jaldebehot commented 4 weeks ago

To clarify: This is a bug report, not a feature request. Silently breaking entries when dragging and dropping them, with not even a warning if the entries being dragged contain references that could become broken or invalid, and no way to find/detect entries with broken references, is not expected behavior.

Jaldebehot commented 4 weeks ago

Addendum: In my particular scenario, I was moving a group from one database, into its own new, separate database. Within this group are entries that reference other entries in the same group. I was dragging the entire group over into the new database because I wanted to separate this group into its own separate file.

The only way for me to do this safely, would be for me to make a backup of my database, and then delete everything except for the group/passwords that I want to have separated.

If I create an empty database and try to drag and drop the group into it like I was expecting to do and like I tried at first, it silently breaks the entries I'm trying to copy, with no warning and no way to easily detect this after the fact. The entry that's being referenced by UUID is also one of the entries that are being copied as part of the group.