diff --git a/README.md b/README.md
index cef636c..3b3634a 100644
--- a/README.md
+++ b/README.md
@@ -24,14 +24,14 @@ And then add the artifact `incognia-api-client` **or** `incognia-api-client-shad
com.incognia
incognia-api-client
- 2.11.0
+ 2.12.0
```
```xml
com.incognia
incognia-api-client-shaded
- 2.11.0
+ 2.12.0
```
@@ -48,13 +48,13 @@ repositories {
And then add the dependency
```gradle
dependencies {
- implementation 'com.incognia:incognia-api-client:2.11.0'
+ implementation 'com.incognia:incognia-api-client:2.12.0'
}
```
OR
```gradle
dependencies {
- implementation 'com.incognia:incognia-api-client-shaded:2.11.0'
+ implementation 'com.incognia:incognia-api-client-shaded:2.12.0'
}
```
diff --git a/build.gradle b/build.gradle
index d53a48b..1e91ebb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ plugins {
}
group = "com.incognia"
-version = "2.11.0"
+version = "2.12.0"
task createProjectVersionFile {
def projectVersionDir = "$projectDir/src/main/java/com/incognia/api"
diff --git a/src/main/java/com/incognia/onboarding/SignupAssessment.java b/src/main/java/com/incognia/onboarding/SignupAssessment.java
index d65ccd9..3a756f6 100644
--- a/src/main/java/com/incognia/onboarding/SignupAssessment.java
+++ b/src/main/java/com/incognia/onboarding/SignupAssessment.java
@@ -16,4 +16,6 @@ public class SignupAssessment {
Map evidence;
String deviceId;
String installationId;
+ String policyId;
+ Map rawAttributes;
}
diff --git a/src/main/java/com/incognia/transaction/TransactionAssessment.java b/src/main/java/com/incognia/transaction/TransactionAssessment.java
index a8b640b..ca1e732 100644
--- a/src/main/java/com/incognia/transaction/TransactionAssessment.java
+++ b/src/main/java/com/incognia/transaction/TransactionAssessment.java
@@ -17,4 +17,6 @@ public class TransactionAssessment {
Map evidence;
String deviceId;
String installationId;
+ String policyId;
+ Map rawAttributes;
}
diff --git a/src/test/java/com/incognia/api/IncogniaAPITest.java b/src/test/java/com/incognia/api/IncogniaAPITest.java
index c06c1eb..c0cfeb5 100644
--- a/src/test/java/com/incognia/api/IncogniaAPITest.java
+++ b/src/test/java/com/incognia/api/IncogniaAPITest.java
@@ -71,7 +71,7 @@ void testRegisterSignup_whenDataIsValid() {
String token = TokenCreationFixture.createToken();
String requestToken = "request-token";
String accountId = "my-account";
- String policyId = UUID.randomUUID().toString();
+ String policyId = "3549270d-cd0f-494a-97ee-97af3d5add04";
String externalId = "external-id";
Address address = AddressFixture.ADDRESS_ADDRESS_LINE;
Map map = new HashMap<>();
@@ -96,12 +96,13 @@ void testRegisterSignup_whenDataIsValid() {
.build();
SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest);
assertThat(signupAssessment)
- .extracting("id", "requestId", "riskAssessment", "deviceId")
+ .extracting("id", "requestId", "riskAssessment", "deviceId", "policyId")
.containsExactly(
UUID.fromString("5e76a7ca-577c-4f47-a752-9e1e0cee9e49"),
UUID.fromString("8afc84a7-f1d4-488d-bd69-36d9a37168b7"),
Assessment.LOW_RISK,
- "1df6d999-556d-42c3-8c63-357e5d08d95b");
+ "1df6d999-556d-42c3-8c63-357e5d08d95b",
+ "3549270d-cd0f-494a-97ee-97af3d5add04");
Map locationServices = new HashMap<>();
locationServices.put("location_permission_enabled", true);
locationServices.put("location_sensors_enabled", true);
@@ -129,6 +130,12 @@ void testRegisterSignup_whenDataIsValid() {
.source(ReasonSource.LOCAL.getSource())
.build();
assertThat(signupAssessment.getReasons()).containsExactly(expectedReason);
+
+ Map expectedRawAttributes = new HashMap<>();
+ expectedRawAttributes.put("random_attribute", 0);
+
+ assertThat(signupAssessment.getRawAttributes())
+ .containsExactlyInAnyOrderEntriesOf(expectedRawAttributes);
}
@Test
@@ -138,7 +145,7 @@ void testRegisterSignup_withEmptyAddress() {
String token = TokenCreationFixture.createToken();
String requestToken = "request-token";
String accountId = "my-account";
- String policyId = UUID.randomUUID().toString();
+ String policyId = "3549270d-cd0f-494a-97ee-97af3d5add04";
String externalId = "external-id";
TokenAwareDispatcher dispatcher = new TokenAwareDispatcher(token, CLIENT_ID, CLIENT_SECRET);
@@ -159,12 +166,13 @@ void testRegisterSignup_withEmptyAddress() {
.build();
SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest);
assertThat(signupAssessment)
- .extracting("id", "requestId", "riskAssessment", "deviceId")
+ .extracting("id", "requestId", "riskAssessment", "deviceId", "policyId")
.containsExactly(
UUID.fromString("5e76a7ca-577c-4f47-a752-9e1e0cee9e49"),
UUID.fromString("8afc84a7-f1d4-488d-bd69-36d9a37168b7"),
Assessment.HIGH_RISK,
- "1df6d999-556d-42c3-8c63-357e5d08d95b");
+ "1df6d999-556d-42c3-8c63-357e5d08d95b",
+ "3549270d-cd0f-494a-97ee-97af3d5add04");
Map locationServices = new HashMap<>();
locationServices.put("location_permission_enabled", true);
locationServices.put("location_sensors_enabled", true);
@@ -196,7 +204,7 @@ void testRegisterWebSignup_whenDataIsValid() {
String token = TokenCreationFixture.createToken();
String requestToken = "request-token-web-signup";
String accountId = "my-account";
- String policyId = UUID.randomUUID().toString();
+ String policyId = "3549270d-cd0f-494a-97ee-97af3d5add04";
String externalId = "external-id";
TokenAwareDispatcher dispatcher = new TokenAwareDispatcher(token, CLIENT_ID, CLIENT_SECRET);
@@ -214,12 +222,13 @@ void testRegisterWebSignup_whenDataIsValid() {
.build();
SignupAssessment webSignupAssessment = client.registerWebSignup(registerSignupRequest);
assertThat(webSignupAssessment)
- .extracting("id", "requestId", "riskAssessment", "deviceId")
+ .extracting("id", "requestId", "riskAssessment", "deviceId", "policyId")
.containsExactly(
UUID.fromString("5e76a7ca-577c-4f47-a752-9e1e0cee9e49"),
UUID.fromString("8afc84a7-f1d4-488d-bd69-36d9a37168b7"),
Assessment.LOW_RISK,
- "1df6d999-556d-42c3-8c63-357e5d08d95b");
+ "1df6d999-556d-42c3-8c63-357e5d08d95b",
+ "3549270d-cd0f-494a-97ee-97af3d5add04");
Map locationServices = new HashMap<>();
locationServices.put("location_permission_enabled", true);
locationServices.put("location_sensors_enabled", true);
@@ -248,6 +257,12 @@ void testRegisterWebSignup_whenDataIsValid() {
.source(ReasonSource.LOCAL.getSource())
.build();
assertThat(webSignupAssessment.getReasons()).containsExactly(expectedReason);
+
+ Map expectedRawAttributes = new HashMap<>();
+ expectedRawAttributes.put("random_attribute", 0);
+
+ assertThat(webSignupAssessment.getRawAttributes())
+ .containsExactlyInAnyOrderEntriesOf(expectedRawAttributes);
}
@Test
@@ -674,11 +689,12 @@ void testRegisterLogin_whenAccountIdIsNotValid() {
private void assertTransactionAssessment(TransactionAssessment transactionAssessment) {
assertThat(transactionAssessment)
- .extracting("id", "riskAssessment", "deviceId")
+ .extracting("id", "riskAssessment", "deviceId", "policyId")
.containsExactly(
UUID.fromString("dfe1f2ff-8f0d-4ce8-aed1-af8435143044"),
Assessment.LOW_RISK,
- "1df6d999-556d-42c3-8c63-357e5d08d95b");
+ "1df6d999-556d-42c3-8c63-357e5d08d95b",
+ "3549270d-cd0f-494a-97ee-97af3d5add04");
Map locationServices = new HashMap<>();
locationServices.put("location_permission_enabled", true);
locationServices.put("location_sensors_enabled", true);
@@ -706,5 +722,11 @@ private void assertTransactionAssessment(TransactionAssessment transactionAssess
.source(ReasonSource.LOCAL.getSource())
.build();
assertThat(transactionAssessment.getReasons()).containsExactly(expectedReason);
+
+ Map expectedRawAttributes = new HashMap<>();
+ expectedRawAttributes.put("random_attribute", 0);
+
+ assertThat(transactionAssessment.getRawAttributes())
+ .containsExactlyInAnyOrderEntriesOf(expectedRawAttributes);
}
}
diff --git a/src/test/resources/post_onboarding_response.json b/src/test/resources/post_onboarding_response.json
index ca5da00..9177656 100644
--- a/src/test/resources/post_onboarding_response.json
+++ b/src/test/resources/post_onboarding_response.json
@@ -3,6 +3,7 @@
"request_id": "8afc84a7-f1d4-488d-bd69-36d9a37168b7",
"risk_assessment": "low_risk",
"device_id": "1df6d999-556d-42c3-8c63-357e5d08d95b",
+ "policy_id": "3549270d-cd0f-494a-97ee-97af3d5add04",
"reasons": [
{
"code": "trusted_location",
@@ -26,5 +27,8 @@
"gps_spoofing": false,
"from_official_store": true
}
+ },
+ "raw_attributes": {
+ "random_attribute": 0
}
}
\ No newline at end of file
diff --git a/src/test/resources/post_onboarding_response_no_address.json b/src/test/resources/post_onboarding_response_no_address.json
index 1d11e47..aa22308 100644
--- a/src/test/resources/post_onboarding_response_no_address.json
+++ b/src/test/resources/post_onboarding_response_no_address.json
@@ -3,6 +3,7 @@
"request_id": "8afc84a7-f1d4-488d-bd69-36d9a37168b7",
"risk_assessment": "high_risk",
"device_id": "1df6d999-556d-42c3-8c63-357e5d08d95b",
+ "policy_id": "3549270d-cd0f-494a-97ee-97af3d5add04",
"reasons": [
{
"code": "device_integrity",
diff --git a/src/test/resources/post_transaction_response.json b/src/test/resources/post_transaction_response.json
index b10554d..3ce4cbd 100644
--- a/src/test/resources/post_transaction_response.json
+++ b/src/test/resources/post_transaction_response.json
@@ -3,6 +3,7 @@
"risk_assessment": "low_risk",
"device_id": "1df6d999-556d-42c3-8c63-357e5d08d95b",
"unknown_field": "unknown_value",
+ "policy_id": "3549270d-cd0f-494a-97ee-97af3d5add04",
"reasons": [
{
"code": "trusted_location",
@@ -36,5 +37,8 @@
}
],
"location_events_quantity": 62
+ },
+ "raw_attributes": {
+ "random_attribute": 0
}
}
\ No newline at end of file