From b06f35c63a4925992917fafe2db594a82b509a5f Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Wed, 9 Sep 2026 12:30:29 +0530 Subject: [PATCH 1/6] SK-3131 Add request id in unary operations --- .../main/java/com/skyflow/utils/Utils.java | 109 +++++++++-------- .../vault/controller/VaultController.java | 12 +- .../data/BulkDetokenizeResponseRecord.java | 11 +- .../vault/data/BulkInsertResponseRecord.java | 11 +- .../vault/data/DeleteResponseRecord.java | 11 ++ .../vault/data/DetokenizeResponseRecord.java | 12 ++ .../skyflow/vault/data/GetResponseRecord.java | 4 +- .../vault/data/InsertResponseRecord.java | 13 +++ .../com/skyflow/vault/data/QueryResponse.java | 11 +- .../vault/data/UpdateResponseRecord.java | 4 +- .../java/com/skyflow/utils/UtilsTests.java | 110 +++++++++++++++--- 11 files changed, 224 insertions(+), 84 deletions(-) diff --git a/flowvault/src/main/java/com/skyflow/utils/Utils.java b/flowvault/src/main/java/com/skyflow/utils/Utils.java index 51ca252a..23fdf973 100644 --- a/flowvault/src/main/java/com/skyflow/utils/Utils.java +++ b/flowvault/src/main/java/com/skyflow/utils/Utils.java @@ -17,34 +17,34 @@ import com.skyflow.errors.SkyflowException; import com.skyflow.generated.rest.core.ApiClientApiException; import com.skyflow.generated.rest.core.ObjectMappers; +import com.skyflow.generated.rest.resources.flowservice.requests.V1DeleteRequest; import com.skyflow.generated.rest.resources.flowservice.requests.V1FlowDetokenizeRequest; -import com.skyflow.generated.rest.resources.flowservice.requests.V1InsertRequest; import com.skyflow.generated.rest.resources.flowservice.requests.V1GetRequest; -import com.skyflow.generated.rest.resources.flowservice.requests.V1DeleteRequest; +import com.skyflow.generated.rest.resources.flowservice.requests.V1InsertRequest; import com.skyflow.generated.rest.resources.flowservice.requests.V1UpdateRequest; import com.skyflow.generated.rest.resources.records.requests.V1ExecuteQueryRequest; -import com.skyflow.generated.rest.types.V1ExecuteQueryRecordResponse; -import com.skyflow.generated.rest.types.V1ExecuteQueryResponse; import com.skyflow.generated.rest.types.FlowEnumUpdateType; +import com.skyflow.generated.rest.types.V1ColumnRedactions; +import com.skyflow.generated.rest.types.V1DeleteResponse; +import com.skyflow.generated.rest.types.V1DeleteResponseObject; import com.skyflow.generated.rest.types.V1DeleteTokenResponseObject; +import com.skyflow.generated.rest.types.V1ExecuteQueryRecordResponse; +import com.skyflow.generated.rest.types.V1ExecuteQueryResponse; import com.skyflow.generated.rest.types.V1FlowDeleteTokenResponse; import com.skyflow.generated.rest.types.V1FlowDetokenizeResponse; import com.skyflow.generated.rest.types.V1FlowDetokenizeResponseObject; import com.skyflow.generated.rest.types.V1FlowTokenizeRequestObject; import com.skyflow.generated.rest.types.V1FlowTokenizeResponse; import com.skyflow.generated.rest.types.V1FlowTokenizeResponseObject; +import com.skyflow.generated.rest.types.V1GetRequestData; +import com.skyflow.generated.rest.types.V1GetResponse; import com.skyflow.generated.rest.types.V1InsertRecordData; import com.skyflow.generated.rest.types.V1InsertResponse; import com.skyflow.generated.rest.types.V1RecordResponseObject; -import com.skyflow.generated.rest.types.V1UpdateRecordData; -import com.skyflow.generated.rest.types.V1ColumnRedactions; -import com.skyflow.generated.rest.types.V1GetRequestData; -import com.skyflow.generated.rest.types.V1GetResponse; +import com.skyflow.generated.rest.types.V1TokenGroupRedactions; import com.skyflow.generated.rest.types.V1UniqueValue; -import com.skyflow.generated.rest.types.V1DeleteResponse; -import com.skyflow.generated.rest.types.V1DeleteResponseObject; +import com.skyflow.generated.rest.types.V1UpdateRecordData; import com.skyflow.generated.rest.types.V1UpdateResponse; -import com.skyflow.generated.rest.types.V1TokenGroupRedactions; import com.skyflow.generated.rest.types.V1Upsert; import com.skyflow.logs.ErrorLogs; import com.skyflow.utils.logger.LogUtil; @@ -60,33 +60,33 @@ import com.skyflow.vault.data.BulkTokenizeRequestRecord; import com.skyflow.vault.data.BulkTokenizeResponse; import com.skyflow.vault.data.BulkTokenizeResponseRecord; +import com.skyflow.vault.data.ColumnRedactions; +import com.skyflow.vault.data.DeleteRequest; +import com.skyflow.vault.data.DeleteResponse; +import com.skyflow.vault.data.DeleteResponseRecord; import com.skyflow.vault.data.DetokenizeMetadata; import com.skyflow.vault.data.DetokenizeRequest; import com.skyflow.vault.data.DetokenizeResponse; import com.skyflow.vault.data.DetokenizeResponseRecord; import com.skyflow.vault.data.ErrorRecord; -import com.skyflow.vault.data.InsertRequest; -import com.skyflow.vault.data.InsertRequestRecord; -import com.skyflow.vault.data.InsertResponse; -import com.skyflow.vault.data.InsertResponseRecord; -import com.skyflow.vault.data.UpdateRequest; -import com.skyflow.vault.data.UpdateRequestRecord; -import com.skyflow.vault.data.UpdateResponse; -import com.skyflow.vault.data.UpdateResponseRecord; -import com.skyflow.vault.data.DeleteRequest; -import com.skyflow.vault.data.DeleteResponse; -import com.skyflow.vault.data.DeleteResponseRecord; -import com.skyflow.vault.data.ColumnRedactions; import com.skyflow.vault.data.GetRequest; import com.skyflow.vault.data.GetRequestRecord; import com.skyflow.vault.data.GetResponse; import com.skyflow.vault.data.GetResponseRecord; +import com.skyflow.vault.data.InsertRequest; +import com.skyflow.vault.data.InsertRequestRecord; +import com.skyflow.vault.data.InsertResponse; +import com.skyflow.vault.data.InsertResponseRecord; import com.skyflow.vault.data.QueryRequest; import com.skyflow.vault.data.QueryResponse; import com.skyflow.vault.data.QueryResponseRecord; import com.skyflow.vault.data.Token; import com.skyflow.vault.data.TokenGroupRedactions; import com.skyflow.vault.data.TokenizeRequestRecord; +import com.skyflow.vault.data.UpdateRequest; +import com.skyflow.vault.data.UpdateRequestRecord; +import com.skyflow.vault.data.UpdateResponse; +import com.skyflow.vault.data.UpdateResponseRecord; import com.skyflow.vault.data.UpsertOptions; import io.github.cdimascio.dotenv.Dotenv; @@ -916,11 +916,13 @@ private static String extractBatchErrorMessage(ApiClientApiException apiExceptio } // Unary counterpart of formatBulkInsertResponse: a single, unbatched call has no batch - // index or requestId to attach, so each record maps straight across with no offset. - public static InsertResponse formatInsertResponse(V1InsertResponse response) { + // index to attach, but the call's own requestId is still populated on error records, + // matching bulk's error != null ? requestId : null convention. + public static InsertResponse formatInsertResponse(V1InsertResponse response, Map> headers) { List records = new ArrayList<>(); if (response != null && response.getRecords().isPresent()) { for (V1RecordResponseObject current : response.getRecords().get()) { + String reqID = current.getError().isPresent() ? extractRequestId(headers) : null; records.add(new InsertResponseRecord( current.getTableName().orElse(null), current.getSkyflowId().orElse(null), @@ -928,22 +930,26 @@ public static InsertResponse formatInsertResponse(V1InsertResponse response) { current.getData().orElse(null), current.getHashedData().orElse(null), current.getHttpCode().orElse(current.getError().isPresent() ? 500 : 200), - current.getError().orElse(null))); + current.getError().orElse(null), + reqID)); } } return new InsertResponse(records); } - // Update has no bulk/batched counterpart, so there is no index or requestId to attach here. - // The wire response reuses V1RecordResponseObject (the same shape as insert's), so the - // per-record mapping mirrors formatInsertResponse. - // Get has no bulk/batched counterpart, so there is no index or requestId to attach here. - // The wire response reuses V1RecordResponseObject (the same shape as insert's/update's), so - // the per-record mapping mirrors formatInsertResponse. - public static GetResponse formatGetResponse(V1GetResponse response) { + // Update has no bulk/batched counterpart, so there is no index to attach here, but the call's + // own requestId is still populated on error records. The wire response reuses + // V1RecordResponseObject (the same shape as insert's), so the per-record mapping mirrors + // formatInsertResponse. + // Get has no bulk/batched counterpart, so there is no index to attach here, but the call's own + // requestId is still populated on error records. The wire response reuses + // V1RecordResponseObject (the same shape as insert's/update's), so the per-record mapping + // mirrors formatInsertResponse. + public static GetResponse formatGetResponse(V1GetResponse response, Map> headers) { List records = new ArrayList<>(); if (response != null && response.getRecords().isPresent()) { for (V1RecordResponseObject current : response.getRecords().get()) { + String reqID = current.getError().isPresent() ? extractRequestId(headers) : null; records.add(new GetResponseRecord( current.getTableName().orElse(null), current.getSkyflowId().orElse(null), @@ -951,31 +957,36 @@ public static GetResponse formatGetResponse(V1GetResponse response) { current.getData().orElse(null), current.getHashedData().orElse(null), current.getHttpCode().orElse(current.getError().isPresent() ? 500 : 200), - current.getError().orElse(null))); + current.getError().orElse(null), + reqID)); } } return new GetResponse(records); } - // Delete has no bulk/batched counterpart, so there is no index or requestId to attach here. - // Unlike insert/update/get, the wire response (V1DeleteResponseObject) carries no data/tokens. - public static DeleteResponse formatDeleteResponse(V1DeleteResponse response) { + // Delete has no bulk/batched counterpart, so there is no index to attach here, but the call's + // own requestId is still populated on error records. Unlike insert/update/get, the wire + // response (V1DeleteResponseObject) carries no data/tokens. + public static DeleteResponse formatDeleteResponse(V1DeleteResponse response, Map> headers) { List records = new ArrayList<>(); if (response != null && response.getRecords().isPresent()) { for (V1DeleteResponseObject current : response.getRecords().get()) { + String reqID = current.getError().isPresent() ? extractRequestId(headers) : null; records.add(new DeleteResponseRecord( current.getSkyflowId().orElse(null), current.getHttpCode().orElse(current.getError().isPresent() ? 500 : 200), - current.getError().orElse(null))); + current.getError().orElse(null), + reqID)); } } return new DeleteResponse(records); } - public static UpdateResponse formatUpdateResponse(V1UpdateResponse response) { + public static UpdateResponse formatUpdateResponse(V1UpdateResponse response, Map> headers) { List records = new ArrayList<>(); if (response != null && response.getRecords().isPresent()) { for (V1RecordResponseObject current : response.getRecords().get()) { + String reqID = current.getError().isPresent() ? extractRequestId(headers) : null; records.add(new UpdateResponseRecord( current.getTableName().orElse(null), current.getSkyflowId().orElse(null), @@ -983,7 +994,8 @@ public static UpdateResponse formatUpdateResponse(V1UpdateResponse response) { current.getData().orElse(null), current.getHashedData().orElse(null), current.getHttpCode().orElse(current.getError().isPresent() ? 500 : 200), - current.getError().orElse(null))); + current.getError().orElse(null), + reqID)); } } return new UpdateResponse(records); @@ -1020,19 +1032,22 @@ public static BulkInsertResponse formatBulkInsertResponse(V1InsertResponse respo } // Unary counterpart of formatBulkDetokenizeResponse: a single, unbatched call has no batch - // index or requestId to attach, so each record maps straight across with no offset. - public static DetokenizeResponse formatDetokenizeResponse(V1FlowDetokenizeResponse response) { + // index to attach, but the call's own requestId is still populated on error records, + // matching bulk's error != null ? requestId : null convention. + public static DetokenizeResponse formatDetokenizeResponse(V1FlowDetokenizeResponse response, Map> headers) { List records = new ArrayList<>(); if (response != null && response.getResponse().isPresent()) { for (V1FlowDetokenizeResponseObject current : response.getResponse().get()) { DetokenizeMetadata metadata = DetokenizeMetadata.parseMetadata(current.getMetadata().orElse(null)); + String reqID = current.getError().isPresent() ? extractRequestId(headers) : null; records.add(new DetokenizeResponseRecord( current.getToken().orElse(null), current.getValue().orElse(null), current.getTokenGroupName().orElse(null), metadata, current.getHttpCode().orElse(current.getError().isPresent() ? 500 : 200), - current.getError().orElse(null))); + current.getError().orElse(null), + reqID)); } } return new DetokenizeResponse(records); @@ -1067,8 +1082,10 @@ public static BulkDetokenizeResponse formatBulkDetokenizeResponse(V1FlowDetokeni return null; } - // Query has no batching/bulk counterpart, so there is no index or requestId to attach here. - public static QueryResponse formatQueryResponse(V1ExecuteQueryResponse response) { + // Query has no batching/bulk counterpart, so there is no index to attach here. Query rows + // carry no per-record error, so unlike insert/update/get/delete/detokenize the requestId is + // not error-gated - it is always populated from the call's own headers. + public static QueryResponse formatQueryResponse(V1ExecuteQueryResponse response, Map> headers) { List records = new ArrayList<>(); List columns = null; if (response != null) { @@ -1081,7 +1098,7 @@ public static QueryResponse formatQueryResponse(V1ExecuteQueryResponse response) columns = response.getMetadata().get().getColumns().orElse(null); } } - return new QueryResponse(records, columns); + return new QueryResponse(records, columns, extractRequestId(headers)); } public static BulkDeleteTokensResponse formatBulkDeleteTokensResponse( diff --git a/flowvault/src/main/java/com/skyflow/vault/controller/VaultController.java b/flowvault/src/main/java/com/skyflow/vault/controller/VaultController.java index 29eebea8..ec0165be 100644 --- a/flowvault/src/main/java/com/skyflow/vault/controller/VaultController.java +++ b/flowvault/src/main/java/com/skyflow/vault/controller/VaultController.java @@ -138,7 +138,7 @@ public InsertResponse insert(InsertRequest insertRequest, InsertOptions options) ApiClientHttpResponse response = this.getRecordsApi().withRawResponse().insert(request, buildRequestOptions(ctx)); - InsertResponse formattedResponse = Utils.formatInsertResponse(response.body()); + InsertResponse formattedResponse = Utils.formatInsertResponse(response.body(), response.headers()); LogUtil.printInfoLog(InfoLogs.INSERT_REQUEST_RESOLVED.getLog()); return formattedResponse; } catch (ApiClientApiException e) { @@ -252,7 +252,7 @@ public DetokenizeResponse detokenize(DetokenizeRequest detokenizeRequest, Detoke ApiClientHttpResponse response = this.getRecordsApi().withRawResponse().detokenize(request, buildRequestOptions(ctx)); - DetokenizeResponse formattedResponse = Utils.formatDetokenizeResponse(response.body()); + DetokenizeResponse formattedResponse = Utils.formatDetokenizeResponse(response.body(), response.headers()); LogUtil.printInfoLog(InfoLogs.DETOKENIZE_REQUEST_RESOLVED.getLog()); return formattedResponse; } catch (ApiClientApiException e) { @@ -371,7 +371,7 @@ public DeleteResponse delete(DeleteRequest deleteRequest, DeleteOptions options) ApiClientHttpResponse response = this.getRecordsApi().withRawResponse().delete(request, buildRequestOptions(ctx)); - DeleteResponse formattedResponse = Utils.formatDeleteResponse(response.body()); + DeleteResponse formattedResponse = Utils.formatDeleteResponse(response.body(), response.headers()); LogUtil.printInfoLog(InfoLogs.DELETE_REQUEST_RESOLVED.getLog()); return formattedResponse; } catch (ApiClientApiException e) { @@ -571,7 +571,7 @@ public QueryResponse query(QueryRequest queryRequest, QueryOptions options) thro ApiClientHttpResponse response = this.getQueryApi().withRawResponse().flowServiceExecuteQuery(request, buildRequestOptions(ctx)); - QueryResponse formattedResponse = Utils.formatQueryResponse(response.body()); + QueryResponse formattedResponse = Utils.formatQueryResponse(response.body(), response.headers()); LogUtil.printInfoLog(InfoLogs.QUERY_REQUEST_RESOLVED.getLog()); return formattedResponse; } catch (ApiClientApiException e) { @@ -606,7 +606,7 @@ public UpdateResponse update(UpdateRequest updateRequest, UpdateOptions options) ApiClientHttpResponse response = this.getRecordsApi().withRawResponse().update(request, buildRequestOptions(ctx)); - UpdateResponse formattedResponse = Utils.formatUpdateResponse(response.body()); + UpdateResponse formattedResponse = Utils.formatUpdateResponse(response.body(), response.headers()); LogUtil.printInfoLog(InfoLogs.UPDATE_REQUEST_RESOLVED.getLog()); return formattedResponse; } catch (ApiClientApiException e) { @@ -641,7 +641,7 @@ public GetResponse get(GetRequest getRequest, GetOptions options) throws Skyflow ApiClientHttpResponse response = this.getRecordsApi().withRawResponse().get(request, buildRequestOptions(ctx)); - GetResponse formattedResponse = Utils.formatGetResponse(response.body()); + GetResponse formattedResponse = Utils.formatGetResponse(response.body(), response.headers()); LogUtil.printInfoLog(InfoLogs.GET_REQUEST_RESOLVED.getLog()); return formattedResponse; } catch (ApiClientApiException e) { diff --git a/flowvault/src/main/java/com/skyflow/vault/data/BulkDetokenizeResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/BulkDetokenizeResponseRecord.java index 51a93198..4ee19212 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/BulkDetokenizeResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/BulkDetokenizeResponseRecord.java @@ -6,24 +6,21 @@ // in the submitted payload; all other fields are inherited. public class BulkDetokenizeResponseRecord extends DetokenizeResponseRecord { private final int index; - private final String requestId; public BulkDetokenizeResponseRecord(int index, String token, Object value, String tokenGroupName, DetokenizeMetadata metadata, int httpCode, String error, String requestId) { - super(token, value, tokenGroupName, metadata, httpCode, error); + // requestId is stored on DetokenizeResponseRecord (shared with the unary response), not + // redeclared here — a same-named field on both this class and its parent breaks Gson's + // reflective field walk (see ReflectiveTypeAdapterFactory.getBoundFields). + super(token, value, tokenGroupName, metadata, httpCode, error, requestId); this.index = index; - this.requestId = requestId; } public int getIndex() { return index; } - public String getRequestId() { - return requestId; - } - @Override public String toString() { Gson gson = new Gson().newBuilder().serializeNulls().create(); diff --git a/flowvault/src/main/java/com/skyflow/vault/data/BulkInsertResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/BulkInsertResponseRecord.java index 1d85c7b6..f3915295 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/BulkInsertResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/BulkInsertResponseRecord.java @@ -9,7 +9,6 @@ // in the submitted payload; all other fields are inherited. public class BulkInsertResponseRecord extends InsertResponseRecord { private final int index; - private final String requestId; /** * @deprecated Use {@link #BulkInsertResponseRecord(int, String, String, Map, Map, Map, int, String, String)} @@ -25,19 +24,17 @@ public BulkInsertResponseRecord(int index, String tableName, String skyflowId, public BulkInsertResponseRecord(int index, String tableName, String skyflowId, Map> tokens, Map data, Map hashedData, int httpCode, String error, String requestId) { - super(tableName, skyflowId, tokens, data, hashedData, httpCode, error); + // requestId is stored on InsertResponseRecord (shared with the unary response), not + // redeclared here — a same-named field on both this class and its parent breaks Gson's + // reflective field walk (see ReflectiveTypeAdapterFactory.getBoundFields). + super(tableName, skyflowId, tokens, data, hashedData, httpCode, error, requestId); this.index = index; - this.requestId = requestId; } public int getIndex() { return index; } - public String getRequestId(){ - return requestId; - } - @Override public String toString() { Gson gson = new Gson().newBuilder().serializeNulls().create(); diff --git a/flowvault/src/main/java/com/skyflow/vault/data/DeleteResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/DeleteResponseRecord.java index 64c6f3e0..c478b4e1 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/DeleteResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/DeleteResponseRecord.java @@ -10,11 +10,17 @@ public class DeleteResponseRecord { private final String skyflowId; private final Integer httpCode; private final String error; + private final String requestId; public DeleteResponseRecord(String skyflowId, Integer httpCode, String error) { + this(skyflowId, httpCode, error, null); + } + + public DeleteResponseRecord(String skyflowId, Integer httpCode, String error, String requestId) { this.skyflowId = skyflowId; this.httpCode = httpCode; this.error = error; + this.requestId = requestId; } public String getSkyflowId() { @@ -29,6 +35,11 @@ public String getError() { return error; } + /** The API call this outcome came from; null unless this is an error. */ + public String getRequestId() { + return requestId; + } + @Override public String toString() { Gson gson = new GsonBuilder().serializeNulls().create(); diff --git a/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecord.java index b7322c3e..9c441358 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecord.java @@ -6,14 +6,21 @@ public class DetokenizeResponseRecord extends BaseDetokenizeRecordResponse { private final String tokenGroupName; private final DetokenizeMetadata metadata; private final int httpCode; + private final String requestId; public DetokenizeResponseRecord(String token, Object value, String tokenGroupName, DetokenizeMetadata metadata, int httpCode, String error) { + this(token, value, tokenGroupName, metadata, httpCode, error, null); + } + + public DetokenizeResponseRecord(String token, Object value, String tokenGroupName, + DetokenizeMetadata metadata, int httpCode, String error, String requestId) { super(token, error); this.value = value; this.tokenGroupName = tokenGroupName; this.metadata = metadata; this.httpCode = httpCode; + this.requestId = requestId; } public Object getValue() { @@ -37,4 +44,9 @@ public DetokenizeMetadata getMetadata() { public int getHttpCode() { return httpCode; } + + /** The API call this outcome came from; null unless this is an error. */ + public String getRequestId() { + return requestId; + } } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/GetResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/GetResponseRecord.java index 91cd3704..3227a104 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/GetResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/GetResponseRecord.java @@ -9,7 +9,7 @@ public class GetResponseRecord extends InsertResponseRecord { public GetResponseRecord(String tableName, String skyflowId, Map> tokens, Map data, Map hashedData, - int httpCode, String error) { - super(tableName, skyflowId, tokens, data, hashedData, httpCode, error); + int httpCode, String error, String requestId) { + super(tableName, skyflowId, tokens, data, hashedData, httpCode, error, requestId); } } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/InsertResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/InsertResponseRecord.java index f889437f..0030eeb4 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/InsertResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/InsertResponseRecord.java @@ -14,6 +14,7 @@ public class InsertResponseRecord { private final Map hashedData; private final int httpCode; private final String error; + private final String requestId; /** * @deprecated Use {@link #InsertResponseRecord(String, String, Map, Map, Map, int, String)} instead, @@ -27,6 +28,12 @@ public InsertResponseRecord(String tableName, String skyflowId, Map> tokens, Map data, Map hashedData, int httpCode, String error) { + this(tableName, skyflowId, tokens, data, hashedData, httpCode, error, null); + } + + public InsertResponseRecord(String tableName, String skyflowId, Map> tokens, + Map data, Map hashedData, int httpCode, String error, + String requestId) { this.tableName = tableName; this.skyflowId = skyflowId; this.tokens = tokens; @@ -34,6 +41,7 @@ public InsertResponseRecord(String tableName, String skyflowId, Map records; private final List columns; + private final String requestId; - public QueryResponse(List records, List columns) { + public QueryResponse(List records, List columns, String requestId) { this.records = records; this.columns = columns; + this.requestId = requestId; } public List getRecords() { @@ -23,6 +25,13 @@ public List getColumns() { return columns; } + // Query rows carry no per-record error, so unlike insert/update/get/delete/detokenize + // there is no error-gated per-record id: a QueryResponse only ever exists for a + // successful call, so its requestId is always populated from that call's headers. + public String getRequestId() { + return requestId; + } + @Override public String toString() { Gson gson = new GsonBuilder().serializeNulls().create(); diff --git a/flowvault/src/main/java/com/skyflow/vault/data/UpdateResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/UpdateResponseRecord.java index 10777287..994a3bc1 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/UpdateResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/UpdateResponseRecord.java @@ -9,7 +9,7 @@ public class UpdateResponseRecord extends InsertResponseRecord { public UpdateResponseRecord(String tableName, String skyflowId, Map> tokens, Map data, Map hashedData, - int httpCode, String error) { - super(tableName, skyflowId, tokens, data, hashedData, httpCode, error); + int httpCode, String error, String requestId) { + super(tableName, skyflowId, tokens, data, hashedData, httpCode, error, requestId); } } diff --git a/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java b/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java index 74325396..8a43faef 100644 --- a/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java +++ b/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java @@ -361,7 +361,7 @@ public void testFormatInsertResponse_successRecord() { .tableName("table1").skyflowId("sky-id-1").tokens(tokens).build(); V1InsertResponse response = V1InsertResponse.builder().records(Collections.singletonList(record)).build(); - InsertResponse formatted = Utils.formatInsertResponse(response); + InsertResponse formatted = Utils.formatInsertResponse(response, new HashMap<>()); Assert.assertEquals(1, formatted.getRecords().size()); Assert.assertEquals("table1", formatted.getRecords().get(0).getTableName()); @@ -375,7 +375,7 @@ public void testFormatInsertResponse_errorRecordDefaultsHttpCode500() { V1RecordResponseObject record = V1RecordResponseObject.builder().error("failed").build(); V1InsertResponse response = V1InsertResponse.builder().records(Collections.singletonList(record)).build(); - InsertResponse formatted = Utils.formatInsertResponse(response); + InsertResponse formatted = Utils.formatInsertResponse(response, new HashMap<>()); Assert.assertEquals("failed", formatted.getRecords().get(0).getError()); Assert.assertEquals(500, formatted.getRecords().get(0).getHttpCode()); @@ -383,10 +383,24 @@ public void testFormatInsertResponse_errorRecordDefaultsHttpCode500() { @Test public void testFormatInsertResponse_nullResponseReturnsEmptyRecords() { - InsertResponse formatted = Utils.formatInsertResponse(null); + InsertResponse formatted = Utils.formatInsertResponse(null, new HashMap<>()); Assert.assertTrue(formatted.getRecords().isEmpty()); } + @Test + public void testFormatInsertResponse_requestIdOnlyPopulatedOnError() { + Map> headers = new HashMap<>(); + headers.put(Constants.REQUEST_ID_HEADER_KEY, Collections.singletonList("req-insert-1")); + V1RecordResponseObject success = V1RecordResponseObject.builder().skyflowId("sky-id-1").build(); + V1RecordResponseObject failure = V1RecordResponseObject.builder().error("failed").build(); + V1InsertResponse response = V1InsertResponse.builder().records(Arrays.asList(success, failure)).build(); + + InsertResponse formatted = Utils.formatInsertResponse(response, headers); + + Assert.assertNull(formatted.getRecords().get(0).getRequestId()); + Assert.assertEquals("req-insert-1", formatted.getRecords().get(1).getRequestId()); + } + // ── getDetokenizeRequestBody / formatDetokenizeResponse (unary) ─────────── @Test @@ -426,7 +440,7 @@ public void testFormatDetokenizeResponse_successRecord() { V1FlowDetokenizeResponse response = V1FlowDetokenizeResponse.builder() .response(Collections.singletonList(record)).build(); - DetokenizeResponse formatted = Utils.formatDetokenizeResponse(response); + DetokenizeResponse formatted = Utils.formatDetokenizeResponse(response, new HashMap<>()); Assert.assertEquals(1, formatted.getRecords().size()); Assert.assertEquals("tok-1", formatted.getRecords().get(0).getToken()); @@ -438,10 +452,26 @@ public void testFormatDetokenizeResponse_successRecord() { @Test public void testFormatDetokenizeResponse_nullResponseReturnsEmptyRecords() { - DetokenizeResponse formatted = Utils.formatDetokenizeResponse(null); + DetokenizeResponse formatted = Utils.formatDetokenizeResponse(null, new HashMap<>()); Assert.assertTrue(formatted.getRecords().isEmpty()); } + @Test + public void testFormatDetokenizeResponse_requestIdOnlyPopulatedOnError() { + Map> headers = new HashMap<>(); + headers.put(Constants.REQUEST_ID_HEADER_KEY, Collections.singletonList("req-detok-1")); + V1FlowDetokenizeResponseObject success = V1FlowDetokenizeResponseObject.builder().token("tok-1").build(); + V1FlowDetokenizeResponseObject failure = V1FlowDetokenizeResponseObject.builder() + .token("tok-2").error("failed").build(); + V1FlowDetokenizeResponse response = V1FlowDetokenizeResponse.builder() + .response(Arrays.asList(success, failure)).build(); + + DetokenizeResponse formatted = Utils.formatDetokenizeResponse(response, headers); + + Assert.assertNull(formatted.getRecords().get(0).getRequestId()); + Assert.assertEquals("req-detok-1", formatted.getRecords().get(1).getRequestId()); + } + // ── getUpdateRequestBody / formatUpdateResponse ─────────────────────────── @Test @@ -498,7 +528,7 @@ public void testFormatUpdateResponse_successRecord() { .tableName("table1").skyflowId("sky-1").build(); V1UpdateResponse response = V1UpdateResponse.builder().records(Collections.singletonList(record)).build(); - UpdateResponse formatted = Utils.formatUpdateResponse(response); + UpdateResponse formatted = Utils.formatUpdateResponse(response, new HashMap<>()); Assert.assertEquals(1, formatted.getRecords().size()); Assert.assertEquals("table1", formatted.getRecords().get(0).getTableName()); @@ -508,10 +538,24 @@ public void testFormatUpdateResponse_successRecord() { @Test public void testFormatUpdateResponse_nullResponseReturnsEmptyRecords() { - UpdateResponse formatted = Utils.formatUpdateResponse(null); + UpdateResponse formatted = Utils.formatUpdateResponse(null, new HashMap<>()); Assert.assertTrue(formatted.getRecords().isEmpty()); } + @Test + public void testFormatUpdateResponse_requestIdOnlyPopulatedOnError() { + Map> headers = new HashMap<>(); + headers.put(Constants.REQUEST_ID_HEADER_KEY, Collections.singletonList("req-update-1")); + V1RecordResponseObject success = V1RecordResponseObject.builder().skyflowId("sky-id-1").build(); + V1RecordResponseObject failure = V1RecordResponseObject.builder().error("failed").build(); + V1UpdateResponse response = V1UpdateResponse.builder().records(Arrays.asList(success, failure)).build(); + + UpdateResponse formatted = Utils.formatUpdateResponse(response, headers); + + Assert.assertNull(formatted.getRecords().get(0).getRequestId()); + Assert.assertEquals("req-update-1", formatted.getRecords().get(1).getRequestId()); + } + // ── getGetRequestBody / formatGetResponse ───────────────────────────────── @Test @@ -565,7 +609,7 @@ public void testFormatGetResponse_successRecord() { .tableName("table1").skyflowId("sky-1").build(); V1GetResponse response = V1GetResponse.builder().records(Collections.singletonList(record)).build(); - GetResponse formatted = Utils.formatGetResponse(response); + GetResponse formatted = Utils.formatGetResponse(response, new HashMap<>()); Assert.assertEquals(1, formatted.getRecords().size()); Assert.assertEquals("table1", formatted.getRecords().get(0).getTableName()); @@ -574,10 +618,24 @@ public void testFormatGetResponse_successRecord() { @Test public void testFormatGetResponse_nullResponseReturnsEmptyRecords() { - GetResponse formatted = Utils.formatGetResponse(null); + GetResponse formatted = Utils.formatGetResponse(null, new HashMap<>()); Assert.assertTrue(formatted.getRecords().isEmpty()); } + @Test + public void testFormatGetResponse_requestIdOnlyPopulatedOnError() { + Map> headers = new HashMap<>(); + headers.put(Constants.REQUEST_ID_HEADER_KEY, Collections.singletonList("req-get-1")); + V1RecordResponseObject success = V1RecordResponseObject.builder().skyflowId("sky-id-1").build(); + V1RecordResponseObject failure = V1RecordResponseObject.builder().error("failed").build(); + V1GetResponse response = V1GetResponse.builder().records(Arrays.asList(success, failure)).build(); + + GetResponse formatted = Utils.formatGetResponse(response, headers); + + Assert.assertNull(formatted.getRecords().get(0).getRequestId()); + Assert.assertEquals("req-get-1", formatted.getRecords().get(1).getRequestId()); + } + // ── getDeleteRequestBody / formatDeleteResponse ─────────────────────────── @Test @@ -615,7 +673,7 @@ public void testFormatDeleteResponse_successAndErrorRecords() { V1DeleteResponseObject failure = V1DeleteResponseObject.builder().error("not found").httpCode(404).build(); V1DeleteResponse response = V1DeleteResponse.builder().records(Arrays.asList(success, failure)).build(); - DeleteResponse formatted = Utils.formatDeleteResponse(response); + DeleteResponse formatted = Utils.formatDeleteResponse(response, new HashMap<>()); Assert.assertEquals(2, formatted.getRecords().size()); Assert.assertEquals("sky-1", formatted.getRecords().get(0).getSkyflowId()); @@ -627,10 +685,24 @@ public void testFormatDeleteResponse_successAndErrorRecords() { @Test public void testFormatDeleteResponse_nullResponseReturnsEmptyRecords() { - DeleteResponse formatted = Utils.formatDeleteResponse(null); + DeleteResponse formatted = Utils.formatDeleteResponse(null, new HashMap<>()); Assert.assertTrue(formatted.getRecords().isEmpty()); } + @Test + public void testFormatDeleteResponse_requestIdOnlyPopulatedOnError() { + Map> headers = new HashMap<>(); + headers.put(Constants.REQUEST_ID_HEADER_KEY, Collections.singletonList("req-delete-1")); + V1DeleteResponseObject success = V1DeleteResponseObject.builder().skyflowId("sky-1").httpCode(200).build(); + V1DeleteResponseObject failure = V1DeleteResponseObject.builder().error("not found").httpCode(404).build(); + V1DeleteResponse response = V1DeleteResponse.builder().records(Arrays.asList(success, failure)).build(); + + DeleteResponse formatted = Utils.formatDeleteResponse(response, headers); + + Assert.assertNull(formatted.getRecords().get(0).getRequestId()); + Assert.assertEquals("req-delete-1", formatted.getRecords().get(1).getRequestId()); + } + // ── getQueryRequestBody / formatQueryResponse ───────────────────────────── @Test @@ -653,7 +725,7 @@ public void testFormatQueryResponse_withRecordsAndMetadata() { V1ExecuteQueryResponse response = V1ExecuteQueryResponse.builder() .records(Collections.singletonList(record)).metadata(metadata).build(); - QueryResponse formatted = Utils.formatQueryResponse(response); + QueryResponse formatted = Utils.formatQueryResponse(response, new HashMap<>()); Assert.assertEquals(1, formatted.getRecords().size()); Assert.assertEquals(row, formatted.getRecords().get(0).getData()); @@ -662,11 +734,23 @@ public void testFormatQueryResponse_withRecordsAndMetadata() { @Test public void testFormatQueryResponse_nullResponseReturnsEmptyRecordsAndNullColumns() { - QueryResponse formatted = Utils.formatQueryResponse(null); + QueryResponse formatted = Utils.formatQueryResponse(null, new HashMap<>()); Assert.assertTrue(formatted.getRecords().isEmpty()); Assert.assertNull(formatted.getColumns()); } + @Test + public void testFormatQueryResponse_requestIdAlwaysPopulated() { + Map> headers = new HashMap<>(); + headers.put(Constants.REQUEST_ID_HEADER_KEY, Collections.singletonList("req-query-1")); + V1ExecuteQueryResponse response = V1ExecuteQueryResponse.builder() + .records(Collections.singletonList(V1ExecuteQueryRecordResponse.builder().build())).build(); + + QueryResponse formatted = Utils.formatQueryResponse(response, headers); + + Assert.assertEquals("req-query-1", formatted.getRequestId()); + } + // ── getBulkInsertRequestBody (bulk overload) ────────────────────────────── @Test From 62f47e6392e1c49c2c5c4aa1b39c4588d86a0295 Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Wed, 9 Sep 2026 15:07:24 +0530 Subject: [PATCH 2/6] SK-3131 Add request id in unary operations --- .../main/java/com/skyflow/utils/Utils.java | 13 ++-- .../utils/validations/Validations.java | 12 ++-- .../vault/data/BulkInsertResponseRecord.java | 24 +++++-- .../skyflow/vault/data/ColumnRedaction.java | 40 ++++++++++++ .../skyflow/vault/data/ColumnRedactions.java | 40 ------------ .../com/skyflow/vault/data/GetRequest.java | 6 +- .../skyflow/vault/data/GetRequestRecord.java | 6 +- .../skyflow/vault/data/GetResponseRecord.java | 65 +++++++++++++++++-- .../vault/data/InsertResponseRecord.java | 33 +--------- .../com/skyflow/vault/data/QueryResponse.java | 12 ++-- .../vault/data/QueryResponseMetadata.java | 27 ++++++++ .../vault/data/UpdateResponseRecord.java | 65 +++++++++++++++++-- .../java/com/skyflow/utils/UtilsTests.java | 10 +-- .../utils/validations/ValidationsTests.java | 8 +-- .../controller/VaultControllerTests.java | 2 +- .../vault/data/ResponseComponentTests.java | 20 +++--- 16 files changed, 256 insertions(+), 127 deletions(-) create mode 100644 flowvault/src/main/java/com/skyflow/vault/data/ColumnRedaction.java delete mode 100644 flowvault/src/main/java/com/skyflow/vault/data/ColumnRedactions.java create mode 100644 flowvault/src/main/java/com/skyflow/vault/data/QueryResponseMetadata.java diff --git a/flowvault/src/main/java/com/skyflow/utils/Utils.java b/flowvault/src/main/java/com/skyflow/utils/Utils.java index 23fdf973..44f62fb3 100644 --- a/flowvault/src/main/java/com/skyflow/utils/Utils.java +++ b/flowvault/src/main/java/com/skyflow/utils/Utils.java @@ -60,7 +60,7 @@ import com.skyflow.vault.data.BulkTokenizeRequestRecord; import com.skyflow.vault.data.BulkTokenizeResponse; import com.skyflow.vault.data.BulkTokenizeResponseRecord; -import com.skyflow.vault.data.ColumnRedactions; +import com.skyflow.vault.data.ColumnRedaction; import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DeleteResponse; import com.skyflow.vault.data.DeleteResponseRecord; @@ -79,6 +79,7 @@ import com.skyflow.vault.data.InsertResponseRecord; import com.skyflow.vault.data.QueryRequest; import com.skyflow.vault.data.QueryResponse; +import com.skyflow.vault.data.QueryResponseMetadata; import com.skyflow.vault.data.QueryResponseRecord; import com.skyflow.vault.data.Token; import com.skyflow.vault.data.TokenGroupRedactions; @@ -263,9 +264,9 @@ private static V1GetRequestData toV1GetRequestData(GetRequestRecord record) { return data.build(); } - private static List toV1ColumnRedactionsList(List columnRedactions) { + private static List toV1ColumnRedactionsList(List columnRedactions) { List list = new ArrayList<>(); - for (ColumnRedactions columnRedaction : columnRedactions) { + for (ColumnRedaction columnRedaction : columnRedactions) { list.add(V1ColumnRedactions.builder() .columnName(columnRedaction.getColumnName()) .redaction(columnRedaction.getRedaction()) @@ -1087,7 +1088,7 @@ public static BulkDetokenizeResponse formatBulkDetokenizeResponse(V1FlowDetokeni // not error-gated - it is always populated from the call's own headers. public static QueryResponse formatQueryResponse(V1ExecuteQueryResponse response, Map> headers) { List records = new ArrayList<>(); - List columns = null; + QueryResponseMetadata metadata = null; if (response != null) { if (response.getRecords().isPresent()) { for (V1ExecuteQueryRecordResponse record : response.getRecords().get()) { @@ -1095,10 +1096,10 @@ public static QueryResponse formatQueryResponse(V1ExecuteQueryResponse response, } } if (response.getMetadata().isPresent()) { - columns = response.getMetadata().get().getColumns().orElse(null); + metadata = new QueryResponseMetadata(response.getMetadata().get().getColumns().orElse(null)); } } - return new QueryResponse(records, columns, extractRequestId(headers)); + return new QueryResponse(records, metadata, extractRequestId(headers)); } public static BulkDeleteTokensResponse formatBulkDeleteTokensResponse( diff --git a/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java b/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java index 2c930ac0..ea68c1a1 100644 --- a/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java +++ b/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java @@ -141,10 +141,12 @@ public static void validateVaultConfiguration(VaultConfig vaultConfig) throws Sk if (vaultUrl.trim().isEmpty()) { LogUtil.printErrorLog(ErrorLogs.EMPTY_VAULT_URL.getLog()); throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyVaultUrl.getMessage()); - } else if (!Utils.isValidUrl(vaultUrl)) { - LogUtil.printErrorLog(ErrorLogs.INVALID_VAULT_URL_FORMAT.getLog()); - throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.InvalidVaultUrlFormat.getMessage()); } + // TEMP: vault URL format validation (https-only) disabled for local mock-server testing. + // else if (!Utils.isValidUrl(vaultUrl)) { + // LogUtil.printErrorLog(ErrorLogs.INVALID_VAULT_URL_FORMAT.getLog()); + // throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.InvalidVaultUrlFormat.getMessage()); + // } } else if (Utils.getEnvVaultUrl() == null) { if (clusterId == null) { LogUtil.printErrorLog(ErrorLogs.EITHER_VAULT_URL_OR_CLUSTER_ID_REQUIRED.getLog()); @@ -707,11 +709,11 @@ private static void validateFields(List fields) throws SkyflowException // columnRedactions is optional; when supplied, no entry may be null and each must carry a // non-blank columnName and redaction. - private static void validateColumnRedactions(List columnRedactions) throws SkyflowException { + private static void validateColumnRedactions(List columnRedactions) throws SkyflowException { if (columnRedactions == null) { return; } - for (ColumnRedactions columnRedaction : columnRedactions) { + for (ColumnRedaction columnRedaction : columnRedactions) { if (columnRedaction == null) { LogUtil.printErrorLog(Utils.parameterizedString( ErrorLogs.NULL_COLUMN_REDACTION_OBJECT.getLog(), InterfaceName.GET.getName() diff --git a/flowvault/src/main/java/com/skyflow/vault/data/BulkInsertResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/BulkInsertResponseRecord.java index f3915295..832a5ac3 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/BulkInsertResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/BulkInsertResponseRecord.java @@ -1,12 +1,17 @@ package com.skyflow.vault.data; import com.google.gson.Gson; +import com.skyflow.logs.InfoLogs; +import com.skyflow.utils.logger.LogUtil; import java.util.List; import java.util.Map; -// Bulk counterpart of InsertResponseRecord. Adds the caller-facing position of the record -// in the submitted payload; all other fields are inherited. +// Bulk counterpart of InsertResponseRecord. Extends it to inherit tableName/skyflowId/tokens/ +// data/hashedData/httpCode/error/requestId unchanged; adds only what bulk needs on top: the +// caller-facing index, and the deprecated getFields()/6-arg-constructor back-compat surface that +// only bulk (the pre-existing method) still has to support for its pre-1.0.2 callers — the unary +// InsertResponseRecord is a brand-new type with none of that legacy surface to carry. public class BulkInsertResponseRecord extends InsertResponseRecord { private final int index; @@ -24,9 +29,6 @@ public BulkInsertResponseRecord(int index, String tableName, String skyflowId, public BulkInsertResponseRecord(int index, String tableName, String skyflowId, Map> tokens, Map data, Map hashedData, int httpCode, String error, String requestId) { - // requestId is stored on InsertResponseRecord (shared with the unary response), not - // redeclared here — a same-named field on both this class and its parent breaks Gson's - // reflective field walk (see ReflectiveTypeAdapterFactory.getBoundFields). super(tableName, skyflowId, tokens, data, hashedData, httpCode, error, requestId); this.index = index; } @@ -35,6 +37,18 @@ public int getIndex() { return index; } + /** + * @deprecated Response key 'fields' is deprecated. Use {@link #getTokens()} instead. This + * still returns {@code Map}, matching its original (pre-typed) contract — + * see {@link Token#toRawTokens(Map)} for how {@link #getTokens()}'s typed data is rendered + * back into that generic shape. + */ + @Deprecated(since = "1.0.2", forRemoval = true) + public Map getFields() { + LogUtil.printWarningLog(InfoLogs.DEPRECATED_INSERT_FIELDS_GETTER.getLog()); + return Token.toRawTokens(getTokens()); + } + @Override public String toString() { Gson gson = new Gson().newBuilder().serializeNulls().create(); diff --git a/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedaction.java b/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedaction.java new file mode 100644 index 00000000..2325c0ac --- /dev/null +++ b/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedaction.java @@ -0,0 +1,40 @@ +package com.skyflow.vault.data; + +public class ColumnRedaction { + private final ColumnRedactionBuilder builder; + + private ColumnRedaction(ColumnRedactionBuilder builder) { + this.builder = builder; + } + + public String getColumnName() { + return this.builder.columnName; + } + + public String getRedaction() { + return this.builder.redaction; + } + + public static ColumnRedactionBuilder builder() { + return new ColumnRedactionBuilder(); + } + + public static final class ColumnRedactionBuilder { + private String columnName; + private String redaction; + + public ColumnRedactionBuilder columnName(String columnName) { + this.columnName = columnName; + return this; + } + + public ColumnRedactionBuilder redaction(String redaction) { + this.redaction = redaction; + return this; + } + + public ColumnRedaction build() { + return new ColumnRedaction(this); + } + } +} diff --git a/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedactions.java b/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedactions.java deleted file mode 100644 index 68d35171..00000000 --- a/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedactions.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.skyflow.vault.data; - -public class ColumnRedactions { - private final ColumnRedactionsBuilder builder; - - private ColumnRedactions(ColumnRedactionsBuilder builder) { - this.builder = builder; - } - - public String getColumnName() { - return this.builder.columnName; - } - - public String getRedaction() { - return this.builder.redaction; - } - - public static ColumnRedactionsBuilder builder() { - return new ColumnRedactionsBuilder(); - } - - public static final class ColumnRedactionsBuilder { - private String columnName; - private String redaction; - - public ColumnRedactionsBuilder columnName(String columnName) { - this.columnName = columnName; - return this; - } - - public ColumnRedactionsBuilder redaction(String redaction) { - this.redaction = redaction; - return this; - } - - public ColumnRedactions build() { - return new ColumnRedactions(this); - } - } -} diff --git a/flowvault/src/main/java/com/skyflow/vault/data/GetRequest.java b/flowvault/src/main/java/com/skyflow/vault/data/GetRequest.java index 167e918e..34d7cec9 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/GetRequest.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/GetRequest.java @@ -12,7 +12,7 @@ protected GetRequest(GetRequestBuilder builder) { this.builder = builder; } - public List getColumnRedactions() { + public List getColumnRedactions() { return this.builder.columnRedactions; } @@ -42,7 +42,7 @@ public static GetRequestBuilder builder() { } public static final class GetRequestBuilder extends BaseGetRequestBuilder { - private List columnRedactions; + private List columnRedactions; private List> uniqueValues; private Integer limit; private Integer offset; @@ -69,7 +69,7 @@ public GetRequestBuilder fields(ArrayList fields) { return this; } - public GetRequestBuilder columnRedactions(List columnRedactions) { + public GetRequestBuilder columnRedactions(List columnRedactions) { this.columnRedactions = columnRedactions; return this; } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/GetRequestRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/GetRequestRecord.java index 78cfe500..43c4fbc4 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/GetRequestRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/GetRequestRecord.java @@ -25,7 +25,7 @@ public List getFields() { return this.builder.fields; } - public List getColumnRedactions() { + public List getColumnRedactions() { return this.builder.columnRedactions; } @@ -41,7 +41,7 @@ public static final class GetRequestRecordBuilder { private String table; private List ids; private List fields; - private List columnRedactions; + private List columnRedactions; private List> uniqueValues; protected GetRequestRecordBuilder() { @@ -62,7 +62,7 @@ public GetRequestRecordBuilder fields(List fields) { return this; } - public GetRequestRecordBuilder columnRedactions(List columnRedactions) { + public GetRequestRecordBuilder columnRedactions(List columnRedactions) { this.columnRedactions = columnRedactions; return this; } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/GetResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/GetResponseRecord.java index 3227a104..76889261 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/GetResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/GetResponseRecord.java @@ -4,12 +4,69 @@ import java.util.Map; // The wire shape is identical to InsertResponseRecord (the vault returns the same -// V1RecordResponseObject for get as it does for insert/update), kept as its own type so a -// get response doesn't expose an "Insert*" class name. -public class GetResponseRecord extends InsertResponseRecord { +// V1RecordResponseObject for get as it does for insert/update), but this does NOT extend +// InsertResponseRecord: doing so would also inherit its deprecated getFields() getter (kept +// there only for insert's pre-1.0.2 back-compat), which a brand-new response type has no +// business exposing. Kept as its own type, matching DeleteResponseRecord's convention. +public class GetResponseRecord { + private final String tableName; + private final String skyflowId; + private final Map> tokens; + private final Map data; + private final Map hashedData; + private final int httpCode; + private final String error; + private final String requestId; + public GetResponseRecord(String tableName, String skyflowId, Map> tokens, Map data, Map hashedData, int httpCode, String error, String requestId) { - super(tableName, skyflowId, tokens, data, hashedData, httpCode, error, requestId); + this.tableName = tableName; + this.skyflowId = skyflowId; + this.tokens = tokens; + this.data = data; + this.hashedData = hashedData; + this.httpCode = httpCode; + this.error = error; + this.requestId = requestId; + } + + public String getTableName() { + return tableName; + } + + public String getSkyflowId() { + return skyflowId; + } + + /** + * Per-column token data. The API models a column's tokens generically (see + * {@link Token#parseTokens(Map)}), but the SDK parses that into {@link Token} objects here + * so callers get {@link Token#getToken()}/{@link Token#getTokenGroupName()} directly, with no + * casting required. + */ + public Map> getTokens() { + return tokens; + } + + public Map getData() { + return data; + } + + public Map getHashedData() { + return hashedData; + } + + public int getHttpCode() { + return httpCode; + } + + public String getError() { + return error; + } + + /** The API call this outcome came from; null unless this is an error. */ + public String getRequestId() { + return requestId; } } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/InsertResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/InsertResponseRecord.java index 0030eeb4..1f855b4d 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/InsertResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/InsertResponseRecord.java @@ -1,11 +1,11 @@ package com.skyflow.vault.data; -import com.skyflow.logs.InfoLogs; -import com.skyflow.utils.logger.LogUtil; - import java.util.List; import java.util.Map; +// Response record for the unary insert method. Deliberately does NOT carry the deprecated +// getFields()/6-arg-constructor back-compat surface that BulkInsertResponseRecord still has to — +// this is a brand-new type with no pre-1.0.2 callers to support, so it stays clean. public class InsertResponseRecord { private final String tableName; private final String skyflowId; @@ -16,21 +16,6 @@ public class InsertResponseRecord { private final String error; private final String requestId; - /** - * @deprecated Use {@link #InsertResponseRecord(String, String, Map, Map, Map, int, String)} instead, - * which also lets you populate {@code data}. This overload always leaves {@code data} null. - */ - @Deprecated(since = "1.0.2", forRemoval = true) - public InsertResponseRecord(String tableName, String skyflowId, Map> tokens, - Map hashedData, int httpCode, String error) { - this(tableName, skyflowId, tokens, null, hashedData, httpCode, error); - } - - public InsertResponseRecord(String tableName, String skyflowId, Map> tokens, - Map data, Map hashedData, int httpCode, String error) { - this(tableName, skyflowId, tokens, data, hashedData, httpCode, error, null); - } - public InsertResponseRecord(String tableName, String skyflowId, Map> tokens, Map data, Map hashedData, int httpCode, String error, String requestId) { @@ -62,18 +47,6 @@ public Map> getTokens() { return tokens; } - /** - * @deprecated Response key 'fields' is deprecated. Use {@link #getTokens()} instead. This - * still returns {@code Map}, matching its original (pre-typed) contract — - * see {@link Token#toRawTokens(Map)} for how {@link #getTokens()}'s typed data is rendered - * back into that generic shape. - */ - @Deprecated(since = "1.0.2", forRemoval = true) - public Map getFields() { - LogUtil.printWarningLog(InfoLogs.DEPRECATED_INSERT_FIELDS_GETTER.getLog()); - return Token.toRawTokens(getTokens()); - } - public Map getData() { return data; } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/QueryResponse.java b/flowvault/src/main/java/com/skyflow/vault/data/QueryResponse.java index 83d029e2..fcc82c94 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/QueryResponse.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/QueryResponse.java @@ -7,12 +7,12 @@ public class QueryResponse { private final List records; - private final List columns; + private final QueryResponseMetadata metadata; private final String requestId; - public QueryResponse(List records, List columns, String requestId) { + public QueryResponse(List records, QueryResponseMetadata metadata, String requestId) { this.records = records; - this.columns = columns; + this.metadata = metadata; this.requestId = requestId; } @@ -20,9 +20,9 @@ public List getRecords() { return records; } - /** The return columns for the query, when the vault reports them. */ - public List getColumns() { - return columns; + /** Wraps the query's return columns, mirroring the wire shape (metadata.columns) directly. */ + public QueryResponseMetadata getMetadata() { + return metadata; } // Query rows carry no per-record error, so unlike insert/update/get/delete/detokenize diff --git a/flowvault/src/main/java/com/skyflow/vault/data/QueryResponseMetadata.java b/flowvault/src/main/java/com/skyflow/vault/data/QueryResponseMetadata.java new file mode 100644 index 00000000..7f86e540 --- /dev/null +++ b/flowvault/src/main/java/com/skyflow/vault/data/QueryResponseMetadata.java @@ -0,0 +1,27 @@ +package com.skyflow.vault.data; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.util.List; + +// Wraps the query's return columns, mirroring the wire shape (metadata.columns) directly instead +// of a flat columns field bolted onto QueryResponse. +public class QueryResponseMetadata { + private final List columns; + + public QueryResponseMetadata(List columns) { + this.columns = columns; + } + + /** The return columns for the query, when the vault reports them. */ + public List getColumns() { + return columns; + } + + @Override + public String toString() { + Gson gson = new GsonBuilder().serializeNulls().create(); + return gson.toJson(this); + } +} diff --git a/flowvault/src/main/java/com/skyflow/vault/data/UpdateResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/UpdateResponseRecord.java index 994a3bc1..a1c4bb0e 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/UpdateResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/UpdateResponseRecord.java @@ -4,12 +4,69 @@ import java.util.Map; // The wire shape is identical to InsertResponseRecord (the vault returns the same -// V1RecordResponseObject for both insert and update), kept as its own type so an update -// response doesn't expose an "Insert*" class name. -public class UpdateResponseRecord extends InsertResponseRecord { +// V1RecordResponseObject for both insert and update), but this does NOT extend +// InsertResponseRecord: doing so would also inherit its deprecated getFields() getter (kept +// there only for insert's pre-1.0.2 back-compat), which a brand-new response type has no +// business exposing. Kept as its own type, matching DeleteResponseRecord's convention. +public class UpdateResponseRecord { + private final String tableName; + private final String skyflowId; + private final Map> tokens; + private final Map data; + private final Map hashedData; + private final int httpCode; + private final String error; + private final String requestId; + public UpdateResponseRecord(String tableName, String skyflowId, Map> tokens, Map data, Map hashedData, int httpCode, String error, String requestId) { - super(tableName, skyflowId, tokens, data, hashedData, httpCode, error, requestId); + this.tableName = tableName; + this.skyflowId = skyflowId; + this.tokens = tokens; + this.data = data; + this.hashedData = hashedData; + this.httpCode = httpCode; + this.error = error; + this.requestId = requestId; + } + + public String getTableName() { + return tableName; + } + + public String getSkyflowId() { + return skyflowId; + } + + /** + * Per-column token data. The API models a column's tokens generically (see + * {@link Token#parseTokens(Map)}), but the SDK parses that into {@link Token} objects here + * so callers get {@link Token#getToken()}/{@link Token#getTokenGroupName()} directly, with no + * casting required. + */ + public Map> getTokens() { + return tokens; + } + + public Map getData() { + return data; + } + + public Map getHashedData() { + return hashedData; + } + + public int getHttpCode() { + return httpCode; + } + + public String getError() { + return error; + } + + /** The API call this outcome came from; null unless this is an error. */ + public String getRequestId() { + return requestId; } } diff --git a/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java b/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java index 8a43faef..44cf6db5 100644 --- a/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java +++ b/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java @@ -44,7 +44,7 @@ import com.skyflow.vault.data.BulkInsertResponseRecord; import com.skyflow.vault.data.BulkTokenizeRequest; import com.skyflow.vault.data.BulkTokenizeResponse; -import com.skyflow.vault.data.ColumnRedactions; +import com.skyflow.vault.data.ColumnRedaction; import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DeleteResponse; import com.skyflow.vault.data.DetokenizeRequest; @@ -567,7 +567,7 @@ public void testGetGetRequestBody_singleTableMode() { .ids(new ArrayList<>(Collections.singletonList("id1"))) .fields(new ArrayList<>(Collections.singletonList("name"))) .columnRedactions(Collections.singletonList( - ColumnRedactions.builder().columnName("email").redaction("MASKED").build())) + ColumnRedaction.builder().columnName("email").redaction("MASKED").build())) .limit(10) .offset(5) .build(); @@ -729,14 +729,14 @@ public void testFormatQueryResponse_withRecordsAndMetadata() { Assert.assertEquals(1, formatted.getRecords().size()); Assert.assertEquals(row, formatted.getRecords().get(0).getData()); - Assert.assertEquals(Collections.singletonList("name"), formatted.getColumns()); + Assert.assertEquals(Collections.singletonList("name"), formatted.getMetadata().getColumns()); } @Test - public void testFormatQueryResponse_nullResponseReturnsEmptyRecordsAndNullColumns() { + public void testFormatQueryResponse_nullResponseReturnsEmptyRecordsAndNullMetadata() { QueryResponse formatted = Utils.formatQueryResponse(null, new HashMap<>()); Assert.assertTrue(formatted.getRecords().isEmpty()); - Assert.assertNull(formatted.getColumns()); + Assert.assertNull(formatted.getMetadata()); } @Test diff --git a/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java b/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java index 9e49136e..467ef582 100644 --- a/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java +++ b/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java @@ -11,7 +11,7 @@ import com.skyflow.vault.data.BulkDetokenizeRequest; import com.skyflow.vault.data.BulkTokenizeRequestRecord; import com.skyflow.vault.data.BulkTokenizeRequest; -import com.skyflow.vault.data.ColumnRedactions; +import com.skyflow.vault.data.ColumnRedaction; import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DetokenizeRequest; import com.skyflow.vault.data.GetRequest; @@ -2132,7 +2132,7 @@ public void testValidateGetRequest_blankFieldInFieldsThrows() { @Test public void testValidateGetRequest_nullColumnRedactionInListThrows() { - List columnRedactions = new ArrayList<>(); + List columnRedactions = new ArrayList<>(); columnRedactions.add(null); GetRequest request = GetRequest.builder() .table("table1") @@ -2149,7 +2149,7 @@ public void testValidateGetRequest_nullColumnRedactionInListThrows() { @Test public void testValidateGetRequest_blankColumnNameInColumnRedactionThrows() { - ColumnRedactions redaction = ColumnRedactions.builder().redaction("MASKED").build(); + ColumnRedaction redaction = ColumnRedaction.builder().redaction("MASKED").build(); GetRequest request = GetRequest.builder() .table("table1") .ids(new ArrayList<>(Collections.singletonList("id1"))) @@ -2165,7 +2165,7 @@ public void testValidateGetRequest_blankColumnNameInColumnRedactionThrows() { @Test public void testValidateGetRequest_blankRedactionInColumnRedactionThrows() { - ColumnRedactions redaction = ColumnRedactions.builder().columnName("email").build(); + ColumnRedaction redaction = ColumnRedaction.builder().columnName("email").build(); GetRequest request = GetRequest.builder() .table("table1") .ids(new ArrayList<>(Collections.singletonList("id1"))) diff --git a/flowvault/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java b/flowvault/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java index bc67e377..c68a0b85 100644 --- a/flowvault/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java +++ b/flowvault/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java @@ -45,7 +45,7 @@ import com.skyflow.vault.data.BulkTokenizeResponse; import com.skyflow.vault.data.BulkDetokenizeOptions; import com.skyflow.vault.data.BulkInsertOptions; -import com.skyflow.vault.data.ColumnRedactions; +import com.skyflow.vault.data.ColumnRedaction; import com.skyflow.vault.data.DeleteOptions; import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DeleteResponse; diff --git a/flowvault/src/test/java/com/skyflow/vault/data/ResponseComponentTests.java b/flowvault/src/test/java/com/skyflow/vault/data/ResponseComponentTests.java index b77d704f..39ad256f 100644 --- a/flowvault/src/test/java/com/skyflow/vault/data/ResponseComponentTests.java +++ b/flowvault/src/test/java/com/skyflow/vault/data/ResponseComponentTests.java @@ -34,7 +34,7 @@ private static Map singleColumnRawFields() { // Tests for Success and Summary were removed: the bulk insert response contract replaced // those classes with BulkInsertResponseRecord / BulkSummary, covered below. Token was removed // in the same rework, then reintroduced (with the same shape it had before) as the type - // InsertResponseRecord.getTokens() now returns - see the InsertResponseRecord section below. + // InsertResponseRecord.getTokens()/BulkInsertResponseRecord.getTokens() now return. // ── BulkInsertResponseRecord ───────────────────────────────────────────── @@ -61,8 +61,6 @@ public void testBulkInsertResponseRecord_gettersReturnConstructorValues() { Assert.assertEquals(hashedData, record.getHashedData()); Assert.assertEquals(200, record.getHttpCode()); Assert.assertNull(record.getError()); - // getTokens() is inherited unchanged from InsertResponseRecord - confirm it works on the - // subclass callers actually receive, not just the base class. Assert.assertEquals("tok-1", record.getTokens().get("name").get(0).getToken()); } @@ -86,27 +84,27 @@ public void testBulkInsertResponseRecord_deprecatedConstructorAndGetFieldsStillW } @Test - @SuppressWarnings("deprecation") - public void testInsertResponseRecord_deprecatedConstructorDefaultsDataToNull() { - // BulkInsertResponseRecord's deprecated constructor delegates straight to the new - // 7-arg super constructor, so it never exercises InsertResponseRecord's own deprecated - // 6-arg constructor. Cover that one directly. + public void testInsertResponseRecord_gettersReturnConstructorValues() { + // InsertResponseRecord (unary) carries no deprecated back-compat surface - it is a + // brand-new type with no pre-1.0.2 callers, unlike BulkInsertResponseRecord above. Map> tokens = new HashMap<>(); tokens.put("name", Collections.singletonList(new Token("tok-1", "group1"))); + Map data = new HashMap<>(); + data.put("name", "john"); Map hashedData = new HashMap<>(); hashedData.put("name", "hashed-1"); InsertResponseRecord record = new InsertResponseRecord( - "persons", "skyflow-id-1", tokens, hashedData, 200, null); + "persons", "skyflow-id-1", tokens, data, hashedData, 200, null, "req-1"); Assert.assertEquals("persons", record.getTableName()); Assert.assertEquals("skyflow-id-1", record.getSkyflowId()); Assert.assertEquals(tokens, record.getTokens()); - Assert.assertEquals(singleColumnRawFields(), record.getFields()); - Assert.assertNull(record.getData()); + Assert.assertEquals(data, record.getData()); Assert.assertEquals(hashedData, record.getHashedData()); Assert.assertEquals(200, record.getHttpCode()); Assert.assertNull(record.getError()); + Assert.assertEquals("req-1", record.getRequestId()); } @Test From 700d008c5af3eca03585719b9e557b3908156e56 Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Wed, 9 Sep 2026 15:15:53 +0530 Subject: [PATCH 3/6] SK-3131 update request and reponse for unary opr --- .../main/java/com/skyflow/utils/Utils.java | 6 +-- .../utils/validations/Validations.java | 4 +- .../skyflow/vault/data/ColumnRedaction.java | 40 ------------------- .../skyflow/vault/data/ColumnRedactions.java | 40 +++++++++++++++++++ .../com/skyflow/vault/data/GetRequest.java | 6 +-- .../skyflow/vault/data/GetRequestRecord.java | 6 +-- .../java/com/skyflow/utils/UtilsTests.java | 4 +- .../utils/validations/ValidationsTests.java | 8 ++-- .../controller/VaultControllerTests.java | 2 +- 9 files changed, 58 insertions(+), 58 deletions(-) delete mode 100644 flowvault/src/main/java/com/skyflow/vault/data/ColumnRedaction.java create mode 100644 flowvault/src/main/java/com/skyflow/vault/data/ColumnRedactions.java diff --git a/flowvault/src/main/java/com/skyflow/utils/Utils.java b/flowvault/src/main/java/com/skyflow/utils/Utils.java index 44f62fb3..e3bc7c22 100644 --- a/flowvault/src/main/java/com/skyflow/utils/Utils.java +++ b/flowvault/src/main/java/com/skyflow/utils/Utils.java @@ -60,7 +60,7 @@ import com.skyflow.vault.data.BulkTokenizeRequestRecord; import com.skyflow.vault.data.BulkTokenizeResponse; import com.skyflow.vault.data.BulkTokenizeResponseRecord; -import com.skyflow.vault.data.ColumnRedaction; +import com.skyflow.vault.data.ColumnRedactions; import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DeleteResponse; import com.skyflow.vault.data.DeleteResponseRecord; @@ -264,9 +264,9 @@ private static V1GetRequestData toV1GetRequestData(GetRequestRecord record) { return data.build(); } - private static List toV1ColumnRedactionsList(List columnRedactions) { + private static List toV1ColumnRedactionsList(List columnRedactions) { List list = new ArrayList<>(); - for (ColumnRedaction columnRedaction : columnRedactions) { + for (ColumnRedactions columnRedaction : columnRedactions) { list.add(V1ColumnRedactions.builder() .columnName(columnRedaction.getColumnName()) .redaction(columnRedaction.getRedaction()) diff --git a/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java b/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java index ea68c1a1..71be8326 100644 --- a/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java +++ b/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java @@ -709,11 +709,11 @@ private static void validateFields(List fields) throws SkyflowException // columnRedactions is optional; when supplied, no entry may be null and each must carry a // non-blank columnName and redaction. - private static void validateColumnRedactions(List columnRedactions) throws SkyflowException { + private static void validateColumnRedactions(List columnRedactions) throws SkyflowException { if (columnRedactions == null) { return; } - for (ColumnRedaction columnRedaction : columnRedactions) { + for (ColumnRedactions columnRedaction : columnRedactions) { if (columnRedaction == null) { LogUtil.printErrorLog(Utils.parameterizedString( ErrorLogs.NULL_COLUMN_REDACTION_OBJECT.getLog(), InterfaceName.GET.getName() diff --git a/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedaction.java b/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedaction.java deleted file mode 100644 index 2325c0ac..00000000 --- a/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedaction.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.skyflow.vault.data; - -public class ColumnRedaction { - private final ColumnRedactionBuilder builder; - - private ColumnRedaction(ColumnRedactionBuilder builder) { - this.builder = builder; - } - - public String getColumnName() { - return this.builder.columnName; - } - - public String getRedaction() { - return this.builder.redaction; - } - - public static ColumnRedactionBuilder builder() { - return new ColumnRedactionBuilder(); - } - - public static final class ColumnRedactionBuilder { - private String columnName; - private String redaction; - - public ColumnRedactionBuilder columnName(String columnName) { - this.columnName = columnName; - return this; - } - - public ColumnRedactionBuilder redaction(String redaction) { - this.redaction = redaction; - return this; - } - - public ColumnRedaction build() { - return new ColumnRedaction(this); - } - } -} diff --git a/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedactions.java b/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedactions.java new file mode 100644 index 00000000..68d35171 --- /dev/null +++ b/flowvault/src/main/java/com/skyflow/vault/data/ColumnRedactions.java @@ -0,0 +1,40 @@ +package com.skyflow.vault.data; + +public class ColumnRedactions { + private final ColumnRedactionsBuilder builder; + + private ColumnRedactions(ColumnRedactionsBuilder builder) { + this.builder = builder; + } + + public String getColumnName() { + return this.builder.columnName; + } + + public String getRedaction() { + return this.builder.redaction; + } + + public static ColumnRedactionsBuilder builder() { + return new ColumnRedactionsBuilder(); + } + + public static final class ColumnRedactionsBuilder { + private String columnName; + private String redaction; + + public ColumnRedactionsBuilder columnName(String columnName) { + this.columnName = columnName; + return this; + } + + public ColumnRedactionsBuilder redaction(String redaction) { + this.redaction = redaction; + return this; + } + + public ColumnRedactions build() { + return new ColumnRedactions(this); + } + } +} diff --git a/flowvault/src/main/java/com/skyflow/vault/data/GetRequest.java b/flowvault/src/main/java/com/skyflow/vault/data/GetRequest.java index 34d7cec9..167e918e 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/GetRequest.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/GetRequest.java @@ -12,7 +12,7 @@ protected GetRequest(GetRequestBuilder builder) { this.builder = builder; } - public List getColumnRedactions() { + public List getColumnRedactions() { return this.builder.columnRedactions; } @@ -42,7 +42,7 @@ public static GetRequestBuilder builder() { } public static final class GetRequestBuilder extends BaseGetRequestBuilder { - private List columnRedactions; + private List columnRedactions; private List> uniqueValues; private Integer limit; private Integer offset; @@ -69,7 +69,7 @@ public GetRequestBuilder fields(ArrayList fields) { return this; } - public GetRequestBuilder columnRedactions(List columnRedactions) { + public GetRequestBuilder columnRedactions(List columnRedactions) { this.columnRedactions = columnRedactions; return this; } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/GetRequestRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/GetRequestRecord.java index 43c4fbc4..78cfe500 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/GetRequestRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/GetRequestRecord.java @@ -25,7 +25,7 @@ public List getFields() { return this.builder.fields; } - public List getColumnRedactions() { + public List getColumnRedactions() { return this.builder.columnRedactions; } @@ -41,7 +41,7 @@ public static final class GetRequestRecordBuilder { private String table; private List ids; private List fields; - private List columnRedactions; + private List columnRedactions; private List> uniqueValues; protected GetRequestRecordBuilder() { @@ -62,7 +62,7 @@ public GetRequestRecordBuilder fields(List fields) { return this; } - public GetRequestRecordBuilder columnRedactions(List columnRedactions) { + public GetRequestRecordBuilder columnRedactions(List columnRedactions) { this.columnRedactions = columnRedactions; return this; } diff --git a/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java b/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java index 44cf6db5..bcffa299 100644 --- a/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java +++ b/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java @@ -44,7 +44,7 @@ import com.skyflow.vault.data.BulkInsertResponseRecord; import com.skyflow.vault.data.BulkTokenizeRequest; import com.skyflow.vault.data.BulkTokenizeResponse; -import com.skyflow.vault.data.ColumnRedaction; +import com.skyflow.vault.data.ColumnRedactions; import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DeleteResponse; import com.skyflow.vault.data.DetokenizeRequest; @@ -567,7 +567,7 @@ public void testGetGetRequestBody_singleTableMode() { .ids(new ArrayList<>(Collections.singletonList("id1"))) .fields(new ArrayList<>(Collections.singletonList("name"))) .columnRedactions(Collections.singletonList( - ColumnRedaction.builder().columnName("email").redaction("MASKED").build())) + ColumnRedactions.builder().columnName("email").redaction("MASKED").build())) .limit(10) .offset(5) .build(); diff --git a/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java b/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java index 467ef582..9e49136e 100644 --- a/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java +++ b/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java @@ -11,7 +11,7 @@ import com.skyflow.vault.data.BulkDetokenizeRequest; import com.skyflow.vault.data.BulkTokenizeRequestRecord; import com.skyflow.vault.data.BulkTokenizeRequest; -import com.skyflow.vault.data.ColumnRedaction; +import com.skyflow.vault.data.ColumnRedactions; import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DetokenizeRequest; import com.skyflow.vault.data.GetRequest; @@ -2132,7 +2132,7 @@ public void testValidateGetRequest_blankFieldInFieldsThrows() { @Test public void testValidateGetRequest_nullColumnRedactionInListThrows() { - List columnRedactions = new ArrayList<>(); + List columnRedactions = new ArrayList<>(); columnRedactions.add(null); GetRequest request = GetRequest.builder() .table("table1") @@ -2149,7 +2149,7 @@ public void testValidateGetRequest_nullColumnRedactionInListThrows() { @Test public void testValidateGetRequest_blankColumnNameInColumnRedactionThrows() { - ColumnRedaction redaction = ColumnRedaction.builder().redaction("MASKED").build(); + ColumnRedactions redaction = ColumnRedactions.builder().redaction("MASKED").build(); GetRequest request = GetRequest.builder() .table("table1") .ids(new ArrayList<>(Collections.singletonList("id1"))) @@ -2165,7 +2165,7 @@ public void testValidateGetRequest_blankColumnNameInColumnRedactionThrows() { @Test public void testValidateGetRequest_blankRedactionInColumnRedactionThrows() { - ColumnRedaction redaction = ColumnRedaction.builder().columnName("email").build(); + ColumnRedactions redaction = ColumnRedactions.builder().columnName("email").build(); GetRequest request = GetRequest.builder() .table("table1") .ids(new ArrayList<>(Collections.singletonList("id1"))) diff --git a/flowvault/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java b/flowvault/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java index c68a0b85..bc67e377 100644 --- a/flowvault/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java +++ b/flowvault/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java @@ -45,7 +45,7 @@ import com.skyflow.vault.data.BulkTokenizeResponse; import com.skyflow.vault.data.BulkDetokenizeOptions; import com.skyflow.vault.data.BulkInsertOptions; -import com.skyflow.vault.data.ColumnRedaction; +import com.skyflow.vault.data.ColumnRedactions; import com.skyflow.vault.data.DeleteOptions; import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DeleteResponse; From d2c67fb21c1e47ccced3d38b6f3fc5660b5d56a1 Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Wed, 9 Sep 2026 16:31:56 +0530 Subject: [PATCH 4/6] SK-3131 update request and reponse for unary opr --- flowvault/README.md | 612 +++++++++++++++++- .../java/com/skyflow/enums/UpdateType.java | 6 + .../main/java/com/skyflow/utils/Utils.java | 37 +- .../utils/validations/Validations.java | 10 - .../vault/controller/VaultController.java | 2 +- .../data/BulkDetokenizeResponseRecord.java | 2 +- .../vault/data/DetokenizeResponseRecord.java | 12 +- ... => DetokenizeResponseRecordMetadata.java} | 10 +- .../com/skyflow/vault/data/QueryResponse.java | 11 +- .../com/skyflow/vault/data/UpdateRequest.java | 10 +- .../java/com/skyflow/utils/UtilsTests.java | 19 +- .../utils/validations/ValidationsTests.java | 19 +- .../data/RequestResponseWrapperTests.java | 2 +- .../vault/data/ResponseComponentTests.java | 20 +- 14 files changed, 658 insertions(+), 114 deletions(-) create mode 100644 flowvault/src/main/java/com/skyflow/enums/UpdateType.java rename flowvault/src/main/java/com/skyflow/vault/data/{DetokenizeMetadata.java => DetokenizeResponseRecordMetadata.java} (81%) diff --git a/flowvault/README.md b/flowvault/README.md index 13778be3..4be55794 100644 --- a/flowvault/README.md +++ b/flowvault/README.md @@ -30,10 +30,19 @@ The `flowvault` module is a Skyflow Java SDK built for high-throughput vault ope - [VaultController — Bulk operations](#vaultcontroller--bulk-operations) - [Schema vs. schemaless vaults](#schema-vs-schemaless-vaults) - [Batching and concurrency](#batching-and-concurrency) +- [VaultController — Unary operations](#vaultcontroller--unary-operations) + - [Unary vs. bulk](#unary-vs-bulk) + - [Vault type support](#vault-type-support) - [Bulk Insert](#bulk-insert) - [Bulk Tokenize](#bulk-tokenize) - [Bulk Detokenize](#bulk-detokenize) - [Bulk Delete Tokens](#bulk-delete-tokens) +- [Insert](#insert) +- [Detokenize](#detokenize) +- [Get](#get) +- [Update](#update) +- [Delete](#delete) +- [Query](#query) - [Custom Request Headers](#custom-request-headers) - [Error Handling](#error-handling) - [Two layers of errors](#two-layers-of-errors) @@ -46,6 +55,7 @@ The `flowvault` module is a Skyflow Java SDK built for high-throughput vault ope - Authenticate using a Skyflow service account, an API key, or a bearer token — see [Authenticate](#authenticate). - Perform bulk Vault API operations — insert, tokenize, detokenize, and delete tokens — each with a synchronous and an async variant, built for high-throughput Flow DB workloads. +- Perform unary Vault API operations — insert, detokenize, get, update, delete, and query — a single API call each, for when you want a plain request and response rather than the bulk batching machinery. See [VaultController — Unary operations](#vaultcontroller--unary-operations). - **Per-record reporting, not all-or-nothing.** A bulk call succeeds as a call even when individual records fail; every response reports a summary plus the outcome of each individual record or token. See [Error Handling](#error-handling). # Install @@ -354,6 +364,50 @@ INSERT_CONCURRENCY_LIMIT=5 The 10,000-item ceiling per bulk call is a separate, fixed limit and is not configurable. +# VaultController — Unary operations + +Alongside the bulk methods, `VaultController` exposes six **unary** operations. Each sends exactly one API call and hands the result straight back: + +| Method | Parameters | Returns | Description | +|--------|-----------|---------|-------------| +| `insert(InsertRequest)` | `InsertRequest`, optional `InsertOptions` | `InsertResponse` | Insert records, optionally across multiple tables, in one call | +| `detokenize(DetokenizeRequest)` | `DetokenizeRequest`, optional `DetokenizeOptions` | `DetokenizeResponse` | Detokenize tokens, optionally with a redaction override per token group | +| `get(GetRequest)` | `GetRequest`, optional `GetOptions` | `GetResponse` | Read records by skyflow ID or unique value, optionally with a redaction override per column | +| `update(UpdateRequest)` | `UpdateRequest`, optional `UpdateOptions` | `UpdateResponse` | Update records by skyflow ID | +| `delete(DeleteRequest)` | `DeleteRequest`, optional `DeleteOptions` | `DeleteResponse` | Delete records by skyflow ID or unique value | +| `query(QueryRequest)` | `QueryRequest`, optional `QueryOptions` | `QueryResponse` | Run a SQL-style query against the vault | + +`insert` and `detokenize` are the unary counterparts of `bulkInsert` and `bulkDetokenize` — the same request builders, sent as one call instead of many batches. `get`, `update`, `delete`, and `query` have no bulk counterpart at all; they exist only in this unary form. + +Each method also accepts an optional options object (`InsertOptions`, `DetokenizeOptions`, `GetOptions`, `UpdateOptions`, `DeleteOptions`, `QueryOptions`) — see [Custom Request Headers](#custom-request-headers). + +## Unary vs. bulk + +Everything the bulk machinery adds — batching, concurrency, the payload ceiling, the summary, the per-item index — is absent here. What survives is the per-record reporting: + +| | Bulk operations | Unary operations | +|---|---|---| +| Async variant | Yes — `bulkInsertAsync`, and so on | **No.** Wrap the call yourself if you need one | +| Batching and concurrency | Configured per operation — see [Batching and concurrency](#batching-and-concurrency) | Not applicable — one payload, one call | +| Payload ceiling | 10,000 records or tokens per call | Not enforced by the SDK; the vault's own request limits still apply | +| Response summary | `getSummary()` | None — read the records list | +| Per-item `getIndex()` / `getRequestId()` | Yes | No. Records come back in submitted order, and the `x-request-id` of the single call reaches you only through a thrown `SkyflowException` | +| Retry helper | `getRecordsToRetry()` / `getTokensToRetry()` | None — filter the records yourself, see [Retrying the failed records](#retrying-the-failed-records) | +| Per-item `getHttpCode()` / `getError()` | Yes | Yes, on every unary operation except `query` | + +## Vault type support + +The same distinction as [Schema vs. schemaless vaults](#schema-vs-schemaless-vaults) applies. Five of the six unary operations address records inside a table, so they only make sense against a structured vault: + +| Operation | Supported on | +|---|---| +| `insert` | Structured (schema) vaults — inserts into a table's columns. | +| `get` | Structured vaults — reads a table's records by skyflow ID or unique value. | +| `update` | Structured vaults — updates a table's records by skyflow ID. | +| `delete` | Structured vaults — deletes a table's records. Distinct from `bulkDeleteTokens`, which removes tokens only and leaves the record in place. | +| `query` | Structured vaults — the query itself addresses tables and columns. | +| `detokenize` | Both — detokenizing only needs the token itself, not a table, so it works regardless of which kind of vault the token came from. | + # Bulk Insert Insert many records — even across different tables — in a single call. Each record is a `BulkInsertRequestRecord` with its own `data` and, optionally, its own `tableName` and `upsert`. @@ -659,7 +713,7 @@ Sample response: } ``` -`record.getMetadata()` is typed as a `DetokenizeMetadata` with `getSkyflowId()`/`getTableName()` — no casting into the raw map required (`null` on records that errored, same as above): +`record.getMetadata()` is typed as a `DetokenizeResponseRecordMetadata` with `getSkyflowId()`/`getTableName()` — no casting into the raw map required (`null` on records that errored, same as above): ```java for (BulkDetokenizeResponseRecord record : detokenizeResponse.getRecords()) { @@ -735,9 +789,541 @@ for (BulkDeleteTokensResponseRecord record : deleteTokensResponse.getRecords()) Use `deleteTokensResponse.getTokensToRetry()` to get back only the tokens worth resubmitting. +# Insert + +Insert records in a single API call — the unary counterpart of [Bulk Insert](#bulk-insert), with no batching or concurrency involved. Each record is an `InsertRequestRecord` with its own `data` and, optionally, its own `tableName`, `tokens`, and `upsert`. + +> **Vault type supported:** structured (schema) vaults. See [Vault type support](#vault-type-support). + +**Note:** + +- `tableName` must be specified at exactly one level: either on the request (`InsertRequest.builder().tableName(...)`) or on **every** record (`InsertRequestRecord.builder().tableName(...)`) — not both, and not neither. Same rule as bulk insert. +- `upsert` is optional, but wherever you supply it, it must sit at the same level as `tableName`. +- `tokens` is optional; when supplied, the map must not be empty and no key or value may be blank. + +### Construct an insert request + +```java +import com.skyflow.errors.SkyflowException; +import com.skyflow.vault.data.InsertRequest; +import com.skyflow.vault.data.InsertRequestRecord; +import com.skyflow.vault.data.InsertResponse; +import com.skyflow.vault.data.InsertResponseRecord; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class InsertExample { + public static void main(String[] args) throws SkyflowException { + // Step 1: Build each record. Here tableName lives on the request, so no record carries it. + Map recordData = new HashMap<>(); + recordData.put("card_number", "4111111111111111"); + recordData.put("cardholder_name", "john doe"); + + InsertRequestRecord record = InsertRequestRecord.builder() + .data(recordData) + .build(); + + List records = new ArrayList<>(); + records.add(record); + + // Step 2: Build the InsertRequest + InsertRequest insertRequest = InsertRequest.builder() + .tableName("table1") + .records(records) + .build(); + + // Step 3: Perform the insert + InsertResponse insertResponse = vault.insert(insertRequest); + System.out.println(insertResponse); + } +} +``` + +To put the table name on the records instead, drop `tableName` from the request and set it — along with any `upsert` — on every `InsertRequestRecord`, exactly as [Bulk Insert](#bulk-insert) shows. + +There is no async variant: `insert` returns its `InsertResponse` directly. + +Sample response: + +```json +{ + "records": [ + { + "tableName": "table1", + "skyflowId": "9fac9201-7b8a-4446-93f8-5244e1213bd1", + "tokens": { + "card_number": [ + { "token": "5484-7829-1702-9110", "tokenGroupName": "card_number_cg" } + ], + "cardholder_name": [ + { "token": "b2308e2a-c1f5-469b-97b7-1f193159399b", "tokenGroupName": "deterministic_string" } + ] + }, + "data": { "card_number": "4111-1111-1111-1111", "cardholder_name": "John Doe" }, + "hashedData": { "card_number": "b6e6d...c3f9" }, + "httpCode": 200, + "error": null, + "requestId": null + } + ] +} +``` + +There is no `summary` and no per-record `index` — the records come back in the order you submitted them. `requestId` behaves exactly as it does on a bulk record: `null` on success, the failing call's `x-request-id` on error. `getTokens()` returns the same parsed `Map>` described under [Bulk Insert](#bulk-insert), so `Token.getToken()`, `Token.getTokenGroupName()`, and `Token.getPath()` are available with no casting. + +Accessors: `insertResponse.getRecords()`, and on each record `getTableName()`, `getSkyflowId()`, `getTokens()`, `getData()`, `getHashedData()`, `getHttpCode()`, `getError()`, `getRequestId()`. + +> **Deprecation notice:** `InsertResponseRecord.getFields()` is deprecated in favor of `getTokens()` here too — it is kept only for backward compatibility and will be removed in a future release. + +```java +for (InsertResponseRecord record : insertResponse.getRecords()) { + if (record.getError() == null) { + System.out.println(record.getTableName() + " -> " + record.getSkyflowId()); + } else { + System.err.println("insert failed [" + record.getHttpCode() + "] " + record.getError()); + } +} +``` + +# Detokenize + +Detokenize tokens in a single API call — the unary counterpart of [Bulk Detokenize](#bulk-detokenize), optionally overriding the redaction applied per token group via `tokenGroupRedactions`. + +> **Vault type supported:** both. See [Vault type support](#vault-type-support). + +**Note:** + +- `tokens` is required and must not be empty, and no entry may be blank. +- `tokenGroupRedactions` is optional; when supplied, each entry needs a non-blank `tokenGroupName` and `redaction`. + +### Construct a detokenize request + +```java +import com.skyflow.errors.SkyflowException; +import com.skyflow.vault.data.DetokenizeRequest; +import com.skyflow.vault.data.DetokenizeResponse; +import com.skyflow.vault.data.DetokenizeResponseRecord; +import com.skyflow.vault.data.TokenGroupRedactions; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class DetokenizeExample { + public static void main(String[] args) throws SkyflowException { + List tokens = new ArrayList<>(Arrays.asList( + "5479-4229-4622-1393", + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + )); + + // redaction is a free-form string understood by the vault (e.g. "PLAIN_TEXT", + // "MASKED", "REDACTED", "DEFAULT") + TokenGroupRedactions redaction = TokenGroupRedactions.builder() + .tokenGroupName("card_number_cg") + .redaction("MASKED") + .build(); + + DetokenizeRequest detokenizeRequest = DetokenizeRequest.builder() + .tokens(tokens) + .tokenGroupRedactions(Arrays.asList(redaction)) + .build(); + + DetokenizeResponse detokenizeResponse = vault.detokenize(detokenizeRequest); + System.out.println(detokenizeResponse); + } +} +``` + +There is no async variant: `detokenize` returns its `DetokenizeResponse` directly. + +Sample response: + +```json +{ + "records": [ + { + "token": "5479-4229-4622-1393", + "value": "4111111111111111", + "tokenGroupName": "card_number_cg", + "metadata": { "skyflowId": "9fac9201-7b8a-4446-93f8-5244e1213bd1", "tableName": "table1" }, + "httpCode": 200, + "error": null, + "requestId": null + }, + { + "token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "value": null, + "tokenGroupName": null, + "metadata": null, + "httpCode": 404, + "error": "Token Not Found", + "requestId": "a1b2c3d4-..." + } + ] +} +``` + +Same per-record shape as bulk detokenize, minus `index` — `requestId` behaves the same on both: `null` on success, the failing call's `x-request-id` on error. `record.getMetadata()` is a typed `DetokenizeResponseRecordMetadata` with `getSkyflowId()`/`getTableName()` — `null` on records that errored: + +```java +for (DetokenizeResponseRecord record : detokenizeResponse.getRecords()) { + if (record.getError() == null) { + System.out.println(record.getToken() + " -> " + record.getValue() + + " (" + record.getTokenGroupName() + ")"); + } else { + System.err.println(record.getToken() + " failed [" + + record.getHttpCode() + "] " + record.getError()); + } +} +``` + +Accessors: `detokenizeResponse.getRecords()`, and on each record `getToken()`, `getValue()`, `getTokenGroupName()`, `getMetadata()`, `getHttpCode()`, `getError()`, `getRequestId()`. `getValue()` is typed `Object`, passed straight through from the API. + +# Get + +Read records back from a table, by skyflow ID or by unique value, optionally overriding the redaction applied per column via `columnRedactions`. + +> **Vault type supported:** structured (schema) vaults. See [Vault type support](#vault-type-support). + +**Note:** + +- A `GetRequest` works in one of two modes, and they are mutually exclusive: **single-table** (`table`, `ids`/`uniqueValues`, `fields`, `columnRedactions`, `limit`, `offset`) or **multi-table** (`records`, a list of `GetRequestRecord`). Setting fields from both modes fails validation. +- `table` is required, and exactly one of `ids` or `uniqueValues` must be supplied — both, or neither, fails validation. This holds per record in multi-table mode. +- `uniqueValues` is a `List>`: one map per record, each holding the unique column-name/value pairs that identify it. +- `fields` selects the columns to return; omit it for all of them. When supplied, it must be non-empty with no blank entries. +- `limit` and `offset` apply to the call as a whole and are **only sent in single-table mode** — a `GetRequestRecord` has no `limit`/`offset` of its own, and values set on a multi-table request are not sent. + +### Construct a get request + +```java +import com.skyflow.errors.SkyflowException; +import com.skyflow.vault.data.ColumnRedactions; +import com.skyflow.vault.data.GetRequest; +import com.skyflow.vault.data.GetResponse; +import com.skyflow.vault.data.GetResponseRecord; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; + +public class GetExample { + public static void main(String[] args) throws SkyflowException { + // Step 1: Optionally override how individual columns come back. Anything not listed + // uses the redaction configured on the vault's policy. + ColumnRedactions redaction = ColumnRedactions.builder() + .columnName("card_number") + .redaction("MASKED") + .build(); + + // Step 2: Build the GetRequest — single-table mode, selecting records by skyflow ID + GetRequest getRequest = GetRequest.builder() + .table("table1") + .ids(new ArrayList<>(Arrays.asList( + "9fac9201-7b8a-4446-93f8-5244e1213bd1", + "b2308e2a-c1f5-469b-97b7-1f193159399b"))) + .fields(new ArrayList<>(Arrays.asList("card_number", "cardholder_name"))) + .columnRedactions(Collections.singletonList(redaction)) + .limit(10) + .offset(0) + .build(); + + // Step 3: Perform the get + GetResponse getResponse = vault.get(getRequest); + System.out.println(getResponse); + } +} +``` + +To select records by unique value instead of skyflow ID, swap `ids(...)` for `uniqueValues(...)`: + +```java +Map uniqueValue = new HashMap<>(); +uniqueValue.put("email", "jane.doe@example.com"); + +GetRequest getRequest = GetRequest.builder() + .table("table2") + .uniqueValues(Collections.singletonList(uniqueValue)) + .build(); +``` + +To read from more than one table in a single call, use multi-table mode — each `GetRequestRecord` carries its own table and lookup fields, and none of the single-table fields may be set on the request itself: + +```java +GetRequestRecord fromTable1 = GetRequestRecord.builder() + .table("table1") + .ids(Arrays.asList("9fac9201-7b8a-4446-93f8-5244e1213bd1")) + .fields(Arrays.asList("card_number")) + .build(); + +GetRequestRecord fromTable2 = GetRequestRecord.builder() + .table("table2") + .uniqueValues(Collections.singletonList(uniqueValue)) + .build(); + +GetRequest getRequest = GetRequest.builder() + .records(Arrays.asList(fromTable1, fromTable2)) + .build(); +``` + +There is no async variant: `get` returns its `GetResponse` directly. + +Sample response: + +```json +{ + "records": [ + { + "tableName": "table1", + "skyflowId": "9fac9201-7b8a-4446-93f8-5244e1213bd1", + "tokens": { + "card_number": [ + { "token": "5484-7829-1702-9110", "tokenGroupName": "card_number_cg" } + ] + }, + "data": { "card_number": "4111-XXXX-XXXX-1111", "cardholder_name": "John Doe" }, + "hashedData": null, + "httpCode": 200, + "error": null, + "requestId": null + } + ] +} +``` + +`GetResponseRecord` carries the same fields as an insert record — the vault returns the same object shape for both — so the accessors are identical: `getTableName()`, `getSkyflowId()`, `getTokens()`, `getData()`, `getHashedData()`, `getHttpCode()`, `getError()`, `getRequestId()`. + +```java +for (GetResponseRecord record : getResponse.getRecords()) { + if (record.getError() == null) { + System.out.println(record.getSkyflowId() + " -> " + record.getData()); + } else { + System.err.println(record.getSkyflowId() + " failed [" + + record.getHttpCode() + "] " + record.getError()); + } +} +``` + +# Update + +Update records in a table by skyflow ID, in a single API call. + +> **Vault type supported:** structured (schema) vaults. See [Vault type support](#vault-type-support). + +**Note:** + +- `tableName` is required on the request. A record may override it with its own `tableName`, which applies to that record only. +- Every `UpdateRequestRecord` needs a non-blank `skyflowId`. +- `data` holds the columns to change; no key or value may be blank. `tokens` is optional, and when supplied must be non-empty with no blank keys or values. +- `updateType` accepts `"UPDATE"` (merge the supplied columns) or `"REPLACE"` (overwrite the whole record). Any other value fails validation; omitting it sends no `updateType`, which the vault treats the same as `"UPDATE"`. It is a request-level setting — records have no `updateType` of their own. + +### Construct an update request + +```java +import com.skyflow.errors.SkyflowException; +import com.skyflow.vault.data.UpdateRequest; +import com.skyflow.vault.data.UpdateRequestRecord; +import com.skyflow.vault.data.UpdateResponse; +import com.skyflow.vault.data.UpdateResponseRecord; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +public class UpdateExample { + public static void main(String[] args) throws SkyflowException { + // Step 1: Build the record — the columns to change, keyed by the record's skyflow ID + Map data = new HashMap<>(); + data.put("cardholder_name", "jane doe"); + + UpdateRequestRecord record = UpdateRequestRecord.builder() + .skyflowId("9fac9201-7b8a-4446-93f8-5244e1213bd1") + .data(data) + .build(); + + // Step 2: Build the UpdateRequest + UpdateRequest updateRequest = UpdateRequest.builder() + .tableName("table1") + .records(Collections.singletonList(record)) + .updateType("UPDATE") + .build(); + + // Step 3: Perform the update + UpdateResponse updateResponse = vault.update(updateRequest); + System.out.println(updateResponse); + } +} +``` + +There is no async variant: `update` returns its `UpdateResponse` directly. + +Sample response: + +```json +{ + "records": [ + { + "tableName": "table1", + "skyflowId": "9fac9201-7b8a-4446-93f8-5244e1213bd1", + "tokens": { + "cardholder_name": [ + { "token": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "tokenGroupName": "deterministic_string" } + ] + }, + "data": { "cardholder_name": "Jane Doe" }, + "hashedData": null, + "httpCode": 200, + "error": null, + "requestId": null + } + ] +} +``` + +Like `GetResponseRecord`, `UpdateResponseRecord` carries the insert record's fields — the vault returns the same object shape — so the accessors are `getTableName()`, `getSkyflowId()`, `getTokens()`, `getData()`, `getHashedData()`, `getHttpCode()`, `getError()`, `getRequestId()`. + +```java +for (UpdateResponseRecord record : updateResponse.getRecords()) { + if (record.getError() == null) { + System.out.println(record.getSkyflowId() + " updated"); + } else { + System.err.println(record.getSkyflowId() + " failed [" + + record.getHttpCode() + "] " + record.getError()); + } +} +``` + +# Delete + +Delete records from a table by skyflow ID or unique value, in a single API call. + +> **Vault type supported:** structured (schema) vaults. See [Vault type support](#vault-type-support). + +**Note:** + +- This deletes the records themselves. [Bulk Delete Tokens](#bulk-delete-tokens) is a different operation — it removes tokens and leaves the underlying record in place. +- `table` is required, and exactly one of `ids` or `uniqueValues` must be supplied — both, or neither, fails validation. +- `uniqueValues` takes the same shape as in [Get](#get): one `Map` per record, holding the unique column-name/value pairs that identify it. + +### Construct a delete request + +```java +import com.skyflow.errors.SkyflowException; +import com.skyflow.vault.data.DeleteRequest; +import com.skyflow.vault.data.DeleteResponse; +import com.skyflow.vault.data.DeleteResponseRecord; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class DeleteExample { + public static void main(String[] args) throws SkyflowException { + List ids = new ArrayList<>(Arrays.asList( + "9fac9201-7b8a-4446-93f8-5244e1213bd1", + "b2308e2a-c1f5-469b-97b7-1f193159399b" + )); + + DeleteRequest deleteRequest = DeleteRequest.builder() + .table("table1") + .ids(ids) + .build(); + + DeleteResponse deleteResponse = vault.delete(deleteRequest); + System.out.println(deleteResponse); + } +} +``` + +There is no async variant: `delete` returns its `DeleteResponse` directly. + +Sample response: + +```json +{ + "records": [ + { "skyflowId": "9fac9201-7b8a-4446-93f8-5244e1213bd1", "httpCode": 200, "error": null, "requestId": null }, + { "skyflowId": "b2308e2a-c1f5-469b-97b7-1f193159399b", "httpCode": 404, "error": "Record Not Found", "requestId": "a1b2c3d4-..." } + ] +} +``` + +`DeleteResponseRecord` is flatter than the insert-shaped records above — the vault returns no data, tokens, or hashed data for a delete. Accessors: `deleteResponse.getRecords()`, and on each record `getSkyflowId()`, `getHttpCode()`, `getError()`, `getRequestId()`. + +```java +for (DeleteResponseRecord record : deleteResponse.getRecords()) { + if (record.getError() == null) { + System.out.println(record.getSkyflowId() + " deleted"); + } else { + System.err.println(record.getSkyflowId() + " failed [" + + record.getHttpCode() + "] " + record.getError()); + } +} +``` + +# Query + +Run a SQL-style query against the vault in a single API call. + +> **Vault type supported:** structured (schema) vaults. See [Vault type support](#vault-type-support). + +**Note:** + +- `query` is required and must not be blank. That is the whole request — there are no other fields. +- This is the one unary operation with **no per-record status**: rows either come back or the call throws. There is no `httpCode` or `error` on a `QueryResponseRecord`. + +### Construct a query request + +```java +import com.skyflow.errors.SkyflowException; +import com.skyflow.vault.data.QueryRequest; +import com.skyflow.vault.data.QueryResponse; +import com.skyflow.vault.data.QueryResponseRecord; + +public class QueryExample { + public static void main(String[] args) throws SkyflowException { + QueryRequest queryRequest = QueryRequest.builder() + .query("SELECT card_number, cardholder_name FROM table1 LIMIT 10") + .build(); + + QueryResponse queryResponse = vault.query(queryRequest); + System.out.println(queryResponse); + } +} +``` + +There is no async variant: `query` returns its `QueryResponse` directly. + +Sample response: + +```json +{ + "records": [ + { "data": { "card_number": "4111-1111-1111-1111", "cardholder_name": "John Doe" } }, + { "data": { "card_number": "5484-7829-1702-9110", "cardholder_name": "Jane Doe" } } + ], + "metadata": { + "columns": ["card_number", "cardholder_name"] + } +} +``` + +Each row is a free-form column/value map — the query API has no notion of tokens, so unlike insert or detokenize there is no typed `Token` data here. `getMetadata()` returns a `QueryResponseMetadata` wrapping the query's return columns via `getColumns()`; both `getMetadata()` and `getColumns()` are `null` when the vault doesn't report columns. + +Accessors: `queryResponse.getRecords()` and `queryResponse.getMetadata()`, and on each record `getData()`. + +```java +System.out.println("columns: " + (queryResponse.getMetadata() != null ? queryResponse.getMetadata().getColumns() : null)); +for (QueryResponseRecord row : queryResponse.getRecords()) { + System.out.println(row.getData()); +} +``` + # Custom Request Headers -To include custom HTTP headers on an outgoing bulk request, pass a `RequestInterceptor` via that operation's options object. The headers available are defined by the `CustomHeaderKey` enum: +To include custom HTTP headers on an outgoing request — bulk or unary — pass a `RequestInterceptor` via that operation's options object. The headers available are defined by the `CustomHeaderKey` enum: | `CustomHeaderKey` | HTTP header name | |---|---| @@ -756,9 +1342,9 @@ BulkInsertOptions options = BulkInsertOptions.builder() BulkInsertResponse insertResponse = vault.bulkInsert(insertRequest, options); ``` -The interceptor runs **once per batch**, not once per bulk call — so a value generated inside it (a fresh request id, say) differs between the batches a single bulk call is split into. +The interceptor runs **once per batch**, not once per bulk call — so a value generated inside it (a fresh request id, say) differs between the batches a single bulk call is split into. On a unary operation there is only ever one call, so it runs exactly once. -The same pattern applies to every bulk operation, via its corresponding options class: +The same pattern applies to every operation, via its corresponding options class: | Operation | Options class | |---|---| @@ -766,19 +1352,27 @@ The same pattern applies to every bulk operation, via its corresponding options | `bulkTokenize` / `bulkTokenizeAsync` | `BulkTokenizeOptions` | | `bulkDetokenize` / `bulkDetokenizeAsync` | `BulkDetokenizeOptions` | | `bulkDeleteTokens` / `bulkDeleteTokensAsync` | `BulkDeleteTokensOptions` | +| `insert` | `InsertOptions` | +| `detokenize` | `DetokenizeOptions` | +| `get` | `GetOptions` | +| `update` | `UpdateOptions` | +| `delete` | `DeleteOptions` | +| `query` | `QueryOptions` | # Error Handling ## Two layers of errors -This is the mental model to hold for every bulk operation: +This is the mental model to hold for every operation, bulk or unary: | Layer | What it covers | How you see it | |---|---|---| | **Request-level** | The call could not be made or the whole call failed: invalid request shape, missing credentials, auth failure, payload over the 10,000-item limit. | A thrown `SkyflowException`. No results at all. | | **Record-level** | The call succeeded, but individual records or tokens inside it did not. | A returned response. **Nothing is thrown.** Each entry in `getRecords()` reports its own `httpCode` and `error`. | -The second layer is what distinguishes `flowvault` from an all-or-nothing API: **a bulk call that returns normally can still contain failures, and a call where every single record failed also returns normally rather than throwing.** Checking only for a thrown exception will silently miss failed records — always read the summary and the per-record results. +The second layer is what distinguishes `flowvault` from an all-or-nothing API: **a call that returns normally can still contain failures, and a call where every single record failed also returns normally rather than throwing.** Checking only for a thrown exception will silently miss failed records — always read the summary and the per-record results. + +Unary operations follow the same two layers. Their records carry the same `requestId` behavior as bulk records — `null` on success, the failing call's `x-request-id` on error — the only structural differences are that unary records have no `getIndex()` (there is no batch position to report), and `query` has no record-level layer at all — rows either come back or the call throws, so `QueryResponse` carries no per-record `requestId` either. ## Per-record success and failure @@ -786,10 +1380,10 @@ Every bulk response exposes `getSummary()` and `getRecords()`. The records list | Field | Present on | Meaning | |---|---|---| -| `getIndex()` | always | Position of this item in the payload you submitted — use it to line results back up with your input. | +| `getIndex()` | bulk only | Position of this item in the payload you submitted — use it to line results back up with your input. | | `getHttpCode()` | always | Per-item status. `2xx` for success; `4xx`/`5xx` for failure. | | `getError()` | failures only | Error message for this item. `null` means this item succeeded. | -| `getRequestId()` | failures only | The `x-request-id` of the batch this item was in — quote it in support escalations. Items from the same batch share one id. | +| `getRequestId()` | failures only | The `x-request-id` of the call this item was part of — quote it in support escalations. In bulk responses, items from the same batch share one id. Present on both bulk and unary per-record types; `QueryResponse` is the one exception (see below). | The success payload sits alongside those fields on the same object: `getSkyflowId()`/`getTokens()`/`getData()` for insert (`getFields()` is deprecated — it returns the same data in its original, pre-typed `Map` shape, not `getTokens()`'s `Token` objects), `getValue()`/`getTokenGroupName()`/`getMetadata()` for detokenize, `getValue()`/`getTokenGroupName()`/`getToken()` for tokenize, `getToken()` for delete. @@ -802,6 +1396,8 @@ Summaries per operation: | `BulkDetokenizeResponse` | `DetokenizeSummary` | `totalTokens`, `totalDetokenized`, `totalFailed` | | `BulkDeleteTokensResponse` | `DeleteTokensSummary` | `totalTokens`, `totalDeleted`, `totalFailed` | +A unary response has no summary and no `getIndex()` — just `getRecords()`, in submitted order, with `getHttpCode()`, `getError()`, and `getRequestId()` on each entry alongside that operation's payload: `getSkyflowId()`/`getTokens()`/`getData()`/`getHashedData()` for `insert`, `get`, and `update`; `getSkyflowId()` alone for `delete`; `getToken()`/`getValue()`/`getTokenGroupName()`/`getMetadata()` for `detokenize`. `QueryResponse` is the exception — its records carry only `getData()`, with no `getRequestId()` anywhere on the response, and the call's return columns on `getMetadata().getColumns()`. + The idiomatic way to consume a bulk response: ```java diff --git a/flowvault/src/main/java/com/skyflow/enums/UpdateType.java b/flowvault/src/main/java/com/skyflow/enums/UpdateType.java new file mode 100644 index 00000000..592299c7 --- /dev/null +++ b/flowvault/src/main/java/com/skyflow/enums/UpdateType.java @@ -0,0 +1,6 @@ +package com.skyflow.enums; + +public enum UpdateType { + UPDATE, + REPLACE +} diff --git a/flowvault/src/main/java/com/skyflow/utils/Utils.java b/flowvault/src/main/java/com/skyflow/utils/Utils.java index e3bc7c22..c8d72b77 100644 --- a/flowvault/src/main/java/com/skyflow/utils/Utils.java +++ b/flowvault/src/main/java/com/skyflow/utils/Utils.java @@ -12,6 +12,7 @@ import com.google.gson.JsonObject; import com.skyflow.config.VaultConfig; import com.skyflow.enums.Env; +import com.skyflow.enums.UpdateType; import com.skyflow.errors.ErrorCode; import com.skyflow.errors.ErrorMessage; import com.skyflow.errors.SkyflowException; @@ -64,7 +65,7 @@ import com.skyflow.vault.data.DeleteRequest; import com.skyflow.vault.data.DeleteResponse; import com.skyflow.vault.data.DeleteResponseRecord; -import com.skyflow.vault.data.DetokenizeMetadata; +import com.skyflow.vault.data.DetokenizeResponseRecordMetadata; import com.skyflow.vault.data.DetokenizeRequest; import com.skyflow.vault.data.DetokenizeResponse; import com.skyflow.vault.data.DetokenizeResponseRecord; @@ -318,29 +319,15 @@ public static V1UpdateRequest getUpdateRequestBody(UpdateRequest request, VaultC .tableName(request.getTableName()) .records(updateRecordDataList); - FlowEnumUpdateType requestUpdateType = resolveUpdateType(request.getUpdateType()); + // Record-level updateType isn't wired here: the generated V1UpdateRecordData has no + // updateType setter yet even though the proto declares one (needs a client regeneration). + UpdateType requestUpdateType = request.getUpdateType(); if (requestUpdateType != null) { - builder.updateType(requestUpdateType); + builder.updateType(FlowEnumUpdateType.valueOf(requestUpdateType.name())); } return builder.build(); } - // updateType is a String on the request; the legal values come from the wire enum itself - // so there is a single source of truth. Validations rejects anything that does not match. - // Record-level updateType isn't wired here: the generated V1UpdateRecordData has no - // updateType setter yet even though the proto declares one (needs a client regeneration). - private static FlowEnumUpdateType resolveUpdateType(String updateType) { - if (updateType == null) { - return null; - } - for (FlowEnumUpdateType type : FlowEnumUpdateType.values()) { - if (type.toString().equalsIgnoreCase(updateType)) { - return type; - } - } - return null; - } - // ── Bulk (batched/concurrent) request-body builders ────────────────────── // BulkInsertRequest is an InsertRequest, so the bulk body is built exactly the same way. @@ -1039,7 +1026,7 @@ public static DetokenizeResponse formatDetokenizeResponse(V1FlowDetokenizeRespon List records = new ArrayList<>(); if (response != null && response.getResponse().isPresent()) { for (V1FlowDetokenizeResponseObject current : response.getResponse().get()) { - DetokenizeMetadata metadata = DetokenizeMetadata.parseMetadata(current.getMetadata().orElse(null)); + DetokenizeResponseRecordMetadata metadata = DetokenizeResponseRecordMetadata.parseMetadata(current.getMetadata().orElse(null)); String reqID = current.getError().isPresent() ? extractRequestId(headers) : null; records.add(new DetokenizeResponseRecord( current.getToken().orElse(null), @@ -1062,7 +1049,7 @@ public static BulkDetokenizeResponse formatBulkDetokenizeResponse(V1FlowDetokeni int recordsSize = record.size(); for (int index = 0; index < recordsSize; index++) { V1FlowDetokenizeResponseObject current = record.get(index); - DetokenizeMetadata metadata = DetokenizeMetadata.parseMetadata(current.getMetadata().orElse(null)); + DetokenizeResponseRecordMetadata metadata = DetokenizeResponseRecordMetadata.parseMetadata(current.getMetadata().orElse(null)); String reqID = null; if(current.getError().isPresent()){ reqID = extractRequestId(headers); @@ -1083,10 +1070,8 @@ public static BulkDetokenizeResponse formatBulkDetokenizeResponse(V1FlowDetokeni return null; } - // Query has no batching/bulk counterpart, so there is no index to attach here. Query rows - // carry no per-record error, so unlike insert/update/get/delete/detokenize the requestId is - // not error-gated - it is always populated from the call's own headers. - public static QueryResponse formatQueryResponse(V1ExecuteQueryResponse response, Map> headers) { + // Query has no batching/bulk counterpart, so there is no index or requestId to attach here. + public static QueryResponse formatQueryResponse(V1ExecuteQueryResponse response) { List records = new ArrayList<>(); QueryResponseMetadata metadata = null; if (response != null) { @@ -1099,7 +1084,7 @@ public static QueryResponse formatQueryResponse(V1ExecuteQueryResponse response, metadata = new QueryResponseMetadata(response.getMetadata().get().getColumns().orElse(null)); } } - return new QueryResponse(records, metadata, extractRequestId(headers)); + return new QueryResponse(records, metadata); } public static BulkDeleteTokensResponse formatBulkDeleteTokensResponse( diff --git a/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java b/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java index 71be8326..d3038e13 100644 --- a/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java +++ b/flowvault/src/main/java/com/skyflow/utils/validations/Validations.java @@ -573,16 +573,6 @@ public static void validateUpdateRequest(UpdateRequest updateRequest) throws Sky } } } - - // updateType is a free-form String on the request, but only the wire enum's values reach - // the wire. Reject anything else here rather than silently dropping it during mapping. - String updateType = updateRequest.getUpdateType(); - if (updateType != null && !isKnownUpdateType(updateType)) { - LogUtil.printErrorLog(Utils.parameterizedString( - ErrorLogs.INVALID_UPSERT_UPDATE_TYPE.getLog(), InterfaceName.UPDATE.getName() - )); - throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.InvalidUpsertUpdateType.getMessage()); - } } public static void validateGetRequest(GetRequest getRequest) throws SkyflowException { diff --git a/flowvault/src/main/java/com/skyflow/vault/controller/VaultController.java b/flowvault/src/main/java/com/skyflow/vault/controller/VaultController.java index ec0165be..897c7269 100644 --- a/flowvault/src/main/java/com/skyflow/vault/controller/VaultController.java +++ b/flowvault/src/main/java/com/skyflow/vault/controller/VaultController.java @@ -571,7 +571,7 @@ public QueryResponse query(QueryRequest queryRequest, QueryOptions options) thro ApiClientHttpResponse response = this.getQueryApi().withRawResponse().flowServiceExecuteQuery(request, buildRequestOptions(ctx)); - QueryResponse formattedResponse = Utils.formatQueryResponse(response.body(), response.headers()); + QueryResponse formattedResponse = Utils.formatQueryResponse(response.body()); LogUtil.printInfoLog(InfoLogs.QUERY_REQUEST_RESOLVED.getLog()); return formattedResponse; } catch (ApiClientApiException e) { diff --git a/flowvault/src/main/java/com/skyflow/vault/data/BulkDetokenizeResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/BulkDetokenizeResponseRecord.java index 4ee19212..362153dc 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/BulkDetokenizeResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/BulkDetokenizeResponseRecord.java @@ -8,7 +8,7 @@ public class BulkDetokenizeResponseRecord extends DetokenizeResponseRecord { private final int index; public BulkDetokenizeResponseRecord(int index, String token, Object value, String tokenGroupName, - DetokenizeMetadata metadata, int httpCode, String error, + DetokenizeResponseRecordMetadata metadata, int httpCode, String error, String requestId) { // requestId is stored on DetokenizeResponseRecord (shared with the unary response), not // redeclared here — a same-named field on both this class and its parent breaks Gson's diff --git a/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecord.java b/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecord.java index 9c441358..6ee24cb8 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecord.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecord.java @@ -4,17 +4,17 @@ public class DetokenizeResponseRecord extends BaseDetokenizeRecordResponse { // Passed straight through from V1FlowDetokenizeResponseObject.getValue() (Optional). private final Object value; private final String tokenGroupName; - private final DetokenizeMetadata metadata; + private final DetokenizeResponseRecordMetadata metadata; private final int httpCode; private final String requestId; public DetokenizeResponseRecord(String token, Object value, String tokenGroupName, - DetokenizeMetadata metadata, int httpCode, String error) { + DetokenizeResponseRecordMetadata metadata, int httpCode, String error) { this(token, value, tokenGroupName, metadata, httpCode, error, null); } public DetokenizeResponseRecord(String token, Object value, String tokenGroupName, - DetokenizeMetadata metadata, int httpCode, String error, String requestId) { + DetokenizeResponseRecordMetadata metadata, int httpCode, String error, String requestId) { super(token, error); this.value = value; this.tokenGroupName = tokenGroupName; @@ -33,11 +33,11 @@ public String getTokenGroupName() { /** * The record's skyflowId/tableName, typed. The API models this generically (see - * {@link DetokenizeMetadata#parseMetadata(java.util.Map)}), but the SDK parses it here so - * callers get {@link DetokenizeMetadata#getSkyflowId()}/{@link DetokenizeMetadata#getTableName()} + * {@link DetokenizeResponseRecordMetadata#parseMetadata(java.util.Map)}), but the SDK parses it here so + * callers get {@link DetokenizeResponseRecordMetadata#getSkyflowId()}/{@link DetokenizeResponseRecordMetadata#getTableName()} * directly, with no casting required. */ - public DetokenizeMetadata getMetadata() { + public DetokenizeResponseRecordMetadata getMetadata() { return metadata; } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeMetadata.java b/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecordMetadata.java similarity index 81% rename from flowvault/src/main/java/com/skyflow/vault/data/DetokenizeMetadata.java rename to flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecordMetadata.java index d9cfcf3e..2b46a002 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeMetadata.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/DetokenizeResponseRecordMetadata.java @@ -11,13 +11,13 @@ * (see {@code flowdb_dp_apis.proto}) — {@link #parseMetadata(Map)} normalizes both into the * camelCase, {@code tableName}-shaped accessors below. */ -public class DetokenizeMetadata { +public class DetokenizeResponseRecordMetadata { @Expose(serialize = true) private final String skyflowId; @Expose(serialize = true) private final String tableName; - public DetokenizeMetadata(String skyflowId, String tableName) { + public DetokenizeResponseRecordMetadata(String skyflowId, String tableName) { this.skyflowId = skyflowId; this.tableName = tableName; } @@ -39,16 +39,16 @@ public String toString() { /** * Parses the raw wire-shaped metadata map (keys {@code skyflowID}/{@code skyflowId} and * {@code table}/{@code tableName} — the API has been observed to send either casing) into a - * {@link DetokenizeMetadata}. Returns {@code null} for {@code null} input, matching the + * {@link DetokenizeResponseRecordMetadata}. Returns {@code null} for {@code null} input, matching the * record-level metadata field being absent entirely on error records. */ - public static DetokenizeMetadata parseMetadata(Map rawMetadata) { + public static DetokenizeResponseRecordMetadata parseMetadata(Map rawMetadata) { if (rawMetadata == null) { return null; } Object skyflowId = rawMetadata.containsKey("skyflowId") ? rawMetadata.get("skyflowId") : rawMetadata.get("skyflowID"); Object tableName = rawMetadata.containsKey("tableName") ? rawMetadata.get("tableName") : rawMetadata.get("table"); - return new DetokenizeMetadata( + return new DetokenizeResponseRecordMetadata( skyflowId != null ? skyflowId.toString() : null, tableName != null ? tableName.toString() : null); } diff --git a/flowvault/src/main/java/com/skyflow/vault/data/QueryResponse.java b/flowvault/src/main/java/com/skyflow/vault/data/QueryResponse.java index fcc82c94..8eeaa8b3 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/QueryResponse.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/QueryResponse.java @@ -8,12 +8,10 @@ public class QueryResponse { private final List records; private final QueryResponseMetadata metadata; - private final String requestId; - public QueryResponse(List records, QueryResponseMetadata metadata, String requestId) { + public QueryResponse(List records, QueryResponseMetadata metadata) { this.records = records; this.metadata = metadata; - this.requestId = requestId; } public List getRecords() { @@ -25,13 +23,6 @@ public QueryResponseMetadata getMetadata() { return metadata; } - // Query rows carry no per-record error, so unlike insert/update/get/delete/detokenize - // there is no error-gated per-record id: a QueryResponse only ever exists for a - // successful call, so its requestId is always populated from that call's headers. - public String getRequestId() { - return requestId; - } - @Override public String toString() { Gson gson = new GsonBuilder().serializeNulls().create(); diff --git a/flowvault/src/main/java/com/skyflow/vault/data/UpdateRequest.java b/flowvault/src/main/java/com/skyflow/vault/data/UpdateRequest.java index 490d4a3a..a37f3860 100644 --- a/flowvault/src/main/java/com/skyflow/vault/data/UpdateRequest.java +++ b/flowvault/src/main/java/com/skyflow/vault/data/UpdateRequest.java @@ -1,5 +1,7 @@ package com.skyflow.vault.data; +import com.skyflow.enums.UpdateType; + import java.util.List; public class UpdateRequest { @@ -17,8 +19,8 @@ public List getRecords() { return this.builder.records; } - /** "UPDATE" or "REPLACE" — if omitted, the vault treats it the same as "UPDATE". */ - public String getUpdateType() { + /** If omitted, the vault treats it the same as {@link UpdateType#UPDATE}. */ + public UpdateType getUpdateType() { return this.builder.updateType; } @@ -29,7 +31,7 @@ public static UpdateRequestBuilder builder() { public static class UpdateRequestBuilder { private String tableName; private List records; - private String updateType; + private UpdateType updateType; protected UpdateRequestBuilder() { } @@ -44,7 +46,7 @@ public UpdateRequestBuilder records(List records) { return this; } - public UpdateRequestBuilder updateType(String updateType) { + public UpdateRequestBuilder updateType(UpdateType updateType) { this.updateType = updateType; return this; } diff --git a/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java b/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java index bcffa299..80ad7429 100644 --- a/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java +++ b/flowvault/src/test/java/com/skyflow/utils/UtilsTests.java @@ -4,6 +4,7 @@ import com.skyflow.config.Credentials; import com.skyflow.config.VaultConfig; import com.skyflow.enums.Env; +import com.skyflow.enums.UpdateType; import com.skyflow.errors.SkyflowException; import com.skyflow.generated.rest.core.ApiClientApiException; import com.skyflow.generated.rest.resources.flowservice.requests.V1DeleteRequest; @@ -497,7 +498,7 @@ public void testGetUpdateRequestBody_withRequestLevelUpdateTypeAndRecordTableNam UpdateRequestRecord record = UpdateRequestRecord.builder() .skyflowId("sky-1").data(new HashMap<>()).tableName("table2").build(); UpdateRequest request = UpdateRequest.builder() - .tableName("table1").records(Collections.singletonList(record)).updateType("REPLACE").build(); + .tableName("table1").records(Collections.singletonList(record)).updateType(UpdateType.REPLACE).build(); VaultConfig config = new VaultConfig(); config.setVaultId("vault123"); @@ -725,7 +726,7 @@ public void testFormatQueryResponse_withRecordsAndMetadata() { V1ExecuteQueryResponse response = V1ExecuteQueryResponse.builder() .records(Collections.singletonList(record)).metadata(metadata).build(); - QueryResponse formatted = Utils.formatQueryResponse(response, new HashMap<>()); + QueryResponse formatted = Utils.formatQueryResponse(response); Assert.assertEquals(1, formatted.getRecords().size()); Assert.assertEquals(row, formatted.getRecords().get(0).getData()); @@ -734,23 +735,11 @@ public void testFormatQueryResponse_withRecordsAndMetadata() { @Test public void testFormatQueryResponse_nullResponseReturnsEmptyRecordsAndNullMetadata() { - QueryResponse formatted = Utils.formatQueryResponse(null, new HashMap<>()); + QueryResponse formatted = Utils.formatQueryResponse(null); Assert.assertTrue(formatted.getRecords().isEmpty()); Assert.assertNull(formatted.getMetadata()); } - @Test - public void testFormatQueryResponse_requestIdAlwaysPopulated() { - Map> headers = new HashMap<>(); - headers.put(Constants.REQUEST_ID_HEADER_KEY, Collections.singletonList("req-query-1")); - V1ExecuteQueryResponse response = V1ExecuteQueryResponse.builder() - .records(Collections.singletonList(V1ExecuteQueryRecordResponse.builder().build())).build(); - - QueryResponse formatted = Utils.formatQueryResponse(response, headers); - - Assert.assertEquals("req-query-1", formatted.getRequestId()); - } - // ── getBulkInsertRequestBody (bulk overload) ────────────────────────────── @Test diff --git a/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java b/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java index 9e49136e..d1463538 100644 --- a/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java +++ b/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java @@ -3,6 +3,7 @@ import com.skyflow.config.Credentials; import com.skyflow.config.VaultConfig; import com.skyflow.enums.Env; +import com.skyflow.enums.UpdateType; import com.skyflow.errors.ErrorMessage; import com.skyflow.errors.SkyflowException; import com.skyflow.vault.data.BulkDeleteTokensRequest; @@ -1933,22 +1934,6 @@ public void testValidateUpdateRequest_blankValueInTokensThrows() { } } - @Test - public void testValidateUpdateRequest_invalidUpdateTypeThrows() { - UpdateRequestRecord record = UpdateRequestRecord.builder().skyflowId("sky1").build(); - UpdateRequest request = UpdateRequest.builder() - .tableName("table1") - .records(Collections.singletonList(record)) - .updateType("NOT_A_REAL_TYPE") - .build(); - try { - Validations.validateUpdateRequest(request); - Assert.fail(EXCEPTION_NOT_THROWN); - } catch (SkyflowException e) { - Assert.assertEquals(ErrorMessage.InvalidUpsertUpdateType.getMessage(), e.getMessage()); - } - } - @Test public void testValidateUpdateRequest_validMinimalRequestDoesNotThrow() { UpdateRequestRecord record = UpdateRequestRecord.builder().skyflowId("sky1").build(); @@ -1972,7 +1957,7 @@ public void testValidateUpdateRequest_validWithReplaceUpdateTypeAndRecordTableNa UpdateRequest request = UpdateRequest.builder() .tableName("table1") .records(Collections.singletonList(record)) - .updateType("REPLACE") + .updateType(UpdateType.REPLACE) .build(); try { Validations.validateUpdateRequest(request); diff --git a/flowvault/src/test/java/com/skyflow/vault/data/RequestResponseWrapperTests.java b/flowvault/src/test/java/com/skyflow/vault/data/RequestResponseWrapperTests.java index e7e35cc6..47d6df37 100644 --- a/flowvault/src/test/java/com/skyflow/vault/data/RequestResponseWrapperTests.java +++ b/flowvault/src/test/java/com/skyflow/vault/data/RequestResponseWrapperTests.java @@ -188,7 +188,7 @@ public void testDetokenizeRequest_defaultsAreNull() { @Test public void testDetokenizeResponseRecord_gettersReturnConstructorValues() { - DetokenizeMetadata metadata = new DetokenizeMetadata("skyflow-id-1", "table1"); + DetokenizeResponseRecordMetadata metadata = new DetokenizeResponseRecordMetadata("skyflow-id-1", "table1"); DetokenizeResponseRecord response = new DetokenizeResponseRecord( "tok-1", "secret-value", "group1", metadata, 200, null); diff --git a/flowvault/src/test/java/com/skyflow/vault/data/ResponseComponentTests.java b/flowvault/src/test/java/com/skyflow/vault/data/ResponseComponentTests.java index 39ad256f..3993c8f6 100644 --- a/flowvault/src/test/java/com/skyflow/vault/data/ResponseComponentTests.java +++ b/flowvault/src/test/java/com/skyflow/vault/data/ResponseComponentTests.java @@ -14,7 +14,7 @@ * constructor logic or toString() serialization: {@link Token}, * {@link TokenizeResponseRecord}, {@link BulkTokenizeResponseRecord}, {@link TokenizeSummary}, * {@link DeleteTokensRecord}, {@link BulkDeleteTokensResponseRecord}, - * {@link DeleteTokensSummary}, {@link DetokenizeSummary}, {@link DetokenizeMetadata}, + * {@link DeleteTokensSummary}, {@link DetokenizeSummary}, {@link DetokenizeResponseRecordMetadata}, * {@link ErrorRecord} and {@link DetokenizeResponseObject}. */ public class ResponseComponentTests { @@ -571,7 +571,7 @@ public void testErrorRecord_toStringNotNull() { @Test public void testBulkDetokenizeResponseRecord_gettersReturnConstructorValues() { - DetokenizeMetadata metadata = new DetokenizeMetadata("skyflow-id-1", "table1"); + DetokenizeResponseRecordMetadata metadata = new DetokenizeResponseRecordMetadata("skyflow-id-1", "table1"); BulkDetokenizeResponseRecord record = new BulkDetokenizeResponseRecord( 4, "tok-1", "secret-value", "group1", metadata, 200, null, null); @@ -615,11 +615,11 @@ public void testBulkDetokenizeResponseRecord_toStringSerializesNulls() { Assert.assertTrue(json.contains("\"error\":null")); } - // ── DetokenizeMetadata ──────────────────────────────────────────────────── + // ── DetokenizeResponseRecordMetadata ──────────────────────────────────────────────────── @Test public void testDetokenizeMetadata_gettersReturnConstructorValues() { - DetokenizeMetadata metadata = new DetokenizeMetadata("skyflow-id-1", "table1"); + DetokenizeResponseRecordMetadata metadata = new DetokenizeResponseRecordMetadata("skyflow-id-1", "table1"); Assert.assertEquals("skyflow-id-1", metadata.getSkyflowId()); Assert.assertEquals("table1", metadata.getTableName()); @@ -627,7 +627,7 @@ public void testDetokenizeMetadata_gettersReturnConstructorValues() { @Test public void testDetokenizeMetadata_toStringSerializesFields() { - String json = new DetokenizeMetadata("skyflow-id-1", "table1").toString(); + String json = new DetokenizeResponseRecordMetadata("skyflow-id-1", "table1").toString(); Assert.assertTrue(json.contains("\"skyflowId\":\"skyflow-id-1\"")); Assert.assertTrue(json.contains("\"tableName\":\"table1\"")); @@ -635,7 +635,7 @@ public void testDetokenizeMetadata_toStringSerializesFields() { @Test public void testParseMetadata_returnsNullWhenRawMetadataIsNull() { - Assert.assertNull(DetokenizeMetadata.parseMetadata(null)); + Assert.assertNull(DetokenizeResponseRecordMetadata.parseMetadata(null)); } @Test @@ -646,7 +646,7 @@ public void testParseMetadata_parsesTheCamelCaseWireShape() { raw.put("skyflowId", "skyflow-id-1"); raw.put("table", "table1"); - DetokenizeMetadata metadata = DetokenizeMetadata.parseMetadata(raw); + DetokenizeResponseRecordMetadata metadata = DetokenizeResponseRecordMetadata.parseMetadata(raw); Assert.assertEquals("skyflow-id-1", metadata.getSkyflowId()); Assert.assertEquals("table1", metadata.getTableName()); @@ -661,7 +661,7 @@ public void testParseMetadata_prefersAnAlreadyCamelCasedTableNameKeyOverTable() raw.put("tableName", "table1"); raw.put("table", "should-be-ignored"); - DetokenizeMetadata metadata = DetokenizeMetadata.parseMetadata(raw); + DetokenizeResponseRecordMetadata metadata = DetokenizeResponseRecordMetadata.parseMetadata(raw); Assert.assertEquals("table1", metadata.getTableName()); } @@ -674,7 +674,7 @@ public void testParseMetadata_parsesTheLiteralProtoWireShape() { raw.put("skyflowID", "skyflow-id-1"); raw.put("table", "table1"); - DetokenizeMetadata metadata = DetokenizeMetadata.parseMetadata(raw); + DetokenizeResponseRecordMetadata metadata = DetokenizeResponseRecordMetadata.parseMetadata(raw); Assert.assertEquals("skyflow-id-1", metadata.getSkyflowId()); Assert.assertEquals("table1", metadata.getTableName()); @@ -682,7 +682,7 @@ public void testParseMetadata_parsesTheLiteralProtoWireShape() { @Test public void testParseMetadata_missingKeysParseAsNull() { - DetokenizeMetadata metadata = DetokenizeMetadata.parseMetadata(new HashMap<>()); + DetokenizeResponseRecordMetadata metadata = DetokenizeResponseRecordMetadata.parseMetadata(new HashMap<>()); Assert.assertNull(metadata.getSkyflowId()); Assert.assertNull(metadata.getTableName()); From c57086d0b51685f8efd0bc3be56750d20d999b38 Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Wed, 9 Sep 2026 16:41:51 +0530 Subject: [PATCH 5/6] SK-3131 fix the tests --- .../skyflow-flowvault-java.baseline.jar | Bin 466751 -> 505803 bytes .../utils/validations/ValidationsTests.java | 43 ++++++------------ 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/flowvault/api-report/skyflow-flowvault-java.baseline.jar b/flowvault/api-report/skyflow-flowvault-java.baseline.jar index 1294715f6ed503635d12e0d5584808b7a14690c5..591acef4c18b1580c41a83633a8721614772da41 100644 GIT binary patch delta 223704 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�^_aC(Mf|HrGhYsEOn=yP>ZykKhNu2*<_AEMg;n>BW+NNpBlI+)B=L+OK= zl)S68RQ(A|)ev6xu6I~I%Mk@s>cTwIR>&1p;|CA?h{}%huB~Eqn zN%6SHpqhUIH~ZW`cbia~3fet{(k23UU9vl-2??Ez~9{Nug#Nrtz#)16A+JXjNe?=BV46aW`PhYu@~CN!HThSMVHHw zvk-eLD4vn59K3B43C;7@L2ZuAURhojhvgQbB4a05e{F4RF!4Ig8yHy9yD1cM!b~yF9NQF_4lpeQRFORO1*6ByY`7S`2_v z|B|La6=2Jqh))4#KzZ>-KygLRCQMXYt@BC_fdOyehrN+m`H8^sB$6wP>r_C80-0L< zp$yVCe5R#!n_7x8_(~Bd7T*OF8RV!$S&|v}z}e-)F?t53OCpmIlmSd;Tmzb@Mv1Y- zVe6qoIK$cy40hQRaD*&aq^f@C%^DzllK%u9Y zG@jD~ORvfZ#eyZUG1F(Lo9%!aqeQ4U0J7+&9kWk5{93~I06K3Att3N@1~lta)+Ef0 zO2D>BTgawdnEV;eaFm(0u=DGs@H1fCum0s3(mYV3^cm;fM@n8eE$`uneFS*Qh=z8X zz~OkV1GAr3KJrh)DZu_ZIhu_LzL2R0P2}Xj%+j*B*?*)!t@2z8hc$L8Vr ze%wkRNfG_)M5&;ZZ*YEwyC=y)#ey=)hX3@g*IK|xN>Z+HPPL+_>;6w4WGmPTH7XUx z6o~CiKD6eR_d%C$fiBN}$cu2Ic`|J&4`StY+$0aV(aM+}N}42v;w_l7r=Q_3ZE+6F zp~l#?a@j*@rLcWwI5V9jSp`JD8!Qk_8lDPjP+>9~^KR0BKB&MjnD*?)yQf|P9+^U) zU}dy)CR1XiIv~+$B%vaxAWif}hw0VIcpX|XTEIw@(ND0H*^+?kuy8(tw6XOZ93z6u zTS;o89}diHovaSh9)!}0AXY}G(}-yp;o3l=!f8&XKyY@%&do_`zjKnL&q2_fA!zIz zs6`8y;V8tBDXfD^-$=Clox_%VnkWz^Sir;%2Rggf zzu5^P{stiq6iI}CrA`qSs)OPzm?O-0qpjuizz$8YgT2RIGo5BJj?qVr_Dn`hticA^ z6hgt19?xE7(fV_%@gEIlKZ&^+`4uY#5<7}p-F-?_E7F8l{VDH2&3J@YU zn5%4Y;dwLgkAr= zety|1;L$;rR!n8SpB2%7_i;v0L_REkwGj;uYaz{zemwkF6O`NU6bQo06}Rw3ggQ!9 zW13$5vQs(uIB5xZ%ud$4-9k2c$qM;FcQw+gHsM7$M!Y|0cr6i8cy#3xM+tH z)AEP)ir8@pHV6RUOvMBsz8goW-;2A`fq)ur&Y)7vIr7LTh>6{+5kOmRAtnJ#P)Bhi zDIMbZ{|YYk%!itlhxQ!L^8AsFh)EN*dogwquCw9(?;GGKs#8ZoVho$hQDlZ3vJYlF z%^L+~s1Fj+w271C$nojEvZbgkgwm9n;>`d^C>%p5b)qd`S!s1VWJey31=%mc_V_Ri z5O*u`5O8S2+25N`dkCc=wSE*K1|hrkOfY$b6z~iI>mJ*M0piNc@isLQznQBq?0Qw0pk3p zC>sSWa9$f&$FW#v$BS643AR)1tg0h4fD6Ag0GT8yv}y@w45|;O)Cjh!{6(A{V6Xmy zJ(Wzbk*Fz*F+Z@@<+T2PHkO110=W^4T$L%7Ukw3!@E5s1(iyCWz=pljliabrt-oMP zG8ydK&G5qAJA#=HA(0T{fDMEegfe|8RpQI~mjhn7ft=rekuw|7a<(dSD2M*1{so1D zWKI9mEyGeqy+2YN3WmCT18T=#maB2F1gK z!4f%pQ!*O;jjGxk`NSJ_dqV-w76U3GdmrXqg5)p=fYNiuB5XC!wM$#{H!=l`JSX2^73I)o$m>N4~^o0oN7r;5#W^<0F1AR08XS9 zT29pHT0m0wKrOI0@!_{bSOZiS!K~UA)9ZhG1(|)O3~M6G^fz}=Oe|$Z>|GTL%b7_R zDvhOV$N;{?CMEe8>f{fO+Ap!^9+Vl~2kAcpf}vu>J|h?w^a_WGV5){M4CvPn1=RT7{`3ETVUtYqrW9n#zia61f0a>~q=ua=W z3;W14)$4)PET@u@vjfLeUyhN}8bjF-IqUyjYxD&U zazE_pZ^{K_25THkX%Q?|Bbatzx!8vr$YAmBr2mqz55Bvn-T^-!j_7}?7AeMOfV#(l zt($VxkWLn*XSxoa)`I<_d>sNpMmeP%?g};*4NBLO{dl|4x zDa|CqZs;8hn*e&!i~F9ldLUfap=AsfGhRYs9*rHsvRrMJ_M|1Nomz0A<0!nbtz#(;lQrWO4Y*68JK{SW#MEF*Xm)NvSIePETfM?j@iJ|pJm z5lVxobn_T(Tn(!5OJ zOq*9=6MH)r%25wCzjiEqLNS9MTMgGbuz9J~V4m7e#=M4VSOsuI&i}bZZX%RdHjWBQ z#Jehj^+Gi#n4mVEfR0gDgAy_+T~zyp$48u#Od9k~0_kHdO-eonr?nGL!Z9jV9C#c^ z4abCBN+|z0JYHeaVNBwjph=Vdg>Tk-eVj4(2NvjkQjAN62dCviTechnx>g-c_c{T$ zlG=|ktO?l6kkdk`S|YAoEH(QKn~RI8r6_&;+MaI&5xKrL^;#N4WF7?8krk0A=V(Uo z&(s(P?}$cqehxsp0cy{J);9@t7!z0j#P*h5phqEg@cwBLt#9?ERLfc&aSG{mr?jkioO+ql)+M>p7d6WE7EAsQJ^iY zW#+@+n2c`^KtvcgV9Ih}h5(y-lBa}PfPu)dKMGY;(89=>e3UXJRn((!`RQVi(+gE( z#*$Nhn_!&@%spb*J-#g*&Mxl1B+S0chy-Xs(cl6h_Xt`gQFso#hEUujHn};P z96V}@CJII;?}Z2_aggsm$_$n6rA$bm^p|WuZ2(q1fEL7lSMZRBp#els&OYExkf$Za z?WZW#@`Ei2EC)or7y{*&Q)Wbk%W_k`|nSn+9EjdUtvUZy(yyfWU%U`i^i@;AzR=^Mxhx>D5Bhv7rZvcbMFuR z^($V1tEa$Kc7OJ>qlFk1!M!iR)dxPdEHxKwIO0f?g_j;kT5n=fvkOhiwcskF(Mt5B z`+TnC-z2yJ<*MC32dmv^cxMhA8Q{!^6oZh6Vf5&?A(RbP`mhiNr~A@_U=!UBjQyO4 zpM{uq!-FJyRvP)!P^}y|1;J9c=YfEsLG4GDT7aT`y!N_}44m;WJ=@FNA2Y z-}p`nMqBbJ`s;8W;P~5x(o({$i5n>8CN97#}( z?c44g1=JPr+?VCb`4n1>;64JW9fhr+swb5;7~)5#@q|BT##~4t7v99OW6zm~>va@S zb-b)GB#H|KgN1s>HB*A3@5=#yDm(xyzq!F+yVQ-O!tfk?# z*>J@ZMaW-t5IP!UzWQyi)hQp>>L3^#-45S1RNgtIQVG`Daxh@t7xeU;pZ_?z7012`S z=KQo(NFHc}J;BKVN5}`31hG#xnpZ|S&_{!~9y$@FC;1Eyda|y$VJU7|ey^T^gT)Y! zabhyyLT3q5DWQg#4p`5djKd^=a27==~k+r}&5UoYYTKl{{hKqKw*?rpI5Q_h3S zDPKyMR^_YrB2Wt$>S1cLbCBJPnUaXo%srsg<}x1eM7z#$b@0IgDN?iff#0wGr&7$o4xz9&O~aoymJo z)vE(jA@BAO?g=a%+xyxA8le+Sqvr_EMvJx#-Lx zY6RIIVQqprp~6y~@|ug@S5t-rCjQ4Mjajg2fZeE}90-j5Gja4^i8E!vy4Bzk%}Smb z+FirsQ2bl3jab++ZR7+JN%+OT5YvE#lCVd*wUiyvEB-x%#w?V+JC7VL;BU;-C0Oxq ziqm6Z`vx*t_{u_Av_zktHTnl2W*Y|c@EL(Ng0GKLLGlNg&8+zj<*mlh=)S{Tv1ZA- zI*c$3AS$o<&s^UDWG^T=a~90Ym%!A~w*zpxfO`NY3lhRUNl6-xlq=yL`j84Hn*kM2 z-!){^6lGN~6S7XVMdkx2;)7jmo1_D=fPrLg?83Zb#^3=n{H=9rWHbQeb2>uss5*kL ztW%?p6~Hbu214(!8lck_!4dh@OJt zUys6GosTBcaKYE!!LL1yqaQxSe`V8z6~~HH9x8gkHO0p% Date: Wed, 9 Sep 2026 17:21:30 +0530 Subject: [PATCH 6/6] SK-3131 update the concurency limit and max data size limits --- .../java/com/skyflow/errors/ErrorMessage.java | 8 +++---- .../main/java/com/skyflow/logs/ErrorLogs.java | 8 +++---- .../main/java/com/skyflow/VaultClient.java | 2 +- .../java/com/skyflow/utils/Constants.java | 10 ++++----- .../utils/validations/ValidationsTests.java | 21 ++++++++++--------- 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/common/src/main/java/com/skyflow/errors/ErrorMessage.java b/common/src/main/java/com/skyflow/errors/ErrorMessage.java index b344dd69..1e408cca 100644 --- a/common/src/main/java/com/skyflow/errors/ErrorMessage.java +++ b/common/src/main/java/com/skyflow/errors/ErrorMessage.java @@ -90,13 +90,13 @@ public enum ErrorMessage { InsufficientTokensPassedForTokenModeEnableStrict("%s0 Validation error. 'tokenMode' is set to 'ENABLE_STRICT', but some fields are missing tokens. Specify tokens for all fields."), BatchInsertPartialSuccess("%s0 Insert operation completed with partial success."), BatchInsertFailure("%s0 Insert operation failed."), - RecordSizeExceedError("%s0 Maximum number of records exceeded. The limit is 10000."), + RecordSizeExceedError("%s0 Maximum number of records exceeded. The limit is 100000."), // Detokenize InvalidDetokenizeData("%s0 Validation error. Invalid detokenize data. Specify valid detokenize data."), EmptyDetokenizeData("%s0 Validation error. Invalid data tokens. Specify at least one data token."), EmptyTokenInDetokenizeData("%s0 Validation error. Invalid data tokens. Specify a valid data token."), - TokensSizeExceedError("%s0 Maximum number of tokens exceeded. The limit is 10000."), + TokensSizeExceedError("%s0 Maximum number of tokens exceeded. The limit is 100000."), // Delete DeleteRequestNull("%s0 Validation error. DeleteRequest object is null. Specify a valid DeleteRequest object."), @@ -105,7 +105,7 @@ public enum ErrorMessage { DeleteTokensRequestNull("%s0 Validation error. DeleteTokensRequest object is null. Specify a valid DeleteTokensRequest object."), EmptyDeleteTokensData("%s0 Validation error. Tokens list is empty. Specify at least one token to delete."), EmptyTokenInDeleteTokensData("%s0 Validation error. Invalid token in delete tokens request. Specify a valid token."), - DeleteTokensSizeExceedError("%s0 Maximum number of tokens exceeded. The limit is 10000."), + DeleteTokensSizeExceedError("%s0 Maximum number of tokens exceeded. The limit is 100000."), // Get GetRequestNull("%s0 Validation error. GetRequest object is null. Specify a valid GetRequest object."), @@ -165,7 +165,7 @@ public enum ErrorMessage { EmptyValueInTokenizeRecord("%s0 Validation error. Value in TokenizeRecord is null or empty. Specify a valid value."), EmptyTokenGroupNamesInTokenizeRecord("%s0 Validation error. TokenGroupNames in TokenizeRecord is null or empty. Specify at least one token group name."), EmptyTokenGroupNameInTokenizeRecord("%s0 Validation error. Token group name in TokenizeRecord is null or empty. Specify a valid token group name."), - TokenizeDataSizeExceedError("%s0 Maximum number of tokenize records exceeded. The limit is 10000."), + TokenizeDataSizeExceedError("%s0 Maximum number of tokenize records exceeded. The limit is 100000."), MissingIndexInBulkTokenizeRecord("%s0 Validation error. Index in BulkTokenizeRequestRecord is null. Specify an index for every record."), DuplicateIndexInBulkTokenizeRecord("%s0 Validation error. Duplicate index in BulkTokenizeRequestRecord. Specify a unique index for every record."), diff --git a/common/src/main/java/com/skyflow/logs/ErrorLogs.java b/common/src/main/java/com/skyflow/logs/ErrorLogs.java index 8f1955e8..418d08bc 100644 --- a/common/src/main/java/com/skyflow/logs/ErrorLogs.java +++ b/common/src/main/java/com/skyflow/logs/ErrorLogs.java @@ -62,8 +62,8 @@ public enum ErrorLogs { RECORDS_IS_REQUIRED("Invalid %s1 request. Records are required."), EMPTY_RECORDS("Invalid %s1 request. Records can not be empty."), INVALID_RECORD("Invalid %s1 request. Invalid record. Specify a valid record."), - RECORD_SIZE_EXCEED("Maximum number of records exceeded. The limit is 10000."), - TOKENS_SIZE_EXCEED("Maximum number of tokens exceeded. The limit is 10000."), + RECORD_SIZE_EXCEED("Maximum number of records exceeded. The limit is 100000."), + TOKENS_SIZE_EXCEED("Maximum number of tokens exceeded. The limit is 100000."), EMPTY_OR_NULL_VALUE_IN_VALUES("Invalid %s1 request. Value can not be null or empty in values for key \"%s2\"."), EMPTY_OR_NULL_KEY_IN_VALUES("Invalid %s1 request. Key can not be null or empty in values"), NULL_VALUE_ENTRY_IN_VALUES("Invalid %s1 request. Value entry in 'values' can not be null at index %s2."), @@ -144,7 +144,7 @@ public enum ErrorLogs { EMPTY_VALUE_IN_TOKENIZE_RECORD("Invalid %s1 request. Value in TokenizeRecord can not be null or empty."), EMPTY_TOKEN_GROUP_NAMES_IN_TOKENIZE_RECORD("Invalid %s1 request. TokenGroupNames in TokenizeRecord can not be null or empty."), EMPTY_TOKEN_GROUP_NAME_IN_TOKENIZE_RECORD("Invalid %s1 request. Token group name in TokenizeRecord can not be null or empty at index %s2."), - TOKENIZE_DATA_SIZE_EXCEED("Maximum number of tokenize records exceeded. The limit is 10000."), + TOKENIZE_DATA_SIZE_EXCEED("Maximum number of tokenize records exceeded. The limit is 100000."), MISSING_INDEX_IN_BULK_TOKENIZE_RECORD("Invalid %s1 request. Index in BulkTokenizeRequestRecord can not be null at position %s2."), DUPLICATE_INDEX_IN_BULK_TOKENIZE_RECORD("Invalid %s1 request. Duplicate index %s2 in BulkTokenizeRequestRecord."), DELETE_REQUEST_NULL("Invalid %s1 request. Delete request can not be null."), @@ -152,7 +152,7 @@ public enum ErrorLogs { DELETE_TOKENS_REQUEST_NULL("Invalid %s1 request. DeleteTokens request can not be null."), EMPTY_DELETE_TOKENS_DATA("Invalid %s1 request. Delete tokens data can not be empty."), EMPTY_OR_NULL_TOKEN_IN_DELETE_TOKENS_DATA("Invalid %s1 request. Token can not be null or empty in delete tokens data at index %s2."), - DELETE_TOKENS_SIZE_EXCEED("Maximum number of tokens exceeded. The limit is 10000."), + DELETE_TOKENS_SIZE_EXCEED("Maximum number of tokens exceeded. The limit is 100000."), DELETE_TOKENS_REQUEST_REJECTED("DeleteTokens request resulted in failure."), // invoke connection interface diff --git a/flowvault/src/main/java/com/skyflow/VaultClient.java b/flowvault/src/main/java/com/skyflow/VaultClient.java index a047e156..68d7c7ae 100644 --- a/flowvault/src/main/java/com/skyflow/VaultClient.java +++ b/flowvault/src/main/java/com/skyflow/VaultClient.java @@ -165,7 +165,7 @@ protected void updateExecutorInHTTP() throws SkyflowException { // mode from this SDK is a SkyflowException, never a raw one. try { OkHttpClient.Builder httpBuilder = new OkHttpClient.Builder() - .connectionPool(new ConnectionPool(10, 1, TimeUnit.MINUTES)) + .connectionPool(new ConnectionPool(100, 1, TimeUnit.MINUTES)) // Overall ceiling; bounds the whole call including retries. .callTimeout(timeoutSeconds, TimeUnit.SECONDS) // OUTER: retries. Must wrap the auth interceptor so each attempt re-reads the diff --git a/flowvault/src/main/java/com/skyflow/utils/Constants.java b/flowvault/src/main/java/com/skyflow/utils/Constants.java index bf7da046..3c82cc4b 100644 --- a/flowvault/src/main/java/com/skyflow/utils/Constants.java +++ b/flowvault/src/main/java/com/skyflow/utils/Constants.java @@ -10,23 +10,23 @@ public final class Constants extends BaseConstants { public static final String VAULT_DOMAIN = ".skyvault."; public static final String SDK_PREFIX; public static final String SDK_METRIC_NAME_VERSION_PREFIX = "skyflow-flowvault-java@"; - public static final Integer MAX_BULK_DATA_SIZE = 10000; + public static final Integer MAX_BULK_DATA_SIZE = 100000; public static final Integer INSERT_BATCH_SIZE = 50; public static final Integer MAX_INSERT_BATCH_SIZE = 1000; public static final Integer INSERT_CONCURRENCY_LIMIT = 1; - public static final Integer MAX_INSERT_CONCURRENCY_LIMIT = 10; + public static final Integer MAX_INSERT_CONCURRENCY_LIMIT = 100; public static final Integer DETOKENIZE_BATCH_SIZE = 50; public static final Integer DETOKENIZE_CONCURRENCY_LIMIT = 1; public static final Integer MAX_DETOKENIZE_BATCH_SIZE = 1000; - public static final Integer MAX_DETOKENIZE_CONCURRENCY_LIMIT = 10; + public static final Integer MAX_DETOKENIZE_CONCURRENCY_LIMIT = 100; public static final Integer DELETE_TOKENS_BATCH_SIZE = 50; public static final Integer DELETE_TOKENS_CONCURRENCY_LIMIT = 1; public static final Integer MAX_DELETE_TOKENS_BATCH_SIZE = 1000; - public static final Integer MAX_DELETE_TOKENS_CONCURRENCY_LIMIT = 10; + public static final Integer MAX_DELETE_TOKENS_CONCURRENCY_LIMIT = 100; public static final Integer TOKENIZE_BATCH_SIZE = 50; public static final Integer TOKENIZE_CONCURRENCY_LIMIT = 1; public static final Integer MAX_TOKENIZE_BATCH_SIZE = 1000; - public static final Integer MAX_TOKENIZE_CONCURRENCY_LIMIT = 10; + public static final Integer MAX_TOKENIZE_CONCURRENCY_LIMIT = 100; public static final String DEFAULT_SDK_VERSION = "1.0.0"; public static final String CONTEXT_KEY_REGEX = "^[a-zA-Z0-9_]+$"; diff --git a/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java b/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java index 77c58eb3..e5245db2 100644 --- a/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java +++ b/flowvault/src/test/java/com/skyflow/utils/validations/ValidationsTests.java @@ -17,6 +17,7 @@ import com.skyflow.enums.UpdateType; import com.skyflow.errors.ErrorMessage; import com.skyflow.errors.SkyflowException; +import com.skyflow.utils.Constants; import com.skyflow.vault.data.BulkDeleteTokensRequest; import com.skyflow.vault.data.BulkDetokenizeRequest; import com.skyflow.vault.data.BulkInsertRequest; @@ -988,13 +989,13 @@ public void testValidateBulkInsertRequest_validRequestWithUpsertAndTokens() { } @Test - public void testValidateBulkInsertRequest_over10000RecordsThrows() { + public void testValidateBulkInsertRequest_overMaxBulkDataSizeRecordsThrows() { // Constants.MAX_BULK_DATA_SIZE is a hard ceiling; batching splits the payload but // does not lift it. Map data = new HashMap<>(); data.put("name", "john"); ArrayList records = new ArrayList<>(); - for (int i = 0; i < 10001; i++) { + for (int i = 0; i < Constants.MAX_BULK_DATA_SIZE + 1; i++) { records.add(BulkInsertRequestRecord.builder().tableName("table1").data(data).build()); } BulkInsertRequest request = BulkInsertRequest.builder().records(records).build(); @@ -1007,11 +1008,11 @@ public void testValidateBulkInsertRequest_over10000RecordsThrows() { } @Test - public void testValidateBulkInsertRequest_exactly10000RecordsIsValid() { + public void testValidateBulkInsertRequest_exactlyMaxBulkDataSizeRecordsIsValid() { Map data = new HashMap<>(); data.put("name", "john"); ArrayList records = new ArrayList<>(); - for (int i = 0; i < 10000; i++) { + for (int i = 0; i < Constants.MAX_BULK_DATA_SIZE; i++) { records.add(BulkInsertRequestRecord.builder().tableName("table1").data(data).build()); } BulkInsertRequest request = BulkInsertRequest.builder().records(records).build(); @@ -1023,9 +1024,9 @@ public void testValidateBulkInsertRequest_exactly10000RecordsIsValid() { } @Test - public void testValidateBulkDetokenizeRequest_over10000TokensThrows() { + public void testValidateBulkDetokenizeRequest_overMaxBulkDataSizeTokensThrows() { List tokens = new ArrayList<>(); - for (int i = 0; i < 10001; i++) { + for (int i = 0; i < Constants.MAX_BULK_DATA_SIZE + 1; i++) { tokens.add("token-" + i); } BulkDetokenizeRequest request = BulkDetokenizeRequest.builder().tokens(tokens).build(); @@ -1038,9 +1039,9 @@ public void testValidateBulkDetokenizeRequest_over10000TokensThrows() { } @Test - public void testValidateBulkDeleteTokensRequest_over10000TokensThrows() { + public void testValidateBulkDeleteTokensRequest_overMaxBulkDataSizeTokensThrows() { List tokens = new ArrayList<>(); - for (int i = 0; i < 10001; i++) { + for (int i = 0; i < Constants.MAX_BULK_DATA_SIZE + 1; i++) { tokens.add("token-" + i); } BulkDeleteTokensRequest request = BulkDeleteTokensRequest.builder().tokens(tokens).build(); @@ -1053,9 +1054,9 @@ public void testValidateBulkDeleteTokensRequest_over10000TokensThrows() { } @Test - public void testValidateBulkTokenizeRequest_over10000RecordsThrows() { + public void testValidateBulkTokenizeRequest_overMaxBulkDataSizeRecordsThrows() { ArrayList records = new ArrayList<>(); - for (int i = 0; i < 10001; i++) { + for (int i = 0; i < Constants.MAX_BULK_DATA_SIZE + 1; i++) { records.add(BulkTokenizeRequestRecord.builder() .value("value-" + i) .tokenGroupNames(Collections.singletonList("group"))