1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
[]
= "dsp-cli"
# release-please writes this field (registered via .github/release-please/config.json extra-files); never bump it by hand — use a Release-As: commit footer; see docs/src/deployment.md#dsp-cli
= "0.3.1"
= "2024"
= "1.92"
= "AI-agent-friendly command-line interface for the DaSCH Service Platform (DSP)"
= "Apache-2.0"
= "https://github.com/dasch-swiss/dsp-repository"
= "https://github.com/dasch-swiss/dsp-repository/tree/main/dsp-cli"
= ["Balduin Landolt <balduin.landolt@dasch.swiss>"]
= "README.md"
= ["dasch", "dsp", "cli", "digital-humanities", "rdf"]
= ["command-line-utilities", "api-bindings"]
# Allowlist (not an exclude list): only what the packaged crate needs to compile and
# describe itself. docs/topics/*.md are include_str!'d at compile time
# (src/actions/docs.rs) and must ship; Cargo.toml/Cargo.lock are auto-included by cargo.
# See dsp-cli/ADR-0011 (crates.io publishing decision).
= ["src/**/*", "docs/topics/*.md", "README.md", "LICENSE", "CHANGELOG.md"]
[[]]
= "dsp"
= "src/main.rs"
[]
= "dsp_cli"
= "src/lib.rs"
[]
# Live tests against a real DSP environment. Not in CI (dsp-cli/ADR-0009).
= []
[]
= { = "4", = ["derive", "env"] }
= { = true }
= { = true }
= { = true, = ["fmt"] }
= { = true }
# preserve_order keeps JSON object keys in insertion order, so the `_meta`-first
# envelope is a deterministic contract rather than a BTreeMap alpha-sort accident.
= { = true }
= "0.15"
= "5"
= "0.8"
# HTTP client for blocking DSP-API calls (auth, data fetch); rustls avoids OpenSSL build dep.
= { = "0.13", = false, = ["blocking", "json", "rustls", "query"] }
# Percent-encoding for IRI path segments (e.g. encoding IRIs for /admin/projects/iri/{enc-iri}).
# Already transitively present via reqwest; listed directly so the usage is intentional.
= "2"
# Prompts for passwords without echoing; falls back to stdin pipe when not a TTY.
= "7"
# Timestamps for token acquired_at / expires_at in the auth cache; serde+clock features for serialisation and Utc::now().
# Kept crate-local rather than workspace-inherited: the root workspace.dependencies entry
# leaves default-features on, and default-features cannot be overridden alongside workspace = true.
= { = "0.4", = false, = ["serde", "clock"] }
# JWT decoding to extract the exp claim from login response tokens (signature validation disabled — token is freshly issued by the server we just authenticated to).
# v10 no longer bundles a crypto backend: exactly one of `rust_crypto`/`aws_lc_rs` must be chosen. `rust_crypto` is pure Rust (no C toolchain — consistent with the rustls choice above). The production path (`insecure_decode`) never touches it; the tests' `encode` helper does.
= { = "10", = ["rust_crypto"] }
# Compares the built-in CARGO_PKG_VERSION to the fetched latest version from crates.io (update check, dsp-cli/ADR-0015).
= "1"
[]
= { = true }
= "0.6"
= "3"
= "2"
= "3"
# Async runtime required by wiremock's MockServer; reqwest::blocking is safe inside #[tokio::test] (spawns its own OS thread).
= { = "1", = false, = ["rt", "macros"] }
# Cargo ignores a member's [profile.*] table inside a workspace and prints a warning saying so;
# this section still governs `cargo install dsp-cli` from crates.io, where this manifest is the root.
[]
= "thin"
= "symbols"
= 1