Skip to content

Harden DuckDB queries and fix IsArchiving race condition#850

Merged
erikdarlingdata merged 1 commit intodevfrom
fix/duckdb-security-hardening
Apr 15, 2026
Merged

Harden DuckDB queries and fix IsArchiving race condition#850
erikdarlingdata merged 1 commit intodevfrom
fix/duckdb-security-hardening

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

Shared EscapeSqlPath() helper lives on DuckDbInitializer (internal static), delegated from ArchiveService.

Closes #846, closes #847, closes #849

Test plan

  • Builds with 0 warnings, 0 errors
  • Archival cycle runs successfully (triggered by collector age/size threshold)
  • Parquet compaction produces valid monthly files
  • Archive views load correctly after archival

🤖 Generated with Claude Code

…ving race

Addresses security findings from #840:
- #846: Escape single quotes in file paths interpolated into read_parquet() and COPY TO
- #847: Use DuckDB $1 parameters for DateTime values instead of string interpolation
- #849: Make IsArchiving volatile-backed to prevent stale reads across threads

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit f9be94c into dev Apr 15, 2026
3 checks passed
@erikdarlingdata erikdarlingdata deleted the fix/duckdb-security-hardening branch April 19, 2026 00:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant