TIPCommon.utils

Modul TIPCommon.utils berfungsi sebagai toolkit dasar untuk developer integrasi. Library ini menyediakan helper penting untuk manipulasi string, transmisi jenis yang aman, pembuatan kueri OData, dan pemeriksaan khusus lingkungan untuk memastikan integrasi berjalan lancar di berbagai versi platform dan status eksekusi.

Pembersihan data dan casting jenis

Fungsi ini menangani "pra-pemrosesan" data, memastikan variabel dalam format yang benar sebelum digunakan dalam logika atau dikirim ke API eksternal.

Fungsi Parameter Deskripsi & Pengembalian
camel_to_snake_case()
  • string: (str) String target camelCase.
Hasil: str

Mengonversi string camelCase atau PascalCase menjadi snake_case. Penting untuk menormalisasi respons API ke konvensi penamaan Pythonic.

cast_keys_to_int()
  • data: (dict) Kamus dengan kunci string numerik.
Hasil: dict

Membuat kamus baru dengan semua kunci dikonversi menjadi bilangan bulat. Sering digunakan saat memproses data JSON yang merepresentasikan ID sebagai string.

clean_result()
  • value: (str) String target.
Hasil: str

Menghapus spasi kosong di awal dan akhir. Utilitas svital untuk membersihkan input pengguna dari parameter integrasi.

none_to_default_value()
  • value_to_check: (Apa pun) Nilai input.
  • value_to_return_if_none: (Semua) Penggantian.
Hasil: Any

Memeriksa apakah suatu nilai adalah None. Jika ya, menampilkan penggantian default; jika tidak, menampilkan nilai asli.

safe_cast_bool_value_from_str()
  • default_value: (Apa pun) Nilai yang akan dievaluasi.
Hasil: bool | Any

Mengonversi boolean string (seperti "true") menjadi boolean sebenarnya. Menampilkan default_value jika transmisi gagal.

safe_cast_int_value_from_str()
  • default_value: (Apa pun) Nilai yang akan dievaluasi.
Hasil: int | Any

Mencoba melakukan transmisi nilai ke bilangan bulat. Menampilkan default_value jika casting tidak berhasil.

Lingkungan dan logika eksekusi

Utilitas ini memungkinkan skrip mengidentifikasi konteks runtime-nya, seperti apakah skrip berjalan sebagai pengujian, tindakan asinkron, atau pada versi platform tertentu.

Fungsi Parameter Deskripsi & Pengembalian
is_first_run()
  • sys_argv: (list) Argumen dari sys.argv.
Hasil: bool

Menentukan apakah tindakan sedang dieksekusi secara asinkron untuk pertama kalinya. Digunakan untuk mengelola status dalam tindakan polling.

is_test_run()
  • sys_argv: (list) Argumen dari sys.argv.
Hasil: bool

Mengidentifikasi apakah skrip berjalan dalam mode "Test" di dalam IDE. Gunakan ini untuk melewati panggilan API sebenarnya selama pengembangan.

is_overflowed()
  • siemplify: (SiemplifyConnectorExecution)
  • alert_info: (AlertInfo)
  • is_test_run: (bool)
Hasil: bool

Memeriksa apakah pemberitahuan memenuhi kriteria overflow platform. Penting agar konektor mencegah penyerapan pemberitahuan yang berlebihan.

is_python_37()

Tidak ada

Hasil: bool

Memeriksa apakah versi Python saat ini minimal 3.7. Berguna untuk beralih antara fitur bahasa lama dan modern.

platform_supports_1p_api()

Tidak ada

Hasil: bool

Memeriksa apakah instance mendukung API terpadu Pihak Pertama (1P). Mengaktifkan logika penggantian dinamis untuk dukungan multiplatform.

platform_supports_db()
  • siemplify: (ChronicleSOAR) Objek SDK.
Hasil: bool

Menentukan apakah lingkungan mendukung DataStreams. Jika False, integrasi akan kembali ke status berbasis file.

Validasi dan pemfilteran data

Utilitas untuk memastikan integritas data, melakukan operasi set, dan mengambil nilai dari struktur JSON yang kompleks.

Fungsi Parameter Deskripsi & Pengembalian
escape_odata_literal()
  • value: (Apa pun) Nilai kueri mentah.
Hasil: Any

Menggandakan tanda kutip tunggal dalam string agar sesuai dengan OData.

get_unique_items_by_difference()
  • item_pool: (Iterable) Item sumber.
  • items_to_remove: (Iterable) Daftar pengecualian.
Hasil: list

Menghitung selisih himpunan (Pool - Remove) dan menampilkan item unik sebagai daftar. Berguna untuk memfilter pemberitahuan yang telah diproses.

get_value_from_json()
  • data: (dict) Data JSON yang akan dicari.
  • *keys: (str) Kunci penggantian yang diurutkan.
  • default: (Any) Nilai penggantian.
Hasil: Any

Mengambil nilai dari JSON bertingkat menggunakan "air terjun" kunci. Menampilkan default jika tidak ada kunci.

is_empty_string_or_none()
  • data: (str) String yang akan diperiksa.
Hasil: bool

Menampilkan True jika inputnya adalah None atau hanya berisi string kosong "". Penting untuk pemeriksaan keamanan pada respons API.

is_valid_email()
  • email_addr: (str) String yang akan diperiksa.
Hasil: bool

Memvalidasi format alamat email menggunakan ekspresi reguler standar. Berguna untuk memvalidasi parameter sebelum panggilan API eksternal.

is_valid_uuid()
  • string: (str) String yang akan diperiksa.
Hasil: bool

Memastikan string adalah UUID versi 4 yang valid. Mencegah error 400 saat meneruskan ID ke endpoint platform.

Utilitas sistem dan file

Helper untuk berinteraksi dengan sistem operasi, mengelola file sementara, dan menangani metadata entitas.

Fungsi Parameter Deskripsi & Pengembalian
create_and_write_to_tempfile()
  • content: (str | bytes) Data yang akan ditulis.
Hasil: Path

Menulis konten ke file sementara yang aman. Berguna untuk tindakan yang memerlukan penerusan data ke alat command line.

get_entity_original_identifier()
  • entity: (Entity) Objek entity target.
Hasil: str

Mengambil ID asli untuk entitas, memastikan pemetaan kembali yang akurat ke pemberitahuan sumber.

get_function_arg_names()
  • func: (Callable) Fungsi target.
Hasil: list

Menggunakan refleksi untuk mengambil semua nama argumen yang ditentukan dalam fungsi. Penting untuk membuat wrapper dinamis.

get_sdk_api_uri()
  • chronicle_soar: (ChronicleSOAR) Instance SDK.
Hasil: str

Mengambil URI API dasar untuk lingkungan saat ini. Penting untuk membuat panggilan REST kustom di luar wrapper standar.

safe_json_for_204()
  • response: (Respons) Objek respons HTTP.
  • default_for_204: (Any) Nilai penggantian.
Hasil: list | dict | Any

Menangani respons 204 (No Content) dengan aman. Menampilkan daftar kosong atau nilai default_for_204, bukan error saat penguraian JSON.

temporarily_remove_header()
  • header_name: (str) Header yang akan dihilangkan.
Hasil: callable

Decorator: Menghapus header (seperti 'Prefer') dari sesi untuk sementara selama durasi satu panggilan.