-
Notifications
You must be signed in to change notification settings - Fork 0
reference data models
Douwe de Vries edited this page Jul 1, 2026
·
1 revision
Rust DTOs in crates/csv-anonymizer-core/src/types.rs are manually mirrored in frontend/src/types.ts. Tauri-only command request wrappers live in src-tauri/src/commands/csv.rs, src-tauri/src/commands/job_commands.rs, and src-tauri/src/local_ai/types.rs.
Active contributors: Douwe de Vries
- Rust uses serde
camelCasefor wire fields. - TypeScript mirrors use camelCase field names and string unions for Rust enums.
-
scripts/check-contracts.mjschecks selected enum variants and struct fields. - Serialization tests in
crates/csv-anonymizer-core/src/types.rscover key casing and default behavior.
| DTO | Role | Shared with frontend |
|---|---|---|
DataType |
Detected or overridden type such as email, uuid, phone, firstName, taxId, string, or unknown
|
Yes |
Confidence |
Detector confidence: high, medium, low
|
Yes |
PiiRisk |
Column risk: high, medium, low
|
Yes |
PrivacyFindingKind |
Privacy evidence category, for example person, contact, governmentId, or mixedSensitiveText
|
Yes |
EmptyFormat |
Empty scalar representation: emptyString, null, or mixed
|
Yes |
AnonymizationStrategy |
Strategy: auto, pseudonymize, tokenize, localAi, mask, redact, or passThrough
|
Yes |
PasteDataFormat |
Pasted input format: auto, csv, json, xml, yaml, plainText, or logs
|
Yes |
WarningSeverity |
Preview warning level: info or warning
|
Yes |
PreflightMode |
preview or anonymize readiness mode |
Yes |
ReleaseReadinessStatus |
verified, review, or blocked
|
Yes |
ReleaseEvidenceStatus |
verified, review, blocked, or info
|
Yes |
SmartReplacementRejectionReason |
Local AI replacement validation failure reason | Yes |
| DTO | Key fields | Purpose |
|---|---|---|
DetectionResult |
dataType, confidence, sampleMatches, totalSamples, trace
|
Internal detector output shape |
DetectionTrace |
summary, selectedReason, totalNonEmpty, candidates
|
Explains how a column type was selected |
DetectionTraceItem |
dataType, reason, matchCount, totalConsidered, confidence, accepted
|
One detector candidate in a trace |
PrivacyFinding |
kind, dataType, rowIndex, start, end, matchValue, sampleValue, confidence, score, detector, reason
|
Span-level privacy evidence |
PrivacyEvidenceSummary |
kind, dataType, confidence, matchCount, sampleCount, score, detector, reason, detectors
|
Aggregated evidence used by metadata and UI |
ColumnMetadata |
name, sourcePath, index, detectedType, confidence, detectionTrace, privacyFindings, privacyEvidence, piiRisk, sampleValues, emptyFormat, isSelected, strategy
|
Main column contract used by CSV, paste, preview, and reports |
ColumnControl |
columnIndex, typeOverride, strategy
|
Frontend user overrides sent back to the core |
| DTO | Key fields | Purpose |
|---|---|---|
HeadersData |
filePath, rowCount, rowCountIsComplete, defaultOutputPath, columns
|
CSV file analysis result from the core |
AnalyzeResponse |
headers, selectedColumns, suggestedOutputPath
|
Tauri wrapper result for analyze_csv
|
PasteAnalyzeParams |
content, format, sampleRowCount
|
Input for pasted-data analysis |
PasteAnalyzeData |
format, rowCount, rowCountIsComplete, columns
|
Pasted-data analysis result |
PastePreviewParams |
content, format, columns, controls, sampleCount
|
Pasted-data preview input |
PasteTransformParams |
content, format, columns, controls, previewSmartReplacements
|
Pasted-data transform input |
PasteTransformData |
output, rowCount, columnsAnonymized, durationMs, privacyReport
|
Pasted-data transform result |
QuickGenerateParams |
dataType, strategy, count
|
Quick by data type generation input |
QuickTransformData |
output, rowCount, values, privacyReport
|
Quick generation result |
PreviewParams |
filePath, columns, controls, sampleCount
|
CSV file preview input |
PreviewData |
previews, warnings, smartReplacements
|
CSV and pasted preview result |
AnonymizeParams |
filePath, outputPath, columns, controls, force, previewSmartReplacements
|
Core file anonymization input |
AnonymizeData |
outputPath, rowCount, columnsAnonymized, durationMs, privacyReport
|
Completed file anonymization result |
PreflightParams |
mode, filePath, outputPath, columns, controls, force, sampleRowCount, previewSmartReplacements, localAiReady, localAiMessage
|
Core readiness input |
PreflightData |
mode, readiness, evidence, columnReports
|
Readiness result before preview or output |
| DTO | Key fields | Purpose |
|---|---|---|
SampleTransform |
original, anonymized
|
Example source-to-output pair |
ColumnPreview |
columnIndex, columnName, samples
|
Preview samples for one column |
PreviewWarning |
columnIndex, columnName, message, severity
|
User-facing preview warning |
SmartReplacementEntry |
columnIndex, original, replacement
|
Accepted Local AI preview replacement |
SmartReplacementRejectionCount |
reason, count
|
Aggregated Smart replacement rejection count |
PrivacyReport |
Identifier counts, strategy counts, token and Smart metrics, readiness, evidence, column reports, utility metrics, and notes | Main output report for file, paste, and quick workflows |
ReleaseReadiness |
status, blockers, reviewItems, verifiedItems
|
Release/readiness status used in preflight and reports |
ReleaseEvidenceItem |
id, label, status, detail
|
One readiness evidence row |
ColumnReleaseReport |
Column index/name, selection, detected type, risk, strategy, action, status, detail | Per-column readiness/report row |
UtilityMetric |
label, value, status, detail
|
Utility or output-shape metric for reports |
| DTO | Source | Key fields | Purpose |
|---|---|---|---|
AnonymizeJobStatus |
src-tauri/src/jobs.rs, frontend/src/types.ts
|
jobId, state, rowsProcessed, totalRows, cancelRequested, result, error
|
Polling state for file anonymization jobs |
LocalAiRequest |
src-tauri/src/local_ai/types.rs, frontend/src/types.ts
|
enabled, model
|
Local AI settings passed into status, preview, transform, and download commands |
LocalAiStatus |
src-tauri/src/local_ai/types.rs, frontend/src/types.ts
|
enabled, provider, model, availableModels, endpoint, runtimeAvailable, modelInstalled, ready, runtimeVersion, message
|
Ollama readiness result |
LocalAiDownloadStatus |
src-tauri/src/local_ai/types.rs, frontend/src/types.ts
|
jobId, state, model, statusMessage, completedBytes, totalBytes, cancelRequested, error
|
Model download progress |
Related pages: Tauri commands, Configuration, and Testing.