Fix dashboard wasm build and feature-gate mongodb for wasm compatibility

- Feature-gate mongodb in compliance-core (optional, default on) so wasm
  builds don't pull in tokio/mio via mongodb
- Use bson v2 directly for ObjectId types (wasm-compatible)
- Restructure dashboard infrastructure/mod.rs: server function modules
  always compiled (for RPC stubs), server-only modules cfg-gated
- Remove reqwest from dashboard web feature (not needed, data flows
  through server functions)
- Add .gitignore

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-03-02 17:16:38 +01:00
parent 0867e401bc
commit 37689d4661
14 changed files with 39 additions and 19 deletions

View File

@@ -12,7 +12,7 @@ pub enum CveSource {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CveAlert {
#[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
pub id: Option<mongodb::bson::oid::ObjectId>,
pub id: Option<bson::oid::ObjectId>,
pub cve_id: String,
pub repo_id: String,
pub affected_package: String,

View File

@@ -50,7 +50,7 @@ impl std::fmt::Display for FindingStatus {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Finding {
#[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
pub id: Option<mongodb::bson::oid::ObjectId>,
pub id: Option<bson::oid::ObjectId>,
pub repo_id: String,
pub fingerprint: String,
pub scanner: String,

View File

@@ -42,7 +42,7 @@ impl std::fmt::Display for IssueStatus {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TrackerIssue {
#[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
pub id: Option<mongodb::bson::oid::ObjectId>,
pub id: Option<bson::oid::ObjectId>,
pub finding_id: String,
pub tracker_type: TrackerType,
pub external_id: String,

View File

@@ -14,7 +14,7 @@ pub enum ScanTrigger {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TrackedRepository {
#[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
pub id: Option<mongodb::bson::oid::ObjectId>,
pub id: Option<bson::oid::ObjectId>,
pub name: String,
pub git_url: String,
pub default_branch: String,

View File

@@ -12,7 +12,7 @@ pub struct VulnRef {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SbomEntry {
#[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
pub id: Option<mongodb::bson::oid::ObjectId>,
pub id: Option<bson::oid::ObjectId>,
pub repo_id: String,
pub name: String,
pub version: String,

View File

@@ -49,7 +49,7 @@ pub enum ScanPhase {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ScanRun {
#[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
pub id: Option<mongodb::bson::oid::ObjectId>,
pub id: Option<bson::oid::ObjectId>,
pub repo_id: String,
pub trigger: ScanTrigger,
pub commit_sha: Option<String>,