Skip to content

karlkauc/findatex-validator

FinDatEx Validator

License: Apache 2.0 CI Java 21 Container

⚠️ Disclaimer — please read first

This is not an official FinDatEx tool. It is a private, open-source side project, not affiliated with, endorsed by, or connected to the FinDatEx initiative or any of its member organisations. "FinDatEx", "TPT", "EET", "EMT", and "EPT" are referenced here only to describe the data templates the tool tries to validate.

The validator is provided as-is, without warranty of any kind — no guarantee of completeness, correctness, regulatory fitness, or compatibility with any particular spec version. Validation results may be incomplete or wrong. Do not rely on this tool as the sole check before delivering data to a counterparty or regulator.

See LICENSE for the full legal text (Apache 2.0).


What it does

Loads a FinDatEx data-template file (TPT, EET, EMT or EPT) and checks it against the official spec: missing mandatory fields, wrong formats, invalid codes, broken cross-field rules, and so on. You get a quality score (0–100) and a downloadable Excel report with one row per finding so you can fix things in your source system.

On screen the findings are grouped by rule (e.g. "mandatory field missing", "invalid ISIN", a specific cross-field check) with a count and an expandable list, so a recurring problem across thousands of rows reads as one entry instead of thousands. The Excel report keeps the full one-row-per-finding detail.

Bundled templates: TPT V8.0 + V7.0, EET V1.1.3 + V1.1.2, EMT V4.3 + V4.2, EPT V2.1 + V2.0.

Animated walkthrough: pick template and profile, upload a file, validate, then group the findings by error


How to use it

There are two ways. Pick whichever is more convenient — the validation engine is exactly the same.

Option A — Web app (no install)

Public URL: https://www.findatex-validator.eu

  1. Open the URL in your browser.
  2. Pick the template (TPT / EET / EMT / EPT) and version.
  3. Drag your .xlsx, .xlsm or .csv file onto the upload area (max 25 MB).
  4. Click Validieren. You get findings on screen and a download link for the Excel report.

The hosted instance has no login. Files are processed in memory and discarded the moment the response is sent; the report download link is single-use and expires after 5 minutes.

Limits on the hosted web app. Because it is a public, unauthenticated service, the web app is throttled to keep it usable for everyone (the maintainer can tune these per deployment via FINDATEX_WEB_* env vars — the defaults are):

Limit Default What you see when you hit it
Uploads per IP per hour 10 HTTP 429 — try again later
Concurrent validations (whole instance) 4 HTTP 429 — retry shortly
Max upload size 25 MB HTTP 413 — file too large
Report download lifetime 5 min, single use link expires, re-validate

If these limits get in your way — large files, bulk runs, confidential data — use the desktop app instead: it has no rate limit, no concurrency cap, no file-size cap and no upload at all (see Option B).

Option B — Desktop app (recommended for confidential data)

The desktop app reads files from your local disk, validates them locally, and writes the report locally. No upload, no network traffic except an optional GLEIF / OpenFIGI lookup that you opt in to in the settings dialog.

There are no limits in the desktop app: no rate limit, no concurrency cap, no 25 MB file-size ceiling, no expiring report links. Validate as many files as you like, as large as you like.

Pre-built native installers for every release are attached to the GitHub Releases page. Two flavours per platform:

Platform Installer (admin) Portable (no admin)
Linux x64 findatex-validator-<v>-linux-x64.deb findatex-validator-<v>-linux-x64.tar.gz
Windows x64 findatex-validator-<v>-windows-x64.msi findatex-validator-<v>-windows-x64.zip
macOS Apple Silicon findatex-validator-<v>-macos-arm64.dmg findatex-validator-<v>-macos-arm64.tar.gz
macOS Intel findatex-validator-<v>-macos-x64.dmg findatex-validator-<v>-macos-x64.tar.gz

The installers are unsigned, so the OS will warn on first launch. Override the warning once and you're set:

  • macOS: Right-click the .appOpen → confirm.
  • Windows: More infoRun anyway on the SmartScreen prompt.

No Java install needed — the installers ship a bundled runtime.


Privacy

Mode What happens to your data
Desktop app Files stay on your machine. The only outbound call is the optional GLEIF / OpenFIGI lookup, which sends only the LEIs / ISINs from your file — never the full file.
Hosted web app Files are processed in memory and discarded immediately after the response. Reports live for 5 minutes via a single-use URL, then are deleted. No login, no per-file logging. External validation off by default.

For confidential fund data, prefer the desktop app.


Reporting a wrong finding

The validator can be wrong — a false positive, a missing check, a rule that is too strict for a legitimate edge case. Both UIs have a Report a false positive action on a finding that opens a pre-filled GitHub issue in your browser. You review the exact text and submit it yourself; nothing is sent automatically, no account data leaves your machine beyond the GitHub issue you choose to post.

This is the fastest way to get a rule fixed. General bug reports and feature requests are equally welcome on the issue tracker (see CONTRIBUTING.md). Security issues go through the private process in SECURITY.md instead.


Anonymous usage statistics (opt-out)

To understand which templates and versions are actually used, the tool records aggregate-only run statistics (template, version, finding counts, a server-derived country code). It never records your files, fund names, ISINs/LEIs, cell or finding content, or your IP address. The raw IP is never stored or logged.

This is on by default and easy to switch off:

  • Desktop app: Settings → Statistik → uncheck. The opt-out is persisted per install.
  • Self-hosted web app: statistics are inert unless the operator configures a database (FINDATEX_WEB_USAGE_DB_URL); the public hosted instance has it enabled. Details and the full schema are in docs/USAGE_STATS.md.

Newsletter (optional)

If you want to hear about new releases and template-version updates, both UIs offer an optional newsletter sign-up. Your e-mail is forwarded to an external newsletter provider (which handles double-opt-in, unsubscribe and deletion) and is never stored in this project's database or logs. Sign-up is entirely opt-in; the form is only shown when the maintainer has configured a provider. Setup and GDPR notes: docs/NEWSLETTER.md.


Help

User-facing help — what gets validated, what the profiles mean, how the GLEIF / OpenFIGI lookup works — is in HELP.md. It is also reachable from the Help button in either UI.


For developers, contributors, and self-hosters

  • INSTALL.md — build from source, package native installers locally, run the web app in dev mode, self-host with Docker, env-var reference.
  • CONTRIBUTING.md — development setup, coding conventions, PR checklist, how to add a new template version.
  • CLAUDE.md — architectural map (module boundaries, validation flow, where each kind of code lives).
  • docs/SPEC_DOWNLOADS.md — operator checklist for acquiring spec XLSX files from FinDatEx.
  • docs/SPEC_INVENTORY.md — auto-maintained list of bundled spec files.
  • docs/DEPLOY_CLOUDRUN.md — Cloud Run hosting: one-time GCP/WIF bootstrap, runbook for rolling out a new release (gh workflow run "Deploy to Cloud Run" -f tag=<version>), rollback, optional custom domain.
  • samples/ — per-template scenario fixtures (clean + broken variants).

Security

Found a vulnerability? Please do not open a public issue. See SECURITY.md and use GitHub's private vulnerability reporting (Repository → SecurityAdvisoriesReport a vulnerability). The maintainer will acknowledge within 72 hours.

Author

Created and maintained by Karl Kauc (karl.kauc@gmail.com, github.com/karlkauc). This is a private project — see the disclaimer at the top.

License

Released under the Apache License 2.0. You may use, modify, and distribute the source under the terms of that license; the patent grant in §3 applies to all contributions.

Contributing

Bug reports, feature requests, and pull requests are welcome. See CONTRIBUTING.md for the development setup, coding conventions, and PR checklist, and CODE_OF_CONDUCT.md for the community standards. Security issues should be reported privately via the process described in SECURITY.md.

About

JavaFX desktop validator for FinDatEx TPT V7 files (quality + conformance scoring against Solvency II, IORP/EIOPA/ECB, NW 675)

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors