Standart Özellikler / Sorgulama ve Dışa Aktarma
POST - Query API
Genel Bakış
Sorgu API'si, filtreleme ve sıralama yetenekleriyle nesneleri aramak için kullanılan API'dir. Bu, TheHive 4 tarafından tanıtılan ve yeni veri modeli için optimize edilmiş bir API'dir.
TheHive, önceden tanımlanmış arama Sorguları listesiyle birlikte gelir:
listOrganisation
listUser
listAlert
listCase
Sorgu API isteğinin gövdesi aşağıdaki alanlara sahip bir nesne olmalıdır:
query
required: farklı türlerde işlemlerden oluşan bir dizi:
-
Seçim: gerekli
- nesnelerin listesi
- tanımlayıcıya göre nesne
- nesnelerin listesi
-
Filtreleme: isteğe bağlı
- Sıralama: isteğe bağlı
- Sayfalandırma: isteğe bağlı
excludeFields
isteğe bağlı: alan adlarından oluşan bir dizi.
Örnekler
- Basit Liste:
{
"query": [
{
"_name": "listOrganisation"
}
]
}
- Filtreli liste:
{
"query": [
{
"_name": "listOrganisation"
},
{
"_name": "filter",
"_eq": {
"_field": "name",
"_value": "admin"
}
}
]
}
- Sayfalandırmalı liste:
Admin adı verilen organizasyonları listeler, yükselen _updatedAt
değerine göre sıralanır, ilk 15 öğeyi görüntülemek için sayfalandırılır.
{
"query": [
{
"_name": "listOrganisation"
},
{
"_name": "filter",
"_eq": {
"_field": "name",
"_value": "admin"
}
},
{
"_name": "sort",
"_fields": [
{
"_updatedAt": "asc"
}
]
},
{
"_name": "page",
"from": 0,
"to": 15
}
]
}
- Zincirleme sorgular:
Kimliği ~1234 olan vaka için gözlemlenebilirleri listeleyin
{
"query": [
{
"_name": "getCase",
"idOrName": "~1234"
},
{
"_name": "observables"
},
{
"_name": "page",
"from": 0,
"to": 15
}
]
}
- Alanları hariç tutun:
{
"query": [
{
"_name": "listCase"
}
],
"excludeFields": ["description", "summary"]
}
Filtreler
Mevcut filtreler:
_and
:{"_and": [...other filters] }
_or
:{"_or": [...other filters] }
_not
:{"_not": { other filter } }
_any
:{"_any": null}
herhangi bir varlıkla eşleşir_lt
:{"_lt": {"_field": "<field>", "_value": <value>}
daha az_gt
:{"_gt": {"_field": "<field>", "_value": <value>}
daha büyük_lte
:{"_lte": {"_field": "<field>", "_value": <value>}
eşit veya daha az_gte
:{"_gte": {"_field": "<field>", "_value": <value>}
daha büyük veya eşit_ne
:{"_ne": {"_field": "<field>", "_value": <value>}
eşit değil_eq
:{"_eq": {"_field": "<field>", "_value": <value>}
eşit_is
:{"_is": {"_field": "<field>", "_value": <value>}
aynı şekilde_eq
_startsWith
:{"_startsWith": {"_field": "<field>", "_value": "<value>"}
dizesi ile başlar_endsWith
:{"_endsWith": {"_field": "<field>", "_value": "<value>"}
dizesi ile biter_id
:{"_id": "~123"}
kimliğe göre filtrele_between
:{"_between": {"_field": "<field>", "_from": <from>, "_to": <to>}}
aralık filtresi, from kapsayıcıdır, to özeldir, her ikisi de zorunludur_in
:{"_in": {"_field": "<field>", "_values": [<value1>, ...] }}
alan bu değerlerden biridir_contains
:{"_contains": "<field>"}
bir nesne bu alanı içeriyorsa_like
:{"_like": {"_field": "<field>", "_value": "<value>"}
alan (veya dizin türüne bağlı olarak bir sözcük) alt dizeyi içerir_match
:{"_match": {"_field": "<field>", "_value": "<value>"}
alan şu kelimeyi içerir
Sıralama
Kullanım: {"_name": "sort", "fields": [ {"<field>": "<direction>" }, ... ]}
Yön(direction
), asc
veya desc
olabilir.
Sayfalama ve Ek Veriler
Basit sayfalama: {"_name": "page", "from": 0, "to": 30}
Nesne ile ek veri iste: {"_name": "page", "from": 0, "to": 30, "extraData": ["shareCount", "contributors"] }
Nesnenin extraData
alanı, seçilen alanları içeren bir JSON nesnesini içerecektir. Kullanılabilir ek veriler, istenen varlığa bağlıdır.
Yanıtlar
GET - Export API
Uyarı: Bu kararlı olmayan bir rota. Gelecekteki sürümlerde değişiklikler olabilir.
Bir sorgunun sonuçlarını belirtilen formatta indirilebilir bir dosya olarak dışa aktarır.
Sorgu query
parametresi, Sorgu belgesinde açıklanan formata uygunlaştırılmış bir stringleştirilmiş JSON değeridir.
Seçenekler query
parametresi, aşağıdaki formattan birine sahip olabilir:
- CSV dışa aktarımı için:
format
: (string) "csv" değerine sahip olmalıdır.fileName
:(optional, string)
uzantısız dosya adı-
Aşağıdaki iki alandan en az biri sağlanmalıdır:
model
:(optional, string)
Kabul edilen değerler şunlardır"Case"
,"Alert"
,"User"
,"Organisation"
,"Procedure"
ve"Task"
fields
:(optional, array of strings)
Dışa aktarılan verilere eklenecek ekstra alanlar
delimiter
:(optional, character)
quoteChar
:(optional, character)
escapeChar
:(optional, character)
- JSON dışa aktarımı için:
format
:(string)
"json"
değerine sahip olmalıdırfileName
:(optional, string)
Dosya adı, uzantısı olmadan