v0.3.7-pre.008

This commit is contained in:
2026-09-02 16:56:11 +02:00
parent 6e406a6b84
commit 48d26b43f9
19 changed files with 693 additions and 30 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-backfill-desk/tests/desktop_security.rs
// version: 7
// version: 8
//! Security and dependency-boundary checks for the Backfill Desk scaffold.
@@ -91,7 +91,7 @@ fn pre_002_tauri_commands_remain_centralized() {
assert_eq!(count, 0, "{} declares a Tauri command outside tauri.rs", path.display());
}
}
assert_eq!(command_count, 5);
assert_eq!(command_count, 6);
}
#[test]
@@ -204,3 +204,37 @@ fn pre_007_request_mapping_keeps_network_endpoint_and_payload_secrets_backend_ow
assert!(!state.contains(forbidden), "request validation logging includes forbidden payload marker {forbidden}");
}
}
#[test]
fn pre_008_start_surface_keeps_payload_and_physical_resources_backend_owned() {
let root = app_root();
let dto = read_text(root.join("src/dto_backfill.rs").as_path());
let response_start = dto.find("pub(crate) struct BackfillStartResponseDto");
let preview_start = dto.find("pub(crate) struct BackfillRequestPreviewDto");
assert!(response_start.is_some());
assert!(preview_start.is_some());
let response_source = match (response_start, preview_start) {
(std::option::Option::Some(start), std::option::Option::Some(end)) if start < end => &dto[start..end],
_ => "",
};
assert!(response_source.contains("pub(crate) job_id: String"));
assert!(response_source.contains("pub(crate) state: String"));
for forbidden in ["address", "signature", "provider", "endpoint", "url", "credential", "token", "network"] {
assert!(!response_source.contains(forbidden), "Start acknowledgement leaks forbidden marker {forbidden}");
}
let run = read_text(root.join("src/backfill_run.rs").as_path());
assert!(run.contains("BackfillJobHandle"));
assert!(run.contains("ERROR_CODE_BACKFILL_RUN_ACTIVE"));
assert!(!run.contains("reqwest"));
assert!(!run.contains("tokio_postgres"));
let frontend = read_text(root.join("frontend/ts/main.ts").as_path());
let start_marker = frontend.find("Backfill Desk campaign Start requested");
assert!(start_marker.is_some());
let start_source = match start_marker {
std::option::Option::Some(index) => &frontend[index..std::cmp::min(index + 420, frontend.len())],
std::option::Option::None => "",
};
for forbidden in ["address:", "anchorSignature:", "explicitSignatures:", "minContextSlot:"] {
assert!(!start_source.contains(forbidden), "Start tracing includes forbidden request payload marker {forbidden}");
}
}