Prepare app for working behind a proxy (nginx).
Adapt user form
This commit is contained in:
@@ -1,23 +1,26 @@
|
||||
import logging
|
||||
import os
|
||||
from flask import Flask
|
||||
from flask_security import SQLAlchemyUserDatastore
|
||||
from flask import Flask, render_template, jsonify
|
||||
from flask_security import SQLAlchemyUserDatastore, LoginForm
|
||||
from flask_security.signals import user_authenticated
|
||||
from werkzeug.middleware.proxy_fix import ProxyFix
|
||||
import logging.config
|
||||
|
||||
from common.extensions import db, migrate, bootstrap, security, mail, login_manager, cors, kms_client
|
||||
from common.extensions import db, migrate, bootstrap, security, mail, login_manager, cors, kms_client, csrf, session
|
||||
from common.models.user import User, Role, Tenant, TenantDomain
|
||||
import common.models.interaction
|
||||
from config.logging_config import LOGGING
|
||||
from common.utils.security import set_tenant_session_data
|
||||
from .errors import register_error_handlers
|
||||
from common.utils.celery_utils import make_celery, init_celery
|
||||
from common.utils.debug_utils import log_request_middleware
|
||||
|
||||
|
||||
def create_app(config_file=None):
|
||||
app = Flask(__name__)
|
||||
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1)
|
||||
app = Flask(__name__, static_url_path='/static')
|
||||
|
||||
# Ensure all necessary headers are handled
|
||||
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_port=1)
|
||||
|
||||
if config_file is None:
|
||||
app.config.from_object('config.config.DevConfig')
|
||||
@@ -64,7 +67,16 @@ def create_app(config_file=None):
|
||||
security_logger.setLevel(logging.DEBUG)
|
||||
sqlalchemy_logger = logging.getLogger('sqlalchemy.engine')
|
||||
sqlalchemy_logger.setLevel(logging.DEBUG)
|
||||
# sqlalchemy_logger.addHandler(logging.StreamHandler())
|
||||
# log_request_middleware(app) # Add this when debugging nginx or another proxy
|
||||
|
||||
@app.errorhandler(Exception)
|
||||
def handle_exception(e):
|
||||
app.logger.error(f"Unhandled Exception: {e}", exc_info=True)
|
||||
response = {
|
||||
"message": str(e),
|
||||
"type": type(e).__name__
|
||||
}
|
||||
return jsonify(response), 500
|
||||
|
||||
# Register API
|
||||
register_api(app)
|
||||
@@ -79,9 +91,11 @@ def register_extensions(app):
|
||||
migrate.init_app(app, db)
|
||||
bootstrap.init_app(app)
|
||||
mail.init_app(app)
|
||||
csrf.init_app(app)
|
||||
login_manager.init_app(app)
|
||||
cors.init_app(app)
|
||||
kms_client.init_app(app)
|
||||
session.init_app(app)
|
||||
|
||||
|
||||
# Register Blueprints
|
||||
@@ -92,6 +106,8 @@ def register_blueprints(app):
|
||||
app.register_blueprint(basic_bp)
|
||||
from .views.document_views import document_bp
|
||||
app.register_blueprint(document_bp)
|
||||
from .views.security_views import security_bp
|
||||
app.register_blueprint(security_bp)
|
||||
|
||||
|
||||
def register_api(app):
|
||||
|
||||
Reference in New Issue
Block a user