2.2.363
every-app/open-seo2.2.363Jun 28, 2026by github-actions[bot]
AI Summary
This release introduces new PII recognizers for German, Swedish, Canadian, and UK data, along with updates to dependencies and the NLP engine. Significant effort was put into hardening supply-chain security and improving Docker configurations.
Key Highlights
- Added German PII recognizers (DE_*)
- Added Swedish personal ID and organisation recognizers
- Added Canadian SIN recognizer
- Added UK driving licence number recognizer
- Slimmed down the NLP Engine for better performance
New Features
- German PII recognizers (DE_*)
- Swedish personal ID code pattern recognizer
- Swedish Recognizer for Organisationsnummer
- Canadian SIN recognizer
- UK driving licence number recognizer
- merge_entities_with_whitespace parameter for anonymize()
Full Release Notes
## What's Changed * feat(analyzer): add German PII recognizers (DE_*) by @MvdB in https://github.com/data-privacy-stack/presidio/pull/1909 * build(deps): bump azure/login from 2.3.0 to 3.0.0 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1915 * build(deps): bump github/codeql-action from 4.32.6 to 4.34.1 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1914 * build(deps): bump actions/cache from 5.0.3 to 5.0.4 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1913 * Fix: config path resolution for PyPI installs (langextract recognizer) by @RonShakutai in https://github.com/data-privacy-stack/presidio/pull/1917 * build(deps): bump github/codeql-action from 4.34.1 to 4.35.1 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1920 * fix(ci): skip coverage PR comment step when not in a PR context by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/1921 * Swedish personal ID code pattern recognizer by @goveebee in https://github.com/data-privacy-stack/presidio/pull/1912 * Publish sdist alongside wheels to PyPI by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/1924 * build(deps): bump python from 3.13-windowsservercore to 3.15.0a7-windowsservercore in /presidio-anonymizer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1927 * Swedish Recognizer for Organisationsnummer by @goveebee in https://github.com/data-privacy-stack/presidio/pull/1918 * Fix conf files handling in Docker + Stanza model accessibility issues by @TheSabari07 in https://github.com/data-privacy-stack/presidio/pull/1930 * fix: revert presidio-analyzer Dockerfiles to Python 3.12 and configure dependabot to allow only patch and digest updates by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1928 * build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1935 * build(deps): bump python from `f50f56f` to `f1927c7` in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1936 * Add Canadian SIN recognizer by @kennionblack in https://github.com/data-privacy-stack/presidio/pull/1934 * build(deps): bump python from `fb83750` to `5e59aae` in /presidio-anonymizer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1937 * build(deps): bump python from `f3fa41d` to `5072b08` in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1938 * Update IP recognizer regexes by @kennionblack in https://github.com/data-privacy-stack/presidio/pull/1941 * Slim NLP Engine by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/1916 * chore: harden supply-chain security — dependabot.yml controls and pyproject.toml defensive version ranges by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/1965 * build(deps): bump python from `5072b08` to `804ddf3` in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1968 * build(deps): bump python from 3.13-slim to 3.13.13-slim in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1967 * build(deps): bump python from `5e59aae` to `bc389f7` in /presidio-anonymizer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1966 * Updated copilot instructions by @omri374 in https://github.com/data-privacy-stack/presidio/pull/1866 * feat: Add UK driving licence number recognizer by @tee-jagz in https://github.com/data-privacy-stack/presidio/pull/1857 * feat: add merge_entities_with_whitespace param to anonymize() by @harishkernel in https://github.com/data-privacy-stack/presidio/pull/1932 * build(deps-dev): update azure-identity requirement from <2.0.0,>=1.23.0 to >=1.25.3,<2.0.0 in /presidio-anonymizer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1983 * build(deps-dev): update stanza requirement from <2.0.0,>=1.10.1 to >=1.11.1,<2.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1982 * build(deps-dev): update gliner requirement from <1.0.0,>=0.2.13 to >=0.2.26,<1.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1981 * build(deps): update opencv-python requirement from <5.0.0,>=4.0.0 to >=4.13.0.92,<5.0.0 in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1980 * build(deps-dev): update spacy-huggingface-pipelines requirement from <1.0.0,>=0.0.1 to >=0.0.4,<1.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1979 * build(deps-dev): update gunicorn requirement from <26.0.0,>=20.0.0 to >=25.3.0,<26.0.0 in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1978 * build(deps): update pytesseract requirement from <0.4,>=0.3.7 to >=0.3.13,<0.4 in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1977 * build(deps): bump actions/cache from 5.0.4 to 5.0.5 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1976 * build(deps): bump github/codeql-action from 4.35.1 to 4.35.2 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1975 * Add dependency groups for Docker and actions by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/1984 * build(deps): update pydantic requirement from <3.0.0,>=2.0.0 to >=2.12.5,<3.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1989 * build(deps): update pyyaml requirement from <7.0.0,>=6.0.0 to >=6.0.3,<7.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1988 * build(deps-dev): update azure-ai-textanalytics requirement from <6.0.0,>=5.3.0 to >=5.4.0,<6.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1987 * build(deps): update azure-ai-formrecognizer requirement from <4.0.0,>=3.3.0 to >=3.3.3,<4.0.0 in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1986 * build(deps): bump actions/github-script from 8.0.0 to 9.0.0 in the actions-deps group by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1985 * test(ip-recognizer): add ::1 loopback and mixed :: / ::1 test cases by @extrasmall0 in https://github.com/data-privacy-stack/presidio/pull/1940 * Fix dependabot coverage for all pyproject.toml package manifests by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/1929 * build(deps): bump py-cov-action/python-coverage-comment-action from 3.40 to 3.41 in the actions-deps group by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1991 * build(deps): update phonenumbers requirement from <10.0.0,>=8.12 to >=9.0.28,<10.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1994 * build(deps): update tldextract requirement from <6.0.0,>=3.0.0 to >=5.3.1,<6.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1992 * build(deps-dev): update azure-core requirement from <2.0.0,>=1.20.0 to >=1.39.0,<2.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1993 * build(deps): bump python-dotenv from 1.0.0 to 1.2.2 in /docs/samples/deployments/openai-anonymaztion-and-deanonymaztion-best-practices/src/client_app in the pip group across 1 directory by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1996 * feat: add Turkish National ID (TR_NATIONAL_ID) recognizer by @mrcuren in https://github.com/data-privacy-stack/presidio/pull/1995 * refactor(de-recognizers): complete Prüfziffer validation per primary sources (fixes #1972, supersedes #1974) by @MvdB in https://github.com/data-privacy-stack/presidio/pull/1990 * build(deps-dev): update azure-identity requirement from <2.0.0,>=1.23.0 to >=1.25.3,<2.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/2001 * Consolidate Dependabot updates into a single PR via multi-ecosystem grouping by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2005 * feat: add Turkish license plate (TR_LICENSE_PLATE) recognizer by @mrcuren in https://github.com/data-privacy-stack/presidio/pull/1999 * Fix incorrect PESEL checksum validation in PlPeselRecognizer by @sienioApius in https://github.com/data-privacy-stack/presidio/pull/1998 * Fix PhoneRecognizer default regions typo: "FE" → "FR" by @omri374 with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2009 * Fix anonymization typos in OpenAI deployment sample by @ynachiket in https://github.com/data-privacy-stack/presidio/pull/2017 * Feature/es passport recognizer by @asensionacher in https://github.com/data-privacy-stack/presidio/pull/2011 * Phonenumber configurable entity by @max-tarlov-infinitusai in https://github.com/data-privacy-stack/presidio/pull/2014 * fix: Preserve GLiNER config fields through Pydantic validation by @yuriihavrylko in https://github.com/data-privacy-stack/presidio/pull/2007 * feat(analyzer): add optional country filter to load_predefined_recogn… by @ynachiket in https://github.com/data-privacy-stack/presidio/pull/2000 * docs: clarify Fabric sample dependency versions by @ynachiket in https://github.com/data-privacy-stack/presidio/pull/2027 * fix: Custom operator validate() must not invoke the lambda by @HammadSiddiqui in https://github.com/data-privacy-stack/presidio/pull/2025 * feat: add Turkish phone number (TR_PHONE_NUMBER) recognizer by @mrcuren in https://github.com/data-privacy-stack/presidio/pull/2006 * docs: remove duplicate zip code pattern in recognizer registry example by @BelizSertcan in https://github.com/data-privacy-stack/presidio/pull/2034 * feat: add Philippine mobile number (PH_MOBILE_NUMBER) recognizer by @Surya-5555 in https://github.com/data-privacy-stack/presidio/pull/2038 * Add explicit click dependencies for Presidio packages by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2058 * fix(image-redactor): return rendered image when no text is detected in verify by @AlexanderSanin in https://github.com/data-privacy-stack/presidio/pull/2040 * test(ip-recognizer): add regression tests for IPv6 double-colon bugs (#1476) by @AlexanderSanin in https://github.com/data-privacy-stack/presidio/pull/2062 * fix(analyzer): cap url recognizer host to stop quadratic backtracking by @uwezkhan in https://github.com/data-privacy-stack/presidio/pull/2063 * fix(analyzer): ignore empty allow_list terms in regex match by @uwezkhan in https://github.com/data-privacy-stack/presidio/pull/2061 * feat(analyzer): add South African ID number recognizer (ZA_ID_NUMBER) by @thatomokoena in https://github.com/data-privacy-stack/presidio/pull/2064 * feat: add Philippines TIN (PH_TIN) recognizer by @aaronaco in https://github.com/data-privacy-stack/presidio/pull/2016 * Support Azure credentials for DocumentIntelligenceOCR by @mturac in https://github.com/data-privacy-stack/presidio/pull/2085 * fix(image-redactor): fix duplicate entity sorting discard in DICOM verification engine by @ArjunPakhan in https://github.com/data-privacy-stack/presidio/pull/2084 * fix(image-redactor): remove double bbox formatting in eval_dicom_instance by @AlexanderSanin in https://github.com/data-privacy-stack/presidio/pull/2079 * fix: pin numpy<2.5.0 to resolve Python 3.12 CI failure by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2090 * Fix SG UEN detection missing Format C UENs with the 'R' prefix by @jichaowang02-lang in https://github.com/data-privacy-stack/presidio/pull/2088 * Fix numpy IndentationError in Test Analyzer (Python 3.12) CI job by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2091 * Fix AU ACN checksum rejecting valid ACNs whose check digit is 0 by @jichaowang02-lang in https://github.com/data-privacy-stack/presidio/pull/2087 * fix(analyzer): preserve recognizer-specific config dumps by @ultramancode in https://github.com/data-privacy-stack/presidio/pull/2081 * docs(image-redactor): fix undefined di_ocr variable in Document Intelligence example by @Dashtid in https://github.com/data-privacy-stack/presidio/pull/2089 * Fix analyzer CI numpy resolver flake by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2092 * fix(iban): add EG/IQ/LY/LC/SC/UA registry formats so valid IBANs are detected by @AUTHENSOR in https://github.com/data-privacy-stack/presidio/pull/2078 * fix(email): match punycode/IDN domains so internationalized emails are detected by @AUTHENSOR in https://github.com/data-privacy-stack/presidio/pull/2077 * Migration notification message by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2097 * Add project transition update link to README by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2098 * docs: rebrand site to Data Privacy Stack by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2100 * Add Python 3.14 support for presidio-analyzer by @michaelgiraldo in https://github.com/data-privacy-stack/presidio/pull/2105 * Docs/dps migration phase1 by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2104 * dps migration phase2 - code by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2117 * docs: Material for MkDocs migration to Zensical by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2102 * Migrate to ghcr packages by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2103 * revert: undo accidental direct-to-main docs pushes (fix duplicate copyright) by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2118 * docs: add Google Search Console site-verification meta tag by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2119 * docs: publish docs with git CLI by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2120 * Final removal of Microsoft reference by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2121 * Revert to Microsoft as copyright owner by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2122 * fix(ci): restore id-token:write for provenance attestations in build-platform-images by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2123 * Prefer repository GITHUB_TOKEN for GHCR publishing in CI by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2124 * Fix URL test bounds for DPS domain by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2125 * Release 2.2.363 / 0.0.59 by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2126 ## New Contributors * @MvdB made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1909 * @goveebee made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1912 * @TheSabari07 made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1930 * @kennionblack made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1934 * @harishkernel made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1932 * @extrasmall0 made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1940 * @mrcuren made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1995 * @sienioApius made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1998 * @ynachiket made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2017 * @asensionacher made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2011 * @max-tarlov-infinitusai made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2014 * @yuriihavrylko made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2007 * @HammadSiddiqui made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2025 * @BelizSertcan made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2034 * @Surya-5555 made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2038 * @AlexanderSanin made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2040 * @uwezkhan made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2063 * @thatomokoena made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2064 * @aaronaco made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2016 * @mturac made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2085 * @ArjunPakhan made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2084 * @jichaowang02-lang made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2088 * @Dashtid made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2089 * @AUTHENSOR made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2078 * @michaelgiraldo made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2105 **Full Changelog**: https://github.com/data-privacy-stack/presidio/compare/2.2.362...2.2.363