Now Loading

Konsola Proget

Język zapytań Proget (PQL)

Proget Query Language (PQL) to prosty język zapytań, który umożliwia filtrowanie urządzeń w systemie. Dzięki PQL możesz dynamicznie przypisywać urządzenia do grup na podstawie zdefiniowanych kryteriów, tworząc tzw. grupy dynamiczne. Wcześniej grupy były statyczne – administratorzy ręcznie przypisywali urządzenia do grup. Teraz, dzięki PQL, grupy mogą automatycznie obejmować urządzenia spełniające określone warunki, takie jak dane urządzeń lub etykiety użytkowników. Możliwe jest również łączenie różnych kryteriów w ramach jednego zapytania.

Dynamiczne grupowanie pozwala na wstępne przygotowanie konfiguracji, która zostanie automatycznie przypisana do urządzeń, nawet jeśli jeszcze nie są one obecne w systemie. Konfiguracja może być modyfikowana na podstawie atrybutów użytkowników pobranych z zewnętrznych katalogów, takich jak Active Directory. Wprowadzone zmiany w katalogu mogą automatycznie wpływać na konfigurację urządzeń w systemie Proget.

Dzięki PQL możliwe jest łatwe tworzenie grup urządzeń, bez konieczności ręcznego przypisywania. Jeżeli nie korzystasz z zaawansowanych funkcji PQL, domyślny mechanizm tworzenia grup automatycznie utworzy etykietę dla danej grupy. Aby uzyskać zgodność z poprzednimi wersjami systemu, wystarczy przypisać użytkownikowi etykietę o tej samej nazwie, co grupa.

PQL
1 Brak urządzeń
  • Pusta grupa, do której nie zostaną przypisane żadne urządzenia

2 Wszystkie urządzenia
  • Automatycznie obejmuje wszystkie urządzenia w systemie

3 Ustawienia niestandardowe
  • Umożliwiają tworzenie filtrów PQL na podstawie określonych kryteriów


Ustawienia niestandardowe

W sekcji 'Ustawienia niestandardowe’ administrator może tworzyć filtry PQL, korzystając z dostępnych parametrów. System podpowiada dostępne opcje podczas pisania, co czyni tworzenie zapytań intuicyjnym. Gdy składnia jest poprawna, administrator może zobaczyć listę urządzeń spełniających warunki filtru, co ułatwia bieżącą weryfikację wyników.

Aby lepiej zrozumieć składnię filtrów, przedstawiamy kilka podstawowych pojęć:


Kluczowe elementy filtru PQL

  • Fraza
    • Pojedyncze wyrażenie składające się z parametru, operatora i wartości
    • Każdy filtr musi zawierać co najmniej jedną frazę
    • Frazy można łączyć za pomocą operatorów logicznych (AND, OR)
  • Parametr
    • Określa atrybut urządzenia lub jego właściciela, który jest filtrowany
  • Operator
    • Łączy parametr z wartością i określa relację między nimi
  • Wartość
    • Prawa strona wyrażenia, określająca, czego szukamy (np. tekst, liczba, wartość logiczna)
  • Łącznik
    • Łączy frazy w bardziej złożone zapytania
    • Dostępne łączniki: AND, OR

Przykłady filtrów

PQL_OS_TYPE
1 device.os.type = android
  • Ten filtr przypisuje do grupy wszystkie urządzenia z systemem operacyjnym Android

PQL_LABEL
1 device.user.label != Pracownik
  • Ten filtr obejmuje wszystkie urządzenia, których właściciel nie ma etykiety „Pracownik”

PQL_ORGANIZATION_UNIT
1 device.user.organizationUnit contains Office AND device.user.isBlocked = false AND device.os.type = android
  • Ten filtr łączy kilka kryteriów:
    • Urządzenie należy do użytkownika, którego jednostka organizacyjna (wartość synchronizowana z usługą katologową) zawiera w nazwie słowo 'Office’
    • Użytkownik urządzenia nie jest zablokowany w systemie Proget
    • Urządzenie działa na systemie Android

Klucze

Klucz Dostępne operatory Typ wartości Opis
device.manufacturer =, != wyliczeniowy Producent urządzenia, np. Samsung
device.model =, != wyliczeniowy Model urządzenia, np. iPhone 13
device.serialNumber =, != tekst Numer seryjny urządzenia
device.progetId =, != tekst Proget ID urządzenia, np. 123456
device.os.type =, != wyliczeniowy System operacyjny urządzenia np. Android
device.os.versionCode =, != liczba Wersja systemu operacyjnego urządzenia np. 33 (Android 13)
device.activationType =, != wyliczeniowy Rodzaj aktywacji np. android_mdm
device.systemUpdateStatus =, != wyliczeniowy Wartość ze zdefiniowanego zbioru np. available
device.SIM1.IMEI =, != tekst IMEI dla SIM1
device.SIM2.IMEI =, != tekst IMEI dla SIM2
device.SIM1.ICCID =, != tekst ICCID dla SIM 1
device.SIM2.ICCID =, != tekst ICCID dla SIM2
device.SIM1.carrier =, != tekst Operator SIM1
device.SIM2.carrier =, != tekst Operator SIM2
device.mdmVersionCode =, !=, >, >=, <, <= liczba Wersja kodowa aplikacji Proget
device.alias =, !=, contains, not_contains, starts_with, not_starts_with tekst Alias urządzenia
device.user.uuid =, != tekst UUID użytkownika
device.user.isBlocked =, != logiczna Urządzenie należące do zablokowanego użytkownika
device.user.email =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Email użytkownika np. jdoe@example.com
device.user.type =, != wyliczeniowy Typ użytkownika np. lokalny
device.user.displayName =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Imię i nazwisko użytkownika np. John Doe
device.user.username =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Nazwa użytkownika np. jdoe
device.user.principalName =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Email użytkownika np. jdoe@example.com
device.user.distinguishedName =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Nazwa wyróżniająca użytkownika (DN)
device.user.commonName =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Nazwa zwyczajowa użytkownika
device.user.organization =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Organizacja użytkownika
device.user.organizationUnit =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Oddział organizacji użytkownika
device.user.locacity =, != tekst Lokalizacja
device.user.tittle =, !=, contains, not_contains, starts_with, not_starts_with, ends_with, not_ends_with tekst Tytuł użytkownika
device.user.label =, != tekst Etykieta użytkownika



Operatory

  • = – porównanie (równa się)
  • != – porównanie (nie równa się)
  • < – porównanie (mniejszy)
  • <= – porównanie (mniejszy lub równy)
  • > – porównanie (większy)
  • >= – porównanie (większy lub równy)
  • contains – zawiera określony fragment tekstu
  • not_contains – nie zawiera określonego fragmentu tekstu
  • starts_with – zaczyna się od określonego fragmentu tekstu
  • not_starts_with – nie zaczyna się od określonego fragmentu tekstu
  • ends_with – kończy się określonym fragmentem tekstu
  • not_ends_with – nie kończy się określonym fragmentem tekstu

Typy wartości

  • tekst – np. 'SAMSUNG’. Wartości wielowyrazowe należy umieszczać w cudzysłowie
  • liczba – np. liczba całkowita lub zmiennoprzecinkowa
  • logiczna – wartość logiczna true lub false
  • wyliczeniowa – wartość ze zdefiniowanego zbioru, np. typ systemu operacyjnego