tauri-plugin-auditaur 0.1.4

Development-first Tauri plugin for collecting Auditaur local telemetry.
Documentation

tauri-plugin-auditaur

Development-first Tauri v2 plugin for collecting Auditaur local telemetry.

Use this crate in a Tauri app to create a local Auditaur session database, receive frontend telemetry from @auditaur/api, record Rust tracing spans/logs, capture Tauri window lifecycle state, and expose the data to auditaur-cli and MCP tools.

Install

[dependencies]
tauri-plugin-auditaur = "0.1"
tracing = "0.1"
tracing-subscriber = "0.3"

Register the plugin

use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};

fn main() {
    tracing_subscriber::registry()
        .with(tauri_plugin_auditaur::tracing_layer())
        .init();

    tauri::Builder::default()
        .plugin(
            tauri_plugin_auditaur::Builder::new()
                .service_name("my-tauri-app")
                .session_name("dev")
                .build(),
        )
        .run(tauri::generate_context!())
        .expect("failed to run app");
}

IPC trace bridge

Backend commands can opt into frontend-to-backend trace continuation:

#[tauri_plugin_auditaur::auditaur_command]
fn load_user(id: String) -> Result<String, String> {
    tracing::info!(user.id = %id, "loading user");
    Ok(id)
}

The frontend wrapper sends W3C traceparent through the Tauri invoke request headers and keeps the older reserved auditaurTraceContext invoke argument as a compatibility fallback. The auditaur_command macro wraps #[tauri::command], injects both IPC carriers, prefers the request header, falls back to the reserved argument, and adds the tracing::instrument fields Auditaur needs.

If you need to keep an explicit #[tauri::command], use the lower-level #[tauri_plugin_auditaur::instrument_ipc] macro with an optional auditaur_trace_context: Option<IpcTraceContext> argument.

A healthy invoke trace has a frontend tauri.invoke load_user span, a tauri_ipc_calls row with the same trace/span ids, and a backend child span with the same trace id and parent_span_id set to the frontend span id. App integration tests can assert that shape with:

tauri_plugin_auditaur::test_helpers::assert_trace_stitched(
    "path/to/telemetry.sqlite",
    "load_user",
);

Safety note

Auditaur is development-first. Release builds are blocked unless allow_release_builds(true) is explicitly configured.