Commit Graph

39 Commits

Author SHA1 Message Date
Sean Whalen
576c68ed67 Add DMARCbis report support; rename forensic→failure project-wide
Rebased on top of master @ 2cda5bf (9.9.0), which added the ASN
source attribution work (#712, #713, #714, #715). Individual Copilot
iteration commits squashed into this single commit — the per-commit
history on the feature branch was iterative (add tests, fix lint,
move field, revert, etc.) and not worth preserving; GitHub squash-
merges PRs anyway.

New fields from the DMARCbis XSD, plumbed through types, parsing, CSV
output, and the Elasticsearch / OpenSearch mappings:

- ``np`` — non-existent subdomain policy (``none`` / ``quarantine`` /
  ``reject``)
- ``testing`` — testing mode flag (``n`` / ``y``), replaces RFC 7489
  ``pct``
- ``discovery_method`` — policy discovery method (``psl`` /
  ``treewalk``)
- ``generator`` — report generator software identifier (metadata)
- ``human_result`` — optional descriptive text on DKIM / SPF results

RFC 7489 reports parse with ``None`` for DMARCbis-only fields.

Forensic reports have been renamed to failure reports throughout the
project to reflect the proper naming since RFC 7489.

- Core: ``types.py``, ``__init__.py`` — ``ForensicReport`` →
  ``FailureReport``, ``parse_forensic_report`` →
  ``parse_failure_report``, report type ``"failure"``.
- Output modules: ``elastic.py``, ``opensearch.py``, ``splunk.py``,
  ``kafkaclient.py``, ``syslog.py``, ``gelf.py``, ``webhook.py``,
  ``loganalytics.py``, ``s3.py``.
- CLI: ``cli.py`` — args, config keys, index names
  (``dmarc_failure``).
- Docs + dashboards: all markdown, Grafana JSON, Kibana NDJSON,
  Splunk XML.

Backward compatibility preserved: old function / type names remain as
aliases (``parse_forensic_report = parse_failure_report``,
``ForensicReport = FailureReport``, etc.), CLI accepts both the old
(``save_forensic``, ``forensic_topic``) and new (``save_failure``,
``failure_topic``) config keys, and updated dashboards query both
old and new index / sourcetype names so data from before and after
the rename appears together.

Merge conflicts resolved in ``parsedmarc/constants.py`` (took bis's
10.0.0 bump), ``parsedmarc/__init__.py`` (combined bis's "failure"
wording with master's IPinfo MMDB mention), ``parsedmarc/elastic.py``
and ``parsedmarc/opensearch.py`` (kept master's ``source_asn`` /
``source_asn_name`` / ``source_asn_domain`` on the failure doc path
while renaming ``forensic_report`` → ``failure_report``), and
``CHANGELOG.md`` (10.0.0 entry now sits above the 9.9.0 entry).

All 324 tests pass; ``ruff check`` / ``ruff format --check`` clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 15:28:16 -04:00
Kili
298d5b6e6e CI: split lint/docs/build from integration tests matrix (#669)
* Optimize CI: split lint/docs/build from integration tests

* Trim unnecessary package install from lint job
2026-03-09 17:09:02 -04:00
Copilot
2e3ee25ec9 Drop Python 3.9 support (#661)
* Initial plan

* Drop Python 3.9 support: update CI matrix, pyproject.toml, docs, and README

Co-authored-by: seanthegeek <44679+seanthegeek@users.noreply.github.com>

* Update Python 3.9 version table entry to note Debian 11/RHEL 9 usage

Co-authored-by: seanthegeek <44679+seanthegeek@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: seanthegeek <44679+seanthegeek@users.noreply.github.com>
2026-03-03 11:34:35 -05:00
Anael Mobilia
50fcb51577 Update supported Python versions in docs + readme (#652)
* Update README.md

* Update index.md

* Update python-tests.yml
2026-01-19 14:40:01 -05:00
Sean Whalen
4b786846ae Remove Python 3.14 from testing
Until cpython bug https://github.com/python/cpython/issues/142307 is fixed
2025-12-05 11:05:29 -05:00
Sean Whalen
681b7cbf85 Formatting 2025-12-01 10:56:08 -05:00
Anael Mobilia
a51f945305 Clearly define supported Python versions policy (#633)
* Clearly define supported Python versions.

Support policy based on author's comment on https://github.com/domainaware/parsedmarc/pull/458#issuecomment-2002516299 #458

* Compile Python 3.6 as Ubuntu latest run against Ubuntu 24.04 which haven't Python3.6 + 20.04 is no longer available
https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

* Use latest versions of GH Actions

* Silent some technicals GH Actions steps

* Elasticsearch / opensearch: use supported versions + align used versions

* Delete .github/workflows/python-tests-3.6.yml

Drop Python 3.6 test

* Update Python 3.6 support status in README

---------

Co-authored-by: Sean Whalen <44679+seanthegeek@users.noreply.github.com>
2025-12-01 10:02:47 -05:00
Rowan
8a299b8600 Updated default python docker base image to 3.13-slim (#618)
* Updated default python docker base image to 3.13-slim

* Added python 3.13 to tests
2025-10-29 22:34:06 -04:00
Szasza Palmer
e299f7d161 fixing ES/OS forensic report lookup and storage, extracting ES to separate CI service (#603)
* fixing ES/OS forensic report lookup and storage, extracting ES to separate CI service

* bumping CI ES version to current latest

* reshuffling CI job attributes

* removing EOL Python 3.8 from the CI pipeline
2025-06-02 11:10:10 -04:00
Jed Laundry
8444053476 Create optional dependency group for build, fix codecov (#567)
* Create optional dependency groups for build and cli

* revert cli optional-dependencies group
2024-10-07 13:47:35 -04:00
Sean Whalen
1ef3057110 8.15.1
- Proper IMAP namespace fix (Closes issue #557 and issue #563)
  - Require `mailsuite>=1.9.17`
  - Revert PR #552
- Add pre-flight check for nameservers (PR #562 closes issue #543)
- Reformat code with `ruff`
2024-10-02 21:19:57 -04:00
Sean Whalen
5973ca8205 Code style fixes 2024-09-04 16:48:07 -04:00
yuji suzuki
e6e282a10c Fix ci and gha update (#526)
* add gmail_api example to README.md

* fix ci

fix

fix

m

fix

* codecov update
2024-05-28 16:54:17 -04:00
yuji suzuki
201280d700 Fixed ci for Test sample DMARC reports (#520)
* Fixed ci for Test sample DMARC reports

* pip install local local folder

* pip install path fix
2024-05-22 08:14:04 -04:00
yuji suzuki
c150c7671f github actions run in all python versions and ci version up (#519) 2024-05-22 08:12:55 -04:00
Anael Mobilia
68145b8b06 setup.py don't exist anymore (#434)
setup.py file was deleted on de3002db8b
2023-10-11 17:25:25 -04:00
Anael Mobilia
aaf269b11b Install latest elasticsearch for tests (#433) 2023-10-11 17:23:19 -04:00
Sean Whalen
be4c236d69 Use hatch when testing building packages 2022-09-10 14:43:15 -04:00
Sean Whalen
4376b12c93 Remove sstcheck from tests 2022-09-10 14:39:08 -04:00
Sean Whalen
12e591255c Fix tests 2022-09-10 14:32:43 -04:00
Sean Whalen
6ccc827e4c Fix Python tests in GitHub 2022-09-10 14:16:17 -04:00
William Desportes
9381381f40 CI improvements (#327)
* Add permissions on GitHub workflows tokens to avoid misuse and leak

* Bump docker actions

* Bump elasticsearch version
2022-06-20 09:49:43 -04:00
Sean Whalen
2b55c9ec13 Update python-tests.yml 2022-01-05 12:11:35 -05:00
Sean Whalen
dcdc210ab6 PEP8 style fixes 2022-01-05 10:59:00 -05:00
Sean Whalen
8259f6866f Update python-tests.yml 2022-01-05 10:46:31 -05:00
Sean Whalen
4f22ab4879 Update python-tests.yml 2022-01-05 10:36:29 -05:00
Sean Whalen
ce2943e0cc Update python-tests.yml 2022-01-05 10:29:58 -05:00
Sean Whalen
c0f82fa363 Update Github Workflows 2022-01-05 10:29:19 -05:00
Sean Whalen
fcf5a3be31 Update python-tests.yml 2022-01-05 09:54:55 -05:00
Sean Whalen
c0e975b1e0 Update python-tests.yml 2022-01-05 09:45:58 -05:00
Sean Whalen
d50259cdc3 Update python-tests.yml 2022-01-05 09:44:14 -05:00
Sean Whalen
8a5242be5a Update python-tests.yml 2022-01-05 09:43:22 -05:00
Sean Whalen
ddb02cd031 Update python-tests.yml 2022-01-05 09:31:26 -05:00
Sean Whalen
273e9906a3 Update python-tests.yml 2022-01-05 09:30:12 -05:00
Sean Whalen
ca2c18b566 Update python-tests.yml 2021-12-07 12:19:53 -05:00
Sean Whalen
25b63e484c Update python-tests.yml 2021-12-07 12:14:33 -05:00
Sean Whalen
de3ac64583 Update python-tests.yml 2021-12-07 12:02:16 -05:00
Sean Whalen
76a7a47c53 Update python-tests.yml 2021-12-07 10:55:05 -05:00
Sean Whalen
2748022824 Create python-tests.yml 2021-12-07 10:51:36 -05:00