Wolkra API टोकन प्रोजेक्ट-स्कोप वाली keys हैं जो wk_ से शुरू होती हैं। https://api.wolkra.com/v1 पर REST API कॉल करने के लिए इसे Authorization: Bearer हेडर में भेजें, read या read/write एक्सेस, वैकल्पिक IP allow list और वैकल्पिक एक्सपायरी तारीख के साथ।
टोकन बनाएँ
- कंसोल में उस प्रोजेक्ट पर जाएँ जिस तक टोकन को पहुँचना है।
- API tokens खोलें और Create token चुनें।
- ऐसा नाम दें जिससे पता चले कि यह कहाँ इस्तेमाल होगा, जैसे
ci-deployयाmonitoring-readonly। - एक्सेस लेवल चुनें:
- Read: सिर्फ़ रिसोर्स की सूची देखना और उन्हें देखना।
- Read/write: इसके साथ रिसोर्स बनाना, बदलना और डिलीट करना भी।
- चाहें तो IP allow list जोड़ें: सिर्फ़ इन पतों या रेंज से आने वाली रिक्वेस्ट स्वीकार होंगी।
- चाहें तो एक्सपायरी तारीख सेट करें।
- टोकन बनाएँ और तुरंत कॉपी कर लें। इसे पासवर्ड की तरह रखें, जैसे किसी secret manager में या अपने CI के secret variables में।
अपनी पहली रिक्वेस्ट भेजें
प्रोजेक्ट के सर्वरों की सूची देखें:
curl -H "Authorization: Bearer wk_…" https://api.wolkra.com/v1/servers
स्क्रिप्ट में टोकन को कमांड के बजाय environment variable में रखें:
export WOLKRA_TOKEN='wk_…'
curl -s -H "Authorization: Bearer $WOLKRA_TOKEN" https://api.wolkra.com/v1/servers | jq .
jq (sudo apt install -y jq से इंस्टॉल करें) JSON रिस्पॉन्स को पढ़ने लायक फ़ॉर्मेट में दिखाता है।
रिसोर्स
API वही रिसोर्स कवर करता है जो कंसोल करता है:
| पाथ | रिसोर्स |
|---|---|
/servers |
क्लाउड सर्वर |
/ssh_keys |
सेव की गई SSH keys |
/volumes |
ब्लॉक स्टोरेज वॉल्यूम |
/networks |
प्राइवेट नेटवर्क |
/firewalls |
फ़ायरवॉल |
/load_balancers |
लोड बैलेंसर |
/floating_ips |
फ़्लोटिंग IP |
/actions |
पावर बदलाव जैसे actions, उनके स्टेटस के साथ |
सभी पाथ https://api.wolkra.com/v1 के सापेक्ष हैं। उदाहरण के लिए, वॉल्यूम की सूची देखने के लिए:
curl -s -H "Authorization: Bearer $WOLKRA_TOKEN" https://api.wolkra.com/v1/volumes
Actions
जिन बदलावों में समय लगता है, जैसे सर्वर स्टार्ट करना या वॉल्यूम जोड़ना, वे actions के रूप में चलते हैं। स्क्रिप्ट आगे बढ़ाने से पहले /actions पर उनकी प्रगति जाँचें, यह मानकर न चलें कि बदलाव पूरा हो गया है।
एरर
API मानक HTTP स्टेटस कोड के साथ जवाब देता है। आम मतलब:
| स्टेटस | मतलब |
|---|---|
401 |
टोकन नहीं है, गलत है या एक्सपायर हो गया है |
403 |
अनुमति नहीं, जैसे read-only टोकन से write करना या allow list के बाहर से रिक्वेस्ट |
404 |
रिसोर्स इस प्रोजेक्ट में मौजूद नहीं है |
429 |
बहुत ज़्यादा रिक्वेस्ट; रुकें और फिर कोशिश करें |
5xx |
अस्थायी समस्या; थोड़ा रुककर फिर कोशिश करें |
डीबग करते समय स्टेटस कोड प्रिंट करें:
curl -s -o /dev/null -w '%{http_code}\n' \
-H "Authorization: Bearer $WOLKRA_TOKEN" https://api.wolkra.com/v1/servers
अच्छे तरीके
- हर इस्तेमाल के लिए एक टोकन। CI के लिए एक, मॉनिटरिंग के लिए दूसरा, अपने लैपटॉप के लिए तीसरा। एक को रद्द करने से बाकी नहीं टूटते।
- कम से कम अधिकार। डैशबोर्ड और मॉनिटरिंग के लिए read टोकन इस्तेमाल करें।
- पते से सीमित करें। तय सर्वरों या CI रनर से इस्तेमाल होने वाले टोकन के लिए IP allow list जोड़ें।
- टोकन एक्सपायर करें जो किसी प्रोजेक्ट या ऐसे व्यक्ति के लिए हैं जो आगे चलकर चला जाएगा।
- टोकन कभी git में commit न करें। अगर कोई लीक हो जाए, तो उसे तुरंत कंसोल में डिलीट करें और नया बनाएँ।
- समय-समय पर टोकन की सूची और ऑर्गनाइज़ेशन का activity log रिव्यू करें।
टोकन रद्द करें
API tokens खोलें, टोकन ढूँढें और उसे डिलीट करें। उसके बाद उस टोकन वाली रिक्वेस्ट फ़ेल होंगी।
ऑटोमेशन
स्क्रिप्ट HTTPS पर सीधे API कॉल करती हैं। curl, Python का requests, Go का net/http या कोई भी HTTP क्लाइंट काम करता है। पहले बूट पर ही सर्वरों को पूरी तरह कॉन्फ़िगर करने के लिए API को cloud-init user data के साथ जोड़ें।
प्रोडक्ट पेज पर ज़्यादा जानकारी: API। अकाउंट को खुद सुरक्षित रखने के लिए अकाउंट सुरक्षा देखें।
अक्सर पूछे जाने वाले सवाल
Wolkra API कहाँ है?
https://api.wolkra.com/v1 पर। यह JSON और Bearer टोकन ऑथेंटिकेशन इस्तेमाल करने वाला REST API है।
एक टोकन किस चीज़ तक पहुँच सकता है?
एक प्रोजेक्ट तक। हर टोकन उसी प्रोजेक्ट का होता है जिसमें वह बनाया गया, और उसके रिसोर्स पर उसे read या read/write एक्सेस मिलता है।
क्या मैं टोकन को सिर्फ़ अपने सर्वरों के पतों तक सीमित कर सकता हूँ?
हाँ। टोकन बनाते समय IP allow list जोड़ें, और किसी दूसरे पते से आने वाली रिक्वेस्ट अस्वीकार कर दी जाएँगी।
कौन-से टूल API कॉल कर सकते हैं?
कोई भी HTTP क्लाइंट: curl, Python requests, Go net/http, JavaScript fetch या आपके CI सिस्टम के HTTP स्टेप।