{ "info": { "author": "Plone/Salesforce Integration Group", "author_email": "plonesf@googlegroups.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Zope2", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Overview\n========\n\nThe Salesforce Base Connector product provides a Zope-aware tool for \ninteracting with the Python-based Beatbox Salesforce client and \nfor storing username and password information for connecting to\na Salesforce.com instance.\n\n\nRationale For This Product\n==========================\n\nSalesforce.com provides an extensible, powerful platform from which\nto do Customer Relationship Management (CRM) tasks ranging from sales,\nmarketing, nonprofit constituent organizing, and customer service. \n\nBeatbox is a Python wrapper to the Salesforce.com API (version 16.0), and\nprovides the underpinnings for this product, but suffers from several\nlimitations from within the Zope/Plone integrator space.\n\nSalesforce Base Connector aims to augment Beatbox for Zope/Plone developers,\nproviding a convenient and cleanly integrated set of features:\n\n- Managing Salesforce credentials\n- Managing HTTP connections to Salesforce\n- Managing Zope permissions over view and edit actions against Salesforce\n- Providing an interface to the Salesforce API from within restricted Python;\n for example, in Python Script objects and Zope Page Templates\n\nAdditionally, Salesforce Base Connector is intended to decouple Zope/Plone\ndevelopment projects from the specific Python toolkit used as the interface to\nSalesforce. If a more current alternative to Beatbox comes onto the scene,\nSalesforce Base Connector can be updated to use this code base as its underlying\nframework.\n\nSalesforce Base Connector is intended to be used as the foundational piece for\nyour own Plone/Salesforce applications.\n\n\nDependencies\n============\n\nCompatible with Zope 2.9, 2.10, 2.11, and 2.12.\n\nDepends upon the Beatbox library, which is a Python wrapper to the\nSalesforce.com API (version 16.0). Beatbox 16.0 or greater is required.\n\nTo download and install beatbox, please visit::\n\n http://code.google.com/p/salesforce-beatbox/\n\nIf installing salesforcebaseconnector via setuptools or zc.buildout, beatbox\nshould be automatically installed as a dependency.\n\n\nInstallation and Configuration\n==============================\n\nBuildout\n--------\n\n * Add ``Products.salesforcebaseconnector`` to the eggs section of your buildout\n configuration and run buildout.\n\n * Restart Zope.\n\n * In ZMI, add Salesforce Base Connector to root of site, then set username and\n password. The credentials will be tested for validity before being stored.\n\nTraditional Zope Product\n------------------------\n\n * Install dependencies (see beatbox/README.txt for install instructions)\n\n * Unpack the salesforcebaseconnector product package into the Products folder\n of the Zope/Plone instance. Check your ownership and permissions.\n\n * Restart Zope.\n\n * In ZMI, add Salesforce Base Connector to root of site, then set username\n and password. The credentials will be tested for validity before being\n stored.\n\n\nAdditional Documentation and Support\n====================================\n\nProduct home is http://plone.org/products/salesforcebaseconnector. A\n`documentation area`_ and `issue tracker`_ are available at the linked\nlocations.\n\n.. _documentation area: http://plone.org/documentation/manual/integrating-plone-with-salesforce.com\n.. _issue tracker: http://plone.org/products/salesforcebaseconnector/issues\n\nFor examples of the various Salesforce.com API calls that are available,\nsee interfaces/salesforcebaseconnector.py\n\n\n\nA Google Group, called `Plone Salesforce Integration`_ exists with the sole aim\nof discussing and developing tools to make Plone integrate well with\nSalesforce.com. If you have a question, joining this group and posting to the\nmailing list is the likely best way to get support.\n\n.. _Plone Salesforce Integration: http://groups.google.com/group/plonesf\n\nFailing that, please try using the Plone users' mailing list or the #plone irc channel for\nsupport requests. If you are unable to get your questions answered there, or are \ninterested in helping develop the product, see the credits below for \nindividuals you might contact.\n\n\nCredits\n=======\n\nThe Plone & Salesforce crew in Seattle and Portland:\n\n- Jon Baldivieso \n- Andrew Burkhalter \n- Brian Gershon \n- David Glick \n- Jesse Snyder \n\nJesse Snyder and NPower Seattle for the foundation of code that has become\nSalesforce Base Connector\n \nSimon Fell for providing the beatbox Python wrapper to the Salesforce.com API\n\nSalesforce.com Foundation and Enfold Systems for their gift and work on beatbox\n(see: http://gokubi.com/archives/onenorthwest-gets-grant-from-salesforcecom-to-integrate-with-plone)\n\nSee the CHANGES.txt file for the growing list of people who helped\nwith particular features or bugs.\n\n\nLicense\n=======\n\nDistributed under the GPL.\n\nSee LICENSE.txt and LICENSE.GPL for details.\n\n\nRunning Tests\n=============\n\nTo run tests in a unix-like environment, do the following::\n\n $ cd $INSTANCE/Products/salesforcebaseconnector/tests\n $ cp sfconfig.py.in sfconfig.py\n Then edit sfconfig.py with your Salesforce.com USERNAME and PASSWORD\n $ cd $INSTANCE\n $ ./bin/zopectl test -s Products.salesforcebaseconnector\n\n\nFAQ about running tests\n=======================\n\nIf you see an error message like the following and you're certain your\nlogin/password combination *IS* valid::\n\n SoapFaultError: 'INVALID_LOGIN' 'INVALID_LOGIN: Invalid username or password or locked out.'\n\nYou're likely running into one of several security measures in effect at\nSalesforce.com. You can do one of the following.\n\n**Setup your security token within your Salesforce instance and append it to your password**\nTo do so, following these instructions:\n\n1) Log into your Salesforce.com instance\n2) Click Setup\n3) My Personal information\n4) Reset My Security Token\n5) edit sfconfig.py to have \"mypassword[token]\" (where [token] is your security token)\n\n**Whitelist your IP address**\n\nThis can be done at the following:\n\n1) Log into your Salesforce.com instance\n2) Click Setup\n3) Security Controls\n4) Network Access\n\nThe latter option may be preferable in a production environment, since the\nsecurity token is more likely to change over time with password updates. For\ntesting, either is fine.\n\nYou can find the needed background at http://www.salesforce.com/security/\n\nOften tests can fail if one has aborted the running of the tests midstream,\nthus bypassing the cleanup (i.e. removing fake contacts) that happens after\neach individual test is run. If you encounter incorrect assertions about the\nnumbers of contacts in your Salesforce instance, try searching for and cleaning\nup dummy John and Jane Doe contacts.\n\nChange history\n==============\n\n1.4 (2010-08-23)\n\n - Store clients on the ZODB connection object rather than in a volatile\n attribute.\n [davisagli]\n\n1.3 (2010-06-17)\n\n - Add a validateCredentials method that can be used from a remote monitor to\n confirm that the base connector is still able to connect to Salesforce.\n [davisagli]\n\n - Make sure that item access to QueryRecord objects is allowed from Restricted\n Python.\n [davisagli]\n\n - Make sure that QueryRecordSets can be accessed from Restricted Python.\n [davisagli]\n\n1.2 (2009-11-12)\n\n - Make sure that QueryRecords can be accessed from Restricted Python.\n This fixes http://plone.org/products/salesforcebaseconnector/issues/6\n [davisagli]\n\n - Avoid deprecated import from Globals in Zope 2.12.\n [davisagli]\n\n - Confirmed compatibility with Plone 4.\n [davisagli]\n\n1.2b2 (2009-09-11)\n\n - Enabled the beatbox type descriptions cache. If you edit the schema of\n an object in Salesforce, you'll need to either go to\n portal_salesforcebaseconnector and press the 'Purge cache' button,\n or restart Zope.\n [davisagli]\n\n1.2b1 (2009-09-08)\n\n - Added the search method from beatbox 16.0.\n\n - Modified the method signature of the query method to match beatbox and the\n Salesforce.com API. Now a single full SOQL statement is expected, rather\n than the old 3-part field list, sObject type, and optional where clause.\n The old method signature is deprecated but should still work for now.\n [davisagli]\n\n - Refactored the session timeout handling to use a\n 'recover_from_session_timeout' decorator to avoid code repetition.\n [davisagli]\n\n - Replaced the _getClient method with a property called client.\n _getClient is now deprecated.\n [davisagli]\n\n - Added button in ZMI to flush the beatbox type description cache.\n [davisagli]\n\n - beatbox 16.0dev or greater is now required.\n [davisagli]\n\n - Call describeSObjects in batches of 100 object types (Salesforce.com\n limit in recent versions of the API).\n [davisagli]\n\n1.1.1 (2009-05-13)\n\n - Don't persist the serverUrl unless it differs from beatbox's default.\n [davisagli]\n\n1.1 (2009-05-13)\n\n - Fixed configuration form so if the form validation fails it doesn't wipe\n out your form values.\n [davisagli]\n\n - Added option to configure the Salesforce API SOAP endpoint (server URL).\n [davisagli]\n\n - Remove deprecated parameter product_name from ToolInit call, this has been \n gone since before 2.5.5 which is our earliest Salesforce Base Connector \n version.\n [andrewb]\n\n1.0.1 final (2009-01-20)\n\n - Fixed packaging issue and contain sfconfig.py in released version 1.0 final\n [andrewb]\n\n1.0 final (2009-01-13)\n\n - Updated beatbox dependency to version 0.9.1.1\n [davisagli]\n\n - Don't use trademarked Salesforce.com icon.\n [davisagli]\n\n1.0c1 (2008-12-22)\n\n - Protect the base connector's query, queryMore, retrieve, getDeleted, and\n getUpdated methods with the 'Manage portal' permission instead of making\n them publicly traversable. Note that this means any restricted Python\n calling these methods (e.g. page templates or Python scripts) will need\n to use a proxy role that has this permission in order to continue functioning.\n [davisagli]\n\n - Don't display a configured password in the configuration form. [davisagli]\n\n - Refactored credentials check so that invalid credentials will result in a warning\n shown to the user, rather than failing silently. This closes issue #2. [andrewb, davisagli]\n \n - Integration test suites all based on CMFTestCase and creation of CMF Site,\n rather than PloneTestCase and Plone site for performance reasons [andrewb]\n\n1.0-alpha3\n\n - Added new publicly supported API \"listFieldsRequiredForCreation\" which\n encapsulates some of the rules for which fields are required upon object\n creation via the SOAP API for Salesforce.com. The benefit being that \n additional packages need not reproduce the following, which may evolve \n anyway:\n \n not fieldData.nillable and \\\n not fieldData.defaultedOnCreate and \\\n fieldData.createable\n \n listFieldsRequiredForCreation accepts a Salesforce Object type as its\n lone required argument (Jesse Snyder)\n\n - Removing unneeded portal_skins FSDV (Jesse Snyder) \n\n - Improved docstrings for interfaces (Jesse Snyder)\n\n\n1.0-alpha2\n\n - Updating CMFCore permission imports to work with CMF-2.1.0 (Emyr Thomas)\n - Tested with Plone 3.0 final (Andrew Burkhalter)\n\n1.0-alpha1\n\n - Initial import and creation of standalone product", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://groups.google.com/group/plonesf", "keywords": "Zope CMF Plone Salesforce.com CRM integration", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "Products.salesforcebaseconnector", "package_url": "https://pypi.org/project/Products.salesforcebaseconnector/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Products.salesforcebaseconnector/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://groups.google.com/group/plonesf" }, "release_url": "https://pypi.org/project/Products.salesforcebaseconnector/1.4/", "requires_dist": null, "requires_python": null, "summary": "Provides access to the Salesforce API within Zope 2, based on the beatbox library", "version": "1.4" }, "last_serial": 785195, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "96f2fe8670008d7e08f05726f02edb5c", "sha256": "468bd5068fef63c9e606b35044322b2e1dcc2c440071a4e294542033fc4cb34a" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.0-py2.4.egg", "has_sig": false, "md5_digest": "96f2fe8670008d7e08f05726f02edb5c", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 44979, "upload_time": "2009-01-13T20:00:45", "url": "https://files.pythonhosted.org/packages/00/02/8ca669fba20c03c83b6bc7d00148b116da791904b8c4355fd967698891bb/Products.salesforcebaseconnector-1.0-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "0547605ca7b9a92f92ae58fb327f8dc3", "sha256": "f361af64aa48af3a2a1be4ba557d4b30fdad5ffbdba01d454be83d0e25fd2b8f" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.0.tar.gz", "has_sig": false, "md5_digest": "0547605ca7b9a92f92ae58fb327f8dc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24940, "upload_time": "2009-01-13T20:00:44", "url": "https://files.pythonhosted.org/packages/a6/3c/be4fb568f17d7eb4bf703466f72e0bd98dc7cc136a9f13662a825a63b415/Products.salesforcebaseconnector-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "8a818fc25db5eddbeec5e713a85ad1b7", "sha256": "2bc4d7754f7f33bd249d6c7e508f4a2a0d7ca447eb8eeddcf222d8692a258a4d" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.0.1-py2.4.egg", "has_sig": false, "md5_digest": "8a818fc25db5eddbeec5e713a85ad1b7", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 44625, "upload_time": "2009-01-20T21:54:44", "url": "https://files.pythonhosted.org/packages/be/1c/7ded66b5880466e40963dfd5acd4353fe6660c8f94eb38946c0101263a25/Products.salesforcebaseconnector-1.0.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "d0ea96ad1417f472651fe038763925b7", "sha256": "8f339ccde8d1ec1de21b282cbcfb07bccc7709ed3599744eff9437c3378be82a" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d0ea96ad1417f472651fe038763925b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25761, "upload_time": "2009-01-20T21:54:42", "url": "https://files.pythonhosted.org/packages/13/ea/d76a100d1158fb05bd9083b71b569e897afc521bd5b63114b7d716000390/Products.salesforcebaseconnector-1.0.1.tar.gz" } ], "1.0alpha3": [ { "comment_text": "", "digests": { "md5": "59e4ff1f18a156667e6db6ee202c2799", "sha256": "883a8f2c712d3a93e0a78f331b6ab2766cea73a786cf689af988e33436d9b410" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.0alpha3-py2.4.egg", "has_sig": false, "md5_digest": "59e4ff1f18a156667e6db6ee202c2799", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 42625, "upload_time": "2008-06-05T23:07:47", "url": "https://files.pythonhosted.org/packages/15/22/bab9335d9d43ff26f44e8aa67e207236f527726297636909b563ab32d034/Products.salesforcebaseconnector-1.0alpha3-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "01982dde608588d365dcd2b55ab9f30c", "sha256": "55817ce0ec37e35ae31dbffe193fc0597fc70d35d3fd97711c939dc8a7102519" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.0alpha3.tar.gz", "has_sig": false, "md5_digest": "01982dde608588d365dcd2b55ab9f30c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24236, "upload_time": "2008-06-05T23:07:45", "url": "https://files.pythonhosted.org/packages/05/76/6edeac7187b1a6de31a4bcc8a7cd2c246978a6e5d49e156516142cf9496b/Products.salesforcebaseconnector-1.0alpha3.tar.gz" } ], "1.0c1": [ { "comment_text": "", "digests": { "md5": "cebd5dc756d3d3246cb8bf8f40e3e5e5", "sha256": "cbbe61d77b4bae38eda038bde0068a8755ca9ad8e4c94417e1ac7b2342b0a3e3" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.0c1-py2.4.egg", "has_sig": false, "md5_digest": "cebd5dc756d3d3246cb8bf8f40e3e5e5", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 44365, "upload_time": "2008-12-22T19:23:14", "url": "https://files.pythonhosted.org/packages/a0/d6/525f3880b515b56362b3ada7052967a0cae80cd1f6f4bd97afb68fd27fab/Products.salesforcebaseconnector-1.0c1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "80f9f7d2373f2025df2830f785aed199", "sha256": "c23706fbef2a9c6199df9668aaf4695d13645d11392d10debb1fe0c635cdaab8" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.0c1.tar.gz", "has_sig": false, "md5_digest": "80f9f7d2373f2025df2830f785aed199", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24874, "upload_time": "2008-12-22T19:23:11", "url": "https://files.pythonhosted.org/packages/a1/69/954473daa7eea12737dfb509ae3bcd4ff6754dc7d8147a0c393c4e8fcf4a/Products.salesforcebaseconnector-1.0c1.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "302d5fd4c8e9a8c35c7bac6b2405d479", "sha256": "f3c08479771735b64364aa68d509a4109e0f31be9f67dd503a61bf4209bfe8f3" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.1.tar.gz", "has_sig": false, "md5_digest": "302d5fd4c8e9a8c35c7bac6b2405d479", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26295, "upload_time": "2009-05-14T06:49:57", "url": "https://files.pythonhosted.org/packages/18/47/a2d5bc975f06c433692c55f9371cdb39781ff0ebdfe70c59973f6c977f7c/Products.salesforcebaseconnector-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "e8a86783d69f3b87bde84b86742266c1", "sha256": "e0bf48235edf9ad89ebb216bae36465e240ff2ea5eae99f4370859a046456347" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.1.1.tar.gz", "has_sig": false, "md5_digest": "e8a86783d69f3b87bde84b86742266c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26550, "upload_time": "2009-05-14T08:04:12", "url": "https://files.pythonhosted.org/packages/aa/04/a3e10a30fd837a80967cc52c67b00f791f3f74c403b6a9aab5ba43c96070/Products.salesforcebaseconnector-1.1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "7acd63709874216d9ce5cfcfb0e52a6c", "sha256": "b61de01dc868497f879da8fb25012f685f6d4e280816c2c2b1bf81b5db69a3bb" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.2.zip", "has_sig": false, "md5_digest": "7acd63709874216d9ce5cfcfb0e52a6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39933, "upload_time": "2009-11-13T01:04:43", "url": "https://files.pythonhosted.org/packages/64/44/83d8aacdf8d8250e35175879b5b2f80faf4bc5e94e7be00f0970d5de295f/Products.salesforcebaseconnector-1.2.zip" } ], "1.2b1": [ { "comment_text": "", "digests": { "md5": "f8225044abcc9b2dbf902c556d49ebb5", "sha256": "5cad0f2210be54a16015d8fd6b43c1263ffe6b32d16d0f3ab20efd83ebbe9450" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.2b1.tar.gz", "has_sig": false, "md5_digest": "f8225044abcc9b2dbf902c556d49ebb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28576, "upload_time": "2009-09-08T23:54:22", "url": "https://files.pythonhosted.org/packages/05/f7/52a17b7e176d3fe189ded3be8c261209a2d080c3fa1ffd21af6abae597ed/Products.salesforcebaseconnector-1.2b1.tar.gz" } ], "1.2b2": [ { "comment_text": "", "digests": { "md5": "70ae1bf08c971d58c7426268df351c33", "sha256": "ae1ece13fe48eaa77730ab867156b4c6f13d65053168709b1dd3abc68d6468a9" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.2b2.zip", "has_sig": false, "md5_digest": "70ae1bf08c971d58c7426268df351c33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39597, "upload_time": "2009-09-11T22:49:18", "url": "https://files.pythonhosted.org/packages/b2/b9/8cb82b2a58ef0024c89d8cc8e19e1ff3fac69da6cc6f368c40dac6a95b5d/Products.salesforcebaseconnector-1.2b2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "e923de6dcdbabf33b6c45f7fb9584dd1", "sha256": "d7bb096ca87f7e77e0ba38e43433efa06731e72ad1104aecb3e4cfd925eea7fd" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.3.zip", "has_sig": true, "md5_digest": "e923de6dcdbabf33b6c45f7fb9584dd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42935, "upload_time": "2010-06-17T19:59:11", "url": "https://files.pythonhosted.org/packages/0e/f6/6b0ea79cdd245e6207d9ff5a09facf2210d06650c705b5fbfc854755d37c/Products.salesforcebaseconnector-1.3.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "a809d4905b9d17d383477feee0f3a696", "sha256": "c6b3d755d84a3bc176fd8baaa0be0c2c7a7aefd12af8b1812fb3379fa7e415bb" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.4.zip", "has_sig": false, "md5_digest": "a809d4905b9d17d383477feee0f3a696", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44120, "upload_time": "2010-08-24T00:51:56", "url": "https://files.pythonhosted.org/packages/1e/f7/dda3b5e1f829b5a04e8abaa5a3de8dd4f008c73865c0daadc0e8c1ef4eea/Products.salesforcebaseconnector-1.4.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a809d4905b9d17d383477feee0f3a696", "sha256": "c6b3d755d84a3bc176fd8baaa0be0c2c7a7aefd12af8b1812fb3379fa7e415bb" }, "downloads": -1, "filename": "Products.salesforcebaseconnector-1.4.zip", "has_sig": false, "md5_digest": "a809d4905b9d17d383477feee0f3a696", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44120, "upload_time": "2010-08-24T00:51:56", "url": "https://files.pythonhosted.org/packages/1e/f7/dda3b5e1f829b5a04e8abaa5a3de8dd4f008c73865c0daadc0e8c1ef4eea/Products.salesforcebaseconnector-1.4.zip" } ] }