diff --git a/pkg/iam/log_export_csv.go b/pkg/iam/log_export_csv.go index 9e2df8f8e..9df1a124b 100644 --- a/pkg/iam/log_export_csv.go +++ b/pkg/iam/log_export_csv.go @@ -99,7 +99,7 @@ func (s *LogExportService) streamAuditLogCSV( filter *coredata.AuditLogEntryFilter, w *safecsv.Writer, ) error { - if err := w.WriteRow(auditLogExportCSVHeader...); err != nil { + if err := w.Write(auditLogExportCSVHeader); err != nil { return fmt.Errorf("cannot write audit log CSV header: %w", err) } @@ -153,7 +153,7 @@ func (s *LogExportService) streamSCIMEventCSV( filter *coredata.SCIMEventFilter, w *safecsv.Writer, ) error { - if err := w.WriteRow(scimEventExportCSVHeader...); err != nil { + if err := w.Write(scimEventExportCSVHeader); err != nil { return fmt.Errorf("cannot write SCIM event CSV header: %w", err) } @@ -204,7 +204,7 @@ func writeAuditLogEntryCSVRow( entry *coredata.AuditLogEntry, actor auditLogActorExportInfo, ) error { - return w.WriteRow( + return w.Write([]string{ organizationName, entry.ID.String(), entry.CreatedAt.Format(time.RFC3339), @@ -215,7 +215,7 @@ func writeAuditLogEntryCSVRow( entry.Action, entry.ResourceType, entry.ResourceID.String(), - ) + }) } func writeSCIMEventCSVRow( @@ -226,7 +226,7 @@ func writeSCIMEventCSVRow( ) error { profile := lookup.forEvent(event) - return w.WriteRow( + return w.Write([]string{ organizationName, event.ID.String(), event.CreatedAt.Format(time.RFC3339), @@ -238,7 +238,7 @@ func writeSCIMEventCSVRow( strconv.Itoa(event.StatusCode), stringPtrValue(event.ErrorMessage), event.IPAddress.String(), - ) + }) } func loadAuditLogActorExportInfo( diff --git a/pkg/safecsv/cell_test.go b/pkg/safecsv/cell_test.go index 466c44169..8d341fa11 100644 --- a/pkg/safecsv/cell_test.go +++ b/pkg/safecsv/cell_test.go @@ -50,7 +50,7 @@ func TestWriterWrite(t *testing.T) { var buf bytes.Buffer w := NewWriter(&buf) - require.NoError(t, w.WriteRow("ok", "=evil")) + require.NoError(t, w.Write([]string{"ok", "=evil"})) w.Flush() require.NoError(t, w.Error()) diff --git a/pkg/safecsv/writer.go b/pkg/safecsv/writer.go index d382861df..825156af8 100644 --- a/pkg/safecsv/writer.go +++ b/pkg/safecsv/writer.go @@ -41,18 +41,11 @@ func NewWriter(w io.Writer) *Writer { return &Writer{inner: csv.NewWriter(w)} } -// Write encodes a CSV record after sanitizing every field. Prefer WriteRow for -// literal column values at call sites. +// Write encodes a CSV record after sanitizing every field. func (w *Writer) Write(record []string) error { return w.inner.Write(SanitizeRecord(record)) } -// WriteRow encodes one CSV record from fields, sanitizing each value before -// encoding (spreadsheet formula injection mitigation). -func (w *Writer) WriteRow(fields ...string) error { - return w.inner.Write(SanitizeRecord(fields)) -} - func (w *Writer) Flush() { w.inner.Flush() }