आपका बुनियादी ढांचा। आपका डेटा। आपकी कुंजियाँ।
Cronable आपके अपने स्टैक के एक भरोसेमंद हिस्से की तरह चलने के लिए बनाया गया है। यहाँ ठीक-ठीक बताया गया है कि यह आपके स्वचालन, सीक्रेट्स और इतिहास को आपके नियंत्रण में कैसे रखता है।
डिज़ाइन से ऑन-प्रिमाइसेस
Cronable आपकी अपनी मशीन पर इंस्टॉल होता है — एक Mac या Windows डेस्कटॉप ऐप, या systemd/launchd के तहत एक सर्वर। कोई SaaS टियर नहीं और कोई क्लाउड निर्भरता नहीं। इसकी नियमित आउटबाउंड कॉल्स हैं एक आवधिक लाइसेंस जाँच — जो आपकी सदस्यता की पुष्टि करती है और जॉब व उपयोगकर्ता की साधारण संख्याएँ रिपोर्ट करती है — और नए हस्ताक्षरित रिलीज़ की जाँच; और, केवल यदि आप उन्हें चालू करें, तो इनबाउंड webhooks या रिमोट कंट्रोल के लिए Cronable के होस्टेड relay से एक आउटबाउंड कनेक्शन। आपका वर्कलोड — जॉब परिभाषाएँ, सीक्रेट्स, रन और आउटपुट — मशीन पर ही रहता है और कभी हमें नहीं भेजा जाता। एकमात्र अपवाद एक सक्रिय रिमोट-कंट्रोल सेशन है: उसका डैशबोर्ड ट्रैफ़िक हमारे edge के ज़रिए रिले होता है (उतना ही भरोसा जितना किसी भी होस्टेड प्रॉक्सी पर), और आपकी अपनी मशीन तक एंड-टू-एंड एन्क्रिप्शन एक नियोजित Enterprise विकल्प है।
रेस्ट पर एन्क्रिप्टेड सीक्रेट्स और क्रेडेंशियल्स
सीक्रेट मान आपकी अपनी एन्क्रिप्शन कुंजी से प्राप्त एक कुंजी के साथ AES-256-GCM एन्क्रिप्टेड होते हैं (प्रति-इंस्टॉल रैंडम salt के साथ scrypt)। टाइप किए गए क्रेडेंशियल्स — API कुंजियाँ, bearer टोकन, basic auth, कस्टम हेडर और Postgres कनेक्शन स्ट्रिंग — उसी एन्क्रिप्टेड स्टोर में रहते हैं और नाम से संदर्भित होते हैं, कभी जॉब फ़ाइलों में पेस्ट नहीं किए जाते। कुछ भी git में नहीं लिखा जाता, और कुछ भी आपकी मशीन से बाहर नहीं जाता। आप कुंजी का बैकअप अलग से लेते हैं — इसे खो दें और डिज़ाइन के अनुसार सीक्रेट्स अपुनर्प्राप्य हैं।
हर लॉग और स्ट्रीम में मास्क किए गए
हल किए गए सीक्रेट और क्रेडेंशियल मान लॉग फ़ाइलों, जॉब आउटपुट और लाइव लॉग स्ट्रीम में “***” में छिपा दिए जाते हैं — भले ही कोई मान स्ट्रीमिंग टुकड़ों में बँटा हो। जो आपके बॉक्स पर चलता है वह आपके बॉक्स पर ही रहता है।
प्रमाणित और न्यूनतम-विशेषाधिकार
वेब कंसोल को argon2id पासवर्ड हैशिंग और ब्रूट-फ़ोर्स लॉकआउट के साथ प्रति-उपयोगकर्ता लॉगिन की आवश्यकता होती है। इंजन डिफ़ॉल्ट रूप से localhost से बाइंड होता है और एक समर्पित निम्न-विशेषाधिकार उपयोगकर्ता के रूप में चलने के लिए है। सर्वर-से-सर्वर कॉलर एक निजी bearer टोकन का उपयोग करते हैं; ब्राउज़र एक अल्पकालिक सेशन कुकी का उपयोग करते हैं — और लॉग आउट करना, या किसी सेशन का समाप्त होना, खुली लाइव-लॉग स्ट्रीम को भी सेकंडों के भीतर बंद कर देता है। पासवर्ड को एक मज़बूती जाँच भी पास करनी होती है — न्यूनतम लंबाई के साथ अनुमान-योग्यता परीक्षण — ताकि कमज़ोर या आसानी से अनुमान लगाए जा सकने वाले पासवर्ड अस्वीकार कर दिए जाएँ। वैकल्पिक दो-कारक प्रमाणीकरण (TOTP) Google Authenticator जैसे प्रमाणक ऐप से एक बार उपयोग होने वाला कोड जोड़ता है, और डिवाइस खो जाने की स्थिति के लिए रिकवरी कोड देता है; रिमोट एक्सेस का उपयोग करने के लिए यह आवश्यक है, इसलिए किसी मशीन को होस्ट किए गए डैशबोर्ड में केवल वही व्यक्ति खोल सकता है जिसने इसे सक्षम किया हो।
भूमिकाओं के साथ टीम एक्सेस
वेब कंसोल बहु-उपयोगकर्ता है, जिसमें चार क्रमबद्ध भूमिकाएँ हैं — व्यूअर (केवल-पठन), एडिटर (जॉब, सीक्रेट और रन बनाना), एडमिन (उपयोगकर्ता, भूमिकाएँ और सेटिंग्स प्रबंधित करना), और ओनर, जो इंस्टॉल का पहला अकाउंट है। एडमिन उपयोगकर्ता जोड़ते और हटाते हैं, हर व्यक्ति की भूमिका सेट करते हैं, कोई पासवर्ड या दो-कारक डिवाइस रीसेट करते हैं, और Settings → Users के तहत एक्सेस रद्द करते हैं — ताकि किसी जाते हुए साथी का एक्सेस तुरंत समाप्त हो जाए और कोई भी लॉगिन साझा न करे। कड़ाई से सीमित इंस्टॉल और भी विकल्प चुन सकते हैं: कमांड-निष्पादन स्तरीकरण यह सीमित करता है कि कमांड चलाने वाली जॉब कौन बना सकता है, और परिवर्तन-अनुमोदन दो व्यक्तियों की समीक्षा जोड़ता है, ताकि कोई दूसरा एडमिन किसी स्टेज की गई जॉब या सीक्रेट बदलाव को उसके प्रभावी होने से पहले मंज़ूर करे।
OIDC के ज़रिए सिंगल साइन-ऑन
अपना पहचान प्रदाता — Okta, Entra ID, Google, Keycloak — PKCE और पूर्ण ID-टोकन सत्यापन के साथ OIDC authorization-code फ़्लो पर लाएँ। SSO साइन-इन को किसी मौजूदा लोकल अकाउंट से मैप होना चाहिए: कुछ भी स्वतः-प्रावधानित नहीं होता, और प्रदाता त्रुटियाँ कच्चे रीडायरेक्ट के बजाय तयशुदा, मित्रवत संदेशों के रूप में सामने आती हैं।
एक ऑडिट ट्रेल जिसे आप वाक़ई पढ़ सकते हैं
लॉगिन और विफल प्रयास, सीक्रेट और क्रेडेंशियल बदलाव, जॉब एडिट, सेटिंग्स अपडेट और git सिंक एक केवल-जोड़ने वाले ऑडिट ट्रेल में दर्ज किए जाते हैं — केवल नाम और मेटाडेटा, कभी मान नहीं — जिन्हें कंसोल में ही Settings → Audit के तहत देखा और फ़िल्टर किया जा सकता है।
मज़बूत किए गए इनबाउंड webhook
इनबाउंड webhook आपके daemon तक हमारे लाइसेंस-गेटेड रिले के ज़रिए उस कनेक्शन पर पहुँचते हैं जिसे आपका सर्वर बाहर की ओर खोलता है, इसलिए आप कभी कोई पोर्ट उजागर नहीं करते — जब तक कि आप जानबूझकर ऐसा न चाहें। हर हुक आपके लाइसेंस से बँधा होता है — कोई अन्य ग्राहक इसे दावा नहीं कर सकता या इसके इवेंट प्राप्त नहीं कर सकता, इसका URL जानते हुए भी — और प्रति-हुक एक टोकन द्वारा संरक्षित होता है जो केवल एक SHA-256 हैश के रूप में संग्रहीत होता है और स्थिर समय में जाँचा जाता है। URL को कम से कम 32 न-अनुमान-योग्य वर्ण और वह टोकन चाहिए; ग़लत, लापता, अक्षम या अज्ञात सभी वही सामान्य 401 लौटाते हैं, और किसी IP से बार-बार की जाँचें अस्थायी रूप से प्रतिबंधित कर दी जाती हैं — इसलिए गिनने को कुछ नहीं है और ब्रूट-फ़ोर्स करने को कुछ नहीं है। टोकन मिंट के समय एक बार दिखाए जाते हैं और एक क्लिक में घुमाने योग्य होते हैं। यदि आप चाहते हैं कि इनबाउंड पेलोड हमारे सर्वरों से बिल्कुल न गुज़रें, तो आप रिले को छोड़कर अपना स्वयं का HTTPS एंडपॉइंट चला सकते हैं — यही वह एकमात्र स्थिति है जहाँ आप वास्तव में पोर्ट खोलते हैं, और तब webhook सीधे आपकी मशीन पर पहुँचते हैं।
Git-ऑडिट किया गया, प्रतिवर्ती इतिहास
हर जॉब परिभाषा आपकी अपनी git रिपॉज़िटरी में एक फ़ाइल है। हर बदलाव एक commit है — पूरी तरह diff करने योग्य, श्रेय देने योग्य और प्रतिवर्ती। आपका जॉब इतिहास उन टूल्स से ऑडिट किया जा सकता है जिन्हें आपकी टीम पहले से इस्तेमाल करती है। जब आप दो-तरफ़ा सिंक के लिए कोई रिपॉज़िटरी लिंक करते हैं, तो Cronable केवल निजी रिपॉज़िटरी स्वीकार करता है — यह सार्वजनिक रिपॉज़िटरी को अस्वीकार करता है, और यदि लिंक की गई रिपॉज़िटरी बाद में सार्वजनिक कर दी जाए तो सिंक करना रोक देता है — ताकि आपकी जॉब परिभाषाएँ कभी भी सार्वजनिक रूप से पठनीय न बन सकें।
भरोसे की सीमा के बारे में ईमानदार
Cronable का काम आपकी ओर से कमांड, AI एजेंट और HTTP चलाना है, इसलिए इसे बॉक्स पर एक shell की तरह मानें। एक्सप्रेशन एक footgun-guard sandbox में चलते हैं, न कि किसी मज़बूत सीमा में — इसे कभी अविश्वसनीय इनपुट न दें। हम आपको न्यूनतम विशेषाधिकार और समझदार नेटवर्क आइसोलेशन के साथ इसे तैनात करने में मदद करते हैं।
इसे अपने firewall के पीछे चलाएँ।
पूरी करने के लिए सुरक्षा आवश्यकताएँ हैं? हमें अपना वातावरण बताएँ और हम तैनाती, हार्डनिंग और एक्सेस नियंत्रण को एक साथ देखेंगे।
Cronable, और यह कभी आपके बॉक्स से बाहर नहीं जाता।