Skip to main content

attribution-suite

License

One install and one CLI over the attribution toolchain.

pip install attribution-suite
attribution run --case case.yaml --index adtx.sqlite --out ./out

Why the packages are separate at all

attribution-graph is a pure inference library with no network I/O — that is what makes its scoring auditable, since every number is a function of claims plus index counts with no hidden network state. adtx-attribution carries the collectors and their dependencies. handle-correlation is independent of both.

Someone who only wants the scoring model should not have to install an HTTP client, and someone writing their own collectors should not inherit ours. This package exists for when you want all of it.

Unified run

One case file drives the whole chain:

attribution run \
  --case case.yaml \
  --index adtx.sqlite \
  --handles observed_handles.csv \
  --spiderfoot scan.db \
  --opencti bundle.json \
  --robin investigations/kraken.json \
  --out ./out

Robin handles feed the handle-correlation pass automatically, carrying the durable identifiers found alongside them. .onion-derived claims raise a warning in the run summary: those sources have no archive and no preserved body, so they cannot be verified after the fact by anyone, including you.

Order is fixed, and the ordering is the point: imported claims seed the frontier before collection, adversarial checks run before scoring so a planted identifier never reaches the model at full weight, and evidence verification runs before reporting so findings from a package that failed its integrity check are never presented. attribution run exits non-zero if verification fails, so a scripted caller can detect an unpresentable result.

Passthrough commands

attribution index build --domains tranco.txt --db adtx.sqlite
attribution portfolio scraper-site.example --index adtx.sqlite --registrants
attribution handles --observations handles.csv --corpus usernames.txt
attribution registries --jurisdiction IN
attribution verify ./out/evidence
attribution version

These delegate to the component CLIs rather than duplicating their flags.

Outputs

File What it is
attribution_report.md / .html Findings, ICD 203 language, source terms
verification_trail.md Ordered timestamped steps with numbered citations
investigation_graph.json Every claim with full provenance
entities.ftm.json FollowTheMoney — loads into yente / Aleph
graph.cypher Neo4j
evidence/evidence_manifest.json Hash-chained capture record
evidence/verify.py Standalone integrity checker, no dependencies
evidence/DECLARATION_DRAFT.md Qualified-person certification skeleton

Collection policy

robots_policy in the case file: respect, record (default), or ignore.

There is no silent enforcement — robots.txt is routinely bypassed in practice and a library pretending otherwise would be enforcing an abandoned norm. What matters for this toolchain is different: the output is meant to survive review, and the question there is never "did the tool obey robots.txt" but "can you state what your collection policy was". Whichever setting you choose is written into the evidence manifest and the declaration draft.

In practice it rarely bites. RDAP, crt.sh, GLEIF, EDGAR, sellers.json and ads.txt are all published for machine consumption; only imprint scraping and county-records HTML touch robots-relevant paths.

Version reporting

Every run prints the version of each component, and attribution version reports them. A finding that cannot name its toolchain is hard to re-examine once the scoring model has moved.

License

Apache-2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

attribution_suite-0.6.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

attribution_suite-0.6.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file attribution_suite-0.6.0.tar.gz.

File metadata

  • Download URL: attribution_suite-0.6.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for attribution_suite-0.6.0.tar.gz
Algorithm Hash digest
SHA256 32ce3c03355c528a2f9655ca77705ea5e26b5d462c721ec2b171824b31717706
MD5 bf5c61e573214c7edc5fef18a34a4ebd
BLAKE2b-256 17543374a507c276982af31b4988663812b6682d3fe92446384ff6bb2b8c68b2

See more details on using hashes here.

File details

Details for the file attribution_suite-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for attribution_suite-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f11be137aee4f1a3b367e2f7a7fa3b0dff2f1404493ed764fdbe4c76beabcd44
MD5 050b68a0271d93a501c0dd2ab6677664
BLAKE2b-256 cfe45dc5439f41977af6f8414f222556f449b632a65f180ef864a6341630336e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page