feat(ingest/okta): option to only ingest users from filtered groups (#9738)

This commit is contained in:
Aseem Bansal 2024-01-30 12:49:07 +05:30 committed by GitHub
parent d1604b39cc
commit 8559ebae20
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -140,6 +140,10 @@ class OktaConfig(StatefulIngestionConfigBase, ConfigModel):
default=None, default=None,
description="Okta search expression (not regex) for ingesting groups. Only one of `okta_groups_filter` and `okta_groups_search` can be set. See (https://developer.okta.com/docs/reference/api/groups/#list-groups-with-search) for more info.", description="Okta search expression (not regex) for ingesting groups. Only one of `okta_groups_filter` and `okta_groups_search` can be set. See (https://developer.okta.com/docs/reference/api/groups/#list-groups-with-search) for more info.",
) )
skip_users_without_a_group: bool = Field(
default=False,
description="Whether to only ingest users that are members of groups. If this is set to False, all users will be ingested regardless of group membership.",
)
# Configuration for stateful ingestion # Configuration for stateful ingestion
stateful_ingestion: Optional[StatefulStaleMetadataRemovalConfig] = Field( stateful_ingestion: Optional[StatefulStaleMetadataRemovalConfig] = Field(
@ -387,6 +391,15 @@ class OktaSource(StatefulIngestionSourceBase):
datahub_corp_user_snapshot.urn datahub_corp_user_snapshot.urn
] ]
) )
if (
self.config.skip_users_without_a_group
and len(datahub_group_membership.groups) == 0
):
logger.debug(
f"Filtering {datahub_corp_user_snapshot.urn} due to group filter"
)
self.report.report_filtered(datahub_corp_user_snapshot.urn)
continue
assert datahub_group_membership is not None assert datahub_group_membership is not None
datahub_corp_user_snapshot.aspects.append(datahub_group_membership) datahub_corp_user_snapshot.aspects.append(datahub_group_membership)
mce = MetadataChangeEvent(proposedSnapshot=datahub_corp_user_snapshot) mce = MetadataChangeEvent(proposedSnapshot=datahub_corp_user_snapshot)