Phase 2 - Add DeviceRegistrationClientApplication in Common For OneAuth, Fixes AB#3450073#3073
Phase 2 - Add DeviceRegistrationClientApplication in Common For OneAuth, Fixes AB#3450073#3073
Conversation
|
❌ Work item link check failed. Description does not contain AB#{ID}. Click here to Learn more. |
6298134 to
27a2b3a
Compare
|
✅ Work item link check complete. Description contains link AB#3450073 to an Azure Boards work item. |
|
❌ Work item link check failed. Description contains AB#3450073 but the Bot could not link it to an Azure Boards work item. Click here to learn more. |
There was a problem hiding this comment.
Pull request overview
This PR introduces a new public Android API (DeviceRegistrationClientApplication) to let OneAuth consumers perform device registration operations via broker IPC, and updates the common4j device-registration V0 protocol parameter model to require an explicit correlationId for tracing.
Changes:
- Added
DeviceRegistrationClientApplication(Android) with correlationId-required methods and default dependency wiring for OneAuth consumers. - Introduced device registration enums in common4j (
DeviceState, discovery-endpoint enum) withfromString()helpers. - Refactored common4j device-registration V0 parameter classes to extend a base class with an explicit
UUID correlationIdconstructor; updated impacted tests/fixtures accordingly.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| common4j/src/testFixtures/java/com/microsoft/identity/deviceregistration/testprotocols/TestHappyPathV0Parameters.java | Replaced Lombok all-args ctor with explicit ctor that supplies correlationId to base parameters. |
| common4j/src/test/com/microsoft/identity/deviceregistration/java/packer/DeviceRegistrationProtocolSerializerParameterizedTest.java | Updated test fixture construction to include correlationId. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/UnregisterDeviceV0Parameters.java | Added explicit ctor with correlationId and base-class chaining. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/ProvisionResourceAccountV0Parameters.java | Added explicit ctor with correlationId and base-class chaining. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/PreProvisionedBlobV0Parameters.java | Added explicit ctor with correlationId and base-class chaining. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/InstallCertificateSilentlyV0Parameters.java | Added explicit ctor with correlationId and base-class chaining. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/GetRegistrationStateV0Parameters.java | Added explicit ctor with correlationId and base-class chaining. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/GetInstallWpjCertificateIntentRequestV0Parameters.java | Added explicit ctor with correlationId and base-class chaining. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/GetDeviceTokenV0Parameters.java | Converted to extend the abstract base parameters and added explicit ctor with correlationId. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/GetDeviceRegistrationRecordV0Parameters.java | Added explicit ctor with correlationId and base-class chaining. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/GetDeviceRegistrationRecordsV0Parameters.java | Removed no-arg construction path and introduced correlationId ctor (but currently leaves duplicate/unused imports). |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/DeviceRegistrationWithTokensV0Parameters.java | Added explicit ctor taking correlationId + registration inputs (discovery endpoint name passed through). |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/DeviceRegistrationPreAuthorizedV0Parameters.java | Added explicit ctor taking correlationId + preauthorized inputs. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/protocol/parameters/AbstractDeviceRegistrationProtocolParameters.java | Introduced required correlationId constructor and removed random UUID defaulting. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/DrsDiscoveryEndpoint.kt | Added discovery-endpoint enum with fromString() normalization behavior. |
| common4j/src/main/com/microsoft/identity/deviceregistration/java/DeviceState.kt | Added device-state enum with fromString() mapping for protocol response values. |
| common/src/test/java/com/microsoft/identity/deviceregistration/DeviceRegistrationClientApplicationTest.kt | Added DRCA unit tests covering several operations + attempted correlationId propagation check. |
| common/src/test/java/com/microsoft/identity/deviceregistration/AndroidDeviceRegistrationProtocolPackerTest.java | Updated test protocol fixture construction to include correlationId. |
| common/src/test/java/com/microsoft/identity/deviceregistration/AndroidDeviceRegistrationClientControllerTest.kt | Updated test fixture construction to include correlationId. |
| common/src/main/java/com/microsoft/identity/deviceregistration/DeviceRegistrationClientApplication.kt | New public API surface for device registration via IPC, requiring correlationId per call. |
| changelog.txt | Added vNext entry for DRCA + enums. |
… DiscoveryEndpoint - Create DeviceRegistrationClientApplication in common (public API for OneAuth) - All methods take mandatory correlationId: UUID for IPC tracing - correlationId passed to V0 protocol parameters via constructor - Two constructors: simple (Context) and full (Context, components, discoveryClient, provider) - Add DeviceState enum in common4j (DEVICE_VALID, DEVICE_NOT_FOUND, DEVICE_DISABLED, UNKNOWN) - Add DiscoveryEndpoint enum in common4j (PROD, PPE, INT) - Update AbstractDeviceRegistrationProtocolParameters: remove no-arg constructor, add (UUID correlationId) constructor. Remove @AllArgsConstructor from V0 params, add explicit constructors with correlationId as first param. - Add DeviceRegistrationClientApplicationTest (7 tests) - Update serializer and packer tests for new constructor signatures Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
27a2b3a to
ae4387c
Compare
Summary
Introduce
DeviceRegistrationClientApplicationas a public API for OneAuth consumers to perform device registration operations via IPC. AddDeviceStateandDiscoveryEndpointenums in common4j.Changes
common4j
DeviceStateenum —DEVICE_VALID,DEVICE_NOT_FOUND,DEVICE_DISABLED,UNKNOWNwithfromString()factoryDiscoveryEndpointenum —PROD,PPE,INTwithfromString()factoryAbstractDeviceRegistrationProtocolParameters— removed no-arg constructor, added(UUID correlationId)constructor. All V0 param subclasses updated with explicit(correlationId, ...fields)constructors,@AllArgsConstructorremoved.TestHappyPathV0Parameters(testFixtures) — updated constructor for correlationIdcommon (Android)
DeviceRegistrationClientApplication— new public API with two constructors:(Context)— creates defaults for OneAuth consumers(Context, IPlatformComponents, IBrokerDiscoveryClient, DeviceRegistrationIpcStrategiesProvider)— for broker/testingcorrelationId: UUIDfor IPC request tracingcorrelationIdpassed to V0 protocol parameters via constructorTests
DeviceRegistrationClientApplicationTest(7 tests) — getPreProvisionedBlob, getRegistrationState (valid + unknown), getDeviceRegistrationRecord (found + null), getAllEntries, correlationId propagationCompanion PR
Broker: https://github.com/identity-authnz-teams/ad-accounts-for-android/pull/144
Fixes AB#3450073