diff --git a/Cargo.lock b/Cargo.lock index 6a79a9db1..2365ed6bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1924,9 +1924,9 @@ dependencies = [ [[package]] name = "mungos" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2541180b2a9d5e3ee315b9e3e3b5470b0d86655d62f71f117a41fdca4a048132" +checksum = "caa2bb550d786347480949c967a67092b2a92fdbe25e3d6164a4e4cd007787d3" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 5afe0e7a0..e7852f3b7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,6 +62,6 @@ derive_variants = "0.1.1" make_option = "0.1.3" resolver_api = "0.1.6" parse_csl = "0.1.0" -mungos = "0.4.10" +mungos = "0.4.11" svi = "0.1.4" diff --git a/core/src/config.rs b/core/src/config.rs index fc2733969..2d1861094 100644 --- a/core/src/config.rs +++ b/core/src/config.rs @@ -68,7 +68,7 @@ pub struct CoreConfig { #[serde(default)] pub docker_organizations: Vec, - // enable login with local auth + // enable login with local auth #[serde(default)] pub local_auth: bool, diff --git a/core/src/helpers.rs b/core/src/helpers.rs index 9ae518594..be416793f 100644 --- a/core/src/helpers.rs +++ b/core/src/helpers.rs @@ -326,7 +326,7 @@ impl State { std::mem::swap(&mut update.id, &mut update_id); self.db .updates - .update_one(&update_id, mungos::Update::Regular(update.clone())) + .update_one(&update_id, mungos::Update::Regular(&update)) .await .context("failed to update the update on db. the update build process was deleted")?; std::mem::swap(&mut update.id, &mut update_id); diff --git a/core/src/requests/execute/mod.rs b/core/src/requests/execute/mod.rs index af6578287..c76b3feef 100644 --- a/core/src/requests/execute/mod.rs +++ b/core/src/requests/execute/mod.rs @@ -56,7 +56,10 @@ pub fn router() -> Router { Json(request): Json| async move { let timer = Instant::now(); let req_id = Uuid::new_v4(); - info!("/execute request {req_id} | user: {} ({}) | {request:?}", user.username, user.id); + info!( + "/execute request {req_id} | user: {} ({}) | {request:?}", + user.username, user.id + ); let res = tokio::spawn(async move { state .resolve_request(request, user) diff --git a/core/src/requests/read/mod.rs b/core/src/requests/read/mod.rs index 747522749..c4dcea028 100644 --- a/core/src/requests/read/mod.rs +++ b/core/src/requests/read/mod.rs @@ -19,8 +19,8 @@ mod build; mod builder; mod deployment; mod repo; -mod server; mod search; +mod server; #[typeshare] #[derive(Serialize, Deserialize, Debug, Clone, Resolver)] diff --git a/core/src/requests/write/mod.rs b/core/src/requests/write/mod.rs index 01caf926f..d720d139b 100644 --- a/core/src/requests/write/mod.rs +++ b/core/src/requests/write/mod.rs @@ -15,6 +15,7 @@ use crate::{ state::{State, StateExtension}, }; +mod alerter; mod build; mod builder; mod deployment; @@ -22,7 +23,6 @@ mod permissions; mod repo; mod secret; mod server; -mod alerter; mod tag; #[typeshare] @@ -93,7 +93,10 @@ pub fn router() -> Router { Json(request): Json| async move { let timer = Instant::now(); let req_id = Uuid::new_v4(); - info!("/write request {req_id} | user: {} ({}) | {request:?}", user.username, user.id); + info!( + "/write request {req_id} | user: {} ({}) | {request:?}", + user.username, user.id + ); let res = tokio::spawn(async move { state .resolve_request(request, user) diff --git a/core/src/requests/write/secret.rs b/core/src/requests/write/secret.rs index 34545ee53..3b9ce1c6b 100644 --- a/core/src/requests/write/secret.rs +++ b/core/src/requests/write/secret.rs @@ -1,10 +1,6 @@ use anyhow::{anyhow, Context}; use async_trait::async_trait; -use monitor_types::{ - entities::user::ApiSecret, - monitor_timestamp, - requests::write::*, -}; +use monitor_types::{entities::user::ApiSecret, monitor_timestamp, requests::write::*}; use mungos::{ mongodb::bson::{doc, to_bson}, Update, diff --git a/lib/types/src/entities/alerter.rs b/lib/types/src/entities/alerter.rs index 05b08b81f..3db36e2d4 100644 --- a/lib/types/src/entities/alerter.rs +++ b/lib/types/src/entities/alerter.rs @@ -57,8 +57,8 @@ pub struct Alerter { #[variant_derive(Serialize, Deserialize, Debug, Clone, Copy, Display, EnumString)] #[serde(tag = "type", content = "params")] pub enum AlerterConfig { - Custom(CustomAlerterConfig), - Slack(SlackAlerterConfig), + Custom(CustomAlerterConfig), + Slack(SlackAlerterConfig), } #[typeshare(serialized_as = "Partial")] @@ -72,8 +72,8 @@ pub type _PartialSlackAlerterConfig = PartialSlackAlerterConfig; #[variant_derive(Serialize, Deserialize, Debug, Clone, Copy, Display, EnumString)] #[serde(tag = "type", content = "params")] pub enum PartialAlerterConfig { - Custom(_PartialCustomAlerterConfig), - Slack(_PartialSlackAlerterConfig), + Custom(_PartialCustomAlerterConfig), + Slack(_PartialSlackAlerterConfig), } #[typeshare] diff --git a/lib/types/src/entities/build.rs b/lib/types/src/entities/build.rs index 0cced3a99..2f5ef1a6a 100644 --- a/lib/types/src/entities/build.rs +++ b/lib/types/src/entities/build.rs @@ -1,6 +1,9 @@ use derive_builder::Builder; use derive_variants::EnumVariants; -use mungos::{MungosIndexed, mongodb::bson::{serde_helpers::hex_string_as_object_id, doc}}; +use mungos::{ + mongodb::bson::{doc, serde_helpers::hex_string_as_object_id}, + MungosIndexed, +}; use partial_derive2::Partial; use serde::{Deserialize, Serialize}; use strum_macros::{Display, EnumString}; diff --git a/lib/types/src/entities/deployment.rs b/lib/types/src/entities/deployment.rs index 7936611a2..953b94155 100644 --- a/lib/types/src/entities/deployment.rs +++ b/lib/types/src/entities/deployment.rs @@ -1,6 +1,9 @@ use derive_builder::Builder; use derive_variants::EnumVariants; -use mungos::{mongodb::bson::{serde_helpers::hex_string_as_object_id, doc}, MungosIndexed}; +use mungos::{ + mongodb::bson::{doc, serde_helpers::hex_string_as_object_id}, + MungosIndexed, +}; use partial_derive2::Partial; use serde::{Deserialize, Serialize}; use strum_macros::{Display, EnumString}; diff --git a/lib/types/src/entities/mod.rs b/lib/types/src/entities/mod.rs index 5fb621dd4..417dd8173 100644 --- a/lib/types/src/entities/mod.rs +++ b/lib/types/src/entities/mod.rs @@ -8,6 +8,7 @@ use typeshare::typeshare; use crate::optional_string; +pub mod alerter; pub mod build; pub mod builder; pub mod deployment; @@ -16,7 +17,6 @@ pub mod server; pub mod tag; pub mod update; pub mod user; -pub mod alerter; #[typeshare] pub type PermissionsMap = HashMap; diff --git a/lib/types/src/entities/repo.rs b/lib/types/src/entities/repo.rs index eae2262ff..2b4bf6339 100644 --- a/lib/types/src/entities/repo.rs +++ b/lib/types/src/entities/repo.rs @@ -1,10 +1,10 @@ use derive_builder::Builder; -use mungos::{MungosIndexed, mongodb::bson::serde_helpers::hex_string_as_object_id}; +use mungos::{mongodb::bson::serde_helpers::hex_string_as_object_id, MungosIndexed}; use partial_derive2::Partial; use serde::{Deserialize, Serialize}; use typeshare::typeshare; -use crate::{i64_is_zero, I64, MongoId}; +use crate::{i64_is_zero, MongoId, I64}; use super::{PermissionsMap, SystemCommand}; diff --git a/lib/types/src/entities/server/mod.rs b/lib/types/src/entities/server/mod.rs index c964a8ef5..9e7c1a0e8 100644 --- a/lib/types/src/entities/server/mod.rs +++ b/lib/types/src/entities/server/mod.rs @@ -1,10 +1,10 @@ use derive_builder::Builder; -use mungos::{MungosIndexed, mongodb::bson::serde_helpers::hex_string_as_object_id}; +use mungos::{mongodb::bson::serde_helpers::hex_string_as_object_id, MungosIndexed}; use partial_derive2::Partial; use serde::{Deserialize, Serialize}; use typeshare::typeshare; -use crate::{i64_is_zero, I64, MongoId}; +use crate::{i64_is_zero, MongoId, I64}; use super::PermissionsMap; diff --git a/lib/types/src/entities/update.rs b/lib/types/src/entities/update.rs index 9275b5447..05b52f475 100644 --- a/lib/types/src/entities/update.rs +++ b/lib/types/src/entities/update.rs @@ -1,13 +1,15 @@ use async_timing_util::unix_timestamp_ms; use derive_variants::EnumVariants; -use mungos::{MungosIndexed, mongodb::bson::serde_helpers::hex_string_as_object_id}; +use mungos::{mongodb::bson::serde_helpers::hex_string_as_object_id, MungosIndexed}; use serde::{Deserialize, Serialize}; use strum_macros::{Display, EnumString}; use typeshare::typeshare; -use crate::{entities::Operation, monitor_timestamp, I64, MongoId}; +use crate::{entities::Operation, monitor_timestamp, MongoId, I64}; -use super::{Version, build::Build, deployment::Deployment, server::Server, repo::Repo, builder::Builder}; +use super::{ + build::Build, builder::Builder, deployment::Deployment, repo::Repo, server::Server, Version, +}; #[typeshare] #[derive(Serialize, Deserialize, Debug, Clone, Default, MungosIndexed)] @@ -87,7 +89,17 @@ impl Log { #[typeshare] #[derive(Serialize, Deserialize, Debug, Clone, Default, MungosIndexed, EnumVariants)] -#[variant_derive(Serialize, Deserialize, Debug, Clone, Copy, Display, EnumString, PartialEq, Eq)] +#[variant_derive( + Serialize, + Deserialize, + Debug, + Clone, + Copy, + Display, + EnumString, + PartialEq, + Eq +)] #[serde(tag = "type", content = "id")] pub enum ResourceTarget { #[default] diff --git a/lib/types/src/entities/user.rs b/lib/types/src/entities/user.rs index 5216694dd..0514d76e5 100644 --- a/lib/types/src/entities/user.rs +++ b/lib/types/src/entities/user.rs @@ -1,8 +1,8 @@ -use mungos::{MungosIndexed, mongodb::bson::serde_helpers::hex_string_as_object_id}; +use mungos::{mongodb::bson::serde_helpers::hex_string_as_object_id, MungosIndexed}; use serde::{Deserialize, Serialize}; use typeshare::typeshare; -use crate::{i64_is_zero, I64, MongoId}; +use crate::{i64_is_zero, MongoId, I64}; #[typeshare] #[derive(Serialize, Deserialize, Debug, Clone, Default, MungosIndexed)] diff --git a/lib/types/src/requests/mod.rs b/lib/types/src/requests/mod.rs index 11bf8ff16..55f891e40 100644 --- a/lib/types/src/requests/mod.rs +++ b/lib/types/src/requests/mod.rs @@ -1,4 +1,4 @@ pub mod auth; +pub mod execute; pub mod read; pub mod write; -pub mod execute; diff --git a/lib/types/src/requests/read/deployment.rs b/lib/types/src/requests/read/deployment.rs index 294da457a..2f020a91d 100644 --- a/lib/types/src/requests/read/deployment.rs +++ b/lib/types/src/requests/read/deployment.rs @@ -4,7 +4,9 @@ use typeshare::typeshare; use crate::{ entities::{ - deployment::{Deployment, DeploymentActionState, DockerContainerStats, DockerContainerState}, + deployment::{ + Deployment, DeploymentActionState, DockerContainerState, DockerContainerStats, + }, update::Log, }, MongoDocument, U64, @@ -53,7 +55,7 @@ pub struct GetDeploymentStatus { #[derive(Serialize, Deserialize, Debug, Clone)] pub struct GetDeploymentStatusResponse { pub status: Option, - pub state: DockerContainerState + pub state: DockerContainerState, } // diff --git a/lib/types/src/requests/read/search.rs b/lib/types/src/requests/read/search.rs index 2adb8a7a3..27c9028d0 100644 --- a/lib/types/src/requests/read/search.rs +++ b/lib/types/src/requests/read/search.rs @@ -1,10 +1,10 @@ use resolver_api::derive::Request; -use serde::{Serialize, Deserialize}; +use serde::{Deserialize, Serialize}; use typeshare::typeshare; use crate::entities::tag::Tag; -use super::{ServerListItem, DeploymentListItem, BuildListItem, RepoListItem}; +use super::{BuildListItem, DeploymentListItem, RepoListItem, ServerListItem}; // @@ -12,14 +12,14 @@ use super::{ServerListItem, DeploymentListItem, BuildListItem, RepoListItem}; #[derive(Serialize, Deserialize, Debug, Clone, Request)] #[response(FindResourcesResponse)] pub struct FindResources { - pub tags: Vec, + pub tags: Vec, } #[typeshare] #[derive(Serialize, Deserialize, Debug, Clone, Default)] pub struct FindResourcesResponse { - pub servers: Vec, - pub deployments: Vec, - pub builds: Vec, - pub repos: Vec, -} \ No newline at end of file + pub servers: Vec, + pub deployments: Vec, + pub builds: Vec, + pub repos: Vec, +} diff --git a/lib/types/src/requests/read/update.rs b/lib/types/src/requests/read/update.rs index 3c0b20f63..4dd6b9583 100644 --- a/lib/types/src/requests/read/update.rs +++ b/lib/types/src/requests/read/update.rs @@ -1,5 +1,5 @@ use resolver_api::derive::Request; -use serde::{Serialize, Deserialize}; +use serde::{Deserialize, Serialize}; use typeshare::typeshare; use crate::{entities::update::Update, MongoDocument}; @@ -9,4 +9,4 @@ use crate::{entities::update::Update, MongoDocument}; #[response(Vec)] pub struct ListUpdates { pub query: Option, -} \ No newline at end of file +} diff --git a/lib/types/src/requests/write/permissions.rs b/lib/types/src/requests/write/permissions.rs index aaf452ad2..3cb8bcca4 100644 --- a/lib/types/src/requests/write/permissions.rs +++ b/lib/types/src/requests/write/permissions.rs @@ -24,4 +24,4 @@ pub struct UpdateUserPermissions { pub enabled: Option, pub create_servers: Option, pub create_builds: Option, -} \ No newline at end of file +} diff --git a/lib/types/src/requests/write/tags.rs b/lib/types/src/requests/write/tags.rs index 74a256172..37f63e931 100644 --- a/lib/types/src/requests/write/tags.rs +++ b/lib/types/src/requests/write/tags.rs @@ -1,8 +1,11 @@ use resolver_api::derive::Request; -use serde::{Serialize, Deserialize}; +use serde::{Deserialize, Serialize}; use typeshare::typeshare; -use crate::entities::{update::ResourceTarget, tag::{CustomTag, TagColor, PartialCustomTag}}; +use crate::entities::{ + tag::{CustomTag, PartialCustomTag, TagColor}, + update::ResourceTarget, +}; #[typeshare(serialized_as = "Partial")] type _PartialCustomTag = PartialCustomTag; @@ -13,13 +16,13 @@ type _PartialCustomTag = PartialCustomTag; #[derive(Serialize, Deserialize, Debug, Clone, Request)] #[response(CustomTag)] pub struct CreateTag { - pub name: String, + pub name: String, - #[serde(default)] - pub category: String, + #[serde(default)] + pub category: String, - #[serde(default)] - pub color: TagColor + #[serde(default)] + pub color: TagColor, } // @@ -28,7 +31,7 @@ pub struct CreateTag { #[derive(Serialize, Deserialize, Debug, Clone, Request)] #[response(CustomTag)] pub struct DeleteTag { - pub id: String, + pub id: String, } // @@ -37,8 +40,8 @@ pub struct DeleteTag { #[derive(Serialize, Deserialize, Debug, Clone, Request)] #[response(CustomTag)] pub struct UpdateTag { - pub id: String, - pub config: _PartialCustomTag + pub id: String, + pub config: _PartialCustomTag, } // @@ -47,8 +50,8 @@ pub struct UpdateTag { #[derive(Serialize, Deserialize, Debug, Clone, Request)] #[response(())] pub struct AddTags { - pub target: ResourceTarget, - pub tags: Vec, // custom tag ids + pub target: ResourceTarget, + pub tags: Vec, // custom tag ids } // @@ -57,6 +60,6 @@ pub struct AddTags { #[derive(Serialize, Deserialize, Debug, Clone, Request)] #[response(())] pub struct RemoveTags { - pub target: ResourceTarget, - pub tags: Vec, // custom tag ids + pub target: ResourceTarget, + pub tags: Vec, // custom tag ids } diff --git a/lib/types/src/requests/write/user.rs b/lib/types/src/requests/write/user.rs index e69de29bb..8b1378917 100644 --- a/lib/types/src/requests/write/user.rs +++ b/lib/types/src/requests/write/user.rs @@ -0,0 +1 @@ +