Files
muscl/Cargo.toml
h7x4 57ac26b120
All checks were successful
Build and test / check-license (push) Successful in 55s
Build and test / check (push) Successful in 1m55s
Build and test / build (push) Successful in 3m25s
Build and test / test (push) Successful in 3m4s
Build and test / docs (push) Successful in 5m54s
client: display show-db output with human readable sizes
2025-12-16 14:36:53 +09:00

173 lines
4.7 KiB
TOML

[package]
name = "muscl"
version = "0.1.0"
edition = "2024"
license = "BSD-3-Clause"
authors = [
"oysteikt@pvv.ntnu.no",
"felixalb@pvv.ntnu.no",
]
homepage = "https://git.pvv.ntnu.no/Projects/muscl"
repository = "https://git.pvv.ntnu.no/Projects/muscl"
documentation = "https://pages.pvv.ntnu.no/Projects/muscl/main/docs/muscl"
description = "A command-line utility for MySQL administration for non-admin users"
categories = ["command-line-interface", "command-line-utilities"]
keywords = ["mysql", "cli", "administration"]
readme = "README.md"
autobins = false
autolib = false
[dependencies]
anyhow = "1.0.100"
async-bincode = "0.8.0"
bincode = "2.0.1"
clap = { version = "4.5.53", features = ["cargo", "derive"] }
clap-verbosity-flag = { version = "3.0.4", features = [ "tracing" ] }
clap_complete = { version = "4.5.61", features = ["unstable-dynamic"] }
color-print = "0.3.7"
const_format = "0.2.35"
derive_more = { version = "2.1.0", features = ["display", "error"] }
dialoguer = "0.12.0"
futures-util = "0.3.31"
humansize = "2.1.3"
indoc = "2.0.7"
itertools = "0.14.0"
nix = { version = "0.30.1", features = ["fs", "process", "socket", "user"] }
num_cpus = "1.17.0"
prettytable = "0.10.0"
rand = "0.9.2"
serde = "1.0.228"
serde_json = { version = "1.0.145", features = ["preserve_order"] }
sqlx = { version = "0.8.6", features = ["runtime-tokio", "mysql", "tls-rustls"] }
thiserror = "2.0.17"
tokio = { version = "1.48.0", features = ["rt-multi-thread", "macros", "signal"] }
tokio-serde = { version = "0.9.0", features = ["bincode"] }
tokio-stream = "0.1.17"
tokio-util = { version = "0.7.17", features = ["codec", "rt"] }
toml = "0.9.8"
tracing = { version = "0.1.43", features = ["log"] }
tracing-subscriber = "0.3.22"
uuid = { version = "1.19.0", features = ["v4"] }
[target.'cfg(target_os = "linux")'.dependencies]
landlock = "0.4.4"
sd-notify = "0.4.5"
tracing-journald = "0.3.2"
[build-dependencies]
anyhow = "1.0.100"
git2 = { version = "0.20.3", default-features = false }
[dev-dependencies]
regex = "1.12.2"
[features]
default = ["mysql-admutils-compatibility"]
mysql-admutils-compatibility = []
suid-sgid-mode = []
[[bin]]
name = "muscl"
bench = false
path = "src/main.rs"
[profile.release-lto]
inherits = "release"
strip = true
lto = true
codegen-units = 1
[package.metadata.deb]
name = "muscl"
priority = "optional"
section = "databases"
depends = "$auto"
license-file = ["LICENSE", "0"]
maintainer = "Programvareverkstedet <projects@pvv.ntnu.no>"
copyright = "Copyright (c) 2025, Programvareverkstedet"
# NOTE: try to keep this in sync with README, and keep an 80 char limit.
extended-description = """
Muscl is a CLI tool that let's unprivileged users perform administrative
operations on a MySQL DBMS, given the are authorized to perform the action
on the database or database user in question. The default authorization
mechanism is to only let the user perform these actions on databases and
database users that are prefixed with their username, or with the name of any
unix group that the user is a part of. i.e. `<user>_mydb`, `<user>_mydbuser`,
or `<group>_myotherdb`.
The available administrative actions include:
- creating/listing/modifying/deleting databases and database users
- modifying privileges for a database user on a database
- changing the passwords of the database users
- locking and unlocking database users
- ... more to come
The software is designed to be run as a client and a server. The server has
administrative access to the mysql server, and is responsible for authorizing
any requests from the clients.
This software is designed for multi-user servers, like tilde servers,
university servers, etc.\
"""
changelog = "CHANGELOG.md"
assets = [
[
"target/release/muscl",
"usr/bin/",
"755",
],
[
"target/release/mysql-useradm",
"usr/bin/",
"755",
],
[
"target/release/mysql-dbadm",
"usr/bin/",
"755",
],
[
"assets/debian/config.toml",
"etc/muscl/config.toml",
"644",
],
[
"assets/debian/group_denylist.txt",
"etc/muscl/group_denylist.txt",
"644",
],
[
"assets/completions/_*",
"usr/share/zsh/site-functions/completions/",
"644",
],
[
"assets/completions/*.bash",
"usr/share/bash-completion/completions/",
"644",
],
[
"assets/completions/*.fish",
"usr/share/fish/vendor_completions.d/",
"644",
],
[
"README.md",
"usr/share/doc/muscl/",
"644",
],
[
"docs/*.md",
"usr/share/doc/muscl/docs/",
"644",
],
]
preserve-symlinks = true
maintainer-scripts = "debian/"
systemd-units = [
{ unit-name = "muscl", unit-scripts = "assets/systemd", enable = true },
]