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