Skip to content

Conversation

@codeyourweb
Copy link
Owner

This pull request introduces significant improvements to the project's build automation, documentation, and platform support. The changes modernize build workflows for both Linux and Windows, add robust Docker-based CI for cross-platform builds, and overhaul the documentation to make installation and usage clearer for end users. The most important changes are grouped below by theme.

Build Automation & CI Improvements

  • Added a new GitHub Actions workflow .github/workflows/docker_build.yml to automate Docker-based multi-platform builds and tests, including builder, runtime, and docker-compose validation for both Linux and Windows targets.
  • Updated go_build_linux.yml and go_build_windows.yml workflows to use Go 1.24, install YARA v4.5.5, and run unit tests during CI, ensuring modern build environments and improved reliability. [1] [2]

Documentation Overhaul

  • Completely rewrote README.linux-compilation.md with a detailed, step-by-step guide for compiling FastFinder on Linux, including prerequisites, YARA build instructions, CGO configuration, troubleshooting, and Fedora-specific workarounds.
  • Major update to README.md with clearer project overview, platform badges, installation instructions (including Docker and source builds), improved usage documentation, and screenshots for better onboarding.

Platform Support & Dependency Updates

  • Upgraded minimum required Go version to 1.24 and YARA to 4.5.5 across all build scripts and documentation, ensuring compatibility with modern systems and improved performance. [1] [2] [3] [4]

Testing Enhancements

  • Added explicit unit test steps to CI workflows for both Linux and Windows, improving code quality and catching platform-specific issues early. [1] [2]

Docker & Cross-Platform Build Improvements

  • Provided Docker-based build and runtime instructions in documentation and CI, enabling users to build and run FastFinder without installing any dependencies directly, greatly simplifying setup for all platforms. [1] [2]

…g YARA configuration options; update unit tests for SHA256 and file copy validation
@codeyourweb codeyourweb requested a review from Copilot January 3, 2026 13:19
@codeyourweb codeyourweb self-assigned this Jan 3, 2026
@codeyourweb codeyourweb added the enhancement New feature or request label Jan 3, 2026
@codeyourweb codeyourweb changed the title Dev v3.0.0 release candidate Jan 3, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request represents a major version update (2.0.0 → 3.0.0) of FastFinder with substantial modernization efforts across build automation, documentation, and platform support. The changes upgrade core dependencies (Go 1.24, YARA 4.5.5), introduce Docker-based CI/CD, add event forwarding capabilities, and completely overhaul documentation.

Key Changes:

  • Modernized build system with Docker support and updated CI workflows
  • Introduced concurrent scanning pipeline architecture for improved performance
  • Added event forwarding system (HTTP/file) for SIEM integration
  • Updated deprecated API usage (io/ioutil → io/os packages)
  • Enhanced documentation with detailed compilation guides

Reviewed changes

Copilot reviewed 43 out of 47 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
go.mod / go.sum Updated Go to 1.24 and dependencies (YARA 4.3.4, updated libraries)
main.go Added event forwarding, root path override, silent mode, removed UI parameters
yaraprocessing.go Added validation for empty rule sets, updated deprecated imports
logger.go Reversed verbosity scale (1=alerts only, 5=full verbosity)
scanner_pipeline.go New concurrent file scanning architecture with channels
event_forwarding.go New event forwarding system for HTTP/file outputs
configuration.go Added YARA path resolution relative to config file
utils_linux.go Added container environment detection fallback
Docker files Complete Docker build system for cross-platform compilation
Documentation Comprehensive rewrites of README and compilation guides
CI Workflows Updated to Go 1.24, YARA 4.5.5, added unit tests
License Changed from MIT to AGPL-3.0

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

}

if logType == LOG_EXIT || logType >= loggingVerbosity {
if logType == LOG_EXIT || logType <= loggingVerbosity {
Copy link

Copilot AI Jan 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The verbosity comparison logic is inverted. The function now checks if logType is less than or equal to loggingVerbosity, but the new verbosity scale in logger.go (lines 12-17) has level 1 as most important (alerts only) and level 5 as least important (full verbosity). With this logic, if loggingVerbosity is 3 (errors, warnings, alerts), LOG_VERBOSE (5) would not be logged since 5 > 3, which is correct. However, LOG_ALERT (1) would be logged since 1 <= 3, which is also correct. Please verify this matches the intended behavior with the new reversed verbosity scale.

Copilot uses AI. Check for mistakes.
func (ef *EventForwarder) rotateFile() error {
// Close current file if open
if ef.currentFile != nil {
ef.currentFile.Close()
Copy link

Copilot AI Jan 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File handle may be writable as a result of data flow from a call to OpenFile and closing it may result in data loss upon failure, which is not handled explicitly.

Copilot uses AI. Check for mistakes.
if eventForwarder != nil {
// Close current file if open
if eventForwarder.currentFile != nil {
eventForwarder.currentFile.Close()
Copy link

Copilot AI Jan 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File handle may be writable as a result of data flow from a call to OpenFile and closing it may result in data loss upon failure, which is not handled explicitly.

Copilot uses AI. Check for mistakes.
http: # forward app activity with HTTP POST json data
enabled: false
url: "https://your-forwarder-url.com/api/events"
ssl_verify: false
Copy link

Copilot AI Jan 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sample configuration under eventforwarding.http sets ssl_verify: false while using an https:// URL, which effectively disables TLS certificate validation for HTTP event forwarding. If users copy this example as-is and enable HTTP forwarding, a man-in-the-middle on the network could intercept or tamper with security events despite HTTPS being used. To avoid encouraging insecure defaults, the example should use ssl_verify: true (and clearly document that setting it to false is only for exceptional debugging or trusted self-signed setups).

Suggested change
ssl_verify: false
ssl_verify: true # set to false only for debugging or trusted self-signed certificates

Copilot uses AI. Check for mistakes.
@codeyourweb codeyourweb merged commit d773182 into master Jan 3, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants