Skip to content

Commit 2595be9

Browse files
authored
feat: add one time tokens (#84)
* feat: implement default trait for TokenData * feat: add one time option to request * refactor: move tests * feat: add option for one time tokens in CLI * refactoring: use bulider pattern * chore: update version, update API doc * chore(nix): update nix hash * chore: update cargo lock file * chore(npm): update deps * feat: delete one time token after retrieval * refactor: use builder for CreateTokenRequest in tests * lint: make clippy happy * lint: make clippy happy
1 parent 3b79171 commit 2595be9

File tree

22 files changed

+227
-227
lines changed

22 files changed

+227
-227
lines changed

Cargo.lock

Lines changed: 42 additions & 66 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ members = [
1010
]
1111

1212
[workspace.dependencies]
13-
hakanai-lib = { path = "lib", version = "2.19.3" }
13+
hakanai-lib = { path = "lib", version = "2.20.0" }
1414

1515
[profile.release]
1616
opt-level = "z"

cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[package]
44
name = "hakanai"
5-
version = "2.19.3"
5+
version = "2.20.0"
66
edition = "2024"
77
license = "Apache-2.0"
88
description = "CLI client for Hakanai, a secure secret sharing service."

cli/src/args/token_args.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,11 @@ pub struct TokenArgs {
3535
value_parser = human_size::parse,
3636
)]
3737
pub limit: Option<i64>,
38+
39+
#[arg(
40+
long,
41+
help = "If set, the token can only be used once.",
42+
default_value_t = false
43+
)]
44+
pub one_time: bool,
3845
}

cli/src/token.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,9 @@ pub async fn token(args: TokenArgs) -> Result<()> {
2424
}
2525

2626
async fn create_token_request(admin_token: &str, args: &TokenArgs) -> Result<CreateTokenResponse> {
27-
let request = CreateTokenRequest {
28-
upload_size_limit: args.limit,
29-
ttl_seconds: args.ttl.as_secs(),
30-
};
27+
let mut request = CreateTokenRequest::new(args.ttl.as_secs());
28+
request.upload_size_limit = args.limit;
29+
request.one_time = args.one_time;
3130

3231
let client = reqwest::Client::new();
3332
let url = args.server.join("api/v1/admin/tokens")?;

helm/hakanai/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: v2
22
name: hakanai
33
description: A minimalist one-time secret sharing service implementing zero-knowledge principles
44
type: application
5-
version: 0.13.3
6-
appVersion: "v2.19.3"
5+
version: 0.13.4
6+
appVersion: "v2.20.0"
77
keywords:
88
- secret-sharing
99
- zero-knowledge

lib/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[package]
44
name = "hakanai-lib"
5-
version = "2.19.3"
5+
version = "2.20.0"
66
edition = "2024"
77
license = "Apache-2.0"
88
description = "Client library for Hakanai, a secure secret sharing service."
@@ -18,13 +18,13 @@ aes-gcm = "0.10.3"
1818
async-stream = { version = "0.3.6", optional = true }
1919
async-trait = "0.1.89"
2020
base64 = "0.22.1"
21-
bytes = { version = "1.10.1", optional = true }
21+
bytes = { version = "1.11.0", optional = true }
2222
ipnet = { version = "2.11.0", features = ["serde"] }
2323
rand = "0.9.2"
2424
reqwest = { version = "0.12.24", optional = true, features = ["json", "stream"] }
2525
serde = { version = "1.0.228", features = ["derive"] }
2626
serde_json = { version = "1.0.145", optional = true }
27-
serde_with = "3.15.1"
27+
serde_with = "3.16.0"
2828
sha2 = "0.10.9"
2929
thiserror = "2.0.17"
3030
url = { version = "2.5.7", optional = true }

0 commit comments

Comments
 (0)