Как захватить пользователя, который запустил Airflow DAG - PullRequest
1 голос
/ 10 февраля 2020

Я включил RBA C как переменную окружения в docker -компонентном файле.

- AIRFLOW__WEBSERVER__RBAC=True

Я хочу поймать пользователя, который сработал в моих файлах dag.

Я пытался использовать from flask_login import current_user. Но я получаю значение current_user как None.

Могу ли я узнать, как собирать данные о пользователях с помощью RBA C?

1 Ответ

0 голосов
/ 11 февраля 2020

Согласно документации Airflow как части RBA C модели безопасности, которая обрабатывается Flask AppBuilder (FAB) :

Поток воздуха использует flask_login и предоставляет набор крючков в модуле airflow.default_login. Вы можете изменить содержимое и сделать его частью PYTHONPATH и настроить его как бэкэнд в airflow.cfg.

Flask -login модуль обеспечивает операции управления пользователями, поэтому вы можете выбрать текущего пользователя в выделенном свойстве flask_login.current_user , добавив несколько дополнительных полей, как описано в # 3438 запрос на извлечение:

if current_user and hasattr(current_user, 'user'):
    user = current_user.user.username
elif current_user and hasattr(current_user, 'username'):

Я полагаю, что вы можете использовать current_user.user.username для получения имени пользователя.

...