Releases: commandpostsoft/parse-stack
v2.1.0 - Partial Fetch Tracking System
Partial Fetch Tracking System
This release introduces the partial fetch tracking system for objects fetched with specific keys.
Note: This release also includes changes from versions 2.0.8 and 2.0.9 (GitHub releases were skipped).
Partial Fetch Tracking System
Track which fields have been fetched on partially loaded objects:
# Fetch with specific keys
song = Song.first(keys: [:title, :artist])
song.partially_fetched? # => true
song.fetched_keys # => [:title, :artist, :id, :objectId]
song.field_was_fetched?(:title) # => true
song.field_was_fetched?(:duration) # => falseAutofetch Behavior:
# Accessing unfetched fields triggers autofetch
song = Song.first(keys: [:title])
song.duration # Automatically fetches the full object
# Disable autofetch for strict control
song.disable_autofetch!
song.duration # Raises Parse::UnfetchedFieldAccessErrorConfiguration:
# Raise errors instead of auto-fetching (for debugging)
Parse.autofetch_raise_on_missing_keys = trueNested Partial Fetch Tracking
Track nested object fields via keys: parameter with dot notation:
Asset.first(keys: ["project.name", "project.status"])
# project is now a partially fetched object with just name and statusCode Quality & Security Improvements
- NEW:
disable_autofetch!,enable_autofetch!,autofetch_disabled?methods - NEW:
clear_partial_fetch_state!public method - NEW:
Parse::UnfetchedFieldAccessErrorfor strict access control - IMPROVED:
fetched_keysgetter returns frozen duplicate to prevent mutation - IMPROVED: Info-level logging when autofetch is triggered
Also Includes Changes from 2.0.8-2.0.9 (GitHub releases skipped)
Query Improvements (2.0.8)
- FIXED:
includemethod alias properly forwards arguments toincludes - ENHANCED:
Query#firstaccepts both integer limit and hash of constraints
Query Condition Handling (2.0.9)
- FIXED:
Query#whereproperly handles special keywords (keys:,include:,limit:, etc.) - FIXED:
conditionsmethod normalizes hash keys to symbols before comparison
Author: Adrian Curtin
Date: November 2025
v1.9.1 - Modernistik Baseline
Modernistik Baseline Release
This release marks the original/latest commit from the modernistik repository before the fork and subsequent development. It serves as a historical reference point for parse-stack development.
Changes
- Updated Gemfile.lock dependencies (January 21, 2023)
Historical Context
This tag represents the final state of the parse-stack codebase from modernistik before:
- Version 1.10+ development (by Henry Spindell)
- Version 2.x series development
Commit: ecdb13e
Author: Anthony Persaud persaud@modernistik.com
Date: January 21, 2023
v2.0.7 - Enhanced ACL Permission Methods
Enhanced ACL Permission Methods
This release enhances ACL permission methods with array and pointer support.
Changes
- NEW:
readable_by?,writeable_by?, andowner?ACL methods now accept arrays for OR logic - NEW: ACL permission methods now support Parse::Pointer to User objects with automatic role expansion
- ENHANCED: ACL permission checking methods support checking if ANY user/role in an array has the specified permission
- ENHANCED: When passed a Parse::User object or Parse::Pointer to User, automatically queries and checks the user's roles
- ENHANCED: Array support works with user IDs and role names (strings)
- IMPROVED: Better flexibility for checking permissions across multiple users and roles simultaneously
- IMPROVED: Parse::Pointer to User queries roles without needing to fetch the full user object
- FIXED:
group_by_datenow properly converts Parse pointer constraints to MongoDB aggregation format, fixing empty result issues when filtering by Parse object references
Commit: ebbeb6b
Author: Adrian Curtin
Date: October 15, 2025
v1.11.3 - Empty Array Query Constraint
Empty Array Query Constraint & Query Improvements
This release adds support for querying empty arrays and includes query method improvements.
New Features
- NEW: Added "empty" array query constraint for matching empty arrays
- NEW: Added
includeas an alias forincludesquery method
Bug Fixes
- FIXED:
create_or_updatemethod now only saves once (preventing duplicate saves)
Commits:
- 1a037ee: Adds "empty" array query constraint
- d99035d: Adds "include" as alias for "includes" query method
- 6184e01: Ensures create_or_update only saves once
Author: Henry Spindell
Date: January 2025
v1.11.2 - AfterCreate Trigger Support
AfterCreate Trigger Support
This release adds support for the afterCreate Parse webhook trigger.
Changes
- Adds afterCreate as valid Parse trigger
Commit: f872f2a
Author: Henry Spindell henryspindell@gmail.com
Date: December 31, 2024
v1.11.1 - First or Create Attribute Fix
First or Create Attribute Fix
This release ensures attributes are always applied correctly in the first_or_create method.
Changes
- Always applies attributes in first_or_create
Commit: 9325ced
Author: Henry Spindell henryspindell@gmail.com
Date: December 28, 2024
v1.11.0 - Create or Update Method
Create or Update Method
This release adds a new create_or_update method for more flexible data manipulation.
Changes
- Adds create_or_update method
Commit: c1507e0
Author: Henry Spindell henryspindell@gmail.com
Date: December 28, 2024
v1.10.3 - ActiveRecord Crash Fix
ActiveRecord Crash Fix
This release fixes a potential crash issue with ActiveRecord integration.
Changes
- Fixes potential ActiveRecord crash
Commit: b4f77a8
Author: Henry Spindell henryspindell@gmail.com
Date: December 18, 2024
v1.10.2 - Ruby 3 Hash Parameters Fix
Ruby 3 Hash Parameters Fix
This release continues improvements for Ruby 3 compatibility, fixing additional hash parameter issues.
Changes
- Fixes more Ruby 3-style hash parameters across the codebase
Commit: d0d8a1e
Author: Henry Spindell henryspindell@gmail.com
Date: September 13, 2024
v1.10.1 - Ruby 3+ Support
Ruby 3+ Hash and Block Arguments Support
This release adds support for Ruby 3+ style hash and block arguments, modernizing the codebase for compatibility with newer Ruby versions.
Changes
- IMPROVED: Updated method signatures to support Ruby 3+ style hash and block arguments across:
- Parse::Client and client-related classes
- Model associations (CollectionProxy, HasMany, RelationCollectionProxy)
- Core actions, fetching, and querying methods
- Query interface
- Webhooks
- Stack tasks
Commit: c548832
Author: Henry Spindell
Date: August 31, 2024