Conversation
* Add Consent module * Add tests for Consent module * Add constant key for setting default consent and add logic to read default consent from config * Update scripts and other places to accommodate for newer consent module * Update based on reviews * Add tests for configuration, update tests for extractCollectConsent and add tests for isValidConsentValue
* Add setConsent public API and unit tests * Add test helper to generate error message * Updates based on reviews * Fix typo
…ling (#173) * Add response event with different sources for easier response handling * Updated Edge module to add support for queuing request from other modules. Updated processEvent signature to return responseEvent. ProcessQueuedRequests will be called to process the queue, make network requests and get responses back. Edge responses are now returned as Edge response events and not generic response events. * Added a way to dispatch response events to all modules, which is the way for the other modules who queue the requests with edge to listen for responses. All the modules will get responses for all the edge requests going out and they can choose to handle the request types they wish to. Added an array or registered modules for responses. All the registered modules need to have processResponseEvent method. * Removed EdgeRequestQueue dependency and added EdgeModule dependency. Updated Media module to use the new unified queue architecture and handle the responses from event processor. Updated tests with the changes. * Added response event handler to consent module * Test updates and cleanups. Also added TODOs for a subsequent cleanup. * Updates based on reviews * Fix a typo * Update Mediasession to check for requestId before doing any more processing. * Updated eventProcessor to call processQueuedRequests after all the api request events are processed. * Add null check * Add comments to clarify logic * Reword comments
…uctor responses and Attaching to subsequent requests (#177) * Add Konductor Config class with tests * Update logic to build requestURL. ee prefix is applicable to all the edge requests so all the modules need to pass the path without ee. buildEdgeRequest API now also takes in locationHint to generate the URL. * Extract location Hint and state store from Konductor response. Subsequent request URL to contain the location hint and the request body to contain the state * Update testHelper generateErrorMessage for convenient usage and updated usages. * Updated based on reviews * Refactor KonductorConfig class as EdgeResponseManager and separate classes to handle locationHint and statestore. Updated tests * Extract handle types, scope as constants. Also fixed typo and updated usage for m._state. * Adding location hint to log for better debugging * Update isLocationHintExpired signature for better testing, added tests * Update edgeRequestQueue class * Add new files to the test app and update logging level for few logs * Add check for edgeResponse type before processing * Update tests based on changes
…179) * Update stateStoreManager to handle incremental updates with individual handle * Cleanup, refactor and add delete functionality to locationHintManager * Added stringEqualsIgnoreCase and stringEquals helper. * Add and udpate tests for all the changes * Added util expiryTimer and refactored code with the usage. Updated tests. * Trim strings before comparison * Update stateStore Manager variable names for clarity * Add module line to be archived properly * Rename ExpiryTimer to Timer
* Add ConsentState that maintains and is used to get the consent by all the dependent modules. ConsentModule will be the primary class that would manipulate consentState, others modules are expected to just read from consentState but not modify it. * Update EventProcessor initializations and arrange function with their role and alphabetically. * Add tests in the list, Add SDK source and have same dependencies in all XMLs. * Update consent logic based on discussions * Updates based on reviews
* Add logic to persist locationHint * Fixes, test updates * fixes in stateStore manager * Updates based on reviews * Cleanup helpers
* Add logic to persist stateStore * Remove unwanted timer class and tests. Removed stateStoreEntity and simplified logic. * Add tests * Update logic to delete the stateStore entry if the maxAge is 0 or less
* Enforce consent on Edge and Identity module using ConsentState dependency. Refactored EdgeRequestWorker to use new class EdgeRequest for better readability and maintenance. * Add and update tests with consent state dependency * code and logging improvements * Test cleanup and fixes for unused variables * Minor fixes * Remove unwanted lines * Remove setMeta which will be handled while processing * Add a separate queue for consent requests. Process the consent requests till the queue is blocked. If the queue is not blocked process the requests in order by comparing the ts of oldest hits in both the queues. * Remove old test case * Added fixes, new tests and review changes * update tests in setup file * Fixed an issue and added comment to clarify the logic * Refactored code for readability and simplicity * Improved logic to avoid removing and adding from the list * Add logic to stop processing batch requests when consent request is processed.
…190) * Added logic to push resetIdentities event to all registered modules * Remove comments
* Rearrange document and add API reference for setConsent API. * Update doc with default consent configuration * Updates based on reviews * remove sample usage for ToISOString() * review updates * Point to XDM schema for Adobe 2.0 standard consent * Updates based on reviews
* Implemented Identity state and refactored Identity to queue requests with edge module. * Update other modules based on identity refactor * Add and cleanup utils * Improve ADBTestRunner to maintain SDK data before and after running the integration tests. Also added helpers to be used with the integration tests. * Updated and cleaned up current integration tests * Update file with new unit tests * Attach query:fetchEcid in interact and consent events to get indentity:result handle when Ecid is not cached with the SDK. * Updates based on reviews * Use callbacks instead of publishing to task. * Need to pass eventId and context for the callback for the eventprocessor to dispatch the event to task properly. Also need to publish sendEvent response to task since we support sendEventWithCallback. * update setuptests * Remove task parameter
* Add Integration tests * Fixed a bug with Media where the request would be dropped if there is no backend sessionId * Added check to verify response is not empty or invalid * Suppress warnings for unused variable * Add test case for resetIdentities and cleanup * Add comments * Remove unused variables
Add Consent Management and APIs + State Store & Location hint persistence
Update version to 1.3.0
Update Edge Queue limit to 100 + ConsentRequest + Sample App update
Dev -> Staging [v1.3.0 Release]
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Related Issue
Motivation and Context
How Has This Been Tested?
Screenshots (if appropriate):
Types of changes
Checklist: