earl_protocol_sql/
schema.rs1use rkyv::{Archive, Deserialize as RkyvDeserialize, Serialize as RkyvSerialize};
2use serde::{Deserialize, Serialize};
3use serde_json::Value;
4
5use earl_core::schema::TransportTemplate;
6use earl_core::with::AsJson;
7
8#[derive(Debug, Clone, Deserialize, Serialize, Archive, RkyvSerialize, RkyvDeserialize)]
9#[serde(deny_unknown_fields)]
10pub struct SqlOperationTemplate {
11 pub sql: SqlQueryTemplate,
12 pub transport: Option<TransportTemplate>,
13}
14
15#[derive(Debug, Clone, Deserialize, Serialize, Archive, RkyvSerialize, RkyvDeserialize)]
16#[serde(deny_unknown_fields)]
17pub struct SqlQueryTemplate {
18 pub connection_secret: String,
19 pub query: String,
20 #[rkyv(with = AsJson)]
21 pub params: Option<Vec<Value>>,
22 pub sandbox: Option<SqlSandboxTemplate>,
23}
24
25#[derive(Debug, Clone, Deserialize, Serialize, Archive, RkyvSerialize, RkyvDeserialize)]
26#[serde(deny_unknown_fields)]
27pub struct SqlSandboxTemplate {
28 pub read_only: Option<bool>,
29 pub max_rows: Option<u64>,
30 pub max_time_ms: Option<u64>,
31}