Как я могу прикрепить значение во время входа в систему для Jinja и использовать его позже в SQLLab Apache Superset? - PullRequest
1 голос
/ 07 апреля 2020

Нам нужны некоторые параметры, передаваемые с использованием токена JWT, которые оцениваются в пользовательском SecurityManager в Apache Superset. Я прочитал некоторую информацию о том, что я могу обрабатывать такую ​​информацию (в более новых версиях также через запросы).

Ниндзя заявляет, что может читать информацию Flask из «g» из коробки ( document Стандартный контекст ниндзя ). Это пример кода:

    @expose('/login/', methods=['GET', 'POST'])
    def login(self):
            g.my_value = 'bar'
            ...

Тем не менее у меня возникают проблемы при попытке использовать информацию в SQLLab с использованием, например,

--{% set x = 'foo' %}
SELECT 
{{x}}, 
{{g.my_value}}
FROM table_xyz

В результате

g not defined

x оценивается правильно как 'foo', если поле g удалено. Любой намек, если это возможно?

1 Ответ

0 голосов
/ 28 апреля 2020

Доступ к контексту flask .g не так прост, как выполнение на работнике сельдерея. У работника сельдерея нет доступа к контексту Flask (также обратите внимание, что в зависимости от конфигурации он может работать даже в асинхронном режиме c).

Внутренние переменные JINJA, такие как current_user , нуждаются в некоторых дополнительных работа в кодовой базе Supersets должна быть сделана доступной, но нет общего механизма для открытия пользовательских переменных JINJA из коробки во время написания.

...