Skip to content

added by pass consent public api - #150

Open
namArora3112 wants to merge 10 commits into
mainfrom
feature/device-attributes-bypass-consent
Open

namArora3112 wants to merge 10 commits into
mainfrom
feature/device-attributes-bypass-consent

Conversation

@namArora3112

@namArora3112 namArora3112 commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds an Android Identity API for forwarding device attributes through a consent-independent operational-data event, matching the feature introduced in aepsdk-edgeidentity-ios#149.

Related Issue

Motivation and Context

Device attributes used for operational purposes need a path that is independent of the profile-attribute flow and its consent gating. This change provides that Identity-side API and event producer; an appropriate Launch rule and the corresponding Edge SDK bypass-consent transport are required for end-to-end delivery.

Changes

  • Adds DeviceAttributes and Identity.updateDeviceAttributesBypassConsent(...) for optional timezone and push-token values.
  • Dispatches a generic operational-data event for downstream Launch rules instead of publishing these values in Identity shared state.
  • Stores device attributes separately from profile attributes and supports configurable deduplication (edgeidentity.deviceAttributes.dedup, enabled by default).
  • Validates timezone identifiers and includes Android app ID/platform metadata with push-token updates when application context is available.
  • Extends the test app and adds unit coverage for API event construction, handler registration, persistence, deduplication, validation, and dispatch behavior.

How Has This Been Tested?

  • ./code/gradlew -p code/edgeidentity testPhoneDebugUnitTest --no-daemon
  • ./code/gradlew -p code/edgeidentity spotlessCheck --no-daemon

Both completed successfully.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • I have signed the Adobe Open Source CLA.
  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@namArora3112
namArora3112 marked this pull request as draft September 30, 2026 04:08
@namArora3112
namArora3112 force-pushed the feature/device-attributes-bypass-consent branch from 7ee0e39 to 950b0ed Compare October 6, 2026 04:33
@namArora3112
namArora3112 marked this pull request as ready for review October 6, 2026 04:45
// TODO: Set up the preferred Environment File ID from your mobile property configured in Data Collection UI
private var ENVIRONMENT_FILE_ID: String = ""
// Datastream ID (edge.configId) from the "Luma Mobile App - vinamra" datastream, not a Launch/Tags Environment File ID
private var EDGE_CONFIG_ID: String = "8f56dfea-5290-4cf7-8ea2-9e5f0fb5d051"

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.

Let's not commit the app ID here

listOf(Edge.EXTENSION, Identity.EXTENSION, Consent.EXTENSION, Assurance.EXTENSION)
) {
MobileCore.configureWithAppID(ENVIRONMENT_FILE_ID)
MobileCore.updateConfiguration(

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.

Do we want to have consent update committed here?

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.

2 participants