Skip to content

Documentație

Integrations

Clase de integrare expuse scripturilor CYBERQUEST prin CQ.Integrations.

Prezentare generală

Spațiul de nume CQ.Integrations expune scripturilor CYBERQUEST obiectele de integrare configurate.

Membri disponibili

Cale de accesObiect exportat
CQ.Integrations.NetAlertNetAlert
CQ.Integrations.QRadarQRadar
CQ.Integrations.IntegrationsNotificationsIntegrationsNotifications
CQ.Integrations.Ticketing.ServiceNowServiceNowTicketing
CQ.Integrations.Ticketing.ConnectWiseConnectWiseTicketing
CQ.Integrations.Ticketing.RemedyRemedyTicketing

Utilizare

Accesați o integrare prin calea sa completă CQ.Integrations. Aceste exporturi sunt obiecte deja create; nu le instanțiați cu new.

CQ.Integrations.NetAlert.setHost("https://webapplication");
CQ.Integrations.NetAlert.setBearerToken("token");

NetAlert

CQ.Integrations.NetAlert interoghează datele de trafic și de alertă. Apelați setHost și setBearerToken înainte de a lansa o cerere.

Metode de configurare

MetodăParametriReturnează
setHost(value)value (șir): URL-ul de bază al API-ului.undefined
getHost()Niciunul.Șirul gazdei configurate. Generează o excepție dacă nu este setată nicio gazdă.
setBearerToken(value)value (șir): tokenul bearer, fără prefixul Bearer.undefined
validateBearerToken()Niciunul.undefined. Generează o excepție dacă nu este setat niciun token bearer.
setBody(data)data (orice valoare serializabilă în JSON).undefined
getOutput(response)response (HttpResponse).JSON parsat sau {}, când nu este disponibil.
parseFilter(filter)filter (șir).Șirul nevid furnizat, altfel "*".

Metode de interogare

MetodăParametriReturnează
GetTraffic(data)data.StartDate, data.EndDate, opțional data.Filter și data.maxNumberOfResults.Răspunsul API parsat sau {}.
GetAlerts(data)data.StartDate, data.EndDate, opțional data.Filter și data.maxNumberOfResults.Răspunsul API parsat sau {}.
GetSingleTraffic(data)data.Flow_GUID: identificatorul fluxului.Răspunsul API parsat pentru cel mult un flux sau {}.
GetSingleAlert(data)data.AlertID: identificatorul alertei.Răspunsul API parsat pentru cel mult o alertă sau {}.
GetTrafficCountByField(data)Intervalul de timp, filtrul opțional, data.Field și data.maxNumberOfResults.Răspunsul API parsat sau {}.
GetAlertCountByField(data)Intervalul de timp, filtrul opțional, data.Field și data.maxNumberOfResults.Răspunsul API parsat sau {}.
GetSrcIPConnections(data)Intervalul de timp, filtrul opțional și data.maxNumberOfResults.Răspunsul API parsat sau {}.
GetDestIPConnections(data)Intervalul de timp, filtrul opțional și data.maxNumberOfResults.Răspunsul API parsat sau {}.
const alerts = CQ.Integrations.NetAlert.GetAlerts({
  StartDate: "2026-01-01 00:00:00",
  EndDate: "2026-01-02 00:00:00",
  Filter: "SourceIP:192.0.2.10",
  maxNumberOfResults: 100
});

QRadar

CQ.Integrations.QRadar execută o interogare Ariel și așteaptă finalizarea acesteia.

MetodăParametriReturnează
setHost(value)value (șir): URL-ul de bază QRadar.undefined
getHost()Niciunul.Șirul gazdei configurate. Generează o excepție dacă nu este setată nicio gazdă.
setBasicAuth(username, password)Șirurile de utilizator și parolă pentru autentificarea basic.undefined
validateAuth()Niciunul.undefined. Generează o excepție dacă autentificarea nu este configurată.
setBody(data)data (orice valoare serializabilă în JSON).undefined
getOutput(response)response (HttpResponse).JSON parsat sau {}.
GetData(query_expression)query_expression (șir): expresia interogării Ariel.IntegrationHTTPResponse.

GetData returnează un obiect cu proprietățile isSuccess, data, message și errorMessage. În caz de succes, data conține evenimentele returnate. Metoda interoghează la fiecare 15 secunde și blochează execuția până când QRadar raportează finalizarea căutării.

const result = CQ.Integrations.QRadar.GetData(
  "SELECT * FROM events LAST 10 MINUTES"
);

IntegrationsNotifications

CQ.Integrations.IntegrationsNotifications moștenește funcțiile ajutătoare comune de autentificare și trimite e-mail prin endpointul de notificare al CYBERQUEST.

Metode de autentificare

MetodăParametriReturnează
setBearerToken(value)Șirul tokenului bearer, fără prefixul Bearer.undefined
setBasicAuth(username, password)Șirurile de utilizator și parolă pentru autentificarea basic.undefined
disableAuth()Niciunul.undefined; apelurile ulterioare nu mai necesită o autentificare configurată.

SendEmail

CQ.Integrations.IntegrationsNotifications.SendEmail(
  to,
  subject,
  message,
  host
);
ParametruTipImplicitDescriere
toșirObligatoriuDestinatarul e-mailului, transmis endpointului de notificare.
subjectșir""Subiectul e-mailului.
messageșir""Corpul e-mailului.
hostșir"webapplication"Numele gazdei utilizat în endpointul HTTPS.

Returnează un IntegrationHTTPResponse. Verificați proprietățile isSuccess și message ale acestuia pentru a determina dacă endpointul a acceptat cererea.

Ticketing

CQ.Integrations.Ticketing expune câte un obiect gata de utilizare pentru fiecare sistem de ticketing acceptat: ServiceNow, ConnectWise și Remedy. Toate trei au aceeași structură — configurați gazda și credențialele, apoi apelați CreateTicket, care returnează întotdeauna un IntegrationHTTPResponse (isSuccess, data, message, errorMessage).

const ticket = CQ.Integrations.Ticketing.ServiceNow
  .setCredentialsByGUID("00000000-0000-0000-0000-000000000000")
  .setHost("https://yourinstance.service-now.com")
  .CreateTicket({
    summary: Event.AlertName,
    description: Event.Description,
    priority: "2"
  });

if (ticket.isSuccess) {
  Event.S1 = ticket.data.number;
}

ServiceNow

MetodăParametriReturnează
setHost(value)value (șir): URL-ul de bază al instanței ServiceNow.this
getHost()Niciunul.Șirul gazdei configurate. Generează o excepție dacă nu este setată nicio gazdă.
setBasicAuth(username, password)Șirurile de utilizator și parolă pentru autentificarea basic.this
setCredentialsByGUID(guid)guid (șir): intrarea din seiful de credențiale, rezolvată prin CQ.Credentials.getByGUID.this
CreateTicket(fields)Vedeți mai jos.IntegrationHTTPResponse

CreateTicket({summary, description, priority, extra_fields}) creează un tichet în tabela incident. extra_fields acceptă urgency, impact, category și assigned_to; toate sunt opționale și sunt omise din cerere atunci când nu sunt setate.

ConnectWise

MetodăParametriReturnează
setHost(value)value (șir): URL-ul de bază al instanței ConnectWise.this
getHost()Niciunul.Șirul gazdei configurate. Generează o excepție dacă nu este setată nicio gazdă.
setBasicAuth(username, password)Șiruri pentru autentificarea basic; ConnectWise așteaptă ca username să fie deja formatat ca {companyId}+{publicKey}, iar password să fie cheia privată.this
setCredentialsByGUID(guid)guid (șir): intrarea din seiful de credențiale.this
setClientId(id)id (șir): antetul clientId ConnectWise.this
CreateTicket(fields)Vedeți mai jos.IntegrationHTTPResponse

CreateTicket({summary, description, priority, extra_fields}) creează un tichet de service. extra_fields.company_id și extra_fields.company_name sunt obligatorii — apelul eșuează local (nu se efectuează nicio cerere HTTP) dacă vreunul dintre ele lipsește. extra_fields.board_id/extra_fields.board_name sunt opționale.

Remedy

MetodăParametriReturnează
setHost(value)value (șir): URL-ul de bază Remedy/Helix ITSM.this
getHost()Niciunul.Șirul gazdei configurate. Generează o excepție dacă nu este setată nicio gazdă.
setBasicAuth(username, password)Utilizatorul și parola folosite pentru obținerea unui token de sesiune AR-JWT.this
setCredentialsByGUID(guid)guid (șir): intrarea din seiful de credențiale.this
CreateTicket(fields)Vedeți mai jos.IntegrationHTTPResponse

CreateTicket({summary, description, priority, extra_fields}) se autentifică automat la prima utilizare (codificat ca formular, obținând un token AR-JWT care este reutilizat la apelurile ulterioare) și creează un incident. extra_fields acceptă urgency, impact, first_name, last_name, assigned_group și status.