{ "info": { "author": "Ori Hoch", "author_email": "ori@uumpa.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Programming Language :: Python :: 2.7" ], "description": "# ckanext-upload_via_email\n\nUpload packages to CKAN via Email\n\nMinimal supported CKAN version: 2.8.1\n\n## Installation\n\n* Install [ckanext-datapackage_pipelines](https://github.com/OriHoch/ckanext-datapackage_pipelines) extension\n* Install the ckanext-upload_via_email package into your CKAN virtual environment:\n * `pip install ckanext-upload_via_email`\n* Add ``upload_via_email`` to the ``ckan.plugins`` setting in your CKAN\n* Restart CKAN\n* Restart the CKAN pipelines server\n\n## Configuration\n\n* Generate a Gmail API credentials file\n * See [here](https://developers.google.com/gmail/api/quickstart/python)\n* Generate a Gmail API token file, authorize with the Gmail user which will receive the emails\n * `sudo pip3 install -r ckanext/upload_via_email/pipelines/requirements.txt`\n * `CREDENTIALS=/path/to/credentials_file bin/generate_ckan_config.py`\n* Add the output config to your CKAN configuration (be sure to keep it secret)\n* Add the following configurations as well:\n```\nckanext.upload_via_email.allowed_senders_resource_id = ckan_resource_id_containing_allowed_senders_file\nckanext.upload_via_email.default_sender_to_address = email address which accepts emails not in the allowed senders file\nckanext.upload_via_email.default_sender_organization_id = organization_id for emails not in the allowed senders file\nckanext.upload_via_email.success_message = The dataset is available at {dataset_url}\nckanext.upload_via_email.success_message_from_email = do-not-reply@void.void\nckanext.upload_via_email.success_message_subject = Your dataset was created successfully\nckanext.upload_via_email.success_message_default_to_email = Default email address to send success message to in case of unexpected error\n```\n\n## Allowed senders file\n\nThe allowed senders file should be uploaded to CKAN as a private dataset with only 1 resource.\nThe resource should contain an xlsx file with the following columns:\n\n* **from_address**: email address sender is allowed to send from\n* **to_address**: email address sender is allowed to send to\n* **organization_id**: id of sender's organization\n\n## Developing the pipelines\n\nThe pipelines are defined in [ckanext/upload_via_email/pipelines/pipeline-spec.yaml](ckanext/upload_via_email/pipelines/pipeline-spec.yaml) using the [datapackage-pipelines](https://github.com/frictionlessdata/datapackage-pipelines) framework. All `.py` files under the `ckanext/upload_via_email/pipelines` directory run on the CKAN pipelines server which uses Python 3.6.\n\n* Start the CKAN server\n* Start a Python 3.6 virtualenv\n * `pipenv shell`\n* Clone the ckanext-datapackage_pipelines and install the requirements\n * `pip install -Ur ../ckanext-datapackage_pipelines/datapackage_pipelines_ckanext/requirements.txt`\n * `pip install -e ../ckanext-datapackage_pipelines/datapackage_pipelines_ckanext`\n* Install the upload via email requirements\n * `pip install -r ckanext/upload_via_email/pipelines/requirements.txt`\n* Change to the pipelines directory and run dpp\n * `cd ckanext/upload_via_email/pipelines`\n * `dpp`", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/OriHoch/ckanext-upload_via_email", "keywords": "CKAN file upload email", "license": "AGPL", "maintainer": "", "maintainer_email": "", "name": "ckanext-upload-via-email", "package_url": "https://pypi.org/project/ckanext-upload-via-email/", "platform": "", "project_url": "https://pypi.org/project/ckanext-upload-via-email/", "project_urls": { "Homepage": "https://github.com/OriHoch/ckanext-upload_via_email" }, "release_url": "https://pypi.org/project/ckanext-upload-via-email/0.0.8/", "requires_dist": null, "requires_python": "", "summary": "Upload packages to CKAN via Email", "version": "0.0.8" }, "last_serial": 4546170, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ddf6a0d368abec2f459a343bf950b723", "sha256": "b943cccd829ffb94bea57c981e4b5de53aaf86618c536a7b8aa2b5ec3030137a" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ddf6a0d368abec2f459a343bf950b723", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20442, "upload_time": "2018-09-16T16:22:56", "url": "https://files.pythonhosted.org/packages/fe/cc/20c3ebda7c4d920e78da4f8d3ea46fff096553f58b7d1aa39ded576db482/ckanext-upload_via_email-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "a7c25e333333e1bbe232dce84bdab00d", "sha256": "27ab487332afe9e6e80d9bf94202b546e17ef80feac0458e4480b5e9af8103e8" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.2.tar.gz", "has_sig": false, "md5_digest": "a7c25e333333e1bbe232dce84bdab00d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20975, "upload_time": "2018-09-17T06:18:01", "url": "https://files.pythonhosted.org/packages/24/cd/2dcca7202a36de42149738de529655a6d29a339043d1c56e2f405bbbccc7/ckanext-upload_via_email-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "2642746fd0fe1030c01f9bf12fce1f92", "sha256": "11dd4419cfaa3698598810240e394c90d44dfc1ddd373067637d8cb9e4985013" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.3.tar.gz", "has_sig": false, "md5_digest": "2642746fd0fe1030c01f9bf12fce1f92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20998, "upload_time": "2018-09-17T09:25:44", "url": "https://files.pythonhosted.org/packages/05/46/3d0b1d3e04b5d0f8de5e1a02e7a82358a6b677538f9fa7c3c8c2cb129d71/ckanext-upload_via_email-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "bea1cbac290cc2924bc664ba5e7c5761", "sha256": "d957cf418ce9fa641c1400dc4baf047f3d78389ab49cabafc2d976afb3e6c2ec" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.4.tar.gz", "has_sig": false, "md5_digest": "bea1cbac290cc2924bc664ba5e7c5761", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21054, "upload_time": "2018-09-17T10:21:07", "url": "https://files.pythonhosted.org/packages/76/67/421329f9c37606373ca92db1a3170d789725248522c7f59e403fc761659e/ckanext-upload_via_email-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "af7eddfd5adbfbcfa469726235fe03ab", "sha256": "9772d03139e17eb99d9c01f8a7aefcd6cce5b0cdff497d23ee3e1f52941ab323" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.5.tar.gz", "has_sig": false, "md5_digest": "af7eddfd5adbfbcfa469726235fe03ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21347, "upload_time": "2018-09-26T13:49:58", "url": "https://files.pythonhosted.org/packages/25/70/6306678a2030720d982398050f6c098d0bd81c7628881e50fef551e06047/ckanext-upload_via_email-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "950599c8eb71100425a8fb1eafd06744", "sha256": "5820a67c58b5e010cf3e6681495ded2ec0e7cb21a9fd1409eae345c55deefef4" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.6.tar.gz", "has_sig": false, "md5_digest": "950599c8eb71100425a8fb1eafd06744", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21356, "upload_time": "2018-09-27T07:15:03", "url": "https://files.pythonhosted.org/packages/a1/25/5ea71c7b2e6b42faeab769b230963124b0fffa837ce71c77b3fed4f538b4/ckanext-upload_via_email-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "a0cffab2d9803d65ec1d8be9d4bec042", "sha256": "7e459324d36ffe2ab7e85ecae4c54a9e90e2f092c0633cad20922d5af7858cd6" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.7.tar.gz", "has_sig": false, "md5_digest": "a0cffab2d9803d65ec1d8be9d4bec042", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21352, "upload_time": "2018-10-04T10:06:56", "url": "https://files.pythonhosted.org/packages/d9/c7/954f9bc4be2a5145e905339c1d38df50844566765d2935eab42143927a7b/ckanext-upload_via_email-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "383473f4a89b5709505c6d2caae8e29c", "sha256": "3ac98187af8521bc056eed3c2849940d864384e4f89ee7e1b0855fba8c4c6537" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.8.tar.gz", "has_sig": false, "md5_digest": "383473f4a89b5709505c6d2caae8e29c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21426, "upload_time": "2018-11-30T08:11:51", "url": "https://files.pythonhosted.org/packages/6b/2a/f8cd2df707735ab04c64f12919780a0f7097d363de027e6ec2618629960f/ckanext-upload_via_email-0.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "383473f4a89b5709505c6d2caae8e29c", "sha256": "3ac98187af8521bc056eed3c2849940d864384e4f89ee7e1b0855fba8c4c6537" }, "downloads": -1, "filename": "ckanext-upload_via_email-0.0.8.tar.gz", "has_sig": false, "md5_digest": "383473f4a89b5709505c6d2caae8e29c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21426, "upload_time": "2018-11-30T08:11:51", "url": "https://files.pythonhosted.org/packages/6b/2a/f8cd2df707735ab04c64f12919780a0f7097d363de027e6ec2618629960f/ckanext-upload_via_email-0.0.8.tar.gz" } ] }