flask-ligand


Nameflask-ligand JSON
Version 0.8.0 PyPI version JSON
download
home_page
SummaryA simple flask library for building microservices with RBAC JWT security, OpenAPI client and SQLAlchemy database support.
upload_time2023-05-17 23:51:42
maintainer
docs_urlNone
authorRyan Gard
requires_python>=3.10
licenseGNU Affero General Public License v3
keywords flask
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ============
flask-ligand
============

.. excerpt-start

|docs-status| |build-status| |pypi-status| |codecov-status| |pre-commit-status|

A simple Flask library for building microservices with RBAC JWT security, OpenAPI client and SQLAlchemy database
support.

Install
=======

.. code-block:: bash

    $ pip install flask-ligand

Why Use this Library?
=====================

Using `Flask`_ to create a REST based microservice is a daunting process which will definitely require the use of
many different `Flask extensions`_ which will really slow down the process of actually writing a functional REST
microservice that can be used safely in a production environment. This library seeks to use the best
`Flask extensions`_ loosely combined together to deliver a delightful developer experience by providing the following
functionality out-of-the-box:

- Create database models using the industry standard `SQLAlchemy ORM`_
- Leverage those same database models to create schemas for marshalling data in and out of your `Flask`_ endpoints
  defined via Blueprints
- Provide automatic `SwaggerUI`_ docs for quickly developing and testing your `Flask`_ application without the need
  of external tools like curl, Postman or Hoppscotch
- `Generate OpenAPI clients`_ for a variety of languages
    - Endpoints for generating Python and Typescript clients already included!
- Protect endpoints with JWT security with a `OpenID Connect`_ IAM like `Auth0`_ or `Keycloak`_
    - Optionally control access to endpoints using `RBAC`_
- Quickly enable `pagination`_ and `ETag`_ support for your endpoints
- Easily manage database migrations using Alembic through the fantastic `Flask-Migrate`_ library and command-line tools

.. _`Flask`: https://flask.palletsprojects.com/en/2.2.x/
.. _`Flask extensions`: https://flask.palletsprojects.com/en/2.2.x/extensions/
.. _`SQLAlchemy ORM`: https://www.sqlalchemy.org/
.. _`SwaggerUI`: https://swagger.io/tools/swagger-ui/
.. _`Generate OpenAPI clients`: https://openapi-generator.tech/
.. _`Auth0`: https://auth0.com/
.. _`Keycloak`: https://www.keycloak.org/
.. _`RBAC`: https://en.wikipedia.org/wiki/Role-based_access_control
.. _`OpenID Connect`: https://openid.net/connect/
.. _`pagination`: https://flask-smorest.readthedocs.io/en/latest/pagination.html
.. _`ETag`: https://flask-smorest.readthedocs.io/en/latest/etag.html
.. _`Flask-Migrate`: https://flask-migrate.readthedocs.io/en/latest/

.. |docs-status| image:: https://img.shields.io/readthedocs/flask-ligand/stable?logo=readthedocs
   :target: https://flask-ligand.readthedocs.io/en/stable/
   :alt: Docs
.. |build-status| image:: https://img.shields.io/github/actions/workflow/status/cowofevil/flask-ligand/bump_and_publish_release.yml?branch=main&logo=github
   :target: https://github.com/cowofevil/flask-ligand/actions/workflows/bump_and_publish_release.yml
   :alt: Build
.. |pypi-status| image:: https://img.shields.io/pypi/v/flask-ligand?color=blue&logo=pypi
   :target: https://pypi.org/project/flask-ligand/
   :alt: PyPI
.. |codecov-status| image:: https://img.shields.io/codecov/c/gh/cowofevil/flask-ligand?color=teal&logo=codecov
   :target: https://app.codecov.io/gh/cowofevil/flask-ligand
   :alt: Codecov
.. |pre-commit-status| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white
   :target: https://github.com/pre-commit/pre-commit
   :alt: pre-commit

.. excerpt-end

Resources
=========

- `Documentation`_
- `Changelog`_
- `Contributing`_
- `License`_

.. _`Documentation`: https://flask-ligand.readthedocs.io/en/stable/
.. _`Changelog`: ./CHANGELOG.md
.. _`Contributing`: ./CONTRIBUTING.rst
.. _`License`: ./LICENSE


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "flask-ligand",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "flask",
    "author": "Ryan Gard",
    "author_email": "ryan@gardiancapitol.com",
    "download_url": "https://files.pythonhosted.org/packages/bb/b4/404408ef248edc0ac08976d7e5ee8af11b529c1689d9214db0a2ac23318a/flask-ligand-0.8.0.tar.gz",
    "platform": null,
    "description": "============\nflask-ligand\n============\n\n.. excerpt-start\n\n|docs-status| |build-status| |pypi-status| |codecov-status| |pre-commit-status|\n\nA simple Flask library for building microservices with RBAC JWT security, OpenAPI client and SQLAlchemy database\nsupport.\n\nInstall\n=======\n\n.. code-block:: bash\n\n    $ pip install flask-ligand\n\nWhy Use this Library?\n=====================\n\nUsing `Flask`_ to create a REST based microservice is a daunting process which will definitely require the use of\nmany different `Flask extensions`_ which will really slow down the process of actually writing a functional REST\nmicroservice that can be used safely in a production environment. This library seeks to use the best\n`Flask extensions`_ loosely combined together to deliver a delightful developer experience by providing the following\nfunctionality out-of-the-box:\n\n- Create database models using the industry standard `SQLAlchemy ORM`_\n- Leverage those same database models to create schemas for marshalling data in and out of your `Flask`_ endpoints\n  defined via Blueprints\n- Provide automatic `SwaggerUI`_ docs for quickly developing and testing your `Flask`_ application without the need\n  of external tools like curl, Postman or Hoppscotch\n- `Generate OpenAPI clients`_ for a variety of languages\n    - Endpoints for generating Python and Typescript clients already included!\n- Protect endpoints with JWT security with a `OpenID Connect`_ IAM like `Auth0`_ or `Keycloak`_\n    - Optionally control access to endpoints using `RBAC`_\n- Quickly enable `pagination`_ and `ETag`_ support for your endpoints\n- Easily manage database migrations using Alembic through the fantastic `Flask-Migrate`_ library and command-line tools\n\n.. _`Flask`: https://flask.palletsprojects.com/en/2.2.x/\n.. _`Flask extensions`: https://flask.palletsprojects.com/en/2.2.x/extensions/\n.. _`SQLAlchemy ORM`: https://www.sqlalchemy.org/\n.. _`SwaggerUI`: https://swagger.io/tools/swagger-ui/\n.. _`Generate OpenAPI clients`: https://openapi-generator.tech/\n.. _`Auth0`: https://auth0.com/\n.. _`Keycloak`: https://www.keycloak.org/\n.. _`RBAC`: https://en.wikipedia.org/wiki/Role-based_access_control\n.. _`OpenID Connect`: https://openid.net/connect/\n.. _`pagination`: https://flask-smorest.readthedocs.io/en/latest/pagination.html\n.. _`ETag`: https://flask-smorest.readthedocs.io/en/latest/etag.html\n.. _`Flask-Migrate`: https://flask-migrate.readthedocs.io/en/latest/\n\n.. |docs-status| image:: https://img.shields.io/readthedocs/flask-ligand/stable?logo=readthedocs\n   :target: https://flask-ligand.readthedocs.io/en/stable/\n   :alt: Docs\n.. |build-status| image:: https://img.shields.io/github/actions/workflow/status/cowofevil/flask-ligand/bump_and_publish_release.yml?branch=main&logo=github\n   :target: https://github.com/cowofevil/flask-ligand/actions/workflows/bump_and_publish_release.yml\n   :alt: Build\n.. |pypi-status| image:: https://img.shields.io/pypi/v/flask-ligand?color=blue&logo=pypi\n   :target: https://pypi.org/project/flask-ligand/\n   :alt: PyPI\n.. |codecov-status| image:: https://img.shields.io/codecov/c/gh/cowofevil/flask-ligand?color=teal&logo=codecov\n   :target: https://app.codecov.io/gh/cowofevil/flask-ligand\n   :alt: Codecov\n.. |pre-commit-status| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white\n   :target: https://github.com/pre-commit/pre-commit\n   :alt: pre-commit\n\n.. excerpt-end\n\nResources\n=========\n\n- `Documentation`_\n- `Changelog`_\n- `Contributing`_\n- `License`_\n\n.. _`Documentation`: https://flask-ligand.readthedocs.io/en/stable/\n.. _`Changelog`: ./CHANGELOG.md\n.. _`Contributing`: ./CONTRIBUTING.rst\n.. _`License`: ./LICENSE\n\n",
    "bugtrack_url": null,
    "license": "GNU Affero General Public License v3",
    "summary": "A simple flask library for building microservices with RBAC JWT security, OpenAPI client and SQLAlchemy database support.",
    "version": "0.8.0",
    "project_urls": {
        "Changelog": "https://github.com/cowofevil/flask-ligand/blob/main/CHANGELOG.md",
        "Source": "https://github.com/cowofevil/flask-ligand",
        "Tracker": "https://github.com/cowofevil/flask-ligand/issues"
    },
    "split_keywords": [
        "flask"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "79b43db0512b5e42401b98bb328c94efc71d5df78ddd63c932708b5c71426ef9",
                "md5": "6a426b2321d4bd5cfb2dd68adf9aaad7",
                "sha256": "083e929276ed5e045d667e7f2f988cb7d553b7400a1f20ade07ccc0a9272a8a3"
            },
            "downloads": -1,
            "filename": "flask_ligand-0.8.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6a426b2321d4bd5cfb2dd68adf9aaad7",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.10",
            "size": 31907,
            "upload_time": "2023-05-17T23:51:40",
            "upload_time_iso_8601": "2023-05-17T23:51:40.335205Z",
            "url": "https://files.pythonhosted.org/packages/79/b4/3db0512b5e42401b98bb328c94efc71d5df78ddd63c932708b5c71426ef9/flask_ligand-0.8.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bbb4404408ef248edc0ac08976d7e5ee8af11b529c1689d9214db0a2ac23318a",
                "md5": "73bd35a9ce1a70909b6d99cf5fb74001",
                "sha256": "d20fb075833e7dc95eef2e66135a5da842d1e76c795007e40399a0caa6280592"
            },
            "downloads": -1,
            "filename": "flask-ligand-0.8.0.tar.gz",
            "has_sig": false,
            "md5_digest": "73bd35a9ce1a70909b6d99cf5fb74001",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 93112,
            "upload_time": "2023-05-17T23:51:42",
            "upload_time_iso_8601": "2023-05-17T23:51:42.150630Z",
            "url": "https://files.pythonhosted.org/packages/bb/b4/404408ef248edc0ac08976d7e5ee8af11b529c1689d9214db0a2ac23318a/flask-ligand-0.8.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-17 23:51:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cowofevil",
    "github_project": "flask-ligand",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "flask-ligand"
}
        
Elapsed time: 0.22662s