Skip to content

Commit f9dd8d3

Browse files
Hotfix: ReBAC -> DatasetSearchUpdater, skip when dataset has not been indexed yet
1 parent 020d04b commit f9dd8d3

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

src/domain/datasets/services/src/search/dataset_search_updater.rs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,27 @@ impl DatasetSearchUpdater {
243243
dataset_id: &odf::DatasetID,
244244
properties: &kamu_auth_rebac::DatasetProperties,
245245
) -> Result<(), InternalError> {
246+
// Find existing document
247+
let maybe_existing_document = self
248+
.search_service
249+
.find_document_by_id(
250+
SearchContext::unrestricted(catalog),
251+
dataset_search_schema::SCHEMA_NAME,
252+
&dataset_id.to_string(),
253+
)
254+
.await
255+
.int_err()?;
256+
257+
// Skip if document is not present.
258+
// ReBAC properties would be taken into account during first set_ref()
259+
if maybe_existing_document.is_none() {
260+
tracing::info!(
261+
dataset_id = %dataset_id,
262+
"Dataset search document not found during ReBAC properties update, skipping",
263+
);
264+
return Ok(());
265+
}
266+
246267
// Prepare indexing helper
247268
let indexing_helper = DatasetIndexingHelper {
248269
embeddings_provider: self.embeddings_provider.as_ref(),
@@ -290,6 +311,27 @@ impl DatasetSearchUpdater {
290311
dataset_id: &odf::DatasetID,
291312
authorized_accounts: &[kamu_auth_rebac::AuthorizedAccount],
292313
) -> Result<(), InternalError> {
314+
// Find existing document
315+
let maybe_existing_document = self
316+
.search_service
317+
.find_document_by_id(
318+
SearchContext::unrestricted(catalog),
319+
dataset_search_schema::SCHEMA_NAME,
320+
&dataset_id.to_string(),
321+
)
322+
.await
323+
.int_err()?;
324+
325+
// Skip if document is not present.
326+
// ReBAC properties would be taken into account during first set_ref()
327+
if maybe_existing_document.is_none() {
328+
tracing::info!(
329+
dataset_id = %dataset_id,
330+
"Dataset search document not found during ReBAC properties update, skipping",
331+
);
332+
return Ok(());
333+
}
334+
293335
// Prepare indexing helper
294336
let indexing_helper = DatasetIndexingHelper {
295337
embeddings_provider: self.embeddings_provider.as_ref(),

0 commit comments

Comments
 (0)