{ "info": { "author": "Michiel Doesburg", "author_email": "michiel@moddix.com", "bugtrack_url": null, "classifiers": [], "description": "# Spotlight SQLAlchemy\nSQLAlchemy plugin for [Spotlight](https://github.com/mdoesburg/spotlight).\n\n## Table of Contents\n* [Installation](#installation)\n* [Dependencies](#dependencies)\n* [Usage](#usage)\n * [Examples](#examples)\n* [Available Rules](#available-rules)\n\n## Installation\nSpotlight SQLAlchemy can be installed via pip:\n```\npip install spotlight-sqlalchemy\n```\n\n## Dependencies\n* [python >= 3.6.0](https://www.python.org/)\n* [SQLAlchemy >= 1.3.1](https://pypi.org/project/SQLAlchemy/)\n* [spotlight >= 1.0.1](https://pypi.org/project/spotlight/1.0.1/)\n\n## Usage\n```python\nfrom spotlight_sqlalchemy.plugin import SQLAlchemyPlugin\n```\n\n### Examples\n```python\nfrom spotlight.validator import Validator\nfrom spotlight_sqlalchemy.plugin import SQLAlchemyPlugin\n\nrules = {\n \"id\": \"exists:user,id\",\n \"email\": \"unique:user,email\"\n}\n\ninput_ = {\n \"id\": 1,\n \"email\": \"john.doe@example.com\"\n}\n\nvalidator = Validator([SQLAlchemyPlugin(session)])\nerrors = validator.validate(input_, rules)\n```\n\n## Available Rules\n* [unique (database)](#unique-database)\n* [exists (database)](#exists-database)\n\n_**Warning:**_\n_You should never pass any user controlled input into the database rules. Otherwise, your application will be vulnerable to an SQL injection attack._\n\n\n### unique (database)\nThe field under validation must be unique in a given database table. The last 4 fields (ignore column, ignore value, where column, where value) are optional.\n```\nunique:table,column\n```\n```\nunique:table,column,ignoreColumn,ignoreValue\n```\n```\nunique:table,column,ignoreColumn,ignoreValue,whereColumn,whereValue\n```\n```\nunique:table,column,null,null,whereColumn,whereValue\n```\n\n### exists (database)\nThe field under validation must exist on a given database table. The last 2 fields (where column, where value) are optional.\n```\nexists:table,column\n```\n```\nexists:table,column,whereColumn,whereValue\n```\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mdoesburg/spotlight-sqlalchemy", "keywords": "spotlight sqlalchemy validation validate", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "spotlight-sqlalchemy", "package_url": "https://pypi.org/project/spotlight-sqlalchemy/", "platform": "", "project_url": "https://pypi.org/project/spotlight-sqlalchemy/", "project_urls": { "Code": "https://github.com/mdoesburg/spotlight-sqlalchemy", "Documentation": "https://github.com/mdoesburg/spotlight-sqlalchemy", "Homepage": "https://github.com/mdoesburg/spotlight-sqlalchemy" }, "release_url": "https://pypi.org/project/spotlight-sqlalchemy/1.0.0/", "requires_dist": [ "spotlight" ], "requires_python": "", "summary": "SQLAlchemy plugin for Spotlight.", "version": "1.0.0" }, "last_serial": 5868304, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8e3ac83e80d6e51122b9015d9a568eba", "sha256": "698ee330f6ab116298d6df6c4ef1b3bbf3c79048add079f7147c1bbed6eb59a0" }, "downloads": -1, "filename": "spotlight_sqlalchemy-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8e3ac83e80d6e51122b9015d9a568eba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6154, "upload_time": "2019-04-05T09:09:25", "url": "https://files.pythonhosted.org/packages/56/82/fd95539a32abd1cd2b29ff4173afab47eb0f545942d5bfa12c884def473c/spotlight_sqlalchemy-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80ef996008e165681ce44047ae40913f", "sha256": "bd101e4c82eded514d066bd0a8f0f206bd09433b2478d5305f22447315c84a56" }, "downloads": -1, "filename": "spotlight-sqlalchemy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "80ef996008e165681ce44047ae40913f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4045, "upload_time": "2019-04-05T09:09:27", "url": "https://files.pythonhosted.org/packages/22/08/552e0b1d1299165cdcccdafb5f4d46bd4c2503eaa058bb5d0f4973695fc5/spotlight-sqlalchemy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7ddb4977e0f98aa693174bc7bfb5576c", "sha256": "887eabb8594bf7b29c4c2617848ff4db315e84b7b7dd8eec558a025dca4a11fe" }, "downloads": -1, "filename": "spotlight_sqlalchemy-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7ddb4977e0f98aa693174bc7bfb5576c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6456, "upload_time": "2019-04-08T08:11:35", "url": "https://files.pythonhosted.org/packages/86/34/2210df1e03fc0ea3530cc4d0b99a48168932be0b2b678fe7f2deeaf27d6b/spotlight_sqlalchemy-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a29c8f4cdb52d5ba5e6181b7475d65f8", "sha256": "c14830a90bd2bb700c837a8c268af2e869a3f8e74a6754bfc778d6bb3bd7d7d9" }, "downloads": -1, "filename": "spotlight-sqlalchemy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a29c8f4cdb52d5ba5e6181b7475d65f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4144, "upload_time": "2019-04-08T08:11:36", "url": "https://files.pythonhosted.org/packages/c6/95/eac41aa42749df9d253d2d4372beda7d9915f9ddac81fe8e1120416fd468/spotlight-sqlalchemy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6402271f78a7289d411e4ee22f3d469f", "sha256": "c3cfe29417abc88775320ba90cb4ba17474677393f0f6aa22a87581a6c07387d" }, "downloads": -1, "filename": "spotlight_sqlalchemy-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6402271f78a7289d411e4ee22f3d469f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6467, "upload_time": "2019-07-31T10:41:07", "url": "https://files.pythonhosted.org/packages/bd/62/a14cfb13beb643460ca0ebab0f93eb30e44d29edb1c6f2f0d14290f827a0/spotlight_sqlalchemy-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66cd89824a76637670bb4c93ce855141", "sha256": "7a7c6e04ac680054ccb1e06cc3f98e666e9a6d8d124e960f4e60941407539b18" }, "downloads": -1, "filename": "spotlight-sqlalchemy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "66cd89824a76637670bb4c93ce855141", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4174, "upload_time": "2019-07-31T10:41:08", "url": "https://files.pythonhosted.org/packages/d4/cf/363b3ea239b1700aaf61775b95e923fb4ebe6db5496b5ef51c3192f9f552/spotlight-sqlalchemy-0.1.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "32f7ef6a55364c3b7116f908ef2d4216", "sha256": "9f669b065685e1fbf3b357d975be2672e43211f3baa689f4dbb3ef3cb3cb261f" }, "downloads": -1, "filename": "spotlight_sqlalchemy-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "32f7ef6a55364c3b7116f908ef2d4216", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7343, "upload_time": "2019-09-22T08:35:49", "url": "https://files.pythonhosted.org/packages/f5/dd/573564737e25078bad5955ccf5426ca5f30aed89e92ecb09bb941c019e17/spotlight_sqlalchemy-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d75cc6d3690242d2b5454fbcb29d7a13", "sha256": "bfe54b6fe414189cd71fd632dfa89e006e2afb67c9c370d6655a5c5083788793" }, "downloads": -1, "filename": "spotlight-sqlalchemy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d75cc6d3690242d2b5454fbcb29d7a13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4219, "upload_time": "2019-09-22T08:35:51", "url": "https://files.pythonhosted.org/packages/ba/11/817b8d24fddcac7da2d1e2c411b3699759c8df2d0379b16646605e66ba51/spotlight-sqlalchemy-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "32f7ef6a55364c3b7116f908ef2d4216", "sha256": "9f669b065685e1fbf3b357d975be2672e43211f3baa689f4dbb3ef3cb3cb261f" }, "downloads": -1, "filename": "spotlight_sqlalchemy-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "32f7ef6a55364c3b7116f908ef2d4216", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7343, "upload_time": "2019-09-22T08:35:49", "url": "https://files.pythonhosted.org/packages/f5/dd/573564737e25078bad5955ccf5426ca5f30aed89e92ecb09bb941c019e17/spotlight_sqlalchemy-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d75cc6d3690242d2b5454fbcb29d7a13", "sha256": "bfe54b6fe414189cd71fd632dfa89e006e2afb67c9c370d6655a5c5083788793" }, "downloads": -1, "filename": "spotlight-sqlalchemy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d75cc6d3690242d2b5454fbcb29d7a13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4219, "upload_time": "2019-09-22T08:35:51", "url": "https://files.pythonhosted.org/packages/ba/11/817b8d24fddcac7da2d1e2c411b3699759c8df2d0379b16646605e66ba51/spotlight-sqlalchemy-1.0.0.tar.gz" } ] }