Commit Graph

54 Commits

Author SHA1 Message Date
805c2d11ff core/protocol: split commands into separate files
All checks were successful
Build and test / check (push) Successful in 2m8s
Build and test / build (push) Successful in 3m3s
Build and test / check-license (push) Successful in 4m58s
Build and test / test (push) Successful in 3m47s
Build and test / docs (push) Successful in 5m47s
2025-11-26 02:51:23 +09:00
1571f6e2c7 core: split mysql user/db into separate types module 2025-11-26 02:03:18 +09:00
03a761a0ff Refactor privilege handling
All checks were successful
Build / check (push) Successful in 2m41s
Build / build (push) Successful in 3m5s
Build / docs (push) Successful in 5m37s
2025-11-25 19:20:46 +09:00
30d02775c2 Make compile-time feature for SUID/SGID mode
All checks were successful
Build / check (push) Successful in 1m27s
Build / build (push) Successful in 2m46s
Build / docs (push) Successful in 6m33s
2025-11-11 00:28:34 +09:00
c2dcd40442 cargo fmt
Some checks failed
Build / check (push) Successful in 11m49s
Build / build (push) Successful in 12m51s
Build / docs (push) Has been cancelled
2025-11-10 23:50:55 +09:00
c6d3bbca6f Add warning comments for functions running as SUID/SGID
Some checks failed
Build / check (push) Failing after 5m22s
Build / build (push) Successful in 14m47s
Build / docs (push) Successful in 15m41s
2025-11-10 12:11:24 +09:00
46c5d372b2 Deduplicate common username/group prefixes in error msg
Some checks failed
Build / check (push) Failing after 5m20s
Build / build (push) Successful in 12m54s
Build / docs (push) Successful in 16m35s
2025-11-10 00:50:36 +09:00
9e23f03ca2 Use non-templated systemd service
The previous setup was broken

This commit also adds some code to check that the database connection is
valid before it starts, as well as refactors the code that splits
between starting and external or internal server.
2025-11-10 00:38:26 +09:00
bd4791dc17 Check that executable is not SUID/SGID for unrelated subcommands 2025-11-10 00:33:53 +09:00
c2d22ee7f8 flake.lock: bump, Cargo.lock: bump, Cargo.toml: update inputs, format, etc
Some checks failed
Build / build (push) Has been cancelled
Build / check (push) Has been cancelled
Build / docs (push) Has been cancelled
2025-05-07 10:39:10 +02:00
a0be0d3b92 Wrap database users and database names in newtypes
Also, use less cloning where possible
2024-08-20 17:46:43 +02:00
338694a64e Add more --json flags 2024-08-20 17:46:43 +02:00
e993644844 core/database_privileges: test edit-db-privs -p parser 2024-08-19 19:26:27 +02:00
0ce90ab42a list-db -> show-db 2024-08-19 18:58:26 +02:00
d1d06514a9 cargo fmt + clippy 2024-08-19 17:52:16 +02:00
20669569f3 Fix binary collation issues for privs as well
Ref #66
2024-08-19 17:44:21 +02:00
ed12a3153b server/config: revamp
- Adds options `socket_path` and `password_file`
2024-08-19 16:57:25 +02:00
48240489a7 Have server notify the client about db connection errors 2024-08-19 16:57:24 +02:00
a6f00d4313 Ensure user/db prefix has a _ behind it 2024-08-19 00:48:13 +02:00
86b5b47f1e Add some logging 2024-08-18 22:26:00 +02:00
53f19b3d05 Replace socket authentication mechanism with SO_PEERCRED 2024-08-18 22:22:58 +02:00
f957bbd9da Don't validate prefixes and postfixes for db item ownership 2024-08-17 22:30:30 +02:00
54a38255e6 privs editor: "New user" ->"Previously unprivileged" 2024-08-17 21:27:46 +02:00
466d4a8b96 Use db name as example for privs editor 2024-08-17 21:24:59 +02:00
af86893acf Rewrite entire codebase to split into client and server 2024-08-17 20:21:05 +02:00
e420c1f4d5 edit-db-privs: display diffs and ask before commiting 2024-08-08 21:48:41 +02:00
7ee60dacdc Misc fixups to priv diff logic, add tests 2024-08-08 21:02:25 +02:00
8a91e9a3d0 core/database_operations: replace single field struct with sqlx unwrap 2024-08-08 19:45:28 +02:00
e2193f47c1 Only pass the mysql config portion when connecting 2024-08-08 19:40:57 +02:00
39a3f8ffd1 core/common: make testable, fix some status messages 2024-08-08 19:30:42 +02:00
f78c88517f Add lock-user and unlock-user 2024-08-08 00:53:26 +02:00
7e71b5071f Report back more detailed results from commands 2024-08-07 23:33:07 +02:00
21c1f8cc87 Fix clippy warnings 2024-08-07 23:10:37 +02:00
011bcf9edc More spring cleaning for privs, add test 2024-08-07 23:00:38 +02:00
1bb1c133e8 Consistently name db connection connection 2024-08-07 21:54:13 +02:00
5a7516aed8 Rename most instances of "permission" to "privilege" 2024-08-07 21:51:03 +02:00
71c712dce0 treewide: move some code around, spring cleaning 2024-08-07 21:17:27 +02:00
833251a1a2 show-user: add databases field, report when no users 2024-08-07 20:31:05 +02:00
3d7d001f65 show-user: add --json flag 2024-08-07 17:22:23 +02:00
a9b8f7cee7 user_operations: don't fetch auth_string/password, only check existence 2024-08-07 17:20:13 +02:00
d0b750cd33 cargo clippy + fmt 2024-08-07 16:55:51 +02:00
9d0b632e9c Inline database quotation functions 2024-08-07 16:17:14 +02:00
01d502337d Don't fail on erroneus db connection closure 2024-08-07 16:16:46 +02:00
460a8d6abb core/user_operations: add a few docstrings 2024-08-07 00:02:14 +02:00
21c2fc2e8b cargo fmt + clippy 2024-08-06 23:48:31 +02:00
4353689a03 create compatibility layer for mysql-admutils commands 2024-08-06 23:31:47 +02:00
eddc0ad5e9 Fix issue where groupless users own all users/dbs 2024-08-04 17:51:49 +02:00
4a94265eae Remove randomly generated example, run clippy. Fixes #6 2024-07-12 21:59:44 +02:00
34dfc562a9 Remove group support on macOS, fixes #10 2024-07-12 20:53:03 +02:00
2b056942eb make database connection timeout configurable 2024-07-09 21:36:12 +02:00