FetchUdmSearchView parity mapping
This guide details the request and response mapping specifications and property parity analysis for migrating from the legacy Backstory Search API (FetchUdmSearchView) to the modern Chronicle API (LegacyFetchUdmSearchView).
Protocol and mapping overview
| Feature | Legacy API (FetchUdmSearchView) |
Modern Chronicle API (LegacyFetchUdmSearchView) |
|---|---|---|
| HTTP method | POST |
POST |
| Permissions | Partner token or legacy API keys | chronicle.googleapis.com/legacies.legacyFetchUdmSearchView |
Request payload field-by-field parity
The modern Chronicle API LegacyFetchUdmSearchViewRequest scopes searches under target parent instances and enriches query capabilities.
Legacy field (FetchUdmSearchViewRequest) |
Modern field (LegacyFetchUdmSearchViewRequest) |
Field type | Parity and migration notes |
|---|---|---|---|
| — | instance (in HTTP path) |
string |
Google Cloud scoping context: Scopes the search query under target instance environments: projects/{project}/locations/{location}/instances/{instance}. |
baseline_query |
baseline_query |
string |
Parity mapped: Boolean structured query string (for example, metadata.event_type = "NETWORK_CONNECTION"). Note tag number changed from 1 to 2. Rename to baselineQuery in JSON. |
snapshot_query |
snapshot_query |
string |
Parity mapped: Query applied to filter baseline events. Note tag number changed from 2 to 3. Rename to snapshotQuery in JSON. |
baseline_time_range |
baseline_time_range |
Interval |
Parity mapped: Required time interval [start_time, end_time). Note tag number changed from 3 to 4. Rename to baselineTimeRange in JSON. |
snapshot_time_range |
snapshot_time_range |
Interval |
Parity mapped: Optional filtering interval within baseline bounds. Note tag number changed from 4 to 5. Rename to snapshotTimeRange in JSON. |
event_list |
event_list |
UdmEventListOptions |
Parity mapped: Options controlling streamed events. Note tag number changed from 5 to 6. Rename to eventList in JSON. |
timeline |
timeline |
EventCountTimelineOptions |
Parity mapped: Options controlling bucketed timelines. Note tag number changed from 6 to 7. |
field_aggregations |
field_aggregations |
UdmFieldAggregationsOptions |
Parity mapped: Options controlling UDM field aggregations. Note tag number changed from 7 to 8. Rename to fieldAggregations in JSON. |
case_insensitive |
case_insensitive |
bool |
Parity mapped: Case-insensitivity toggle. Note tag number changed from 10 to 13. Rename to caseInsensitive in JSON. |
max_baseline_results / aggregations |
— | — | Retired and shifted: Legacy max_baseline_results and aggregations fields are retired from the request message in favor of new options like detection_options, stats_function_parameter, and enable_poc_fast_path. |
| — | detection_options / stats_function_parameter / user_sql or others |
Message / string |
New parameters: Modern requests add support for detection correlation (detection_options), statistical functions (stats_function_parameter), prevalence options, and raw user SQL execution (user_sql). |
Response payload field-by-field parity
Both APIs stream back query results, with the modern response adding operation tracking and rich entity and statistical aggregations.
Legacy field (FetchUdmSearchViewResponse) |
Modern field (LegacyFetchUdmSearchViewResponse) |
Field type | Parity and migration notes |
|---|---|---|---|
| — | operation |
string |
New field: Slice tracker token. Contains the canonical resource name of the underlying LRO operation: projects/.../operations/{id}. Can be passed to StreamSearchOperation to re-attach or resume streaming. |
progress |
progress |
double |
Parity mapped: Query progress between 0.0 and 1.0. |
too_many_events |
too_many_events |
bool |
Parity mapped: Flag indicating event omission due to volume. Rename to tooManyEvents in JSON. |
complete |
complete |
bool |
Parity mapped: Flag indicating streaming completion. |
valid_baseline_query |
valid_baseline_query |
bool |
Parity mapped: Baseline query syntax validity flag. Rename to validBaselineQuery in JSON. |
baseline_events_count |
baseline_events_count |
int32 |
Parity mapped: Count of matched baseline events. Rename to baselineEventsCount in JSON. |
valid_snapshot_query |
valid_snapshot_query |
bool |
Parity mapped: Snapshot query syntax validity flag. Rename to validSnapshotQuery in JSON. |
query_validation_errors |
query_validation_errors |
repeated ErrorMessage |
Parity mapped: Array of structured syntax or parse errors. Rename to queryValidationErrors in JSON. |
runtime_errors |
runtime_errors |
repeated RuntimeError |
Parity mapped: Array of runtime query execution errors. Rename to runtimeErrors in JSON. |
filtered_events_count |
filtered_events_count |
int32 |
Parity mapped: Count of matched snapshot events. Rename to filteredEventsCount in JSON. |
events |
events |
UdmEventList |
Parity mapped: Streamed list of matched UDM events. |
timeline |
timeline |
EventCountTimeline |
Parity mapped: Streamed event count buckets. |
field_aggregations / grouped_field_aggregations |
field_aggregations / grouped_field_aggregations |
UdmFieldAggregations |
Parity mapped: Aggregated UDM field statistics. |
aggregation_results |
— | — | Retired and replaced: Replaced by richer specialized aggregation models (udm_entity_field_aggregations, datatable_aggregations, join_aggregations, and prevalence). |
| — | available_result_count / detections / prevalence or others |
int32 / Message |
New fields: Adds total un-paginated result counts (available_result_count), correlated detections (detections), statistical responses, and prevalence analysis. |
Key differences
- Google Cloud project scoping integration:
- Scoped natively under parent project instance folder bindings (
instancepath parameter).
- Scoped natively under parent project instance folder bindings (
- Operation resource tracking:
- The modern response includes
operation(projects/.../operations/{id}), allowing clients to reconnect to in-progress searches or fetch stored results usingStreamSearchOperation.
- The modern response includes
- Proto tag shifts and parameter evolution:
- Within protobuf formatting, tag numbers for core query parameters shifted by +1 (for example,
baseline_queryshifted from tag 1 to 2;baseline_time_rangefrom tag 3 to 4). - Legacy
max_baseline_resultsandaggregationsare retired, replaced by advanced entity aggregations, SQL query modes (user_sql), and statistical functions.
- Within protobuf formatting, tag numbers for core query parameters shifted by +1 (for example,
- IAM permissions:
- Request validation maps to standard Cloud IAM permission validation check (
chronicle.googleapis.com/legacies.legacyFetchUdmSearchView).
- Request validation maps to standard Cloud IAM permission validation check (