Coder Social home page Coder Social logo

mononobi / pyrin Goto Github PK

View Code? Open in Web Editor NEW
13.0 0.0 7.0 3.34 MB

A rich, fast, performant and easy to use application framework to build apps using Flask on top of it.

License: BSD 3-Clause "New" or "Revised" License

Python 99.78% Shell 0.19% Mako 0.03%
flask python sqlalchemy core pyrin application-framework rest-api ioc alembic multi-database

pyrin's People

Contributors

mononobi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyrin's Issues

[security]-security package

implementing security package, permissions, hashing and encryption. the implementation must be abstract and unaware of database.
also consider implementing token generation, authorization and authentication packages.

[api.swagger]-swagger ui support

add each new route into a list in api.swagger package to be able to generate api doc from it.
extract param names from args, and param types and keyword args from docs.
and register each api module as a dict key, and the values would be all api methods of that module with all info. this package must process the docs in after_packages_loaded() hook of packaging.

[caching]-caching mechanism

implement caching package, for server, database and also HTTP caching.
also implement handlers for Memcached and simple cache to be used with decorators.

[configuration]-configuration reload hooks

implementing configuration reload hooks to let other packages refresh their needed configs.
for example Fernet encrypter key.

it could be implemented using file watchers to let configuration package knows about changes, and then configuration package fires appropriate hooks to inform other packages.

[logging]-logging package

implementing logging package and configuring logger from logging.config file and setting flask default logger.

[logging]-add request info into every log

add request info into every log.
may be it's possible to use logging adapter.
or if not, logging in request and response and error handlers.
or may be implementing it in logger manager.

[security.encryption]-[security.hashing]-base64 aware hashing and encryption

make hashing and encryption base64 aware, meaning that they return results always as base64 encoded string, and always handle values as base64 and decode them to bytes before usage.
implement it by adding a static callable attribute into base classes of handlers to make it possible to be overridden if needed.

[tests]-unittest

implementing unit-tests infrastructure using pytest and implementing pyrin unit-tests.

[logging]-embed request in logging

implement request info logging into all loggers.
it must be safe, meaning that if there is no request, no exception should be raised.

[api.router.handlers]-fresh route handler

add a new route handler which requires fresh tokens to be dispatched.
also consider modifying create route method to support this new route.
a validation must be done to prevent routes from being public but requiring fresh token in @api decorator.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.