|
|
|
@@ -21,6 +21,8 @@ use ts_rs::TS;
|
|
|
|
|
use yaak_database::{Result as DbResult, UpdateSource};
|
|
|
|
|
pub use yaak_database::{UpsertModelInfo, upsert_date};
|
|
|
|
|
|
|
|
|
|
pub const DEFAULT_REQUEST_MESSAGE_SIZE: i32 = 64 * 1024 * 1024;
|
|
|
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
|
macro_rules! impl_model {
|
|
|
|
|
($t:ty, $variant:ident) => {
|
|
|
|
@@ -120,6 +122,7 @@ pub struct ResolvedHttpRequestSettings {
|
|
|
|
|
pub validate_certificates: ResolvedSetting<bool>,
|
|
|
|
|
pub follow_redirects: ResolvedSetting<bool>,
|
|
|
|
|
pub request_timeout: ResolvedSetting<i32>,
|
|
|
|
|
pub request_message_size: ResolvedSetting<i32>,
|
|
|
|
|
pub send_cookies: ResolvedSetting<bool>,
|
|
|
|
|
pub store_cookies: ResolvedSetting<bool>,
|
|
|
|
|
}
|
|
|
|
@@ -130,6 +133,7 @@ impl Default for ResolvedHttpRequestSettings {
|
|
|
|
|
validate_certificates: ResolvedSetting::default_source(true),
|
|
|
|
|
follow_redirects: ResolvedSetting::default_source(true),
|
|
|
|
|
request_timeout: ResolvedSetting::default_source(0),
|
|
|
|
|
request_message_size: ResolvedSetting::default_source(DEFAULT_REQUEST_MESSAGE_SIZE),
|
|
|
|
|
send_cookies: ResolvedSetting::default_source(true),
|
|
|
|
|
store_cookies: ResolvedSetting::default_source(true),
|
|
|
|
|
}
|
|
|
|
@@ -400,6 +404,8 @@ pub struct Workspace {
|
|
|
|
|
#[serde(default = "default_true")]
|
|
|
|
|
pub setting_follow_redirects: bool,
|
|
|
|
|
pub setting_request_timeout: i32,
|
|
|
|
|
#[serde(default = "default_request_message_size")]
|
|
|
|
|
pub setting_request_message_size: i32,
|
|
|
|
|
#[serde(default)]
|
|
|
|
|
pub setting_dns_overrides: Vec<DnsOverride>,
|
|
|
|
|
#[serde(default = "default_true")]
|
|
|
|
@@ -445,6 +451,7 @@ impl UpsertModelInfo for Workspace {
|
|
|
|
|
(EncryptionKeyChallenge, self.encryption_key_challenge.into()),
|
|
|
|
|
(SettingFollowRedirects, self.setting_follow_redirects.into()),
|
|
|
|
|
(SettingRequestTimeout, self.setting_request_timeout.into()),
|
|
|
|
|
(SettingRequestMessageSize, self.setting_request_message_size.into()),
|
|
|
|
|
(SettingValidateCertificates, self.setting_validate_certificates.into()),
|
|
|
|
|
(SettingDnsOverrides, serde_json::to_string(&self.setting_dns_overrides)?.into()),
|
|
|
|
|
(SettingSendCookies, self.setting_send_cookies.into()),
|
|
|
|
@@ -463,7 +470,7 @@ impl UpsertModelInfo for Workspace {
|
|
|
|
|
WorkspaceIden::EncryptionKeyChallenge,
|
|
|
|
|
WorkspaceIden::SettingRequestTimeout,
|
|
|
|
|
WorkspaceIden::SettingFollowRedirects,
|
|
|
|
|
WorkspaceIden::SettingRequestTimeout,
|
|
|
|
|
WorkspaceIden::SettingRequestMessageSize,
|
|
|
|
|
WorkspaceIden::SettingValidateCertificates,
|
|
|
|
|
WorkspaceIden::SettingDnsOverrides,
|
|
|
|
|
WorkspaceIden::SettingSendCookies,
|
|
|
|
@@ -491,6 +498,7 @@ impl UpsertModelInfo for Workspace {
|
|
|
|
|
authentication_type: row.get("authentication_type")?,
|
|
|
|
|
setting_follow_redirects: row.get("setting_follow_redirects")?,
|
|
|
|
|
setting_request_timeout: row.get("setting_request_timeout")?,
|
|
|
|
|
setting_request_message_size: row.get("setting_request_message_size")?,
|
|
|
|
|
setting_validate_certificates: row.get("setting_validate_certificates")?,
|
|
|
|
|
setting_dns_overrides: serde_json::from_str(&setting_dns_overrides).unwrap_or_default(),
|
|
|
|
|
setting_send_cookies: row.get("setting_send_cookies")?,
|
|
|
|
@@ -962,6 +970,8 @@ pub struct Folder {
|
|
|
|
|
pub setting_validate_certificates: InheritedBoolSetting,
|
|
|
|
|
pub setting_follow_redirects: InheritedBoolSetting,
|
|
|
|
|
pub setting_request_timeout: InheritedIntSetting,
|
|
|
|
|
#[serde(default = "default_request_message_size_setting")]
|
|
|
|
|
pub setting_request_message_size: InheritedIntSetting,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl UpsertModelInfo for Folder {
|
|
|
|
@@ -1009,6 +1019,10 @@ impl UpsertModelInfo for Folder {
|
|
|
|
|
),
|
|
|
|
|
(SettingFollowRedirects, serde_json::to_string(&self.setting_follow_redirects)?.into()),
|
|
|
|
|
(SettingRequestTimeout, serde_json::to_string(&self.setting_request_timeout)?.into()),
|
|
|
|
|
(
|
|
|
|
|
SettingRequestMessageSize,
|
|
|
|
|
serde_json::to_string(&self.setting_request_message_size)?.into(),
|
|
|
|
|
),
|
|
|
|
|
])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1027,6 +1041,7 @@ impl UpsertModelInfo for Folder {
|
|
|
|
|
FolderIden::SettingValidateCertificates,
|
|
|
|
|
FolderIden::SettingFollowRedirects,
|
|
|
|
|
FolderIden::SettingRequestTimeout,
|
|
|
|
|
FolderIden::SettingRequestMessageSize,
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1041,6 +1056,7 @@ impl UpsertModelInfo for Folder {
|
|
|
|
|
let setting_validate_certificates: String = row.get("setting_validate_certificates")?;
|
|
|
|
|
let setting_follow_redirects: String = row.get("setting_follow_redirects")?;
|
|
|
|
|
let setting_request_timeout: String = row.get("setting_request_timeout")?;
|
|
|
|
|
let setting_request_message_size: String = row.get("setting_request_message_size")?;
|
|
|
|
|
Ok(Self {
|
|
|
|
|
id: row.get("id")?,
|
|
|
|
|
model: row.get("model")?,
|
|
|
|
@@ -1062,6 +1078,8 @@ impl UpsertModelInfo for Folder {
|
|
|
|
|
.unwrap_or_default(),
|
|
|
|
|
setting_request_timeout: serde_json::from_str(&setting_request_timeout)
|
|
|
|
|
.unwrap_or_default(),
|
|
|
|
|
setting_request_message_size: serde_json::from_str(&setting_request_message_size)
|
|
|
|
|
.unwrap_or_else(|_| default_request_message_size_setting()),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -1398,6 +1416,8 @@ pub struct WebsocketRequest {
|
|
|
|
|
pub setting_send_cookies: InheritedBoolSetting,
|
|
|
|
|
pub setting_store_cookies: InheritedBoolSetting,
|
|
|
|
|
pub setting_validate_certificates: InheritedBoolSetting,
|
|
|
|
|
#[serde(default = "default_request_message_size_setting")]
|
|
|
|
|
pub setting_request_message_size: InheritedIntSetting,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl UpsertModelInfo for WebsocketRequest {
|
|
|
|
@@ -1446,6 +1466,10 @@ impl UpsertModelInfo for WebsocketRequest {
|
|
|
|
|
SettingValidateCertificates,
|
|
|
|
|
serde_json::to_string(&self.setting_validate_certificates)?.into(),
|
|
|
|
|
),
|
|
|
|
|
(
|
|
|
|
|
SettingRequestMessageSize,
|
|
|
|
|
serde_json::to_string(&self.setting_request_message_size)?.into(),
|
|
|
|
|
),
|
|
|
|
|
])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1466,6 +1490,7 @@ impl UpsertModelInfo for WebsocketRequest {
|
|
|
|
|
WebsocketRequestIden::SettingSendCookies,
|
|
|
|
|
WebsocketRequestIden::SettingStoreCookies,
|
|
|
|
|
WebsocketRequestIden::SettingValidateCertificates,
|
|
|
|
|
WebsocketRequestIden::SettingRequestMessageSize,
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1479,6 +1504,7 @@ impl UpsertModelInfo for WebsocketRequest {
|
|
|
|
|
let setting_send_cookies: String = row.get("setting_send_cookies")?;
|
|
|
|
|
let setting_store_cookies: String = row.get("setting_store_cookies")?;
|
|
|
|
|
let setting_validate_certificates: String = row.get("setting_validate_certificates")?;
|
|
|
|
|
let setting_request_message_size: String = row.get("setting_request_message_size")?;
|
|
|
|
|
Ok(Self {
|
|
|
|
|
id: row.get("id")?,
|
|
|
|
|
model: row.get("model")?,
|
|
|
|
@@ -1499,6 +1525,8 @@ impl UpsertModelInfo for WebsocketRequest {
|
|
|
|
|
setting_store_cookies: serde_json::from_str(&setting_store_cookies).unwrap_or_default(),
|
|
|
|
|
setting_validate_certificates: serde_json::from_str(&setting_validate_certificates)
|
|
|
|
|
.unwrap_or_default(),
|
|
|
|
|
setting_request_message_size: serde_json::from_str(&setting_request_message_size)
|
|
|
|
|
.unwrap_or_else(|_| default_request_message_size_setting()),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -2039,6 +2067,8 @@ pub struct GrpcRequest {
|
|
|
|
|
/// Server URL (http for plaintext or https for secure)
|
|
|
|
|
pub url: String,
|
|
|
|
|
pub setting_validate_certificates: InheritedBoolSetting,
|
|
|
|
|
#[serde(default = "default_request_message_size_setting")]
|
|
|
|
|
pub setting_request_message_size: InheritedIntSetting,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl UpsertModelInfo for GrpcRequest {
|
|
|
|
@@ -2086,6 +2116,10 @@ impl UpsertModelInfo for GrpcRequest {
|
|
|
|
|
SettingValidateCertificates,
|
|
|
|
|
serde_json::to_string(&self.setting_validate_certificates)?.into(),
|
|
|
|
|
),
|
|
|
|
|
(
|
|
|
|
|
SettingRequestMessageSize,
|
|
|
|
|
serde_json::to_string(&self.setting_request_message_size)?.into(),
|
|
|
|
|
),
|
|
|
|
|
])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -2105,6 +2139,7 @@ impl UpsertModelInfo for GrpcRequest {
|
|
|
|
|
GrpcRequestIden::Authentication,
|
|
|
|
|
GrpcRequestIden::Metadata,
|
|
|
|
|
GrpcRequestIden::SettingValidateCertificates,
|
|
|
|
|
GrpcRequestIden::SettingRequestMessageSize,
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -2115,6 +2150,7 @@ impl UpsertModelInfo for GrpcRequest {
|
|
|
|
|
let authentication: String = row.get("authentication")?;
|
|
|
|
|
let metadata: String = row.get("metadata")?;
|
|
|
|
|
let setting_validate_certificates: String = row.get("setting_validate_certificates")?;
|
|
|
|
|
let setting_request_message_size: String = row.get("setting_request_message_size")?;
|
|
|
|
|
Ok(Self {
|
|
|
|
|
id: row.get("id")?,
|
|
|
|
|
model: row.get("model")?,
|
|
|
|
@@ -2134,6 +2170,8 @@ impl UpsertModelInfo for GrpcRequest {
|
|
|
|
|
metadata: serde_json::from_str(metadata.as_str()).unwrap_or_default(),
|
|
|
|
|
setting_validate_certificates: serde_json::from_str(&setting_validate_certificates)
|
|
|
|
|
.unwrap_or_default(),
|
|
|
|
|
setting_request_message_size: serde_json::from_str(&setting_request_message_size)
|
|
|
|
|
.unwrap_or_else(|_| default_request_message_size_setting()),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -2684,6 +2722,14 @@ fn default_true() -> bool {
|
|
|
|
|
true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn default_request_message_size() -> i32 {
|
|
|
|
|
DEFAULT_REQUEST_MESSAGE_SIZE
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn default_request_message_size_setting() -> InheritedIntSetting {
|
|
|
|
|
InheritedIntSetting { enabled: false, value: DEFAULT_REQUEST_MESSAGE_SIZE }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn default_http_method() -> String {
|
|
|
|
|
"GET".to_string()
|
|
|
|
|
}
|
|
|
|
|