{"action":"published","release":{"url":"https://api.github.com/repos/thinkshout/salesforce/releases/3775252","assets_url":"https://api.github.com/repos/thinkshout/salesforce/releases/3775252/assets","upload_url":"https://uploads.github.com/repos/thinkshout/salesforce/releases/3775252/assets{?name,label}","html_url":"https://github.com/thinkshout/salesforce/releases/tag/7.x-3.2","id":3775252,"tag_name":"7.x-3.2","target_commitish":"7.x-3.x","name":"Release for 7.x-32","draft":false,"author":{"login":"mariacha","id":999525,"avatar_url":"https://avatars.githubusercontent.com/u/999525?v=3","gravatar_id":"","url":"https://api.github.com/users/mariacha","html_url":"https://github.com/mariacha","followers_url":"https://api.github.com/users/mariacha/followers","following_url":"https://api.github.com/users/mariacha/following{/other_user}","gists_url":"https://api.github.com/users/mariacha/gists{/gist_id}","starred_url":"https://api.github.com/users/mariacha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mariacha/subscriptions","organizations_url":"https://api.github.com/users/mariacha/orgs","repos_url":"https://api.github.com/users/mariacha/repos","events_url":"https://api.github.com/users/mariacha/events{/privacy}","received_events_url":"https://api.github.com/users/mariacha/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-07-28T17:43:45Z","published_at":"2016-07-30T03:51:03Z","assets":[],"tarball_url":"https://api.github.com/repos/thinkshout/salesforce/tarball/7.x-3.2","zipball_url":"https://api.github.com/repos/thinkshout/salesforce/zipball/7.x-3.2","body":"Major additions in this release:\r\n\r\n---\r\n\r\nNew admin page\r\n\r\nThe /admin/config/salesforce/settings page where you can configure which version of the API you're using. You can also configure pulls via a webhook instead of cron. \r\n\r\nAdditionally, the mappings pages have been cleaned up by Issue #1980688: Push/pull UI improvements. This removes the temptation to try to sync or push an item if, say, you only have the Salesforce Pull module enabled. \r\n\r\n---\r\n\r\nNew hooks\r\n\r\nIssue #1909990: hook_salesforce_push_entity_allowed, hook_salesforce_push_success, hook_salesforce_push_fail for filtering entities before push, and for reacting to push successes and failures.\r\n\r\nIssue #2745063: hook_salesforce_pull_mapping_object_alter and hook_salesforce_push_mapping_object_alter for manipulating mapping_object objects Immediately before pull or push\r\n\r\nIssue #2688033: hook_salesforce_pull_entity_presave, hook_salesforce_pull_entity_insert, and hook_salesforce_pull_entity_update, which mimic the default hook_entity_XX, but also expose the original Salesforce Mapping values for consideration.\r\n\r\n\r\nSide note here: If you are using a dev version of the Salesforce module and taking advantage of hook_salesforce_push_entity_allowed_by_mapping, that function will no longer work, as it's been rolled into hook_salesforce_push_entity_allowed.\r\n\r\n---\r\n\r\nNew functionality\r\n\r\nYou can now do pulls from Salesforce via a webhook instead of cron by visiting /salesforce/webhook/pull and including a token. Option can be set up here: /admin/config/salesforce/settings\r\n\r\nYou can also now delete without using the SOAP module. Note: This requires you to be on a version of the Salesforce API of  29.0 (Winter '14) or greater. This setting can be checked here: /admin/config/salesforce/settings. See Issue #2730357 for more.\r\n\r\nIf you're using SOAP, you can overwrite the default WSDL by setting the variable \"salesforce_partner_wsdl\" to a given path. Currently there's no UI for this, but the variable can be set using Drush or as a $conf variable in your settings.php file.\r\n\r\n---\r\n\r\nNew drush command\r\n\r\nDrush command \"sf-execute-query\" to directly query Salesforce. See Issue #2637508.\r\n\r\n---\r\n\r\n\r\n<p>Changes since 7.x-3.1:</p>\r\n<ul>\r\n  <li><a href=\"/node/2755309\">#2755309</a> by <a href='/u/aaronbauman'>aaronbauman</a>: Allow override of WSDL</li>\r\n  <li>Revert \"Issue <a href=\"/node/1802698\">#1802698</a> by <a href='/u/seanb'>seanB</a>: Consider switching from AES to Encrypt\"</li>\r\n  <li><a href=\"/node/1861564\">#1861564</a>: Can't count on libraries_get_path() in an install file.</li>\r\n  <li><a href=\"/node/1802698\">#1802698</a> by <a href='/u/seanb'>seanB</a>: Consider switching from AES to Encrypt</li>\r\n  <li>Unsuccessful submission when key is incorrect type.</li>\r\n  <li>Warnings on Admin if validating during ajax call for Drupal entity.</li>\r\n  <li>1951744: SAVED_UPDATED not returned if you're saving a revision.</li>\r\n  <li><a href=\"/node/2392387\">#2392387</a>: Adding comment.</li>\r\n  <li><a href=\"/node/2392387\">#2392387</a> by <a href='/u/gcb'>gcb</a>: URI validation fails on salesforce pull mapping \"website\" to \"link\"</li>\r\n  <li><a href=\"/node/1861564\">#1861564</a> by <a href='/u/aaronbauman'>aaronbauman</a>: salesforce_soap_requirements() cannot access libraries_get_path()</li>\r\n  <li>Improved testing comment.</li>\r\n  <li><a href=\"/node/2642094\">#2642094</a> by <a href='/u/aaronbauman'>aaronbauman</a>, <a href='/u/mpotter'>mpotter</a>: Should SF pull process use \"pull_trigger_date\" instead of \"LastModifiedDate\"?</li>\r\n  <li><a href=\"/node/1118736\">#1118736</a> by <a href='/u/aaronbauman'>aaronbauman</a>, <a href='/u/stella'>stella</a>: Add push success/failure hooks for REST</li>\r\n  <li><a href=\"/node/2612942\">#2612942</a> by <a href='/u/aaronbauman'>aaronbauman</a>: errors during salesforce_pull_map_fields()</li>\r\n  <li><a href=\"/node/2612934\">#2612934</a> by <a href='/u/aaronbauman'>aaronbauman</a>: Exception during exception handling</li>\r\n  <li><a href=\"/node/2605128\">#2605128</a> by <a href='/u/aaronbauman'>aaronbauman</a>: Bubble exceptions during cron pull</li>\r\n  <li><a href=\"/node/2605072\">#2605072</a> by <a href='/u/aaronbauman'>aaronbauman</a>: More helpful error messaging in salesforce_pull_map_fields()</li>\r\n  <li>Running tests through coder and adding unit test for salesforce_mapping_load_multiple.</li>\r\n  <li><a href=\"/node/1909990\">#1909990</a> Adding example usage to hook_salesforce_push_success, hook_salesforce_push_fail and hook_salesforce_push_entity_allowed.</li>\r\n  <li>2488000: Small documentation error.</li>\r\n  <li>Github Issue <a href=\"/node/100\">#100</a>: Avoid undefined index warnings if no  is set.</li>\r\n  <li><a href=\"/node/2612860\">#2612860</a>: Add missing parameter to documentation.</li>\r\n  <li><a href=\"/node/1980688\">#1980688</a> Only allow syncing when both push and pull modules enabled.</li>\r\n  <li><a href=\"/node/2688033\">#2688033</a>: Cleaning up api parameters.</li>\r\n  <li><a href=\"/node/2745063\">#2745063</a>: Small fixes to API documentation examples.</li>\r\n  <li><a href=\"/node/2644918\">#2644918</a> by <a href='/u/asherry'>asherry</a>: _uri() functions error after menu cache clear</li>\r\n  <li><a href=\"/node/2745063\">#2745063</a> by <a href='/u/rjacobs'>rjacobs</a>: Add alter hooks to manipulate mapping objects on pull and push (for custom prematching, etc.)</li>\r\n  <li><a href=\"/node/2730357\">#2730357</a> by <a href='/u/rjacobs'>rjacobs</a>, <a href='/u/aaronbauman'>aaronbauman</a>: Sync deletions on pull without using SOAP client</li>\r\n  <li><a href=\"/node/2688033\">#2688033</a> by <a href='/u/rjacobs'>rjacobs</a>, <a href='/u/aaronbauman'>aaronbauman</a>, <a href='/u/chrisolof'>chrisolof</a>: Add entity_presave/insert/update sf pull hooks</li>\r\n  <li><a href=\"/node/2637508\">#2637508</a> by <a href='/u/jfhovinne'>jfhovinne</a>: Drush command to execute a SOQL query</li>\r\n  <li><a href=\"/node/2642888\">#2642888</a> by <a href='/u/stephen.colson'>stephen.colson</a>: Queries with spaces not translated</li>\r\n  <li><a href=\"/node/2644714\">#2644714</a> by <a href='/u/bdone'>bdone</a>: Allow 'salesforce_endpoint' values in test environment</li>\r\n  <li><a href=\"/node/2643472\">#2643472</a> by <a href='/u/asherry'>asherry</a>: Strict warning: Only variables should be passed by reference in salesforce_mapping_form_submit</li>\r\n  <li><a href=\"/node/2640502\">#2640502</a> by <a href='/u/gcb'>gcb</a>: Allow for null RecordTypeId</li>\r\n  <li><a href=\"/node/2622064\">#2622064</a> by <a href='/u/eugenesia'>eugenesia</a>: Cannot access Salesforce REST API through Squid proxy</li>\r\n  <li><a href=\"/node/2499821\">#2499821</a> by <a href='/u/traviscarden'>TravisCarden</a>: Salesforce::apiCall() has PHP version dependency</li>\r\n  <li><a href=\"/node/1980688\">#1980688</a> by <a href='/u/pianomansam'>pianomansam</a>, <a href='/u/mpotter'>mpotter</a>: Better UI when only one mapping direction enabled</li>\r\n  <li><a href=\"/node/1889658\">#1889658</a> by <a href='/u/m�che'>Mèche</a>, <a href='/u/othmen'>othmen</a>, <a href='/u/markisatacomputer'>markisatacomputer</a>: RTBC - Taxonomy Terms pulling without vid</li>\r\n  <li><a href=\"/node/2622126\">#2622126</a> by <a href='/u/aaronbauman'>aaronbauman</a>: Store Salesforce Object Type Name in salesforce_mapping_object table</li>\r\n  <li><a href=\"/node/2612860\">#2612860</a> by <a href='/u/aaronbauman'>aaronbauman</a>: Add \"getUpdated()\" wrapper to Salesforce class; Update default salesforce api version to Winter '14</li>\r\n  <li><a href=\"/node/2748067\">#2748067</a> by <a href='/u/mariacha1'>mariacha1</a>: Upserting any item during batch processing cron attempts to upsert all subsequent records</li>\r\n  <li><a href=\"/node/2748535\">#2748535</a> by <a href='/u/mariacha1'>mariacha1</a>: Async option cron run fails to remove push items from queue unless salesforce_soap is enabled</li>\r\n  <li>Handle allowed record types configuration set by features</li>\r\n  <li>Merge branch '7.x-3.x' of github.com:thinkshout/salesforce into 7.x-3.x</li>\r\n  <li>Merge pull request <a href=\"/node/100\">#100</a> from thinkshout/webhooks</li>\r\n  <li>Standardize on the REQUEST_TIME constant</li>\r\n  <li>Process salesforce_pull queue items as part of webhook request</li>\r\n  <li>Refactor webhook and cron pull actions into a single function</li>\r\n  <li>Broader code style updates</li>\r\n  <li>Add actual webhook url to the field help text</li>\r\n  <li>Move webhook related code into salesforce_pull until/if we have non-pull webhooks</li>\r\n  <li><a href=\"/node/2641994\">#2641994</a>: swapped out undefined method Salesforce::verifyId for convertId</li>\r\n  <li>Add throttle to salesforce pull - prevent too many from running at once</li>\r\n  <li>Add a webhook callback for salesforce pull.</li>\r\n  <li>Use same level of permission as oauth_callback. Add example for key</li>\r\n  <li>Webhook settings and access.</li>\r\n  <li><a href=\"/node/2601416\">#2601416</a> by <a href='/u/gcb'>gcb</a>: Updates pushing to non-updateable fields causes errors</li>\r\n  <li><a href=\"/node/2616300\">#2616300</a> by <a href='/u/jfhovinne'>jfhovinne</a>: Add OFFSET clause to SalesforceSelectQuery</li>\r\n  <li><a href=\"/node/2605100\">#2605100</a> by <a href='/u/aaronbauman'>aaronbauman</a>: Fix import to integer property (allow mapping SF checkbox to Node status)</li>\r\n  <li>Add documentation for hook_salesforce_query_alter()</li>\r\n  <li>Combine hook_salesforce_push_entity_allowed_by_mapping into hook_salesforce_push_entity_allowed with the additional $mapping argument.</li>\r\n  <li>Fix references to $synced_entity, and refactor $mapping_object reference</li>\r\n  <li><a href=\"/node/2611098\">#2611098</a> by <a href='/u/aaronbauman'>aaronbauman</a>, <a href='/u/sergei_brill'>sergei_brill</a>: Undefined variable</li>\r\n  <li>Switch sort method, so the list is sorted in a more expected way.</li>\r\n  <li>Display field key alongside the field name, to disambiguate fields with the same name.</li>\r\n  <li>Update pull value callback for relation endpoint fieldmap type (i.e. salesforce_mapping_relation_endpoints_fieldmap_pull_value) to ensure directional endpoints only get returned if they match the allowed source and target bundles, respectively. Previously we were appending our return values for directional relations to the same array we used to aggregate the values in the first place, which could result in the first value of the return array being a duplicate of the second if there was only one endpoint present and it was the target endpoint in a directional relation</li>\r\n  <li><a href=\"/node/2488818\">#2488818</a> by <a href='/u/gcb'>gcb</a>: Add a configurable \"update field\" for mappings</li>\r\n  <li><a href=\"/node/2415015\">#2415015</a> by <a href='/u/yogaf'>yogaf</a>: SalesForce views module not working for users</li>\r\n  <li>Cast to bool when pushing to a boolean SF field</li>\r\n  <li><a href=\"/node/2305889\">#2305889</a> by <a href='/u/tauno'>tauno</a>, <a href='/u/dbcollies'>dbcollies</a>: Make REST API version configurable</li>\r\n  <li><a href=\"/node/2287065\">#2287065</a> by <a href='/u/dbcollies'>dbcollies</a>: Add support for apexrest URLs</li>\r\n  <li>removing debugging cruft</li>\r\n  <li><a href=\"/node/2488000\">#2488000</a> by <a href='/u/aaronbauman'>aaronbauman</a>, <a href='/u/philipnorton42'>philipnorton42</a>, <a href='/u/rjacobs'>rjacobs</a>, <a href='/u/gcb'>gcb</a>: Notice created via salesforce_mapping_menu()</li>\r\n  <li>Merge branch '7.x-3.x' of git.drupal.org:project/salesforce into 7.x-3.x</li>\r\n  <li>Fixing synxtax error from commit 4acc573</li>\r\n  <li>fixing hook_menu for users in sf mapping. Anonymous user with id = 0 is breaking things.</li>\r\n  <li><a href=\"/node/2223673\">#2223673</a> by <a href='/u/ohthehugemanatee'>ohthehugemanatee</a>, <a href='/u/pianomansam'>pianomansam</a>, <a href='/u/aaronbauman'>aaronbauman</a>: add \"push\" button to mapping object edit form to force update from drupal</li>\r\n  <li>adding \"convertId\" function to translate between 15 and 18 char SFIDs</li>\r\n  <li><a href=\"/node/2553413\">#2553413</a> by <a href='/u/pianomansam'>pianomansam</a>: Mappings with LastModifiedDate field fail due to being included twice in SalesforceSelectQuery</li>\r\n  <li>change entity_id and entity_type to values in salesforce_mapping_object_form</li>\r\n  <li>changing \"mapped_object\" to \"mapping_object\"</li>\r\n  <li><a href=\"/node/1909990\">#1909990</a> by <a href='/u/tanmayk'>tanmayk</a>, <a href='/u/aaronbauman'>aaronbauman</a>: Conditional Push to Salesforce; Adding hooks: hook_salesforce_push_entity_allowed_by_mapping, hook_salesforce_push_success, hook_salesforce_push_fail</li>\r\n  <li>Adding hooks: hook_salesforce_push_entity_allowed_by_mapping, hook_salesforce_push_success, hook_salesforce_push_fail</li>\r\n  <li><a href=\"/node/2488000\">#2488000</a> by <a href='/u/philipnorton42'>philipnorton42</a>, <a href='/u/rjacobs'>rjacobs</a>, <a href='/u/aaronbauman'>aaronbauman</a>: better entity support in salesforce_mapping_menu()</li>\r\n  <li>improve exception thrown when drupal entity fails to be created from SF object by including the SF object ID so user can more easily track down source of the failure</li>\r\n  <li>one more mapped/mapping change</li>\r\n  <li>renaming confusing variable references to \"mapped_objects\" which is actually a single \"mapping object\"</li>\r\n  <li><a href=\"/node/2534076\">#2534076</a> - sequentially index all items for push</li>\r\n  <li>removing unnecessary module_load_include() calls</li>\r\n  <li>forgot the row id</li>\r\n  <li>adding theme_salesforce_mapping_form_table_row() to fix compatibility for any themes which override theme_table(); converted fieldmap form token tree to use jquery ui dialog per <a href=\"/node/1684984\">#1684984</a></li>\r\n  <li>Sort fields alphabetically for ease of use.</li>\r\n  <li>Remove unused extra fields definitions</li>\r\n  <li>Change STARTS_WITH operator to LIKE with proper escaping</li>\r\n  <li>check if variable is set instead of acting directly on it to avoid \"undefined index: <sf-object-id> in salesforce_mapping_load_multiple()\" error</li>\r\n</ul>"}}
{"actor":{"display_login":"mariacha"}}