Skip to content

Releases: bart-oz/sqlite_crypto

v2.0.2 - Fix generator auto-discovery and schema loading

11 Feb 11:58
4b22cb7

Choose a tag to compare

🐛 Fixed

  • Generator autodiscovery: Moved install generator to lib/generators/sqlite_crypto/install/ to follow Rails convention. Previously rails generate sqlite_crypto:install could not find the generator (bug since v2.0.0)
  • Schema loading: Moved uuid/ulid helper includes from require-time into railtie initializer. The previous if defined? guard ran before ActiveRecord was loaded, causing NameError: undefined method 'uuid' when loading schema.rb (bug since v2.0.1)
  • Rails 8+ compatibility: Include schema helpers into ActiveRecord::Schema::Definition where schema.rb blocks are evaluated in Rails 8+

📦 Upgrade

bundle update sqlite_crypto

Added

  • Schema round-trip integration test (dump, reload, verify)

Acknowledgements

v2.0.1 - Security and improvements

14 Jan 15:20
12d613b

Choose a tag to compare

🔒 Security Fixes

  • CRITICAL:
    • Fixed regex anchor vulnerability in UUID/ULID validators
    • Fixed action_text-trix XSS vulnerability (updated to >= 2.1.16)

⚡ Performance Improvements

  • Extract regex patterns to frozen constants (UUID_PATTERN, ULID_PATTERN)
  • Cache Ruby version check in V7_AVAILABLE constant
  • Add lazy loading with ActiveSupport.on_load(:active_record) hook
  • Memoize primary key type detection in migrations

✨ Improvements

  • Eager configuration validation: Setting uuid_version = :v7 on Ruby < 3.3 now fails at boot time with clear error message
  • Namespace cleanup: uuid and ulid schema helpers now scoped to ActiveRecord::Schema instead of global Object

🗑️ Removed

  • Unused SqliteCrypto::Error class
  • Unused SqliteCrypto.load_extensions placeholder method

📦 Upgrade

bundle update sqlite_crypto

v2.0.0 - UUIDv7 support

08 Jan 13:22
79dd257

Choose a tag to compare

🚀 Changes:

  • Add uuid_version config option (:v7 default, :v4 for compatibility)
  • Create unified UUID generator with Ruby version detection
  • Update generates_uuid to use centralized generator
  • Add install generator for initializer creation
  • UUIDv7 requires Ruby 3.3+ (clear error on older versions)
  • Ruby 3.1/3.2 users can continue using v4
  • Default UUID version changed from v4 to v7

📦 Upgrade

bundle update sqlite_crypto

v1.0.3 - Ruby 4.0.0 compatibility

30 Dec 01:26
167e0ce

Choose a tag to compare

🚀 Changes

Dependencies:

  • Added compatibility with Ruby 4.0.0 released on December 25, 2025
  • Added benchmark gem as test dependency (removed from Ruby 4.0.0 stdlib)
  • Reorganized gemspec to include only runtime dependencies
  • Moved development and test dependencies to Gemfile

📦 Upgrade

bundle update sqlite_crypto

v1.0.2 - Schema Definitions

21 Dec 13:20
0ec82c3

Choose a tag to compare

🐛 Fixed

  • Schema Definitions:
    • Added global uuid and ulid helper methods for schema.rb
    • Fixes NameError: undefined local variable or method 'uuid' when loading schema.rb
    • Schema dumper now outputs id: uuid which correctly resolves to :uuid symbol
    • Allows schema.rb to be loaded without errors

📦 Upgrade

bundle update sqlite_crypto

v1.0.1 - Schema Dumper Bugfix

21 Dec 12:37
f6ce5e4

Choose a tag to compare

🐛 Fixed

  • Schema Dumper Compatibility: Fixed "Unknown type 'uuid'" errors when using schema_format = :ruby (Rails default)
  • UUID/ULID columns now correctly create varchar(36) and varchar(26) in migrations
  • Added native_database_types registration for proper SQLite column type mapping

📦 Upgrade

bundle update sqlite_crypto

🙏 Thanks

This fix was discovered during real-world usage testing in production apps. Thanks to the community for the quick feedback!

Full Changelog: CHANGELOG.md

v1.0.0 - Initial Release

20 Dec 22:58
ea2d5e3

Choose a tag to compare

sqlite_crypto v1.0.0 - Initial Release

Seamless UUID and ULID primary key support for Rails with SQLite3.

🎯 Features

  • UUID & ULID Primary Keys: Full support for non-integer primary keys in SQLite
  • Migration Helpers: Clean DSL with t.uuid, t.ulid, and automatic foreign key detection
  • Model Extensions: generates_uuid and generates_ulid for any string column
  • Schema Dumper: Clean, readable db/schema.rb output
  • Zero Configuration: Works out of the box with Rails 7.1-8.1

📊 Compatibility

  • Ruby 3.1+
  • Rails 7.1, 7.2, 8.0, 8.1
  • SQLite3 1.6.0+

📈 Quality Metrics

  • ✅ 99.01% test coverage (51 examples)
  • ✅ Multi-version CI/CD testing
  • ✅ Performance benchmarks included
  • ✅ StandardRB compliant

📦 Installation

gem “sqlite_crypto"

📚 Documentation

See the README for complete usage examples, migration patterns, and performance benchmarks.

📋 Full Changelog

—> CHANGELOG.md