{
"info": {
"author": "Matt Caldwell",
"author_email": "matt.caldwell@gmail.com",
"bugtrack_url": null,
"classifiers": [],
"description": "[](https://pypi.python.org/pypi/django-smart-proxy/)\n[](https://pypi.python.org/pypi/django-smart-proxy/)\n\nDjango Smart Proxy\n==================\nDjango Smart Proxy is a plug-and-play solution for implementing pass-through proxies in\na Django-based environment.\n\n**Extensibility**
\nDjango Smart Proxy exposes a *request_decorators* parameter that makes it easily\nextensible, allowing access to the request \"pipeline\" before being sent to the host.\n\n**Common Use Cases**\n- Handling OAuth on the server-side to avoid exposing secret keys to the client.\n- As an alternative to CORS for making cross-domain AJAX requests.\n- Anything else...?\n\n\nInstallation\n============\n**Requires**\n- Python >= 2.6 (supports up to 3.4)\n- Django >= 1.4 (Python 2 support up to 1.6.x)\n\n*For all requirements, see setup.py.*\n\n**Installing**\n```\npip install django-smart-proxy\n```\n\nUsage\n=====\n1. Add ```smart_proxy``` to ```INSTALLED_APPS``` in your ```settings.py```.\n \n **Example**\n ```python\n INSTALLED_APPS = (\n ...,\n 'smart_proxy',\n ...,\n )\n ```\n\n2. Add a ```SMART_PROXIES``` dictionary to ```settings.py``` to configure an arbitrary number of proxies.\n \n **Example**\n ```python\n SMART_PROXIES = {\n 'instagram': {\n 'host_endpoint': 'https://api.instagram.com/v1/',\n 'allowed_methods': ('get', 'put', 'post', 'delete',),\n 'timeout': 60.0,\n },\n 'twitter': {\n 'host_endpoint': 'https://api.twitter.com/1.1/',\n 'allowed_methods': ('get', 'put', 'post', 'delete',),\n 'timeout': 60.0,\n 'request_decorators': (\n 'channel.apps.twitter_auth.utils.append_authorization_header',\n ),\n },\n }\n ```\n3. Edit your ```urls.py``` to configure a root URL mapping for the proxies.\n \n **Example**\n ```python\n urlpatterns = patterns(\n ...,\n url(r'^proxy/', include('smart_proxy.urls')),\n ...,\n )\n ```\n4. If applicable, provide an implementation for your request decorators.\n\n **Example**\n ```python\n from django.conf import settings\n from requests_oauthlib import OAuth1\n \n def append_authorization_header(request, session):\n \"\"\"\n This function decorates requests to the Twitter proxy with a\n signed oauth-compliant Authorization header.\n \"\"\"\n \n client_key = getattr(settings, 'SOCIAL_AUTH_TWITTER_KEY', None)\n client_secret = getattr(settings, 'SOCIAL_AUTH_TWITTER_SECRET', None)\n \n if client_key and client_secret:\n request.auth = OAuth1(\n client_key,\n client_secret=client_secret,\n resource_owner_key=session.get('twitter_oauth_token'),\n resource_owner_secret=session.get('twitter_oauth_token_secret'))\n \n return request\n ```\n5. You're Done!\n\nIn this example, your proxies will be available at ```/proxy/instagram/``` and ```/proxy/twitter/``` respectively.",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/celerityweb/django-smart-proxy/",
"keywords": null,
"license": "MIT - see LICENSE file",
"maintainer": null,
"maintainer_email": null,
"name": "django-smart-proxy",
"package_url": "https://pypi.org/project/django-smart-proxy/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/django-smart-proxy/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "https://github.com/celerityweb/django-smart-proxy/"
},
"release_url": "https://pypi.org/project/django-smart-proxy/0.2.1/",
"requires_dist": null,
"requires_python": null,
"summary": "The django-smart-proxy app allows you to configure plug-and-play reverse proxy solutions for social networks and other complex integration points with your website.",
"version": "0.2.1"
},
"last_serial": 1446470,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "4c916d741b56c7693f50c2a92dc82cc2",
"sha256": "58dea7b46e17c56c3bd1d31a220d5eee318e76cecb1b421fc4e40d3f0e45e177"
},
"downloads": -1,
"filename": "django-smart-proxy-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "4c916d741b56c7693f50c2a92dc82cc2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13057,
"upload_time": "2014-11-21T21:19:46",
"url": "https://files.pythonhosted.org/packages/38/f2/ecc1f6be51b03951d92f857409ecb1d2343e3866f289d193337d0279739e/django-smart-proxy-0.0.1.tar.gz"
}
],
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "faad70c191c2ec541259205f150c60c0",
"sha256": "39698e94919f0c75d950a9bce2bbfc9cd562f62fccdb64990aa54f927c99aa36"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "faad70c191c2ec541259205f150c60c0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12061,
"upload_time": "2014-11-26T19:51:58",
"url": "https://files.pythonhosted.org/packages/45/7c/1d6455084f26e1f1645c227e29eb3babbe8df741512cc5bc11cca27b4033/django-smart-proxy-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "44c7efc8e5f6c8b66730965b38c51f96",
"sha256": "9772177c91c3bf48cd040c8acf8028b57d8b8f2e6c60613db6a7f8580d09463c"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "44c7efc8e5f6c8b66730965b38c51f96",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12080,
"upload_time": "2014-11-26T21:03:34",
"url": "https://files.pythonhosted.org/packages/25/63/893b69b0cf0f492e0c03e2e209778a169209fa042c1e0fa2e82b03c078e8/django-smart-proxy-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "78db255987298526938fa0f90d133f17",
"sha256": "3e84df4d476b78c81193bc96d4321fbdf6d5d95d322307ee67633b32a9097dbe"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "78db255987298526938fa0f90d133f17",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12111,
"upload_time": "2014-11-26T21:17:13",
"url": "https://files.pythonhosted.org/packages/54/f1/e9c45ec99218edeb8a4f5bc184208336c8c9117f7cc8ed91c73f80b523a9/django-smart-proxy-0.1.2.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "f71d20db18d7e9b3b85b946eee7c3bf2",
"sha256": "a33ebd249cf0bf822754ea51ea8067977078244a34653ca0435fd5c1974453b6"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "f71d20db18d7e9b3b85b946eee7c3bf2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12117,
"upload_time": "2014-11-26T21:57:29",
"url": "https://files.pythonhosted.org/packages/93/23/8558f383213a9099226d327c26af4c1a36fb58dfb539e11dd0c11e04b755/django-smart-proxy-0.1.3.tar.gz"
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "accfb282d717e376710d63ef5727105a",
"sha256": "a9f6543f83aae93478a6b301410a3e831919aa9b278f98eb5972bad975131b73"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "accfb282d717e376710d63ef5727105a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12173,
"upload_time": "2014-11-26T22:57:20",
"url": "https://files.pythonhosted.org/packages/4a/97/f552b071dc10c390e81da45092004bf2f8b43852b6c13032ed750ef3848a/django-smart-proxy-0.1.4.tar.gz"
}
],
"0.1.5": [
{
"comment_text": "",
"digests": {
"md5": "6bdcf2872a504019824a081bcebea1fd",
"sha256": "372156ff6f86e84a6e795fd24c2dffa321979f8364cffa441b2bac8ae17d8263"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "6bdcf2872a504019824a081bcebea1fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12272,
"upload_time": "2014-11-26T23:39:13",
"url": "https://files.pythonhosted.org/packages/c5/60/af78adf62685bb671fda7cde2f58bda0150e0cd22a7b1c5116692b2da7a9/django-smart-proxy-0.1.5.tar.gz"
}
],
"0.1.6": [
{
"comment_text": "",
"digests": {
"md5": "6670783d5b2756553113121b89861a4a",
"sha256": "2a9354987481fa37f2418d4919d007c2b41e59c30661c6186cfcd3410d923472"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "6670783d5b2756553113121b89861a4a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6508,
"upload_time": "2014-11-27T02:37:27",
"url": "https://files.pythonhosted.org/packages/b6/03/d57f2dac073f41688213231243719b0562c824402238893f5e1c828059c1/django-smart-proxy-0.1.6.tar.gz"
}
],
"0.1.7": [
{
"comment_text": "",
"digests": {
"md5": "66991008a4f790451fb153818df13658",
"sha256": "95de0208cb8d884c33ffde8bd9c439e650918954f623ea36c9bf67d296c81cb7"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "66991008a4f790451fb153818df13658",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6284,
"upload_time": "2014-12-02T20:14:51",
"url": "https://files.pythonhosted.org/packages/2c/c9/c3cfaef1b415fe5188bd9f0db6550367a5b78a6bc90411f05c2e7751a9d6/django-smart-proxy-0.1.7.tar.gz"
}
],
"0.1.8": [
{
"comment_text": "",
"digests": {
"md5": "699387101776f4074f83e15983665007",
"sha256": "97201f7e8929fb1a63a59c573cedc7dd5b529f99ca43d94cd77a6d73110a53ab"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "699387101776f4074f83e15983665007",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6282,
"upload_time": "2014-12-02T20:26:36",
"url": "https://files.pythonhosted.org/packages/1b/24/b5066d141f6f9b3e506ccc77c4f36ab26ab140f96d236106d36c1801d881/django-smart-proxy-0.1.8.tar.gz"
}
],
"0.1.9": [
{
"comment_text": "",
"digests": {
"md5": "3dd5a54117948c7fe2bdaf8b26406358",
"sha256": "7de8d3270b10b45b065b78cd895bebecbf7c5030ff9efa76ba9b72502d429b4c"
},
"downloads": -1,
"filename": "django-smart-proxy-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "3dd5a54117948c7fe2bdaf8b26406358",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6286,
"upload_time": "2014-12-03T18:40:48",
"url": "https://files.pythonhosted.org/packages/3f/af/dea4ccc40f7f605cf9700472a953390ff708ae7223938a6a9c3390636e0a/django-smart-proxy-0.1.9.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "9bc5a5eab2002553a05e8e57a0d13eba",
"sha256": "d53de798aad2d07ccf1e8f930d6131848522c47a36ad12b03c717667f382511b"
},
"downloads": -1,
"filename": "django-smart-proxy-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "9bc5a5eab2002553a05e8e57a0d13eba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6392,
"upload_time": "2014-12-03T19:07:56",
"url": "https://files.pythonhosted.org/packages/c8/1a/652a3191c36153963b9e9f9fb32924e263ad8d009b45dc499e1a8ba6e989/django-smart-proxy-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "built for Darwin-13.4.0",
"digests": {
"md5": "ff55feb148993bfa12a89927309d9444",
"sha256": "487ed262825db20c5d767ae665d1a70ebd12b2f62d712f13889850aa7588ca3e"
},
"downloads": -1,
"filename": "django-smart-proxy-0.2.1.macosx-10.9-x86_64.tar.gz",
"has_sig": false,
"md5_digest": "ff55feb148993bfa12a89927309d9444",
"packagetype": "bdist_dumb",
"python_version": "any",
"requires_python": null,
"size": 16037,
"upload_time": "2015-03-03T18:56:12",
"url": "https://files.pythonhosted.org/packages/93/2b/aa41e8e2f5fc0c1b81f8404b1789b053af400390885ae2bac0110ee4917d/django-smart-proxy-0.2.1.macosx-10.9-x86_64.tar.gz"
},
{
"comment_text": "",
"digests": {
"md5": "2f9e80bcbab2204ab669be44fa79c94a",
"sha256": "a1f9f8b4ab7fc17bf9b0d4e4f68a45dec25bad5c4f0831d2d1ac86e4304e6e48"
},
"downloads": -1,
"filename": "django-smart-proxy-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "2f9e80bcbab2204ab669be44fa79c94a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7707,
"upload_time": "2015-03-03T18:56:09",
"url": "https://files.pythonhosted.org/packages/61/5f/5f35bea47a00250db084f509da9b86ca9f1c344c8c8d280e3348d94250d6/django-smart-proxy-0.2.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "built for Darwin-13.4.0",
"digests": {
"md5": "ff55feb148993bfa12a89927309d9444",
"sha256": "487ed262825db20c5d767ae665d1a70ebd12b2f62d712f13889850aa7588ca3e"
},
"downloads": -1,
"filename": "django-smart-proxy-0.2.1.macosx-10.9-x86_64.tar.gz",
"has_sig": false,
"md5_digest": "ff55feb148993bfa12a89927309d9444",
"packagetype": "bdist_dumb",
"python_version": "any",
"requires_python": null,
"size": 16037,
"upload_time": "2015-03-03T18:56:12",
"url": "https://files.pythonhosted.org/packages/93/2b/aa41e8e2f5fc0c1b81f8404b1789b053af400390885ae2bac0110ee4917d/django-smart-proxy-0.2.1.macosx-10.9-x86_64.tar.gz"
},
{
"comment_text": "",
"digests": {
"md5": "2f9e80bcbab2204ab669be44fa79c94a",
"sha256": "a1f9f8b4ab7fc17bf9b0d4e4f68a45dec25bad5c4f0831d2d1ac86e4304e6e48"
},
"downloads": -1,
"filename": "django-smart-proxy-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "2f9e80bcbab2204ab669be44fa79c94a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7707,
"upload_time": "2015-03-03T18:56:09",
"url": "https://files.pythonhosted.org/packages/61/5f/5f35bea47a00250db084f509da9b86ca9f1c344c8c8d280e3348d94250d6/django-smart-proxy-0.2.1.tar.gz"
}
]
}