{ "info": { "author": "Josh Friend", "author_email": "info@michiganlabs.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Flask", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Security" ], "description": "Flask-GSA\n=========\n\nA Flask extension for interacting with `Google OAuth2 Service\nAccounts `__.\n\n| |Build Status|\n| |Coverage Status|\n| |PyPI Version|\n| |PyPI Downloads|\n\nGetting Started\n===============\n\nRequirements\n------------\n\n- Python 2.6+\n- OpenSSL\n\nInstallation\n------------\n\nFlask-GSA can be installed with pip:\n\n::\n\n $ pip install Flask-GSA\n\nBasic Usage\n-----------\n\nA minimal sample application:\n\n.. code:: python\n\n from flask import Flask\n from flask_gsa import GoogleServiceAccount\n\n app = Flask(__name__)\n\n # Create a service account object and assign a config variable prefix\n analytics_gsa = GoogleServiceAccount('ANALYTICS_GSA')\n\n # Set up the service account settings\n app.config['ANALYTICS_GSA_PK_FILE'] = 'analytics.p12'\n app.config['ANALYTICS_GSA_PK_PASSWORD'] = 'notasecret'\n app.config['ANALYTICS_GSA_EMAIL'] = '12345abcd@developer.gserviceaccount.com'\n\n # Initialize the extension\n analytics_gsa.init_app(app)\n\n @app.route('/token')\n def get_analytics_token():\n scopes = [\n 'https://www.googleapis.com/auth/analytics.readonly'\n ]\n return analytics_gsa.generate_token(scopes)\n\n if __name__ == '__main__':\n app.run(port=5000, debug=True)\n\nRun the app:\n\n::\n\n $ python example.py\n * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)\n * Restarting with stat\n\nGet a token:\n\n::\n\n $ http :5000/token\n {\n \"expires\": 1437698007,\n \"issued\": 1437694408,\n \"token\": \"ya29.uQEiLFkED9YMTG7CvctLYtJqnOny_8CkA4_Hxk5yxzEhXR3eNSO-Pca20BRNxBT74XYD\",\n \"token_type\": \"Bearer\"\n }\n\nConfiguration Options:\n----------------------\n\n| When creating an instance of the extension, you must choose a config\n variable\n| prefix. This allows multiple service account objects to be used with\n the same\n| app:\n\n.. code:: python\n\n analytics_gsa = GoogleServiceAccount('ANALYTICS')\n gdrive_gsa = GoogleServiceAccount('GDRIVE')\n\nThe following config variables are required:\n\n+----------------------------+-----------------------------------------------------------+\n| Config Variable | Description |\n+============================+===========================================================+\n| ``_PK_FILE`` | Path to the PKCS12 key that will be used to sign tokens |\n+----------------------------+-----------------------------------------------------------+\n| ``_PK_PASSWORD`` | Password for the PKCS12 private key |\n+----------------------------+-----------------------------------------------------------+\n| ``_EMAIL`` | Service Account's email address |\n+----------------------------+-----------------------------------------------------------+\n\n.. |Build Status| image:: http://img.shields.io/travis/MichiganLabs/flask-gsa/master.svg\n :target: https://travis-ci.org/MichiganLabs/flask-gsa\n.. |Coverage Status| image:: http://img.shields.io/coveralls/MichiganLabs/flask-gsa/master.svg\n :target: https://coveralls.io/r/MichiganLabs/flask-gsa\n.. |PyPI Version| image:: http://img.shields.io/pypi/v/Flask-GSA.svg\n :target: https://pypi.python.org/pypi/Flask-GSA\n.. |PyPI Downloads| image:: http://img.shields.io/pypi/dm/Flask-GSA.svg\n :target: https://pypi.python.org/pypi/Flask-GSA\n\n# Revision History\n\n## 0.1.1 (2015/07/23)\n\n- Fix tests\n\n## 0.1.0 (2015/07/23)\n\n- Initial release", "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/michiganlabs/flask-gsa", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "Flask-GSA", "package_url": "https://pypi.org/project/Flask-GSA/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Flask-GSA/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/michiganlabs/flask-gsa" }, "release_url": "https://pypi.org/project/Flask-GSA/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "A simple wrapper for the Google OAuth2 client library", "version": "0.1.1" }, "last_serial": 1648142, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "628fe98192a43895ec0d87a4e51d8373", "sha256": "789214509d4d3df7d73e10e8907e16e9b9128ae5faba8817c255b70d5da5459c" }, "downloads": -1, "filename": "Flask_GSA-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "628fe98192a43895ec0d87a4e51d8373", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5014, "upload_time": "2015-07-24T13:09:39", "url": "https://files.pythonhosted.org/packages/5b/02/ecf0a0fa80c9fcf33c2a245155ccdd835bcbab085f480a4423c2bdbb0e95/Flask_GSA-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e97e075cdd6ab40b765f8ca584cc040", "sha256": "89ccb66949014e8368d9389ac9d4ea0a7597c3e1d80b5310344c5c9e572b9c85" }, "downloads": -1, "filename": "Flask-GSA-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2e97e075cdd6ab40b765f8ca584cc040", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4548, "upload_time": "2015-07-24T13:09:35", "url": "https://files.pythonhosted.org/packages/cc/60/9d9510a6fb10d87c79913fee84adc6a37130e4f6c114317a70e3187f8b88/Flask-GSA-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "abcaad459e198dbafbe1406f509827c5", "sha256": "8c507518f79d6f80905f129285b2938837d6ef5fa3114dae0e87f0adec619943" }, "downloads": -1, "filename": "Flask_GSA-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "abcaad459e198dbafbe1406f509827c5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4805, "upload_time": "2015-07-24T14:30:26", "url": "https://files.pythonhosted.org/packages/07/a0/35a020b447d7f00d475c8ca5c043591ab1fb1d3e79dbcb24f2e4952dd45d/Flask_GSA-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9aeb82bfa2f4604d04bb0a1af256577a", "sha256": "16449bcfd477e2a27b2731a176f45bb2ff616f82a9c11079dedf55f911ae2547" }, "downloads": -1, "filename": "Flask-GSA-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9aeb82bfa2f4604d04bb0a1af256577a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4512, "upload_time": "2015-07-24T14:30:21", "url": "https://files.pythonhosted.org/packages/37/71/ae3ba19a05416b89b6ffa4ef4bad04a0d3b24a882a083a37217c6dd0d94b/Flask-GSA-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "abcaad459e198dbafbe1406f509827c5", "sha256": "8c507518f79d6f80905f129285b2938837d6ef5fa3114dae0e87f0adec619943" }, "downloads": -1, "filename": "Flask_GSA-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "abcaad459e198dbafbe1406f509827c5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4805, "upload_time": "2015-07-24T14:30:26", "url": "https://files.pythonhosted.org/packages/07/a0/35a020b447d7f00d475c8ca5c043591ab1fb1d3e79dbcb24f2e4952dd45d/Flask_GSA-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9aeb82bfa2f4604d04bb0a1af256577a", "sha256": "16449bcfd477e2a27b2731a176f45bb2ff616f82a9c11079dedf55f911ae2547" }, "downloads": -1, "filename": "Flask-GSA-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9aeb82bfa2f4604d04bb0a1af256577a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4512, "upload_time": "2015-07-24T14:30:21", "url": "https://files.pythonhosted.org/packages/37/71/ae3ba19a05416b89b6ffa4ef4bad04a0d3b24a882a083a37217c6dd0d94b/Flask-GSA-0.1.1.tar.gz" } ] }