From bff06a3c6d0447a79ccf81dc85bce641d74608d2 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 29 Jul 2026 20:33:57 +0000 Subject: [PATCH] Pass export filters into CSV stream helpers Signed-off-by: Cursor Agent Co-authored-by: Bryan FRIMIN Signed-off-by: Cursor Agent --- pkg/iam/log_export_csv.go | 24 +++++++++--------------- pkg/iam/log_export_service.go | 12 ++++++++++-- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/pkg/iam/log_export_csv.go b/pkg/iam/log_export_csv.go index f471baa03..0a2846a38 100644 --- a/pkg/iam/log_export_csv.go +++ b/pkg/iam/log_export_csv.go @@ -82,17 +82,13 @@ func (s *LogExportService) streamAuditLogCSV( scope coredata.Scoper, organizationID gid.GID, organizationName string, - args *coredata.LogExportArguments, + filter *coredata.AuditLogEntryFilter, w *csv.Writer, ) error { if err := w.Write(auditLogExportCSVHeader); err != nil { return fmt.Errorf("cannot write audit log CSV header: %w", err) } - filter := coredata.NewAuditLogEntryFilter(). - WithCreatedAtGte(args.FromTime). - WithCreatedAtLt(args.ToTime) - return page.WalkAll( ctx, page.OrderBy[coredata.AuditLogEntryOrderField]{ @@ -114,7 +110,8 @@ func (s *LogExportService) streamAuditLogCSV( return logs, nil }, - func(entries []*coredata.AuditLogEntry) error { + func(pageEntries []*coredata.AuditLogEntry) error { + entries := coredata.AuditLogEntries(pageEntries) actorsByID, err := loadAuditLogActorExportInfo(ctx, conn, entries) if err != nil { return err @@ -144,17 +141,13 @@ func (s *LogExportService) streamSCIMEventCSV( scope coredata.Scoper, organizationID gid.GID, organizationName string, - args *coredata.LogExportArguments, + filter *coredata.SCIMEventFilter, w *csv.Writer, ) error { if err := w.Write(scimEventExportCSVHeader); err != nil { return fmt.Errorf("cannot write SCIM event CSV header: %w", err) } - filter := coredata.NewSCIMEventFilter(). - WithCreatedAtGte(args.FromTime). - WithCreatedAtLt(args.ToTime) - return page.WalkAll( ctx, page.OrderBy[coredata.SCIMEventOrderField]{ @@ -176,7 +169,8 @@ func (s *LogExportService) streamSCIMEventCSV( return events, nil }, - func(events []*coredata.SCIMEvent) error { + func(pageEvents []*coredata.SCIMEvent) error { + events := coredata.SCIMEvents(pageEvents) profilesByUserName, err := loadSCIMProfileExportInfo( ctx, conn, @@ -256,7 +250,7 @@ func scimEventCSVRow( func loadAuditLogActorExportInfo( ctx context.Context, conn pg.Querier, - entries []*coredata.AuditLogEntry, + entries coredata.AuditLogEntries, ) (map[gid.GID]auditLogActorExportInfo, error) { identityIDs := make([]gid.GID, 0) apiKeyIDs := make([]gid.GID, 0) @@ -309,7 +303,7 @@ func loadSCIMProfileExportInfo( conn pg.Querier, scope coredata.Scoper, organizationID gid.GID, - events []*coredata.SCIMEvent, + events coredata.SCIMEvents, ) (map[string]scimProfileExportInfo, error) { userNames := uniqueNonEmptyStrings(scimEventUserNames(events)) if len(userNames) == 0 { @@ -343,7 +337,7 @@ func loadSCIMProfileExportInfo( return result, nil } -func scimEventUserNames(events []*coredata.SCIMEvent) []string { +func scimEventUserNames(events coredata.SCIMEvents) []string { userNames := make([]string, 0, len(events)) for _, event := range events { userNames = append(userNames, event.UserName) diff --git a/pkg/iam/log_export_service.go b/pkg/iam/log_export_service.go index 2b41240ce..833404647 100644 --- a/pkg/iam/log_export_service.go +++ b/pkg/iam/log_export_service.go @@ -232,23 +232,31 @@ func (s *LogExportService) streamCSV( switch exportJob.Type { case coredata.ExportJobTypeAuditLog: + filter := coredata.NewAuditLogEntryFilter(). + WithCreatedAtGte(args.FromTime). + WithCreatedAtLt(args.ToTime) + return s.streamAuditLogCSV( ctx, conn, scope, exportJob.OrganizationID, organization.Name, - args, + filter, w, ) case coredata.ExportJobTypeSCIMEvent: + filter := coredata.NewSCIMEventFilter(). + WithCreatedAtGte(args.FromTime). + WithCreatedAtLt(args.ToTime) + return s.streamSCIMEventCSV( ctx, conn, scope, exportJob.OrganizationID, organization.Name, - args, + filter, w, ) default: