Releases: timescale/tigerfs
Releases · timescale/tigerfs
v0.6.0
Dedicated tigerfs schema, security hardening, and unified demo.
- Dedicated
tigerfsschema -- synth backing tables, triggers, functions, and history now live in atigerfsschema instead of underscore-prefixed tables in the user's schema (tigerfs.blog+public.blogview, replacingpublic._blog+public.blogview) tigerfs migratecommand -- migration framework with--describeand--dry-runflags; first migration moves legacy_nametables to thetigerfsschema.tables/directory -- browse backing tables in thetigerfsschema with full pipeline support.build/schema restriction --.build/only operates in the default schema- TLS enforcement -- non-localhost connections default to
sslmode=require; localhost defaults tosslmode=disable; override with--insecure-no-ssl - SQL injection hardening -- all identifier interpolation uses properly escaped helpers (
db.QuoteIdent,db.QuoteTable) - Credential sanitization -- connection strings in debug logs are scrubbed to prevent credential exposure
- Agent skill auto-install -- TigerFS skills are automatically installed when a coding agent (Claude Code, Gemini CLI, Codex) is detected at mount time
- Unified demo -- single
scripts/demo/directory withdemo.sh start [--docker|--mac](auto-detects platform); file-first apps seeded via mount instead of hand-written SQL - Bug fixes -- plain text history triggers no longer reference markdown-only columns; export/info files use full path as stat cache key
Breaking Changes
- Backing tables are created in the
tigerfsschema instead of the user's schema. Runtigerfs migrateto update existing databases.
v0.5.0
Performance and observability — dramatically fewer SQL queries, flexible logging, and column projection.
- Column projection —
.columns/col1,col2/pipeline stage selects only the columns you need, reducing data transfer for wide tables - Stat caching — multi-tier stat cache with row-level priming eliminates redundant queries;
ls -lon a table directory now issues one query instead of 1+N - Schema cache unification — default schema and per-schema metadata share a single cache, cutting duplicate catalog lookups
- Synth query reduction — synth file operations skip unnecessary table/view list queries when the table context is already resolved
- Configurable log levels —
--log-level debug|info|warn|errorreplaces the binary--debugflag for fine-grained control - SQL parameter logging —
--log-sql-paramsflag optionally includes bind parameter values in SQL query traces - Grouped
config show—tigerfs config shownow displays all configuration fields organized into logical sections (connection, filesystem, nfs, logging, etc.) - Mountpoint cleanup — auto-created mountpoint directories are removed on unmount when empty
- NFS pagination fix — readdir cache handles READDIRPLUS pagination correctly for non-deterministic query results
- Permission query fix — schema parameter now uses explicit text cast, fixing errors on some PostgreSQL configurations
v0.4.0
Cloud backends, versioned history, and CDN-based installs — manage cloud databases, travel through time, and install in seconds.
- Cloud backend prefixes — tiger:ID and ghost:ID prefix scheme for connecting to Tiger Cloud and Ghost databases without raw connection strings
- tigerfs create command — provision new databases via
tigerfs create tiger:mydbortigerfs create ghost:mydb - tigerfs fork command — fork existing databases with tigerfs fork tiger:source, supports point-in-time recovery
- tigerfs info command — display service details for cloud-managed databases
- Optional mountpoint —
tigerfs mount tiger:IDauto-derives mountpoint from default_mount_dir, no explicit path needed - Versioned history —
.history/virtual directory shows previous versions of synth files using TimescaleDB continuous aggregates - Per-directory history —
.history/works at every level of hierarchical synth views, not just the root - Extension-aware table listing — tables and views owned by extensions (like TimescaleDB internals) are excluded from directory listings
- Query reduction caching — three-tier cache strategy reduces ls -l on synth views from ~37 SQL queries to 1, with targeted WHERE queries for single-file lookups
- SQL query tracing —
--debugmode now logs every SQL query with timing, statement text, and PostgreSQL backend PID - CDN-based binary distribution —
curl -fsSL https://install.tigerfs.io | shwith S3/CloudFront CDN, split checksums, and fast version discovery via latest.txt
v0.3.0
Synthesized apps — work with domain-native files instead of raw rows.
- Markdown and plain text views — map database rows to
.mdand.txtfiles with frontmatter, title extraction, and round-trip parsing via.build/scaffolding - Directory hierarchies — organize synth files into nested folders (
blog/tutorials/intro.md) backed by a path column; mkdir, rmdir, and mv all work - Custom frontmatter — extra
headersJSONB column for user-defined metadata that round-trips through file reads and writes - Rename (mv) on Linux — FUSE now supports
mvfor primary key updates and synth file renames (previously macOS-only via NFS) - Cross-directory moves —
mv blog/post.md blog/archive/post.mdupdates the path column in the database - Atomic compare-and-swap rename — synth file renames check the target doesn't already exist, preventing silent overwrites
- Claude Code skills — built-in skills for discovering, reading, writing, and searching TigerFS-mounted data, plus persistent agent memory via TigerFS
v0.2.0
Full platform parity — macOS and Linux now have identical capabilities.
- Full write support on macOS — create, update, and delete rows and columns via NFS (previously read-only)
- DDL on both platforms — create, modify, and delete tables, indexes, schemas, and views via the filesystem
- Editor-friendly DDL — vim/emacs temp file handling,
.test/.commit/.aborttrigger via touch - DDL grace period — completed sessions stay visible for post-close editor operations
- Runtime schema resolution — schema detected at mount time, no longer hardcoded to "public"
- Persistent file cache — streaming reads/writes with memory limits and graceful shutdown
- Shared
fs/backend — unified FUSE/NFS logic eliminates feature drift between platforms - FUSE migration — Linux FUSE now uses the shared backend (
--legacy-fusefor original) - 106 integration tests — declarative test framework covering NFS (macOS) and FUSE (Linux/Docker)
v0.1.0
TigerFS: Mount PostgreSQL as a filesystem — for humans and agents.
Features:
- Full CRUD via filesystem (ls, cat, echo, rm)
- Row-as-file (.json, .csv, .tsv, .yaml) and row-as-directory patterns
- Column files with type-based extensions (.txt, .json, .bin)
- Index navigation (.by/column/value/) with pagination
- Pipeline queries with database pushdown (.filter/, .order/)
- Large table handling (.first/N/, .last/N/, .sample/N/)
- Bulk export/import (.export/, .import/)
- DDL via filesystem (.create/, .modify/, .delete/)
- Table metadata via .info/ (schema, columns, count, ddl, indexes)
- All primary key types (serial, UUID, text, composite)
- Database views (read-only and updatable)
- macOS: Native NFS backend (no dependencies)
- Linux: FUSE backend
- Tiger Cloud integration (--tiger-service-id)