HTTPQL ও StreamQL
HTTP ইতিহাস, WebSocket ট্রাফিক, স্বয়ংক্রিয় পরীক্ষার ফল ও সংশ্লিষ্ট দৃশ্য ফিল্টার করতে Ogma Caido-সামঞ্জস্যপূর্ণ কোয়েরি ভাষার একটি উপসেট ব্যবহার করে।
সিনট্যাক্স
AND ও OR দিয়ে যুক্ত শর্তাংশে কোয়েরি তৈরি হয়।
text
req.host:example.com AND resp.code:200বন্ধনী এক্সপ্রেশনকে গোষ্ঠীবদ্ধ করে:
text
(req.path.cont:"/api/" OR req.path.cont:"/graphql") AND resp.code.gte:400মন্তব্য সমর্থিত:
text
// API errors
req.path.cont:"/api/" AND resp.code.gte:500text
/* focus on login */
req.path.cont:"login"অপারেটর
| অপারেটর | অর্থ |
|---|---|
: | ফিল্ডের ধরন অনুযায়ী সমান বা ডিফল্ট মিল |
.eq: | সমান |
.ne: | সমান নয় |
.cont: | অংশবিশেষ আছে; বড়/ছোট হাতের অক্ষর বিবেচনা করে না |
.ncont: | অংশবিশেষ নেই; বড়/ছোট হাতের অক্ষর বিবেচনা করে না |
.cs.cont: | অংশবিশেষ আছে; বড়/ছোট হাতের অক্ষর বিবেচনা করে |
.cs.ncont: | অংশবিশেষ নেই; বড়/ছোট হাতের অক্ষর বিবেচনা করে |
.like: | SQL-এর মতো প্যাটার্নে মিল |
.nlike: | SQL-এর মতো প্যাটার্নে অমিল |
.regex: | রেগুলার এক্সপ্রেশনে মিল |
.nregex: | রেগুলার এক্সপ্রেশনে অমিল |
.lt: | কম |
.lte: | কম বা সমান |
.gt: | বেশি |
.gte: | বেশি বা সমান |
.exists | হেডার আছে; req.header["Name"].value.exists বা উত্তরের সমতুল্য ব্যবহার করুন |
HTTP উদাহরণ
API ট্রাফিক খুঁজুন:
text
req.path.cont:"/api/"সার্ভারের ত্রুটি খুঁজুন:
text
resp.code.gte:500বড় উত্তর খুঁজুন:
text
resp.len.gt:100000JSON উত্তর খুঁজুন:
text
resp.header["content-type"].value.cont:"application/json"কুকিযুক্ত অনুরোধ খুঁজুন:
text
req.header["cookie"].value.existsইন্টারসেপশন বা মিলিয়ে প্রতিস্থাপনে পরিবর্তিত ট্রাফিক খুঁজুন:
text
req.modified.eq:trueসম্ভাব্য প্রশাসনিক পাথ খুঁজুন:
text
req.path.cont:"/admin" OR req.path.cont:"/manage"পুনঃপ্রেরণ বা স্বয়ংক্রিয় পরীক্ষার ট্রাফিক খুঁজুন:
text
source:replay OR source:automateস্ট্রিমের উদাহরণ
WebSocket ও স্ট্রিম দৃশ্যে StreamQL একই ধরনের কোয়েরি প্রয়োগ করে।
টোকেন ফিল্ড আছে এমন WebSocket বার্তা খুঁজুন:
text
ws.raw.cont:"token"সার্ভার থেকে ক্লায়েন্টের বার্তা খুঁজুন:
text
ws.direction.eq:"To Client"JSON-সদৃশ বার্তা খুঁজুন:
text
ws.raw.cont:"{" AND ws.raw.cont:"}"কার্যকর সংরক্ষিত ছাঁকনি
| নাম | কোয়েরি |
|---|---|
| API ত্রুটি | req.path.cont:"/api/" AND resp.code.gte:400 |
| অথেন্টিকেশন এন্ডপয়েন্ট | req.path.cont:"login" OR req.path.cont:"oauth" OR req.path.cont:"session" |
| JSON ট্রাফিক | resp.header["content-type"].value.cont:"json" |
| গুরুত্বপূর্ণ মেথড | req.method:POST OR req.method:PUT OR req.method:PATCH OR req.method:DELETE |
| সম্ভাব্য গোপন তথ্য | resp.body.cont:"api_key" OR resp.body.cont:"secret" OR resp.body.cont:"token" |
সীমা
ফিল্টারের আচরণ অনুমানযোগ্য রাখতে Ogma কোয়েরির জটিলতা সীমিত করে:
- নেস্টেড এক্সপ্রেশনের সর্বোচ্চ গভীরতা: 16।
- সর্বোচ্চ শর্তাংশের সংখ্যা: 64।
কোয়েরি বেশি জটিল হলে সংরক্ষিত ফিল্টারে ভাগ করুন বা বিস্তৃত অনুসন্ধানের জন্য অনুসন্ধান দৃশ্য ব্যবহার করুন।