Skip to content

[AI-FSSDK] [FSSDK-12670] Block ODP identify events with single identifier#452

Open
jaeopt wants to merge 1 commit into
masterfrom
ai/jaeopt/FSSDK-12670-odp-event
Open

[AI-FSSDK] [FSSDK-12670] Block ODP identify events with single identifier#452
jaeopt wants to merge 1 commit into
masterfrom
ai/jaeopt/FSSDK-12670-odp-event

Conversation

@jaeopt
Copy link
Copy Markdown

@jaeopt jaeopt commented May 26, 2026

Summary

Block ODP identify events when only a single valid identifier is provided. Identify events exist to link multiple user identifiers together; sending them with a single identifier provides no value and wastes network calls.

Jira: FSSDK-12670

Changes

pkg/odp/event/event_manager.go

  • Changed IdentifyUser signature from (apiKey, apiHost, userID string) to (apiKey, apiHost string, identifiers map[string]string)
  • Added filtering of empty identifier values before count check
  • Added guard: requires 2+ valid identifiers to dispatch identify event
  • Added debug log message when skipping: "ODP identify event is not dispatched (only one identifier provided)."

pkg/odp/odp_manager.go

  • Updated IdentifyUser to build identifiers map from userID and pass to event manager
  • Added identifyUserIdentifiers helper function
  • Updated event.Manager interface to match new signature

Tests

  • Updated existing identify tests to use new map-based signature
  • Added TestIdentifyUserSkippedWithSingleIdentifier - verifies single identifier blocked
  • Added TestIdentifyUserSkippedWithEmptyValues - verifies empty values filtered out
  • Updated async behavior test to use two identifiers

Notes

  • Go SDK is server-side only (no VUID), so IdentifyUser will always have a single fs_user_id identifier and identify events will be correctly skipped
  • The OdpManager.Manager public interface (IdentifyUser(userID string)) is unchanged for backward compatibility
  • The signature change is internal to the event.Manager interface

Change IdentifyUser in event manager to accept identifiers map instead
of single userID. Filter out empty values and require 2+ valid
identifiers before dispatching. Server-side Go SDK only has fs_user_id
(no VUID), so identify events will be correctly skipped.
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.

1 participant