28 Commits
Author SHA1 Message Date
dextmorgn b1a6252219 fix(mypy): relax disallow_untyped_defs for tests across all packages
Pytest fixture params carry their real types from conftest.py fixture
definitions scattered across the tree, not the function signature —
fully annotating every test function's fixture params for marginal
safety on non-public test code (~150 errors, mostly in tools/network
test doubles and repository test suites) isn't worth the churn. src/
stays strict; this is a deliberate, scoped relaxation per package, not
a blanket one.

Also adds the missing tests/__init__.py to flowsint-api — its tests
dir was the only one without it, so its module name never actually
matched the tests.* override glob (mypy silently no-op'd it, flagged
via its own "unused section" note). The other three packages already
had this.
2026-08-25 09:33:36 +02:00
dextmorgn cf69a7e088 fix(ci): make isort's first-party grouping invocation-independent
Without known_first_party, isort's own-package detection depends on
which files it's given: sorted alone, a file inside flowsint_enrichers
gets flowsint_enrichers imports grouped separately from flowsint_core/
flowsint_types; sorted together with the rest of the workspace (as
`make lint` and CI do), they collapse into one group. lint-staged only
ever passes the staged subset, so a commit could pass the pre-commit
hook locally and still fail `make lint` in CI — silently, since both
are "isort says it's fine," just about different file sets.

Pin the four packages as known_first_party in all four pyproject.toml
so grouping is the same regardless of invocation scope. The rest of
the diff is isort re-normalizing ~100 files to the now-consistent
order — import statements only, verified against the diff.
2026-08-25 09:33:33 +02:00
dextmorgn 24e1e276c8 fix(python): correctness fixes surfaced by turning flake8 on
Each is a real defect, not style — flake8 just never ran before to
catch them:

- logger.py: bare `except:` around a queue drain swallowed everything
  including KeyboardInterrupt/SystemExit instead of just queue.Empty
- dockertool.py: bare `except:` narrowed to Exception
- permissions.py: duplicate `HTTPException` import, dead code
- test_registry.py: `test_get_by_lower_key` was defined twice — the
  second definition silently shadowed the first, so only one ever ran
- to_ports.py / test_investigation_repository.py: assigned-but-unused
  local variables, dead code
- to_whois.py / to_infos.py: documented pyflakes false positive
  (OutputType is a class attr, resolves fine at def-time) — noqa'd
  with an explanation instead of restructuring working code
- E712 (`== True`/`== False` → `is True`/`is False`) across 7 test
  files, F541 (f-strings with no placeholders) across 5 enrichers,
  E402 (import order) noqa'd in 2 files where the order is deliberate
  (env vars set before import; documented circular-import workaround)
2026-08-25 09:33:33 +02:00
dextmorgn eb30268c56 style(python): apply black/isort formatting workspace-wide
Mechanical only — black + isort, no logic changes. Enforced going
forward by the CI gate and pre-commit hook added in the previous
commit.
2026-08-25 09:33:33 +02:00
dextmorgn 9db1e675d6 test(api): SSE auth-gate and endpoint-removal tests (red) 2026-06-03 11:22:58 +02:00
dextmorgn 5b62d9efba feat: flowsint-transforms, flowsint-types, flowsint-core 2025-08-13 17:04:11 +02:00
dextmorgn 0b41783f48 feat: right panel for node details 2025-07-31 15:49:51 +02:00
dextmorgn 6bca754d32 feat: react-force-graph node borders 2025-07-23 14:17:19 +02:00
dextmorgn 8a978aae76 feat: n8n transform 2025-07-22 00:28:48 +02:00
dextmorgn c2c7e7abb7 feat: use of params for scanners 2025-07-20 22:39:11 +02:00
dextmorgn 41165a67f5 feat: add relation from node context menu 2025-07-16 23:58:57 +02:00
dextmorgn d72f9347b9 feat: httpx tool 2025-07-05 11:40:20 +02:00
dextmorgn 6dcc1e0f02 feat: shared colors and icons with transforms 2025-07-02 17:15:37 +02:00
dextmorgn d966eea40e feat: new svg icons 2025-06-30 15:35:05 +02:00
dextmorgn 7fa69d6029 feat: domain to website + website to crawl 2025-06-24 00:14:28 +02:00
dextmorgn 43148cdf3d feat: context menu on nodes 2025-06-20 11:36:53 +02:00
dextmorgn 206b3e10a8 feat: wallet to NFTs 2025-06-16 22:20:43 +02:00
dextmorgn fe819480a2 feat: react force graph 2025-06-12 10:49:56 +02:00
dextmorgn 6681073317 feat: latest changes 2025-06-10 11:29:15 +02:00
dextmorgn b8914ae8c0 feat: org to asn, asn to cidr, ip to asn 2025-06-05 10:13:56 +02:00
dextmorgn c897ae759e feat: realtime logs 2025-05-13 00:26:00 +02:00
dextmorgn e3d3824883 feat: toolbar actions 2025-05-12 08:19:54 +02:00
dextmorgn 97fbb89123 feat: react-force-graph-2d 2025-05-09 23:41:30 +02:00
dextmorgn 18e0e7e533 feat: cryptoscape 2025-04-29 16:17:50 +02:00
dextmorgn 1348f11522 feat: first instance of working scanner orchestrator 2025-04-26 19:26:37 +02:00
dextmorgn bdc30cfb0f feat: proper types 2025-04-25 12:24:06 +02:00
dextmorgn 522451e4e3 feat: tests + first glance of scanner orchestrator 2025-04-23 19:12:00 +02:00
dextmorgn e40f914834 feat: fast api tests 2025-04-23 15:27:11 +02:00