kazzle.config.ts में एक process कंपोनेंट पर घोषित करते हैं। एक कंपोनेंट जितने ट्रिगर चाहें उतने रख सकता है।
आकार
processModeलाइफसाइकल चुनता है — लंबे समय तक चलने वाला सर्वर, या प्रति ट्रिगर एक बार चलना।triggers[]इवेंट की सूची देता है जो इस कंपोनेंट को फायर करने चाहिए।
processMode
| मोड | क्या चलता है | कब उपयोग करें |
|---|---|---|
persistent (डिफ़ॉल्ट) | एक लंबे समय तक चलने वाला HTTP सर्वर। ट्रिगर इसमें POST किए जाते हैं। | कंपोनेंट पहले से HTTP सर्व करता है, या मेमोरी में स्टेट रखता है (कतारें, websockets, कैश)। |
triggered | एंट्री स्क्रिप्ट प्रति ट्रिगर स्पॉन होती है और बंद हो जाती है। | शुद्ध बैकग्राउंड जॉब — रात की सफाई, एकल Stripe webhook हैंडलर, आदि। कोई निष्क्रिय सर्वर नहीं। |
ट्रिगर
प्रत्येक ट्रिगर के पास एकname (कंपोनेंट के भीतर अद्वितीय), एक kind, और — मोड के आधार पर — एक schedule और/या path होता है।
| फील्ड | कब आवश्यक है | नोट्स |
|---|---|---|
name | हमेशा | वेबहुक URL सेगमेंट और लॉग में उपयोग किया जाता है। Kebab-case। |
kind | हमेशा | 'schedule' या 'webhook'। |
schedule | जब kind: 'schedule' | 5-फील्ड cron एक्सप्रेशन। मिनट रेजोल्यूशन न्यूनतम है। |
path | जब processMode: 'persistent' | आपके सर्वर पर HTTP रूट जहाँ ट्रिगर आता है। |
Persistent मोड — सर्वर में HTTP
जब एक persistent कंपोनेंट के लिए ट्रिगर फायर होता है, Kazzle घोषितpath पर आपके सर्वर को POST करता है। अनुरोध में ये हेडर होते हैं:
| हेडर | यह क्या बताता है |
|---|---|
Authorization: Bearer ${KAZZLE_TRIGGER_SECRET} | इसे वैलिडेट करें। जो मेल न खाएं उन्हें अस्वीकार करें। |
x-kazzle-trigger-name | मैनिफेस्ट से ट्रिगर का name। |
x-kazzle-trigger-run-id | लॉग सहसंबंध के लिए अपारदर्शी ID। |
x-kazzle-triggered-by | cron | webhook | manual। |
Triggered मोड — प्रति ट्रिगर एक बार
जब एकtriggered कंपोनेंट के लिए ट्रिगर फायर होता है, Kazzle एंट्री स्क्रिप्ट को नई शुरुआत से स्पॉन करता है और इसके बंद होने का इंतजार करता है। कोई path नहीं होता; स्क्रिप्ट env vars से सीखती है कि कौन सा ट्रिगर फायर हुआ।
| Env var | मान |
|---|---|
TRIGGER_NAME | मैनिफेस्ट से ट्रिगर का name। |
TRIGGERED_BY | cron | webhook | manual। |
RUN_ID | लॉग सहसंबंध के लिए अपारदर्शी ID। |
WEBHOOK_PAYLOAD | JSON बॉडी (केवल वेबहुक ट्रिगर)। |
वेबहुक URLs
triggerName सेगमेंट उस कंपोनेंट के triggers[] में एक kind: 'webhook' एंट्री से मेल खाना चाहिए। अज्ञात ट्रिगर नाम 404 रिटर्न करते हैं।
शेड्यूल रेजोल्यूशन
Cron एक्सप्रेशन 5-फील्ड (मिनट, घंटा, दिन-का-महीना, महीना, दिन-का-सप्ताह) होते हैं और मिनट रेजोल्यूशन न्यूनतम है। सब-मिनट शेड्यूल मैनिफेस्ट वैलिडेशन समय पर अस्वीकार किए जाते हैं।रन कैसे रिकॉर्ड किए जाते हैं
प्रत्येक ट्रिगर फायर एकprocess_runs पंक्ति लिखता है जिसमें trigger_name, triggered_by, run_id, और रन की exit स्थिति होती है। आप इन्हें अपने कोड से क्वेरी कर सकते हैं या ऐप के runs व्यू में देख सकते हैं।