airflow-powerbi-provider ========================= .. include:: _autodoc/powerbi_provider.inc.rst A hook, operator, and sensor for triggering and tracking Power BI dataset refreshes from an Airflow DAG, authenticating against the Power BI REST API with an Azure AD app-only (client credentials) grant. Connection setup ----------------- For a screenshot walkthrough of creating this connection in the Airflow UI, see :doc:`../connections/powerbi`. Create an Airflow connection of type ``http`` (``power_bi``, default connection id ``powerbi_default``): .. list-table:: :header-rows: 1 * - Field - Value * - Login - Azure AD app registration client ID * - Password - Azure AD app registration client secret * - Extra - ``{"tenant_id": ""}`` Operators and sensors ----------------------- ``PowerBIDatasetRefreshOperator`` Triggers a dataset refresh (``POST .../datasets/{id}/refreshes``) and pushes the resulting Power BI request id to XCom (``powerbi_dataset_refresh_id``). Parameters: ``conn_id``, ``dataset_id``, ``group_id`` (the workspace id), ``wait_for_termination`` (default ``False`` — block until the refresh reaches a terminal status), ``timeout`` (seconds, default 7 days), ``check_interval`` (seconds, default 60). ``PowerBIDatasetRefreshSensor`` Polls a refresh triggered by the operator above until it reaches ``Completed``/``Failed``, pulling the request id from XCom via ``xcom_task_id``. Raises ``PowerBIDatasetRefreshException`` on a ``Failed`` status. Usage ----- .. code-block:: python from PowerBI_Operator.operators.powerbi_refresh_dataset_operator import ( PowerBIDatasetRefreshOperator, ) from PowerBI_Operator.sensors.powerbi_refresh_dataset_sensor import ( PowerBIDatasetRefreshSensor, ) refresh = PowerBIDatasetRefreshOperator( task_id="refresh_dataset", conn_id="powerbi_default", dataset_id="", group_id="", ) wait_for_refresh = PowerBIDatasetRefreshSensor( task_id="wait_for_refresh", conn_id="powerbi_default", dataset_id="", group_id="", xcom_task_id="refresh_dataset", ) refresh >> wait_for_refresh