Skip to content

Releases: commandpostsoft/parse-stack

v2.1.0 - Partial Fetch Tracking System

09 Jan 02:20

Choose a tag to compare

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)  # => false

Autofetch 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::UnfetchedFieldAccessError

Configuration:

# Raise errors instead of auto-fetching (for debugging)
Parse.autofetch_raise_on_missing_keys = true

Nested 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 status

Code Quality & Security Improvements

  • NEW: disable_autofetch!, enable_autofetch!, autofetch_disabled? methods
  • NEW: clear_partial_fetch_state! public method
  • NEW: Parse::UnfetchedFieldAccessError for strict access control
  • IMPROVED: fetched_keys getter 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: include method alias properly forwards arguments to includes
  • ENHANCED: Query#first accepts both integer limit and hash of constraints

Query Condition Handling (2.0.9)

  • FIXED: Query#where properly handles special keywords (keys:, include:, limit:, etc.)
  • FIXED: conditions method normalizes hash keys to symbols before comparison

Author: Adrian Curtin
Date: November 2025

v1.9.1 - Modernistik Baseline

17 Nov 19:00

Choose a tag to compare

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

17 Nov 19:07

Choose a tag to compare

Enhanced ACL Permission Methods

This release enhances ACL permission methods with array and pointer support.

Changes

  • NEW: readable_by?, writeable_by?, and owner? 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_date now 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

17 Nov 19:03

Choose a tag to compare

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 include as an alias for includes query method

Bug Fixes

  • FIXED: create_or_update method 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

17 Nov 19:03

Choose a tag to compare

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

17 Nov 19:03

Choose a tag to compare

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

17 Nov 19:03

Choose a tag to compare

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

17 Nov 19:02

Choose a tag to compare

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

17 Nov 19:02

Choose a tag to compare

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

17 Nov 19:01

Choose a tag to compare

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