Skip to content

Releases: timescale/tigerfs

v0.6.0

27 Mar 02:23

Choose a tag to compare

Dedicated tigerfs schema, security hardening, and unified demo.

  • Dedicated tigerfs schema -- synth backing tables, triggers, functions, and history now live in a tigerfs schema instead of underscore-prefixed tables in the user's schema (tigerfs.blog + public.blog view, replacing public._blog + public.blog view)
  • tigerfs migrate command -- migration framework with --describe and --dry-run flags; first migration moves legacy _name tables to the tigerfs schema
  • .tables/ directory -- browse backing tables in the tigerfs schema 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 to sslmode=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 with demo.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 tigerfs schema instead of the user's schema. Run tigerfs migrate to update existing databases.

v0.5.0

28 Feb 05:12

Choose a tag to compare

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 -l on 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|error replaces the binary --debug flag for fine-grained control
  • SQL parameter logging--log-sql-params flag optionally includes bind parameter values in SQL query traces
  • Grouped config showtigerfs config show now 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

27 Feb 01:53

Choose a tag to compare

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:mydb or tigerfs 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:ID auto-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 — --debug mode now logs every SQL query with timing, statement text, and PostgreSQL backend PID
  • CDN-based binary distribution — curl -fsSL https://install.tigerfs.io | sh with S3/CloudFront CDN, split checksums, and fast version discovery via latest.txt

v0.3.0

14 Feb 00:40

Choose a tag to compare

Synthesized apps — work with domain-native files instead of raw rows.

  • Markdown and plain text views — map database rows to .md and .txt files 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 headers JSONB column for user-defined metadata that round-trips through file reads and writes
  • Rename (mv) on Linux — FUSE now supports mv for primary key updates and synth file renames (previously macOS-only via NFS)
  • Cross-directory movesmv blog/post.md blog/archive/post.md updates 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

12 Feb 00:17

Choose a tag to compare

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/.abort trigger 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-fuse for original)
  • 106 integration tests — declarative test framework covering NFS (macOS) and FUSE (Linux/Docker)

v0.1.0

01 Feb 05:51

Choose a tag to compare

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)