Skip to content

Udp.Code. frontend_data logger - #864

Open
alexander-b-clean wants to merge 6 commits into
devfrom
frontend_data-logger.ab
Open

Udp.Code. frontend_data logger#864
alexander-b-clean wants to merge 6 commits into
devfrom
frontend_data-logger.ab

Conversation

@alexander-b-clean

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors bot-detector “frontend data log” collection/transfer into a consolidated browser state payload (apbct_browser_state) that is injected into frontend requests, then parsed server-side and exposed via apbct__bot_detector_get_fd_log(). It also updates AltSessions allow-listing and expands PHPUnit coverage for transport-specific state retrieval.

Changes:

  • Replace periodic “save log to AltSessions” JS with an ApbctBrowserState collector and request-injection (apbct_browser_state) across XHR/fetch/FormData/string bodies.
  • Update PHP to return apbct_browser_state (with defaults/error handling) and add helpers to parse state from RequestParameters/POST.
  • Expand standalone tests to cover AltSessions/NoCookie/POST transports and default-filling behavior.

Reviewed changes

Copilot reviewed 15 out of 23 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/StandaloneFunctions/TestBotDetectorLogGathering.php Reworked tests to validate new browser-state transport behavior and defaults.
lib/Cleantalk/ApbctWP/Variables/AltSessions.php Allow-list apbct_browser_state as JSON in AltSessions validation.
js/src/public-3-bot-detector-log.js Introduces ApbctBrowserState + apbctGetBrowserStatePair() for request injection.
js/src/public-1-main.js Injects apbct_browser_state into multiple request interception paths (XHR/fetch/etc.).
js/src/public-1-functions.js Includes browser state into NoCookie hidden-field payload / storage data array.
js/prebuild/apbct-public-bundle.js Prebuilt bundle updated with browser state injection logic.
js/prebuild/apbct-public-bundle_int-protection.js Prebuilt bundle updated with browser state injection logic.
js/prebuild/apbct-public-bundle_int-protection_gathering.js Prebuilt bundle updated with browser state injection logic.
js/prebuild/apbct-public-bundle_gathering.js Prebuilt bundle updated with browser state injection logic.
js/prebuild/apbct-public-bundle_full-protection.js Prebuilt bundle updated with browser state injection logic.
js/prebuild/apbct-public-bundle_full-protection_gathering.js Prebuilt bundle updated with browser state injection logic.
js/prebuild/apbct-public-bundle_ext-protection.js Prebuilt bundle updated with browser state injection logic.
js/prebuild/apbct-public-bundle_ext-protection_gathering.js Prebuilt bundle updated with browser state injection logic.
js/apbct-public-bundle.min.js Minified public bundle updated to match new browser state behavior.
inc/cleantalk-common.php Server-side browser state parsing + updated fd-log return structure.
cleantalk.php Changes bot detector wrapper script URL constant.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread cleantalk.php
Comment on lines 154 to 156
if ( ! defined('APBCT_BOT_DETECTOR_SCRIPT_URL') ) {
define('APBCT_BOT_DETECTOR_SCRIPT_URL', 'https://fd.cleantalk.org/ct-bot-detector-wrapper.js');
define('APBCT_BOT_DETECTOR_SCRIPT_URL', '/js-bot-detector-fd_log_av/ct-bot-detector-wrapper.js');
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

fix

Comment on lines +17 to +21
/**
* Get the current browser state as a JSON string ready to be transferred.
* @return {string} Empty string if the bot detector is disabled or on any collecting error.
*/
static toJson() {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread inc/cleantalk-common.php
alexander-b-clean and others added 2 commits August 21, 2026 18:38
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
# Conflicts:
#	js/apbct-public-bundle.min.js
#	js/apbct-public-bundle_ext-protection.min.js
#	js/apbct-public-bundle_ext-protection_gathering.min.js
#	js/apbct-public-bundle_full-protection.min.js
#	js/apbct-public-bundle_full-protection_gathering.min.js
#	js/apbct-public-bundle_gathering.min.js
#	js/apbct-public-bundle_int-protection.min.js
#	js/apbct-public-bundle_int-protection_gathering.min.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants