This FR is continuation of almost 3 years old FR.
KeePass current trigger system has severe drawbacks, first of all in security. Triggers looks like an afterthought. I understand the desire to keep kdbx database format portability and base functionality across all devices and OS's, so trigger system had not affected inner kdbx native format yet. But there is the price to pay for it. Such
an afterthought implementation makes not a lot of sense in terms of security, extensibility and manageability. The design flaws are obvious:
Two-tier implementation. Not only for the trigger system, but also for the entire configuration system!
Means we have outer config for KeePass (the current one, BTW it should have new hardened defaults to prevent metadata leaks!), where users have usual UI customization stuff etc. AND also inter-db (outer) trigger system for general program automation tasks (as it currently implemented). But, with the second inner (and optional) tier or scope that inherits (like in OOP) and overrides outer config and trigger system when a db just becomes ready to render (BTW delay-able or cancellable when false returned from afterAuthorization() event handler after successful authorization.
What advantages the proposed design brings?
What does it bring to configuration?
In the most common use case when working with just a single db, that may bring KeePass UI customizations like adding relevant for the active db custom toolbar buttons (current) and status labels, dropdown boxes etc. (new), menu items or even custom toolbars (all new). Sure the simplest UI changes would be easy applied like enlarging the main window size and on screen position, columns customizations etc. upon db opening/activating/closing as well. And of course, all that metadata like button captions would be securely encrypted within db file!
Isn't that The awesome concept to implement ASAP?
If a bad actor can do this it is no longer your computer - law 1 of computer security.
Metadata is not meant to be secure. That's why you can use database fields in triggers.
The database is the secure section, anything else is obfuscation and that is not security.
I think it would be harder to maintain as you need to remember which config is inside/outside.
This is not the user market for KeePass - its a personal password manager. Implementing this for the few who use it is a lot of effort for very little gain from our development team of one part time programmer.
cheers, Paul
Paul, let me address most of your concerns. Except for the almost maintenance mode due to underpowered dev team.
Hope you'll reconsider.
I'm not the developer, just pointing out there are arguments against doing what you suggest.
cheers, Paul
Well, maybe someone else would...