Skip to content

Latest commit

 

History

History
549 lines (315 loc) · 24.7 KB

File metadata and controls

549 lines (315 loc) · 24.7 KB

Changelog

All notable changes to this project will be documented here

1.4.1 - 2026-05-26

⚙️ Miscellaneous

  • Version bump - (b68a00a)
  • Phlare: emit periodic progress logs during paginated searches

FlareEventsGlobalSearchByDomain, FlareSearchCookiesByDomain, and FlareSearchCredentialsByDomainASTP can run for many minutes against large tenants. Until now they produced no output during pagination, leaving the user unable to tell whether the SDK was still working or stuck.

Spin up a 30s ticker goroutine in each function that logs the running count of accumulated items. Use sync/atomic.Int64 so the ticker can safely read the count without racing the main loop's append. defer close(progressDone) guarantees the goroutine exits on every return path. - (1f414bc)

  • Version pin actions to hashes and bump go version and deps in go.mod - (137d438)

1.4.0 - 2026-05-18

🛠 Improvements

⚙️ Miscellaneous

  • Resolved linter issues and version bump - (6bc1265)
  • Merge pull request #7 from cham423/fix/credentials-search-timeout-and-logerror-masking

Fix Flare gateway timeouts and three layers of error masking - (978c67c)

  • Phlare: don't JSON-decode error response bodies in DoReq

DoReq returned (statusCode, DecodeResponse(resp, target)) regardless of HTTP status. When the API returned a non-2xx with a non-JSON body (e.g. Flare's gateway returning the plain text "upstream request timeout" on a 504), the JSON decoder errored on the first byte with "invalid character 'u' looking for beginning of value" — and callers that check err before statusCode saw only the decoder failure, never the real HTTP status.

Skip the decode entirely on non-2xx responses. Drain the body so the connection can be reused and return (statusCode, nil); the caller's existing if statusCode != 200 branch then handles it cleanly.

Combined with the new 502/503/504 retry path, this means transient Flare gateway timeouts now surface as a clean retry+success rather than a confusing JSON parse error. - (abc84fe)

  • Utils: LogError no longer masks the caller's original error

LogError opens a dated log file (gophlare-error-log-.json) in the CWD on every call. When that open fails — most commonly because the filesystem is read-only (CI runners, hardened containers, os.Chroot'd processes) — it returned the filesystem error in place of the caller's original err:

f, openFileErr := os.OpenFile(fname, ...)
if openFileErr != nil {
    return openFileErr   // <-- masks the caller's err
}

Every API failure surfaced as "open gophlare-error-log-...: read-only file system" instead of the real cause (504s, 429s, JSON decode errors, etc.). The actual error became unreachable from outside gophlare.

File write is now best-effort: on open failure we skip the file tee, still log via gologger to stderr, and always return the caller's original err. The public contract is unchanged — LogError still returns an error, it's just now the real one. - (4e4548d)

  • Phlare: make credentials search resilient to Flare gateway timeouts

Two related fixes for FlareSearchCredentialsByDomainASTP — the hardcoded page size was overshooting Flare's gateway timeout, and the endpoint had no retry path for the resulting 5xx responses.

  1. Lower hardcoded size from "10000" to "100"

    Flare's gateway returns HTTP 504 "upstream request timeout" when the backend can't materialize a page within ~30 seconds. The astp/v2/credentials/_search latency scales roughly linearly with size (measured against a single tenant, slow-day conditions):

    size=10 ~3.9s size=100 ~8.0s size=300 ~24s size=50 ~6.3s size=200 ~13.2s size=500 504 at 30.2s

    Size=10000 was always going to 504 on any non-trivial corpus. Size=100 leaves >20s of headroom on slow days; pagination via the existing Next cursor loop handles arbitrary total result sizes, so per-domain ceiling is unchanged.

  2. Retry on 502/503/504 (mirrors the existing 429 handling)

    Flare gateway timeouts are transient under load. Without retry, a single 504 fails the entire per-domain pull even if the next call would have succeeded. Added 502/503/504 → sleep+continue alongside the existing 429 case in all three pagination loops (credentials/leaksdb, cookies, credentials/astp). Bounded by the outer http.Client timeout (default 10 minutes). - (5d581cb)

1.3.9 - 2026-03-11

✨ New features

  • Add ReadFileLines to ConfigureFlagOpts and simplify scope.go

Port ReadFileLines from goreconasoutsider to read file contents as []string directly in ConfigureFlagOpts, eliminating redundant file-reading in scope.go. Fix comma-separated values not being split when IsFilePath is true and the value is not an existing file. Simplify scope.go from ~170 lines to ~35 lines using a resolveToSlice() type-switch helper.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com - (18d6a9c)

🛠 Improvements

⚙️ Miscellaneous

1.3.8 - 2026-01-17

🐛 Bug fixes

  • Fix more time.Time to FlareTime - (c6c92ee)

🛠 Improvements

1.3.7 - 2026-01-15

✨ New features

  • Add support for ISO 8601 date time format - (264daa2)

🛠 Improvements

1.3.6 - 2025-12-11

⚡ Performance

  • Optimize cred stuffing files - (b86f914)

🛠 Improvements

⚙️ Miscellaneous

1.3.5 - 2025-12-02

📦 Dependencies

🛠 Improvements

⚙️ Miscellaneous

  • Resolve code scanning alerts - (a02f792)

1.3.4 - 2025-11-26

🐛 Bug fixes

  • Fix ConfigureFlagOpts - (d58b98c)

🛠 Improvements

1.3.3 - 2025-11-25

🐛 Bug fixes

🛠 Improvements

1.3.2 - 2025-11-25

🐛 Bug fixes

⚡ Performance

  • Optimized flags parser - (9b62902)

1.3.1 - 2025-11-17

✨ New features

  • Add sqlite integration - (358cb2b)

⚙️ Miscellaneous

  • Stealer log db integration working poc - (e05765a)
  • Stealer log db integration checkpoint - (6093607)
  • Update changelog - (214b73a)

1.3.0 - 2025-09-19

⚙️ Miscellaneous

  • Replaced deprecated api endpoints optimized hash filtering - (32cf343)
  • Update changelog - (444c0ef)

1.2.9 - 2025-08-20

⚙️ Miscellaneous

1.2.8 - 2025-08-01

✨ New features

  • Add wildcard host global event search option - (cb36a65)

🛠 Improvements

⚙️ Miscellaneous

1.2.7 - 2025-07-02

🐛 Bug fixes

  • Fixed missing cmd loader for custom query 🐛 - (36183be)

📚 Documentation

⚙️ Miscellaneous

1.2.6 - 2025-06-14

✨ New features

  • Added 🐇 additional leak data ingestors 4 bloodhound - (2f4a6fa)

📚 Documentation

⚙️ Miscellaneous

1.2.5 - 2025-06-11

✨ New features

  • Add Autofills.txt to stealerlog downloaded files - (7d5720b)

⚙️ Miscellaneous

1.2.4 - 2025-05-23

📚 Documentation

🛠 Improvements

⚙️ Miscellaneous

  • 🐐 increased verbosity 🐕 version bump - (236c876)
  • Update changelog - (04a1d8d)

1.2.3 - 2025-05-23

📚 Documentation

⚙️ Miscellaneous

  • Version bump - (c43e923)
  • Merge pull request #1 from mr-pmillz/bloodhound

Draft: Bloodhound integration - (7a1bc94)

  • Removed unused code and cleanup - (1dff448)
  • Bloodhound integration PoC shortest paths from breached credentials - (a9c8ac5)
  • Resolved linter warnings - (7034a62)
  • 🌀 Completed Phase 2 🔮 - (abcfa97)
  • Initial bloodhound integration testing - (afca637)
  • Update changelog - (0198c65)

1.2.2 - 2025-04-25

✨ New features

  • Optimized cred parser to support redline format. various other improvements - (5101242)

⚙️ Miscellaneous

1.2.1 - 2025-04-22

✨ New features

  • Added token refresh capabilities, updated lint config - (58827c8)

📚 Documentation

📦 Dependencies

⚙️ Miscellaneous

1.2.0 - 2025-04-17

🐛 Bug fixes

  • Write individual cookie bro and events json to files. resolved linter warnings - (58dc8a0)
  • Fixed bufio.Scanner: token too long bug 🐛 - (0e0a172)
  • Fixed flare events time.Time type unmarshalling bug 🐛 - (4a5ce83)

⚡ Performance

  • Optimized warning log msg fmt - (ffbc4d6)

⚙️ Miscellaneous

1.1.9 - 2025-04-17

⚡ Performance

  • Optimized. log warning instead of err to continue downloading results - (0c0e24a)

⚙️ Miscellaneous

1.1.8 - 2025-04-09

🛠 Improvements

  • Updated goreleaser dockerfile and docs - (21ff4a1)

⚙️ Miscellaneous

1.1.7 - 2025-03-12

🛠 Improvements

  • Update cicd permissions in ci.yml - (e3f1b86)

1.1.6 - 2025-03-12

✨ New features

  • Add GITHUB_TOKEN to .goreleaser env for ghcr push - (4a2dcf8)

1.1.5 - 2025-03-12

🧪 Testing

  • Testing goreleaser docker build/push to ghcr.io - (1b7c003)

1.1.4 - 2025-03-12

⚙️ Miscellaneous

  • Map has no entry for key "Arch", i knew it! - (ebb2393)

1.1.3 - 2025-03-12

✨ New features

  • Added Dockerfile & updated goreleaser to push image to ghcr.io - (b4428d1)

⚙️ Miscellaneous

1.1.2 - 2025-03-10

🛠 Improvements

⚙️ Miscellaneous

  • Changelog generation handled by cicd... - (86e1ef6)

1.1.1 - 2025-03-10

✨ New features

  • Added NewConfig helper, updated NewScope, version bump - (5705ddd)

🛠 Improvements

  • Update README.md added badges - (04d8c7a)

⚙️ Miscellaneous

1.1.0 - 2025-02-20

✨ New features

  • Added from, to, severity, eventsFilterTypes opts
  • refactored search command
  • updated docs - (52e632e)

⚙️ Miscellaneous

1.0.9 - 2025-02-19

🐛 Bug fixes

  • Fixed 🐛 in --search-emails-in-bulk - (0925622)

🛠 Improvements

⚙️ Miscellaneous

1.0.8 - 2025-02-17

🛠 Improvements

⚙️ Miscellaneous

  • Merge branch 'main' of github.com:mr-pmillz/gophlare - (3ff7612)
  • Update changelog - (51ef9cb)

1.0.7 - 2025-02-16

🐛 Bug fixes

  • Fix typo in options.go for user-id-format flag - (69a541b)

1.0.6 - 2025-02-16

🐛 Bug fixes

  • Fix goreleaser 🐛 dirty state update .gitignore job version bump - (44e4f48)

1.0.5 - 2025-02-16

🛠 Improvements

  • Update cicd goreleaser job version bump - (7754301)

⚙️ Miscellaneous

1.0.4 - 2025-02-16

🛠 Improvements

  • Update cicd goreleaser job version bump - (788e8f2)

1.0.3 - 2025-02-16

🛠 Improvements

1.0.2 - 2025-02-16

🛠 Improvements

  • Update pre-commit-config.yaml - (11c5a7e)
  • Update cicd goreleaser job version bump - (d1b5e6b)
  • Update cliff.toml - (fa8648b)

⚙️ Miscellaneous

1.0.1 - 2025-02-16

✨ New features

  • Added cookies/_search api and optimized thangs 🍪 - (d3aecf2)

[1.0.0] - 2025-02-16

✨ New features

  • Add git-cliff changelog and ci job - (2a8464a)

🐛 Bug fixes

⚙️ Miscellaneous

  • Initial poc rough draft.. ToDo: cookie logic code-review - (d8acda9)