|
| 1 | +[workspace] |
| 2 | +members = [".", "crates/zerolease-provider", "crates/zerolease-store-rusqlite"] |
| 3 | +# zerolease-store-postgres excluded from default workspace due to sqlx v0.8 |
| 4 | +# libsqlite3-sys conflict with rusqlite. Build/test it separately: |
| 5 | +# cargo check -p zerolease-store-postgres --manifest-path crates/zerolease-store-postgres/Cargo.toml |
| 6 | +exclude = ["crates/zerolease-store-postgres"] |
| 7 | +resolver = "3" |
| 8 | + |
| 9 | +[workspace.package] |
| 10 | +edition = "2024" |
| 11 | +authors = ["C J Silverio <ceejceej@gmail.com>"] |
| 12 | +license = "Apache-2.0" |
| 13 | +repository = "https://github.com/ceejbot/zerolease" |
| 14 | + |
| 15 | +[workspace.lints.rust] |
| 16 | +unsafe_code = { level = "deny", priority = 0 } |
| 17 | +future_incompatible = { level = "deny", priority = 1 } |
| 18 | +rust_2018_idioms = { level = "warn", priority = 2 } |
| 19 | +trivial_casts = { level = "warn", priority = 3 } |
| 20 | +trivial_numeric_casts = { level = "warn", priority = 4 } |
| 21 | +unused_lifetimes = { level = "warn", priority = 5 } |
| 22 | +unused_qualifications = { level = "warn", priority = 6 } |
| 23 | + |
| 24 | +[workspace.lints.clippy] |
| 25 | +unwrap_used = "deny" |
| 26 | + |
| 27 | +[workspace.dependencies] |
| 28 | +async-trait = "0.1" |
| 29 | +chrono = { version = "0.4", features = ["serde"] } |
| 30 | +secrecy = { version = "0.10", features = ["serde"] } |
| 31 | +serde = { version = "1", features = ["derive"] } |
| 32 | +serde_json = "1" |
| 33 | +thiserror = "2" |
| 34 | +tokio = { version = "1", features = ["full"] } |
| 35 | +uuid = { version = "1", features = ["v7", "serde"] } |
| 36 | +zerolease = { path = ".", default-features = false } |
| 37 | + |
1 | 38 | [package] |
2 | 39 | name = "zerolease" |
3 | | -authors = ["C J Silverio <ceejceej@gmail.com>"] |
| 40 | +authors.workspace = true |
4 | 41 | version = "0.1.0" |
5 | | -edition = "2024" |
| 42 | +edition.workspace = true |
6 | 43 | description = "A lightweight, agent-aware credential vault with lease-based access control" |
7 | | -license = "Apache-2.0" |
8 | | -repository = "https://github.com/ceejbot/zerolease" |
| 44 | +license.workspace = true |
| 45 | +repository.workspace = true |
9 | 46 | keywords = ["credentials", "vault", "security", "agents", "secrets"] |
10 | 47 | readme = "README.md" |
11 | 48 | categories = ["authentication", "cryptography"] |
12 | 49 |
|
13 | 50 | [dependencies] |
14 | 51 | aes-gcm = "0.10" |
15 | | -async-trait = "0.1" |
| 52 | +async-trait.workspace = true |
16 | 53 | aws-config = { version = "1", optional = true } |
17 | 54 | aws-sdk-kms = { version = "1", optional = true } |
18 | 55 | base64 = "0.22" |
19 | 56 | chacha20poly1305 = "0.10" |
20 | | -chrono = { version = "0.4", features = ["serde"] } |
21 | | -secrecy = { version = "0.10", features = ["serde"] } |
22 | | -serde = { version = "1", features = ["derive"] } |
23 | | -serde_json = "1" |
24 | | -thiserror = "2" |
25 | | -tokio = { version = "1", features = ["full"] } |
| 57 | +chrono.workspace = true |
| 58 | +secrecy.workspace = true |
| 59 | +serde.workspace = true |
| 60 | +serde_json.workspace = true |
| 61 | +thiserror.workspace = true |
| 62 | +tokio.workspace = true |
26 | 63 | tracing = "0.1" |
27 | 64 | tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } |
28 | | -uuid = { version = "1", features = ["v7", "serde"] } |
| 65 | +uuid.workspace = true |
29 | 66 | zeroize = { version = "1.8", features = ["derive"] } |
30 | 67 |
|
31 | | -[dependencies.sqlx] |
32 | | -version = "0.8" |
33 | | -features = ["runtime-tokio", "sqlite", "postgres", "chrono", "uuid"] |
34 | | -optional = true |
35 | | - |
36 | 68 | [features] |
37 | | -default = ["sqlite"] |
38 | | -sqlite = ["sqlx"] |
39 | | -postgres = ["sqlx"] |
| 69 | +default = [] |
| 70 | +# Gates integration tests that depend on the in-tree sqlx-based stores |
| 71 | +# (not yet extracted to zerolease-store-sqlx). Unused for now. |
| 72 | +sqlite = [] |
40 | 73 | vsock = ["tokio-vsock"] |
41 | 74 | kms = ["aws-sdk-kms", "aws-config"] |
42 | 75 |
|
43 | 76 | [target.'cfg(unix)'.dependencies] |
44 | | -# OS keychain (Linux secret-service, macOS Keychain) |
45 | 77 | keyring = "3.6" |
46 | 78 |
|
47 | 79 | [target.'cfg(target_os = "linux")'.dependencies] |
48 | | -# vsock for QEMU and Firecracker host-guest communication |
49 | 80 | tokio-vsock = { version = "0.7", optional = true } |
50 | 81 |
|
51 | 82 | [dev-dependencies] |
52 | 83 | tempfile = "3" |
| 84 | +zerolease-store-rusqlite = { path = "crates/zerolease-store-rusqlite" } |
53 | 85 |
|
54 | | -[lints.rust] |
55 | | -unsafe_code = { level = "deny", priority = 0 } |
56 | | -future_incompatible = { level = "deny", priority = 1 } |
57 | | -rust_2018_idioms = { level = "warn", priority = 2 } |
58 | | -trivial_casts = { level = "warn", priority = 3 } |
59 | | -trivial_numeric_casts = { level = "warn", priority = 4 } |
60 | | -unused_lifetimes = { level = "warn", priority = 5 } |
61 | | -unused_qualifications = { level = "warn", priority = 6 } |
62 | | - |
63 | | -[lints.clippy] |
64 | | -unwrap_used = "deny" |
| 86 | +[lints] |
| 87 | +workspace = true |
0 commit comments