- Raise an error where a custom external ID field name is supplied to
upsert
andupsert!
, but it is missing from the provided attributes (@velveret) - Use the Restforce client's configured SSL options for authentication requests (@jvdp)
- Fix bug where
upsert
andupsert!
mutate the provided attributes, previously fixed in v1.5.3 (@velveret)
- Ensure
Restforce::Middleware::Logger
is the last Faraday middleware to be called so everything is properly logged (including the effects of theGzip
andCustomHeaders
middlewares which were previously running after it) (@jonnymacs) - Suppress Hashie warnings when using Hashie v3.5.0 or later (see #295 for details) (@janraasch)
- Allow setting custom headers, required by parts of the Salesforce API, by specifiying a
:request_headers
option when instantiating the client (@moskeyombus) - Add support for
upsert
ing using an ID (see the Salesforce docs for more details) (@ecbypi) - Relax
faraday
dependency to allow upgrading to Faraday 1.0 (@tinogomes, @alexluke)
(This should have been a minor version rather than a patch version, following format MAJOR.MINOR.PATCH, since we use Semantic Versioning and this adds functionality. Sorry! @timrogers)
- Deprecate support for Ruby 1.9, since official support was dropped nearly two years ago, and it's causing problems with keeping our dependencies up to date
- Securely hash Salesforce credentials used in cache keys, so they aren't stored in the clear (@atmos)
- Relax
json
dependency for users of Ruby 2.0.0 onwards to allow a much wider range of versions (@timrogers, with thanks to @ccutrer and @janraasch)
- Added support for pre-released versions of Ruby 2.4.0 by relaxing the
json
gem dependency (@timrogers, with thanks to @ccutrer)
- Added ability to download documents attached to records, behaving like attachments (@jhelbig)
- Allow the Salesforce API version to be specified with a
SALESFORCE_API_VERSION
environment variable (@jhelbig)
- Added support for
get_deleted
call (@adambird)
(This should have been a minor version rather than a patch version, following format MAJOR.MINOR.PATCH, since we use Semantic Versioning and this adds functionality. Sorry! @timrogers)
- Raise a
Faraday::Error::ClientError
for300
responses triggered by a conflicting external ID, providing access to the response, which contains an array of the conflicting IDs (@timrogers, @michaelminter) - Improve the consistency of
Faraday::Error::ClientError
s raised, so they all have a message with the same format (@timrogers)
- Raise a
Restforce::ServerError
when Salesforce responds with a500
due to an internal error (@greysteil) - Improving handling of response body in errors (@kuono)
- Always parse the JSON response before errors are raised to improve exceptions (@kouno)
- Added support for
get_updated
call (@web-connect) - Respect Faraday adapter option in authentication middleware (@stenlarsson)
- Added support for
query_all
,explain
andlimits
API calls (which require a newerapi_version
than the default of 26.0) (@theSteveMitchell, @zenchild) - Added support for
recent
API call (@davebrace) - Changed
PROXY_URI
environment variable toSALESFORCE_PROXY_URI
(with warning toSTDOUT
if the old variable is set) (@timrogers) - Implemented
version_guard
inRestforce::Concerns::API
to standardise behaviour of API calls which require a particular version of the Salesforce API (@zenchild) - Fixed bug with construction of
Faraday::Error::ClientError
exceptions (@debussyman) - Added support for specifying SSL options to be passed to Faraday (@jonathanrico)
- Added support for specifying a custom logger and log level (@ilyakatz)
- Improved experience for contributors to the gem with bootstrapping process (@rafalchmiel)
- Drop support for versions of Ruby earlier than 1.9.3, which were end-of-lifed long ago
- Take advantages of Ruby 1.9.3 syntax, and drop old Ruby 1.8 shims
- Enforce code style with Rubocop
- Fixed a bug with
update!
andupsert!
mutating provided attributes (@timrogers) - Added note about thread safety to
README.md
(@epbarger) - Improved documentation for
select
inREADME.md
(@theSteveMitchell) - Tweaked and improved consistency of
README.md
(@timrogers) - Pass through blocks given to
Restforce.new
(@jxa) - Add
#page_size
toRestforce::Collection
(@theSteveMitchell)
- Better autopagination performance #141 @th7
- Looser restrictions on hashie gem #123 @zenchild
- Upgrade faraday dependency to 0.9 #124 @zenchild
- Fixed a bug with HTTP 413 responses #75 @patronmanager
- Added support for the tooling API.
- Fixed a bug with EMSynchrony adapter.
- Added proxy support.
- Added support for lazily traversing paginated collections #61 by @nahiluhmot.
- Added support for proxies #60 by @wazoo.
-
Added ability to download attachments easily.
Example
attachment = client.query('select Id, Name, Body from Attachment').first File.open(attachment.Name, 'wb') { |f| f.write(attachment.Body) }
-
Added
url
method.Example
# Url to a record id client.url('0013000000rRz') # => https://na1.salesforce.com/0013000000rRz # Url to an object that responds to `to_sparam` record = Struct.new(:to_sparam).new('0013000000rRz') client.url('0013000000rRz') # => https://na1.salesforce.com/0013000000rRz
-
Added
picklist_values
method.Example
client.picklist_values('Account', 'Type') client.picklist_values('Automobile__c', 'Model__c', :valid_for => 'Honda')
-
Added CHANGELOG.md
-
Restforce::Client#inspect
now only prints out the options and not the Faraday connection. -
The Faraday adapter is now configurabled:
Example:
Restforce.configure do |config| config.adapter = :excon end
-
The http connection read/open timeout is now configurabled.
Example:
Restforce.configure do |config| config.timeout = 300 end
- Fixed typo in method call.
- Minor cleanup.
- Moved decoding of signed requests into it's own class.
username
,password
,security_token
,client_id
andclient_secret
options now obtain defaults from environment variables.- Add
head
verb.
- Default api version changed from 24.0 to 26.0.
- Fixed tests for streaming api to work with latest versions of faye.
- Added .find method to obtain all fields from an sobject.