Home/DueCare Hub/Sensitive data handling
Sensitive data handling

The hub does not receive raw cases. The hub does not act on anyone’s behalf.

This page is the contract. Raw worker chats, case files, IDs, contact details, and private documents stay on the worker device or trusted NGO hardware unless an authorized user creates a sanitized submission. Sensitive PII is anonymized by the local Gemma 4 workflow before anything is submitted; the server runs a second PII detector before storage or display.

01 · Hard rules

Three things the hub will never do.

These are constraints in code. A pull request that breaks one of them does not ship.

Hard rule 01

No raw case intake

The hub has no endpoint that accepts worker case content. None will be added. Free-text case fields are rejected at the schema gate before storage.

Hard rule 02

No auto-reporting

DueCare drafts; the user or trusted caseworker decides. The hub does not send messages, file complaints, or contact employers on anyone’s behalf.

Hard rule 03

No legal counsel

DueCare is not a law firm, an emergency response service, or an official complaint authority. It cites public sources and routes to verified contacts.

02 · What stays. What may cross.

The data flow, line by line.

Each row is a category of data and what the hub does with it. The enforcement column names the concrete local or server-side mechanism.

CategoryStays localMay cross hubEnforcement
Worker case contentAlwaysNeverLocal Gemma 4 anonymization must happen before submission; server schemas reject raw case fields.
Worker names · IDs · contactsAlwaysNeverServer-side PII detector rejects identifier-shaped strings before storage.
Document imagesAlwaysNeverObject store rejects user-uploaded images. Pack assets are public-source only.
Anonymized pattern_id (e.g. fee_request)Originates locallyYes. opt-inPer-deployment opt-in. K-anon ≥ 30 floor or rejected.
Corridor / sector bucketsOriginates locallyYes. anonymized onlyAnonymized buckets only; no time-of-day precision.
Public-source URLsYes (intended)Reviewed by curators before publication.
Pack version + pull-timeYes (audit)For reproducibility of the audit log.
Subscriber emailsIn email provider onlyStored in the third-party email provider. The hub never logs raw addresses.
Consented contributor contactOptionalOnly with explicit publication consentUsed for proposal follow-up; detector-class PII is redacted in admin/debug views.
Outbound emails / reportsNever auto-sentNo automated outbound channel exists. A human signs every artifact.
03 · Where enforcement happens

Six mechanisms, all visible.

Each mechanism is testable; each fails closed.

Mechanism 01

Local Gemma 4 anonymization workflow

Sensitive PII is anonymized by the local Gemma 4 workflow before anything is submitted to the public hub.

Mechanism 02

Server-side PII detector

The server runs a second PII detector that rejects raw-PII submissions before storage and redacts detector-class PII in admin/debug views.

Mechanism 03

K-anonymity floor on rollups

Trend slices below k≥30 are not published. The floor is applied before any aggregate leaves the storage layer.

Mechanism 04

Append-only storage

Packs, rules, tools, and signals all land as immutable rows. Corrections ship as new versions; nothing is silently rewritten.

Mechanism 05

Public audit feed

Every write emits an audit row before the corresponding read becomes resolvable. Anyone can replay the feed.

Mechanism 06

Curator-vetted releases

Every pack and rule version is approved by a curator, content-hashed, and published with immutable metadata so historical packs stay verifiable.