Для того, чтобы в виджетах, использующих Python-скрипты, учитывались права доступа пользователей:
Должны быть настроены права доступа в панели администратора ViQube;
В Dashboard Designer код виджета, использующий в качестве источника данных Python-скрипт,, должен содержать ACCESS_TOKEN во всех запросах на ViQube.
Запрос на ViQube с использованием ACCESS_TOKEN должен выглядеть следующим образом:
myheaders = {'X-API-VERSION': '<версия API>','authorization': 'Bearer ' + ACCESS_TOKEN} query = {<Json-запрос на Viqube>} #Запросы сохраняются на сервере с установленным ViQube в директории хранящей лог-файлы /docker-volume/viqube/apiLog/ resp = requests.post('http://<адрес сервера, на котором установлен ViQube>/viqube/metadata/query',headers=myheaders,json=query) # запрос на ViQube
Пример – Запрос на Viqube с использованием ACCESS_TOKEN и демо-данных:
import requests myheaders = {'X-API-VERSION':'3.4','authorization':'Bearer '+ ACCESS_TOKEN} query = {"database": "ViQube", "groups": [{"attributes": [ {"attrid": "YEAR", "axis": "ROW", "dimroleid": "Data_pay"}, {"attrid": "MONTH_NAME", "axis": "ROW", "dimroleid": "Data_pay"}, {"attrid": "__attr_Goroda", "axis": "COLUMN", "dimroleid": "Gorod_prodazhi"}], "filters": [[]], "measures": [{"alias": "0-0", "mid": "Obem_prodazh"}], "mgid": "Fakticheskie_prodazhi__rubli", "showempty": False, "time": [ {"dimroleid": "Data_pay", "from": "2016-10-13", "to": "2019-01-14"}]}], "limit": {"columns": 30, "rows": 100}} resp=requests.post('http://192.168.44.217/viqube-load-balanced/metadata/query',headers=myheaders,json=query) response = resp.json()
Пример – Объекты на основе одного из доступных классов:
#-Гистограмма- my_chart = DataFrame() my_chart.cols = response['columns'] my_chart.rows = response['rows'] # Возвращаемые значения response['values'] нужно транспонировать my_chart.values = [list(x) for x in zip(*response['values'])] #-filter1- myFilter = Filter() myFilter.rows = response['rows'] #-filter2- myFilter2 = Filter() myFilter2.rows = response['columns']
Для выполнения Python-скриптов, которые используют данные из ViQube, с установленным Python сервером, должен быть установлен pyton версии 3.6+ и библиотека 'requests'.