Deployment mode यह बदलता है कि काम कहाँ होता है और आपके source को क्या छूता है। यह नहीं बदलता कि transforms क्या करते हैं: वही input और वही settings हर जगह वही सुरक्षा देते हैं, engine चाहे जहाँ चले। AfterPack दो modes में चलता है।
Mode 1: Local (Free)
npx afterpack@latest <path> AfterPack को आपकी machine पर natively चलाता है, और बिना key configure किए हर framework plugin भी यही करता है। आपका source कभी आपके filesystem से बाहर नहीं जाता। Install करें, build करें, हो गया। न account, न key, न obfuscation के लिए कोई network round trip।
यह डिफ़ॉल्ट रास्ता है, और लगभग हर build को यही अपनाना चाहिए।
यहाँ दो Pro-only settings अलग व्यवहार करती हैं: hardening flags transforms.selfIntegrity.enabled और transforms.comparisonHardening.enabled लागू नहीं होते, और protection बढ़ाने वाला per-region @afterpack directive build को रोक देता है। देखें Pro।
जो build error या critical diagnostic emit करती है, वह anonymous build diagnostics रिपोर्ट करती है: code, severity, versions, bucketed counts, source कभी नहीं। साफ़ build कुछ नहीं भेजती। इसे AFTERPACK_telemetry_enabled=false से, या अपने plugin options में telemetry.enabled से बंद करें। विवरण Privacy & data handling में है।
Mode 2: AfterPack cloud (Pro)
वही package, साथ में एक key। यह एक सामान्य configuration key है, जिसे उन्हीं तीन तरीकों से सेट किया जा सकता है जैसे बाकी हर key को: command line पर --key=ap_v1_…, environment में AFTERPACK_key=ap_v1_…, या afterpack.json में "key"। Flag environment पर भारी पड़ता है, और environment फ़ाइल पर; पूरा precedence नियम Configuration में है।
--key= एक बार के local run के लिए है। Command line shell history, CI logs और ps output में पहुँच जाती है, इसलिए किसी भी साझा चीज़ के लिए AFTERPACK_key का उपयोग करें। न कोई sign-in step है, न कोई अलग credential: dashboard से मिली key ही सब कुछ है।
जब कोई key resolve होती है, तो engine आपकी फ़ाइलों को batch करता है और POST /v1/obfuscate/batch call करता है। Cloud Pro engine build चलाता है और हर फ़ाइल पूरी होते ही obfuscated output वापस stream करता है; आपकी build हर नतीजे को आते ही लिख देती है। Source केवल memory में process होता है और persist नहीं किया जाता। एक artifact store होता है: per-build Protection Map जो dashboard को चलाता है, और जिसे आप project के हिसाब से बंद कर सकते हैं। पूरा wire contract Cloud API reference है।
Cloud down होने पर fail closed। अगर cloud तक नहीं पहुँचा जा सकता (DNS failure, connection refused, 5xx पर retries ख़त्म, या request timeout), तो build Free-tier output पर गिरने के बजाय विफल हो जाती है। यह नियम और उसके पीछे के exit codes Diagnostics में हैं।
Client 503/504 को 1 s / 4 s / 16 s के schedule पर retry करता है (कुल चार प्रयास) और हार मानने से पहले 429 के Retry-After का ठीक एक बार पालन करता है। बाकी हर status non-retryable है और API के अपने diagnostic code के साथ build failure के रूप में सामने आता है।
इनमें से कैसे चुनें
| स्थिति | Mode |
|---|---|
| डिफ़ॉल्ट: zero friction, आपकी machine से कुछ बाहर नहीं जाता | Mode 1 (Local) |
| आप चाहते हैं कि per-region directives सचमुच लागू हों | Mode 2 (Cloud) |
| आप dashboard में stored Protection Maps और build history चाहते हैं | Mode 2 (Cloud) |
| Compliance कहता है कि source आपके infrastructure से बाहर नहीं जा सकता | Mode 1 (Local) |
Deployment के दूसरे रूप
Cloudflare Workers
Engine इतना छोटा है कि Cloudflare Worker के अंदर चल सके, और cloud builds वहीं चलती हैं: आपका bundle एक Worker isolate में transform होकर milliseconds में लौट आता है, और Worker के लिए बहुत बड़ी फ़ाइल अपने आप container में चली जाती है। आप AfterPack को अपने Worker में भी इसी तरह चला सकते हैं: देखें Cloudflare Worker में AfterPack चलाना।
अपने Worker से, उसी obfuscate() call को अपनी Pro key दें और build Mode 2 में, AfterPack के cloud पर चलती है: देखें Pro, आपके अपने Worker से।
वह source जो आपके infrastructure से बाहर नहीं जा सकता
Mode 1 इसका जवाब पहले से देता है: Free, local, कोई network call नहीं, review करने को कुछ नहीं। आपके अपने account के अंदर एक private Pro deployment के लिए Enterprise देखें; यह ऐसा कुछ नहीं है जिसे आप आज चालू कर सकें।
आगे
- Cloud API reference: Mode 2 का पूरा request/response contract।
- Pro: Pro local engine के ऊपर क्या जोड़ता है।
- Privacy & data handling: हर mode क्या store करता है, और कितने समय तक।
- Tiers: कौन-सा plan Mode 2 खोलता है, और वह क्या meter करता है।
- CLI reference: वह command जो Mode 1 चलाता है।
- Configuration: हर key, flag और variable, जिसमें
keyभी शामिल है। - Threat model: engine के जगह बदलने पर क्या बदलता है, और क्या नहीं।