fix: SBOM multi-ecosystem support with correct package managers and licenses (#8)
Some checks failed
CI / Format (push) Successful in 3s
CI / Clippy (push) Successful in 4m28s
CI / Security Audit (push) Failing after 1m52s
CI / Tests (push) Has been skipped
CI / Detect Changes (push) Has been skipped
CI / Deploy Agent (push) Has been skipped
CI / Deploy Dashboard (push) Has been skipped
CI / Deploy Docs (push) Has been skipped
CI / Deploy MCP (push) Has been skipped

This commit was merged in pull request #8.
This commit is contained in:
2026-03-10 12:37:29 +00:00
parent 0065c7c4b2
commit daff5812a6
7 changed files with 340 additions and 28 deletions

View File

@@ -77,8 +77,32 @@ pub struct SbomDiffResponse {
pub data: SbomDiffResultData,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct SbomFiltersResponse {
pub package_managers: Vec<String>,
pub licenses: Vec<String>,
}
// ── Server functions ──
#[server]
pub async fn fetch_sbom_filters() -> Result<SbomFiltersResponse, ServerFnError> {
let state: super::server_state::ServerState =
dioxus_fullstack::FullstackContext::extract().await?;
let url = format!("{}/api/v1/sbom/filters", state.agent_api_url);
let resp = reqwest::get(&url)
.await
.map_err(|e| ServerFnError::new(e.to_string()))?;
let text = resp
.text()
.await
.map_err(|e| ServerFnError::new(e.to_string()))?;
let body: SbomFiltersResponse = serde_json::from_str(&text)
.map_err(|e| ServerFnError::new(format!("Parse error: {e} — body: {text}")))?;
Ok(body)
}
#[server]
pub async fn fetch_sbom_filtered(
repo_id: Option<String>,