Commit Graph

73 Commits

Author SHA1 Message Date
Oystein Kristoffer Tveit a0be0d3b92
Wrap database users and database names in newtypes
Also, use less cloning where possible
2024-08-20 17:46:43 +02:00
Oystein Kristoffer Tveit 338694a64e
Add more `--json` flags 2024-08-20 17:46:43 +02:00
Oystein Kristoffer Tveit cdb1fb4181
Integrate better with systemd + better logs and protocol usage
This commits adds the following:

- Better systemd integration and usage:
  - More hardening
  - A watchdog thread
  - Journald native logging

as well as

- Better logs
- Some protocol usage fixes
2024-08-20 17:46:40 +02:00
Oystein Kristoffer Tveit e993644844
core/database_privileges: test `edit-db-privs -p` parser 2024-08-19 19:26:27 +02:00
Oystein Kristoffer Tveit 0ce90ab42a
`list-db` -> `show-db` 2024-08-19 18:58:26 +02:00
Oystein Kristoffer Tveit 51302d75f0
`create-users`: default to setting no password in prompt 2024-08-19 18:06:47 +02:00
Oystein Kristoffer Tveit b21aa0eece
Fix sql regex to work like ownership validation 2024-08-19 17:59:13 +02:00
Oystein Kristoffer Tveit d1d06514a9
cargo fmt + clippy 2024-08-19 17:52:16 +02:00
Oystein Kristoffer Tveit 3556eb37ea
Dont drop privs as server 2024-08-19 17:46:08 +02:00
Oystein Kristoffer Tveit 20669569f3
Fix binary collation issues for privs as well
Ref #66
2024-08-19 17:44:21 +02:00
Oystein Kristoffer Tveit ed12a3153b
server/config: revamp
- Adds options `socket_path` and `password_file`
2024-08-19 16:57:25 +02:00
Oystein Kristoffer Tveit 48240489a7
Have server notify the client about db connection errors 2024-08-19 16:57:24 +02:00
Oystein Kristoffer Tveit 8fdfe457ac
Remove a few TODOs, either solved or converted to issue 2024-08-19 02:43:05 +02:00
Oystein Kristoffer Tveit 807017ea70
add shell completion 2024-08-19 02:23:31 +02:00
Oystein Kristoffer Tveit 5d049390b8
`passwd-user`: check for user existence before password input 2024-08-19 00:49:20 +02:00
Oystein Kristoffer Tveit a6f00d4313
Ensure user/db prefix has a `_` behind it 2024-08-19 00:48:13 +02:00
Oystein Kristoffer Tveit cd0b2c3e6d
sd_notify(ready) 2024-08-19 00:13:22 +02:00
Oystein Kristoffer Tveit 93469a6e84
Add more serverside logging 2024-08-19 00:11:11 +02:00
Oystein Kristoffer Tveit e4da639d5c
Fix sqlx parse error 2024-08-19 00:09:27 +02:00
Oystein Kristoffer Tveit daa8e069d3
Fix sql statement for `show-user` 2024-08-18 22:57:01 +02:00
Oystein Kristoffer Tveit 86b5b47f1e
Add some logging 2024-08-18 22:26:00 +02:00
Oystein Kristoffer Tveit 9d88c95f33
Fix systemd socket activation 2024-08-18 22:24:28 +02:00
Oystein Kristoffer Tveit 53f19b3d05
Replace socket authentication mechanism with SO_PEERCRED 2024-08-18 22:22:58 +02:00
Oystein Kristoffer Tveit 94c9a54c14 Bump all deps, fix db connection closing issues 2024-08-18 01:33:55 +02:00
Oystein Kristoffer Tveit 168f832aec
Readd "databases where user has privileges" to `show-user` 2024-08-18 00:17:55 +02:00
Oystein Kristoffer Tveit f957bbd9da
Don't validate prefixes and postfixes for db item ownership 2024-08-17 22:30:30 +02:00
Oystein Kristoffer Tveit 54a38255e6
privs editor: "New user" ->"Previously unprivileged" 2024-08-17 21:27:46 +02:00
Oystein Kristoffer Tveit 466d4a8b96
Use db name as example for privs editor 2024-08-17 21:24:59 +02:00
Oystein Kristoffer Tveit af86893acf
Rewrite entire codebase to split into client and server 2024-08-17 20:21:05 +02:00
Oystein Kristoffer Tveit 20e60ca5c7
Add protocol for authenticating a unix socket 2024-08-09 19:09:04 +02:00
Oystein Kristoffer Tveit e420c1f4d5
edit-db-privs: display diffs and ask before commiting 2024-08-08 21:48:41 +02:00
Oystein Kristoffer Tveit 7ee60dacdc
Misc fixups to priv diff logic, add tests 2024-08-08 21:02:25 +02:00
Oystein Kristoffer Tveit 8a91e9a3d0
core/database_operations: replace single field struct with sqlx unwrap 2024-08-08 19:45:28 +02:00
Oystein Kristoffer Tveit e2193f47c1
Only pass the mysql config portion when connecting 2024-08-08 19:40:57 +02:00
Oystein Kristoffer Tveit 39a3f8ffd1
core/common: make testable, fix some status messages 2024-08-08 19:30:42 +02:00
Oystein Kristoffer Tveit 69870147f5
Add a few more status prints to the commands 2024-08-08 00:56:30 +02:00
Oystein Kristoffer Tveit f78c88517f
Add `lock-user` and `unlock-user` 2024-08-08 00:53:26 +02:00
Oystein Kristoffer Tveit 7e71b5071f
Report back more detailed results from commands 2024-08-07 23:33:07 +02:00
Oystein Kristoffer Tveit 21c1f8cc87
Fix clippy warnings 2024-08-07 23:10:37 +02:00
Oystein Kristoffer Tveit 011bcf9edc
More spring cleaning for privs, add test 2024-08-07 23:00:38 +02:00
Oystein Kristoffer Tveit 1bb1c133e8
Consistently name db connection `connection` 2024-08-07 21:54:13 +02:00
Oystein Kristoffer Tveit 5a7516aed8
Rename most instances of "permission" to "privilege" 2024-08-07 21:51:03 +02:00
Oystein Kristoffer Tveit 71c712dce0
treewide: move some code around, spring cleaning 2024-08-07 21:17:27 +02:00
Oystein Kristoffer Tveit 833251a1a2
show-user: add databases field, report when no users 2024-08-07 20:31:05 +02:00
Oystein Kristoffer Tveit a3c894061c
Remove already fixed TODO 2024-08-07 17:27:29 +02:00
Oystein Kristoffer Tveit e1f89b7b72
cargo clippy + fmt 2024-08-07 17:25:28 +02:00
Oystein Kristoffer Tveit 3d7d001f65
show-user: add `--json` flag 2024-08-07 17:22:23 +02:00
Oystein Kristoffer Tveit a9b8f7cee7
user_operations: don't fetch auth_string/password, only check existence 2024-08-07 17:20:13 +02:00
Oystein Kristoffer Tveit d0b750cd33
cargo clippy + fmt 2024-08-07 16:55:51 +02:00
Oystein Kristoffer Tveit d1c42dac8b
Wrap all operations in database transactions 2024-08-07 16:54:26 +02:00