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 acces | Obiect exportat |
|---|---|
CQ.Integrations.NetAlert | NetAlert |
CQ.Integrations.QRadar | QRadar |
CQ.Integrations.IntegrationsNotifications | IntegrationsNotifications |
CQ.Integrations.Ticketing.ServiceNow | ServiceNowTicketing |
CQ.Integrations.Ticketing.ConnectWise | ConnectWiseTicketing |
CQ.Integrations.Ticketing.Remedy | RemedyTicketing |
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ă | Parametri | Returnează |
|---|---|---|
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ă | Parametri | Returnează |
|---|---|---|
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ă | Parametri | Returnează |
|---|---|---|
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ă | Parametri | Returnează |
|---|---|---|
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
);
| Parametru | Tip | Implicit | Descriere |
|---|---|---|---|
to | șir | Obligatoriu | Destinatarul 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ă | Parametri | Returnează |
|---|---|---|
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ă | Parametri | Returnează |
|---|---|---|
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ă | Parametri | Returnează |
|---|---|---|
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.