Privacy & transparency
See what Maskera does, what leaves the device, how the model was trained and what it can miss.
How does it work?
- Maskera reads the text and replaces detected personal data with placeholders such as [NAMN_1] or [PERSONNUMMER_1]. The AI service sees the placeholders. Afterwards, you can restore the originals locally.
- Two layers work together. Rules find fixed-format data such as Swedish personal identity numbers, phone numbers and email addresses. A small Swedish AI model finds names, places, organisations and addresses in running text.
- The model runs directly in the browser or in your own Node process. The text therefore does not need to be sent to an external service for analysis.
What is masked?
The complete maskera npm package and Gateway combine fixed rules with the Swedish AI model. Their default choices differ as shown below.
AI model: free text
Identified from context. This is probabilistic and the model can miss data.
- Names NAMN
- Places PLATS
- Organisations ORGANISATION
- Street addresses ADRESS
Beyond the npm defaults
Additions beyond the npm package defaults, explained in the notes below.
- Vehicle registration numbers REGNUMMER
- Custom business formats CUSTOM
Rules: fixed formats
Identified with deterministic format checks and selective checksums. Swedish personal identity numbers are masked even if the check digit is wrong, provided the date format is valid. Web links are detected when they start with http, https or www.
- Swedish personal identity numbers PERSONNUMMER
- Swedish coordination numbers SAMORDNINGSNUMMER
- Swedish organisation numbers ORGANISATIONSNUMMER
- Email addresses EPOST
- Swedish phone numbers TELEFON
- Swedish postcodes POSTNUMMER
- Swedish apartment numbers LAGENHETSNUMMER
- Bankgiro numbers BANKGIRO
- PlusGiro numbers PLUSGIRO
- Swedish IBANs IBAN
- Payment card numbers KORTNUMMER
- Context-labelled account numbers KONTONUMMER
- Context-labelled medical record numbers JOURNALNUMMER
- IPv4 addresses IP_ADRESS
- Web links URL
Vehicle registration numbers: The ready-made rule is enabled in the demo and Gateway's default policy. It is optional in the npm package defaults because the same format can also be a booking or case number.
Custom formats: Customer, order, invoice and case numbers can be added as custom rules when the organisation's formats are known.
Not included automatically: Maskera does not classify all sensitive information. Dates, ages, usernames, diagnoses and other sensitive facts are not masked merely because the content is sensitive. Phone numbers written as words are not detected by the numeric rules either.
How your text is processed
- All masking happens on your device, in the browser or on your own server. The text and the key containing the original data are not sent to Maskera or any other service for masking.
- Vercel Analytics counts page views anonymously and without cookies. Text entered in the tool is never included in the statistics.
- Vercel may process technical request data, such as IP addresses, to deliver and protect the website. The text and restoration key are not part of these requests.
- The npm package's default configuration downloads the model file and runtime on first use and caches them. These are static artefacts, never the text being masked. Everything can be self-hosted.
- The rule layer has no network dependencies and works independently.
How the model was trained
- Published v19 is the privacy-clean model. v19 passed every release gate with 64,000 generated training rows and 4,760 separated validation rows. IBANs, personal and organisation numbers, phone numbers, emails, account and payment identifiers, public IP addresses, postcodes and realistic street-address pairs are blocked before training. Historical v18 also used documented, openly licensed Swedish corpora and is reported separately. Read the technical data-protection policy. Every published v19 artefact carries the same attestation with row counts and SHA-256 hashes for the exact data, generator and audit code. The published provenance is summarised in the model card.
- Base model: KB-BERT from the National Library of Sweden, published under CC0. See KB-BERT. The attestation covers Maskera's own fine-tuning. It makes no absolute claim about which public text may have been included when KB-BERT was originally pre-trained.
- The entire chain can be reproduced from scratch. Generation, privacy review, training, distillation, compression, export and evaluation are open scripts. If a training row changes, a synthetic address marker disappears or a corpus is added, the manifest breaks and the pipeline refuses to continue.
Limitations
- Maskera is evaluated openly. The figures, method and caveats are available on the accuracy page. See test results, method and limitations
- Known weak points include table-like dumps, OCR noise and data written as words, such as ‘zero seven zero’. Capital letters, misspellings and messy number formats are, however, included in the tests.
- Masking is an additional protection layer, not a guarantee. Names and places are found probabilistically and can be missed. Keep other controls in place when an error could have serious consequences.
- Maskera supports data minimisation but does not guarantee regulatory compliance. The organisation using the tool remains the data controller.
The complete technical disclosure and all source code are available on GitHub. Read the full document