Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possibility to stream over a database? #19

Open
kl11n opened this issue Apr 2, 2024 · 3 comments
Open

Possibility to stream over a database? #19

kl11n opened this issue Apr 2, 2024 · 3 comments

Comments

@kl11n
Copy link

kl11n commented Apr 2, 2024

Hi there.

Would it be possible to add a feature to stream over a database and return only the filtered entries by a supplied filter?
My problem are huge databases. We do have a DB which is round about 4gb in decoded state and it cannot be in ram the complete time.

@Anvell
Copy link
Collaborator

Anvell commented Apr 11, 2024

Hello,

this is quite unusual situation for KeePass. Does this size comes from huge binary attachments or entry fields?

@kl11n
Copy link
Author

kl11n commented Apr 12, 2024

Hi,

the size actually comes from the notes fields. there are multiple mappings between different id systems we are using and the file grew over time. Splitting it would probably not work either because we would need to remember in which db which entry was or load all of them into the program which would result in the same problem.

I know this isn't really the most usual use case for a keepass db

@Anvell
Copy link
Collaborator

Anvell commented May 6, 2024

KeePass is generally not suitable to store large datasets, in order to slice through encrypted content one would need to orchestrate reading content blocks with streaming decryption plus deflation, and on top of that using some lenient XML parser with extra logic to merge partial data chunks. This is a fairly non-trivial endeavour that would still be slow if multiple queries were required 🤔

I don't know the context, but maybe a possible solution would be to migrate to a different format, maybe something like SQLite with partially encrypted data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants