mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 04:23:40 +00:00
appmgr: offline queries
This commit is contained in:
7
appmgr/Cargo.lock
generated
7
appmgr/Cargo.lock
generated
@@ -663,6 +663,9 @@ name = "either"
|
|||||||
version = "1.6.1"
|
version = "1.6.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
|
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "embassy-os"
|
name = "embassy-os"
|
||||||
@@ -2407,6 +2410,7 @@ dependencies = [
|
|||||||
"parking_lot",
|
"parking_lot",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"rustls",
|
"rustls",
|
||||||
|
"serde",
|
||||||
"sha2 0.9.5",
|
"sha2 0.9.5",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"sqlformat",
|
"sqlformat",
|
||||||
@@ -2430,9 +2434,12 @@ dependencies = [
|
|||||||
"either",
|
"either",
|
||||||
"futures",
|
"futures",
|
||||||
"heck",
|
"heck",
|
||||||
|
"hex",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"proc-macro2 1.0.28",
|
"proc-macro2 1.0.28",
|
||||||
"quote 1.0.9",
|
"quote 1.0.9",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
"sha2 0.9.5",
|
"sha2 0.9.5",
|
||||||
"sqlx-core",
|
"sqlx-core",
|
||||||
"sqlx-rt",
|
"sqlx-rt",
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ serde_toml = { package="toml", version="0.5.8" }
|
|||||||
serde_yaml = "0.8.14"
|
serde_yaml = "0.8.14"
|
||||||
sha2 = "0.9.3"
|
sha2 = "0.9.3"
|
||||||
simple-logging = "2.0"
|
simple-logging = "2.0"
|
||||||
sqlx = { version="0.5", features=["runtime-tokio-rustls", "sqlite"] }
|
sqlx = { version="0.5", features=["runtime-tokio-rustls", "sqlite", "offline"] }
|
||||||
thiserror = "1.0.24"
|
thiserror = "1.0.24"
|
||||||
tokio = { version="1.5.0", features=["full"] }
|
tokio = { version="1.5.0", features=["full"] }
|
||||||
tokio-compat-02 = "0.2.0"
|
tokio-compat-02 = "0.2.0"
|
||||||
|
|||||||
21
appmgr/sqlx-data.json
Normal file
21
appmgr/sqlx-data.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"db": "SQLite",
|
||||||
|
"3e57a0e52b69f33e9411c13b03a5d82c5856d63f0375eb4c23b255a09c54f8b1": {
|
||||||
|
"query": "SELECT key FROM tor WHERE package = ? AND interface = ?",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"name": "key",
|
||||||
|
"ordinal": 0,
|
||||||
|
"type_info": "Blob"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 2
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
false
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,6 +21,7 @@ use crate::{Error, ResultExt};
|
|||||||
pub struct RpcContextConfig {
|
pub struct RpcContextConfig {
|
||||||
pub bind_rpc: Option<SocketAddr>,
|
pub bind_rpc: Option<SocketAddr>,
|
||||||
pub bind_ws: Option<SocketAddr>,
|
pub bind_ws: Option<SocketAddr>,
|
||||||
|
pub tor_control: Option<SocketAddr>,
|
||||||
pub db: Option<PathBuf>,
|
pub db: Option<PathBuf>,
|
||||||
pub secret_store: Option<PathBuf>,
|
pub secret_store: Option<PathBuf>,
|
||||||
}
|
}
|
||||||
@@ -56,21 +57,27 @@ impl RpcContext {
|
|||||||
.unwrap_or_else(|| Path::new("/mnt/embassy-os/embassy.db").to_owned()),
|
.unwrap_or_else(|| Path::new("/mnt/embassy-os/embassy.db").to_owned()),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
let secret_store = SqlitePool::connect(&format!(
|
||||||
|
"sqlite://{}",
|
||||||
|
base.secret_store
|
||||||
|
.unwrap_or_else(|| Path::new("/mnt/embassy-os/secrets.db").to_owned())
|
||||||
|
.display()
|
||||||
|
))
|
||||||
|
.await?;
|
||||||
let mut db_handle = db.handle();
|
let mut db_handle = db.handle();
|
||||||
let lan_handle = Container::new();
|
let lan_handle = Container::new();
|
||||||
lan_handle.set(enable_lan(&mut db_handle).await?).await;
|
lan_handle.set(enable_lan(&mut db_handle).await?).await;
|
||||||
let tor_controller = TorController::init(&mut db_handle).await?;
|
let tor_controller = TorController::init(
|
||||||
|
base.tor_control.unwrap_or(([127, 0, 0, 1], 9051).into()),
|
||||||
|
&mut db_handle,
|
||||||
|
&mut secret_store.acquire().await?,
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
let seed = Arc::new(RpcContextSeed {
|
let seed = Arc::new(RpcContextSeed {
|
||||||
bind_rpc: base.bind_rpc.unwrap_or(([127, 0, 0, 1], 5959).into()),
|
bind_rpc: base.bind_rpc.unwrap_or(([127, 0, 0, 1], 5959).into()),
|
||||||
bind_ws: base.bind_ws.unwrap_or(([127, 0, 0, 1], 5960).into()),
|
bind_ws: base.bind_ws.unwrap_or(([127, 0, 0, 1], 5960).into()),
|
||||||
db,
|
db,
|
||||||
secret_store: SqlitePool::connect(&format!(
|
secret_store,
|
||||||
"sqlite://{}",
|
|
||||||
base.secret_store
|
|
||||||
.unwrap_or_else(|| Path::new("/mnt/embassy-os/secrets.db").to_owned())
|
|
||||||
.display()
|
|
||||||
))
|
|
||||||
.await?,
|
|
||||||
docker: Docker::connect_with_unix_defaults()?,
|
docker: Docker::connect_with_unix_defaults()?,
|
||||||
lan_handle,
|
lan_handle,
|
||||||
tor_controller,
|
tor_controller,
|
||||||
|
|||||||
Reference in New Issue
Block a user