Airbnb的開源BI項目Superset: https://airbnb.io/projects/superset/
自己在個人服務器上搭了一個Superset服務, 目的只是給別人看demo。
但是Superset需要登陸驗證,沒有賬戶無法查看。
所以研究了一下如何disable這個登錄過程。
最直接的方案應該是在初始化的過程中inject一個固定的User。
Superset基於Flask,研究了一下Flask的登錄機制。
首先需要在數據庫創建一個公用的賬號。admin賬號id是1, 公用賬號id是2.
1. 在superset/__init__.py 文件中,完成app的初始化之后,修改app的before_request。
app = Flask(__name__) config = app.config()
@app.before_request def noLogin(): from flask import session session["user_id"] = 2
Superset的登錄是基於Flask-login, 但是經過了Flask-Appbuilder的封裝,邏輯變的很復雜。如果要改善,需要仔細研究下SupersetSecurityManager。