- NEW:
Parse::Model.autosave_on_createhas been removed in favor offirst_or_create!. - NEW: Hooks and Functions now have a
logmethod, similar toputs, but allows easier tracing of single requests in a multi-request threaded environment. (See Parse::Webhooks::Payload) - NEW:
:idconstraints also safely supports pointers by skipping class matching. - NEW: Support for
add_uniqueand the set union operator|in collection proxies. - NEW: Support for
uniqanduniq!in collection proxies. - NEW:
uniqanduniq!for collection proxies utilizeeql?for determining uniqueness. - NEW: Updated override behavior for the
hashmethod in Parse::Pointer and subclasses. - NEW: Support for additional array methods in collection proxies (+,-,& and |)
- NEW: Additional methods for Parse::ACL class for setting read/write privileges.
- NEW: Expose the shared cache store through
Parse.cache. - CHANGED:
save_allnow returns true if there were no errors. - FIXED: first_or_create will now apply dirty tracking to newly created fields.
- FIXED: Properties of :array type will always return a Parse::CollectionProxy if their internal value is nil. The object will not be marked dirty until something is added to the array.
- FIXED: Encoding a Parse::Object into JSON will remove any values that are
nilwhich were not explicitly changed to that value. - PR#39: Allow Moneta::Expires as cache object to allow for non-native expiring caches by GrahamW
- NEW:
:timezonedatatype that maps toParse::TimeZone(which mimicsActiveSupport::TimeZone) - NEW: Installation
:time_zonefield is now aParse::TimeZoneinstance. - Any properties named
time_zoneortimezonewith a string data type set will be converted to useParse::TimeZoneas the data class. - FIXED: Fixes issues with HTTP Method Override for long url queries.
- FIXED: Fixes issue with Parse::Object.each method signature.
- FIXED: Removed
:idfrom the Parse::Properties::TYPES list. - FIXED: Parse::Object subclasses will not be allowed to redefine core properties.
- Parse::Object save_all() and each() methods raise ArgumentError for invalid constraint arguments.
- Removes deprecated function
Role.apply_default_acls. If you need the previous behavior, you should set your own :before_save callback that modifies the role object with the ACLs that you want or use the newRole.set_default_acl. - Parse::Object.property returns true/false whether creating the property was successful.
- Parse::Session now has a
has_oneassociation to Installation through:installation - Parse::User now has a
has_manyassociation to Sessions through:active_sessions - Parse::Installation now has a
has_oneassociation to Session through:session
- NEW: You can use
set_default_aclto set default ACLs for your subclasses. - NEW: Support for
withinPolygonquery constraint. - Refactoring of the default ACL system and deprecation of
Parse::Object.acl - Parse::ACL.everyone returns an ACL instance with public read and writes.
- Documentation updates.
- NEW: Parse.use_shortnames! to utilize shorter class methods. (optional)
- NEW: parse-console supports
--urloption to load config from JSON url. - FIXES: Issue #27 where core classes could not be auto-upgraded if they were missing.
- Warnings are now printed if auto_upgrade! is called without the master key.
- Use
Parse.use_shortnames!to use short name class names Ex. Parse::User -> User - Hosting documentation on https://www.modernistik.com/gems/parse-stack/ since rubydoc.info doesn't use latest yard features.
- Parse::Query will raise an exception if a non-nil value is passed to
:sessionthat does not provide a valid session token string. saveanddestroywill raise an exception if a non-nilsessionargument is passed that does not provide a valid session token string.- Additional documentation changes and tests.
- NEW: Parse::Object#sig method to get quick information about an instance.
- FIX: Typo fix when using Array#objectIds.
- FIX: Passing server url in parse-console without the
-soption when using IRB. - Exceptions will not be raised on property redefinitions, only warning messages.
- Additional tests.
- Short name classes are generated when using parse-console. Ex. Parse::User -> User
- parse-console supports
--config-sampleto generate a sample configuration file.
- Default SERVER_URL changed to http://localhost:1337/parse
- NEW: Command line tool
parse-consoleto do interactive Parse development with parse-stack. - REMOVED: Deprecated parse.com specific APIs under the
/apps/path.
- Client handles HTTP Status 429 (RetryLimitExceeded)
- Role class does not automatically set default ACLs for Roles. You can restore
previous behavior by using
before_save :apply_default_acls. - Fixed minor issue to Parse::User.signup when merging username into response.
- NEW: Adds Parse::Product core class.
- NEW: Rake task to list registered webhooks.
rake parse:webhooks:list - Experimental support for beforeFind and afterFind - though webhook support not yet fully available in open source Parse Server.
- Removes HTTPS requirement on webhooks.
- FIXES: Issue with WEBHOOK_KEY not being properly validated when set.
- beforeSaves now return empty hash instead of true on noop changes.
- Fixes #20: All temporary headers values are strings.
- Reduced cache storage consumption by only storing response body and headers.
- Increased maximum cache content length size to 1.25 MB.
- You may pass a redis url to the :cache option of setup.
- Fixes issue with invalid struct size of Faraday::Env with old caching keys.
- Added server_info and health check APIs for Parse-Server +2.2.25.
- Updated test to validate against MT6.
- NEW: Batch requests are now parallelized.
skipin queries no longer capped to 10,000.limitin queries no longer capped at 1000.all()queries can now return as many results as possible.- NEW:
each()method on Parse::Object subclasses to iterate over all records in the colleciton.
- NEW: Auto generate models based on your remote schema.
- The default server url is now 'http://localhost:1337/parse'.
- Improves thread-safety of Webhooks middleware.
- Performance improvements.
- BeforeSave change payloads do not include the className field.
- Reaches 100% documentation (will try to keep it up).
- Retry mechanism now configurable per client through
retry_limit. - Retry now follows sampling back-off delay algorithm.
- Adds
schemasAPI to retrieve all schemas for an application. - :number can now be used as an alias for the :integer data type.
- :geo_point can now be used as an alias for the :geopoint data type.
- Support accessing properties of Parse::Object subclasses through the [] operator.
- Support setting properties of Parse::Object subclasses through the []= operator.
- :to_s method of Parse::Date returns the iso8601(3) by default, if no arguments are provided.
- Parse::ConstraintError has been removed in favor of ArgumentError.
- Parse::Payload has been placed under Parse::Webhooks::Payload for clarity.
- Parse::WebhookErrorResponse has been moved to Parse::Webhooks::ResponseError.
- Moves Parse::Object modular functionality under Core namespace
- Renames ClassBuilder to Parse::Model::Builder
- Renamed SaveFailureError to RecordNotSaved for ActiveRecord similarity.
- All Parse errors inherit from Parse::Error.
- Several fixes and performance improvements.
- Major revisions to documentation.
- Support for increment! and decrement! for Integer and Float properties.
- FIXES #16: Constraints to
countwere not properly handled. - FIXES #15: Incorrect call to
request_password_reset. - FIXES #14: Typos
- FIXES: Issues when passing a block to chaining scope.
- FIXES: Enums properly handle default values.
- FIXES: Enums macro methods now are dirty tracked.
- FIXES: #17: overloads inspect to show objects in a has_many scope.
reload!and session methods support client request options.- Proactively deletes possible matching cache keys on non GET requests.
- Parse::File now has a
force_ssloption that makes sure all urls returned arehttps. - Documentation
- ParseConstraintError is now Parse::ConstraintError.
- All constraint subclasses are under the Constraint namespace.
- BREAKING CHANGE: The default
has_manyimplementation is:queryinstead of:array. - NEW: Support for
has_onetype of associations. - NEW:
has_manyassociations supportQueryimplementation as the inverse of:belongs_to. - NEW:
has_manyandhas_oneassociations support scopes as second parameter. - NEW: Enumerated property types that mimic ActiveRecord::Enum behavior.
- NEW: Support for scoped queries similar to ActiveRecord::Scope.
- NEW: Support updating Parse config using
set_configandupdate_config - NEW: Support for user login, logout and sessions.
- NEW: Support for signup, including signing up with third-party services.
- NEW: Support for linking and unlinking user accounts with third-party services.
- NEW: Improved support for Parse session APIs.
- NEW: Boolean properties automatically generate a positive query scope for the field.
- Added property options for
:scopes,:enum,:_prefixand:_suffix - FIX: Auto-upgrade did not upgrade core classes.
- FIX: Pointer and Relation collection proxies will delay pointer casting until update.
- Improves JSON encoding/decoding performance.
- Removes throttling of requests.
- Turns off cache when using
save_allmethod. - Parse::Query supports ActiveModel::Callbacks for
:prepare. - Subclasses now support a :create callback that is only executed after a new object is successfully saved.
- Added alias method :execute! for Parse::Query#fetch! for clarity.
Parse::Client.sessionhas been deprecated in favor ofParse::Client.client- All Parse-Stack errors that are raised inherit from StandardError.
- All :object data types is now cast as ActiveSupport::HashWithIndifferentAccess.
- :boolean properties now have a special
?method to access true/false values. - Adds chaining to Parse::Query#conditions.
- Adds alias instance method
Parse::Query#querytoParse::Query#conditions. Parse::Object.whereis now an alias toParse::Object.query. You can now useParse::Object.where_literal.- Parse::Query and Parse::CollectionProxy support Enumerable mixin.
- Parse::Query#constraints allow you to combine constraints from different queries.
Parse::Object#validate!can be used in webhook to throw webhook error on failed validation.
- NEW: Support for rails generators:
parse_stack:installandparse_stack:model. - Support Parse::Date with ActiveSupport::TimeWithZone.
- :date properties will now raise an error if value was not converted to a Parse::Date.
- Support for calling
before_saveandbefore_destroycallbacks in your model when a Parse::Object is returned by yourbefore_saveorbefore_deletewebhook respectively. - Parse::Query
:cacheexpression now allows integer values to define the specific cache duration for this specific query request. Iffalseis passed, will ignore the cache and make the request regardless if a cache response is available. Iftrueis passed (default), it will use the value configured when setting up when callingParse.setup. - Fixes the use of
:use_master_keyin Parse::Query. - Fixes to the cache key used in middleware.
- Parse::User before_save callback clears the record ACLs.
- Added
anonymous?instance method toParse::Userclass.
- Support for reloading the Parse config data with
Parse.config!. - The Parse::Request object is now provided in the Parse::Response instance.
- The HTTP status code is provided in
http_statusaccessor for a Parse::Response. - Raised errors now provide info on the request that failed.
- Added new
ServiceUnavailableErrorexception for Parse error code 2 and HTTP 503 errors. - Upon a
ServiceUnavailableError, we will retry the request one more time after 2 seconds. :not_inand:contains_allqueries will format scalar values into an array.:existsand:nullwill raiseConstraintErrorif non-boolean values are passed.- NEW:
:idconstraint to allow passing an objectId to a query where we will infer the class.
- Fixes json_api loading issue between ruby json and active_model_serializers.
- Fixes loading active_support core extensions.
- Support for passing a
:session_tokenas part of a Parse::Query. - Default mime-type for Parse::File instances is
image/jpeg. You can override the default by settingParse::File.default_mime_type. - Added
Parse.configfor easy access toParse::Client.client(:default).config - Support for
Parse.auto_upgrade!to easily upgrade all schemas. - You can import useful rake tasks by requiring
parse/stack/tasksin your rake file. - Changes the format in
selectandrejectqueries (see documentation). - Latitude and longitude values are now validated with warnings. Will raise exceptions in the future.
- Additional alias methods for queries.
- Added
$within=>$boxGeoPoint query. (see documentation) - Improves support when using Parse-Server.
- Major documentation updates.
limitno longer defaults to 100 inParse::Query. This will allow Parse-Server to determine default limit, if any.:boolproperty type has been added as an alias to:boolean.- You can turn off formatting field names with
Parse::Query.field_formatter = nil.
- Parse::Query now supports
:cacheand:use_master_keyoption. (experimental) - Minimum ruby version set to 1.9.3 (same as ActiveModel 4.2.1)
- Support for Rails 5.0+ and Rack 2.0+
- IMPORTANT: Raising an error no longer sends an error response back to
the client in a Webhook trigger. You must now call
error!('...')instead of callingraise '...'. The webhook block is now binded to the Parse::Webhooks::Payload instance, removing the need to passpayloadobject; use the instance methods directly. See updated README.md for more details. - Parse-Stack will throw new exceptions depending on the error code returned by Parse. These are of type AuthenticationError, TimeoutError, ProtocolError, ServerError, ConnectionError and RequestLimitExceededError.
niland Delete operations for:integersand:booleansare no longer typecast.- Added aliases
before,on_or_before,afterandon_or_afterto help with comparing non-integer fields such as dates. These map tolt,lte,gtandgte. - Schema API return true is no changes were made to the table on
auto_upgrade!(success) - Parse::Middleware::Caching no longer caches 404 and 410 responses; and responses with content lengths less than 20 bytes.
- FIX: Parse::Payload when applying auth_data in Webhooks. This fixes handing Facebook login with Android devices.
- New method
save!to raise an exception if the save fails. - FIX: Verify Content-Type header field is present for webhooks before checking its value.
- FIX: Support
reload!when using it Padrino.
- Add active support string dependencies.
- Support for handling the
Deleteoperation on belongs_to and has_many relationships. - Documentation changes for supported Parse atomic operations.
- Fixes issues with first_or_create.
- Fixes issue when singularizing :belongs_to and :has_many property names.
- Makes sure time is sent as UTC in queries.
- Allows for authData to be applied as an update to a before_save for a Parse::User.
- Webhooks allow for returning empty data sets and
falsefrom webhook functions. - Minimum version for ActiveModel and ActiveSupport is now 4.2.1
- In Query
joinhas been renamed tomatches. - Not In Query
excludehas been renamed toexcludesfor consistency. - Parse::Query now has a
:keysoperation to be usd when passing sub-queries toselectandmatches - Improves query supporting
select,matches,matchesandexcludes. - Regular expression queries for
likenow send regex options
- Fixes issues with setting default values as dirty when using the builder or before_save hook.
- Fixes issues with autofetching pointers when default values are set.
- Fixes issues when setting a collection proxy property with a collection proxy.
- Default array values are now properly casted as collection proxies.
- Default booleans values of
falseare now properly set.
- Fixes issues when copying dates.
- Fixes issues with double-arrays.
- Fixes issues with mapping columns to atomic operations.
- Fixes issue when making batch requests with special prefix url.
- Adds Parse::ConnectionError custom exception type.
- You can call locally registered cloud functions with Parse::Webhooks.run_function(:functionName, params) without going through the entire Parse API network stack.
:symbolize => truenow works for:arraydata types. All items in the collection will be symbolized - useful for array of strings.- Prevent ACLs from causing an autofetch.
- Empty strings, arrays and
falseare now working with:defaultoption in properties.
- Defaults are applied on object instantiation.
- When applying default values, dirty tracking is called.
- Fixes minor issue when storing and retrieving objects from the cache.
- Support for providing :server_url as a connection option for those migrating hosting their own parse-server.
- Fixes minor issue when passing
nilto the classfindmethod.
- Fixes internal issue with
operate_field!method.