Update File synchronization and Data synchronization

Jérémy JAMET
2025-09-12 14:52:17 +02:00
parent d4e193d90b
commit 30796e9f91

@@ -4,30 +4,38 @@ The **KeePassDX** app uses your device's external file managers and the [*storag
You should see KeePassDX as a file editor and not a file manager. Links in the list of recent databases are only quick references to access historic links provides by the external file app used to open your database file.
KeePassDX does not have an internal database file copy to synchronize data. This allows for greater scalability and configuration, no data is stored in the application when the database is closed.
KeePassDX does not have an internal database file copy to synchronize data. This allows for greater scalability and configuration, **no data is stored in the application when the database is closed**.
With this system, a database file can be :
- stored and used locally to the device.
- stored on a medium external storage to the device (ie: [OTG](https://en.wikipedia.org/wiki/USB_On-The-Go)). If the device is lost, no data, even encrypted, can be recovered.
- provided by any remote file manager (cloud app).
- provided by any remote file manager _(cloud app if compatible)_.
The file can therefore be local or remote depending on your needs and the file manager used.
# Native synchronization
# Synchronization
Native synchronization of KeePass files makes it possible to update the data of the same file opened and modified from two places at the same time.
Native synchronization of KeePass files makes it possible to update the data of the same file opened and modified from two places at the same time. But synchronization can therefore be seen as a two-step action:
Synchronization can therefore be seen as a two-step action:
- **Data recovery from a predefined shared location.** It is not up to KeePassDX to handle this step, because the architecture of the Android system is built in such a way that a dedicated application manages to send and receive the files and then propose them through a [URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier). Here, KeePassDX is only an editor and many people blame it when most of the file synchronization problems are caused by the cloud application used because it doesn't handle file conflicts or has caching problems. See the [table below](https://github.com/Kunzisoft/KeePassDX/wiki/File-Manager-and-Sync#compatibility) for more explanations. **_The creation of a new file app fully compatible with open protocols and cloud clients is under study. (Dedicated app sync project : https://github.com/Kunzisoft/FileSync)_**
- **The merge of the updated data.** When the URI provides new data, KeePassDX is able to merge the currently open data with this retrieved data. _(from version 3.2.0)_
## File Synchronization
**Retrieving the database binary file from a predefined shared location is the first step but is not the responsibility of KeePassDX.**
KeePassDX was designed and created to be only a _**file editor**_. The architecture of the Android system is built in such a way that a dedicated application manages to send and receive the files and then propose them through a [URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier).
Many people blame it when most of the file synchronization problems are caused by the cloud application used because it doesn't handle file conflicts or has caching problems. See the [table below](https://github.com/Kunzisoft/KeePassDX/wiki/File-Manager-and-Sync#compatibility) for more explanations. **_The creation of a new file app fully compatible with open protocols and cloud clients is under study. (Dedicated app sync project : https://github.com/Kunzisoft/FileSync)_**
For more information on why not to integrate directly the Cloud APIs: [#342](https://github.com/Kunzisoft/KeePassDX/issues/342)
## Data Synchronization
**Merging of the deciphered data retrieved in the file, however, is the sole responsibility of KeePassDX.**
When the URI provides new data, KeePassDX is able to merge the currently open data with this retrieved data. _(from version 3.2.0)_
![file_sync](https://user-images.githubusercontent.com/19224038/151351073-402307fc-966f-442f-a528-f0dd809e2e97.png)
For more information on data merge: [#840](https://github.com/Kunzisoft/KeePassDX/issues/840)
For more information on why not to integrate directly the Cloud APIs: [#342](https://github.com/Kunzisoft/KeePassDX/issues/342)
## Save, Merge and Reload
### Save, Merge and Reload
There are 3 commands in KeePassDX to manage the synchronization :
- **Save data** : As the name suggests, it allows you to save the local data of the open database in the open data stream from its URI. This is the conventional method used to update the data on the reference medium.