Compare commits

..
Author SHA1 Message Date
phoenix f43bcaa314 Merge pull request 'Release' (#50) from devel into main
Reviewed-on: phoenix/icarus_models#50
2025-08-17 18:36:04 +00:00
phoenixandphoenix a6ef7d8a62 Removed devel branch references (#56)
Reviewed-on: phoenix/icarus_models#56
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
2025-08-17 18:31:05 +00:00
phoenixandphoenix bd793db08e Add Id to token (#55)
Reviewed-on: phoenix/icarus_models#55
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
2025-08-06 22:45:32 +00:00
phoenixandphoenix 1e95822b5a tsk-51: Do not serialize path field for CoverArt (#54)
Reviewed-on: phoenix/icarus_models#54
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
2025-08-01 20:18:09 +00:00
phoenix 569fb632e5 Merge pull request 'v0.5.X release' (#41) from devel into main
Reviewed-on: phoenix/icarus_models#41
2025-07-23 21:59:40 +00:00
phoenix 6aa4c3d741 Merge pull request 'Next release' (#38) from devel into main
Reviewed-on: phoenix/icarus_models#38
2025-04-10 23:49:19 +00:00
phoenix 97853a42c1 Merge pull request 'workflow_tag_fix (#33)' (#34) from devel into main
Reviewed-on: phoenix/icarus_models#34
2025-04-07 01:09:43 +00:00
phoenix fdae8056b1 Merge pull request 'Next release' (#30) from devel into main
Reviewed-on: phoenix/icarus_models#30
2025-04-05 18:38:37 +00:00
phoenix 24aa60cb48 Merge pull request 'Next release' (#25) from devel into main
Reviewed-on: phoenix/icarus_models#25
2025-04-04 04:08:03 +00:00
phoenix d8eadb8187 Merge pull request 'v0.2.0 Release' (#20) from devel into main
Reviewed-on: phoenix/icarus-models#20
2025-03-30 17:21:27 +00:00
phoenix 2b2e96c02d Merge pull request 'devel' (#16) from devel into main
Reviewed-on: phoenix/icarus-models#16
2025-03-22 21:24:15 +00:00
6 changed files with 50 additions and 14 deletions
+2 -2
View File
@@ -1,9 +1,9 @@
name: Release Tagging
on:
push:
pull_request:
branches:
- devel
- main
jobs:
release:
-2
View File
@@ -4,11 +4,9 @@ on:
push:
branches:
- main
- devel
pull_request:
branches:
- main
- devel
jobs:
check:
Generated
+1 -1
View File
@@ -142,7 +142,7 @@ checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
[[package]]
name = "icarus_models"
version = "0.5.3"
version = "0.5.5"
dependencies = [
"josekit",
"rand",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "icarus_models"
version = "0.5.3"
version = "0.5.5"
edition = "2024"
rust-version = "1.88"
description = "models used for the icarus project"
+1
View File
@@ -6,6 +6,7 @@ use serde::{Deserialize, Serialize};
pub struct CoverArt {
pub id: uuid::Uuid,
pub title: String,
#[serde(skip)]
pub path: String,
#[serde(skip)]
pub data: Vec<u8>,
+45 -8
View File
@@ -80,6 +80,7 @@ pub struct TokenResource {
pub message: String,
pub issuer: String,
pub audiences: Vec<String>,
pub id: uuid::Uuid,
}
pub const TOKEN_TYPE: &str = "JWT";
@@ -99,6 +100,14 @@ pub fn create_token(
payload.set_subject(message);
payload.set_issuer(issuer);
payload.set_audience(audiences.clone());
if !token_resource.id.is_nil() {
match payload.set_claim("id", Some(serde_json::json!(token_resource.id))) {
Ok(_) => {}
Err(err) => {
return Err(err);
}
}
}
match get_issued() {
Ok(issued) => {
let expire = issued + duration;
@@ -121,6 +130,19 @@ pub fn create_token(
mod tests {
use super::*;
fn test_key() -> String {
String::from("c3092urmc2219ix320i40m293ic29IM09IN0u879Y8B98YB8yb86TN7B55R4yv4RCVU6Bi8YO8U")
}
fn test_resource() -> TokenResource {
TokenResource {
issuer: String::from("icarus_auth_test"),
message: String::from("Authorization"),
audiences: vec![String::from("icarus_test")],
id: uuid::Uuid::nil(),
}
}
#[test]
fn test_token_scope_check() {
let mut token = Token::default();
@@ -138,14 +160,29 @@ mod tests {
#[test]
fn test_token_creation() {
let key = String::from(
"c3092urmc2219ix320i40m293ic29IM09IN0u879Y8B98YB8yb86TN7B55R4yv4RCVU6Bi8YO8U",
);
let test_token_resource = TokenResource {
issuer: String::from("icarus_auth_test"),
message: String::from("Authorization"),
audiences: vec![String::from("icarus_test")],
};
let key = test_key();
let test_token_resource = test_resource();
let token_expiration_duration = time::Duration::hours(2);
match create_token(&key, &test_token_resource, token_expiration_duration) {
Ok((token, expire_duration)) => {
assert_eq!(false, token.is_empty(), "Error: Token is empty");
assert!(
expire_duration > 0,
"Token expire duration is invalid {expire_duration:?}"
);
}
Err(err) => {
assert!(false, "Error: {err:?}");
}
}
}
#[test]
fn test_token_creation_with_id() {
let key = test_key();
let mut test_token_resource = test_resource();
test_token_resource.id = uuid::Uuid::new_v4();
let token_expiration_duration = time::Duration::hours(2);
match create_token(&key, &test_token_resource, token_expiration_duration) {