so that restarts to affect object schema are not required. This is good to allow
customisation and other extensions for advanced users, and doing it now makes it
"easier" to supply extra schema from the project core into the initialise_idm function.
This allows backup and restore of the server backend data from the command line. Backups can be taken while the server is running. Automated backups are *not* part of this yet.
This also adds a few missing files from a previous commit mistake. Opps!
Implement #2 anonymous authentication. This also puts into place the majority of the authentication framework, and starts to build the IDM layers ontop of the DB engine.
This implements access controls, including a huge amount of refactor to support
them and their resolution with the "SelfUUID" keyword. Additionally, parts of
the event structure was improved to help, normalised was added as an entry state
and more.
And there are access controls! They work, have tests, and appear sane.
* Large refactor to improve the ava get interface
* Improve ACP parsing test
* ACP parsing complete
* Fix txn type tech debt
* Clean up queryserver name issue
* Integrate acp to query server, and add reload hooks
* Starting to write search acp enforcement
* Refactor event to take entry rather than UUID to allow acp to filter on the event properly.
* Most of the filter refactor is done
* Finish filter refactor!
* Write and implement basic filter optimiser with redundant term folding
* moved core BackendWriteTransaction::create code to BackendWriteTransaction::_create, implemented both BackendWriteTransaction::{backup, restore} need to add data into db for testing backup/restore, restore currently fails as there is no data in the backed up file yet.
* test_backup_restore now runs successfully, created unsafe purge function to remove all data from the database, changed function _create to internal_create and a few other smaller things