ऑराबेस लोगो
aurabaseडॉक्स
डॉक्स›गाइड›Upgrade to SDK 0.6

एसडीके 0.6 और नए फ़ंक्शन नियमों में अपग्रेड करें

जावास्क्रिप्ट एसडीके से Edge Functions को कॉल करने वाली परियोजनाओं के लिए एक चेकलिस्ट, उन रहस्यों के साथ जिन्हें आपको घुमाने की आवश्यकता हो सकती है।

6 मि॰ पढ़ें·स्तर मध्यवर्ती·12 अक्टू॰ 2026 पर संशोधित
यह अंग्रेजी पाठ फ़्रेंच मूल से स्वचालित रूप से उत्पन्न हुआ था और अभी तक इसकी समीक्षा नहीं की गई है।
यह पृष्ठ स्वचालित रूप से अनुवादित किया गया था. अंग्रेजी संस्करण प्रामाणिक है.
#
सारांश

1. क्या बदला

नया संस्करण स्थापित करें:

terminalbash
npm install @aurabase/aurabase-js@0.6.0

रिलीज़ में एक सुरक्षा परिवर्तन और त्रुटियों और प्रतिक्रियाओं की रिपोर्ट करने के तरीके में कई सुधार हैं। सुरक्षा परिवर्तन फ़ंक्शन सेवा में भी है: सेवा अपडेट होते ही यह आपके प्रोजेक्ट पर लागू होता है, चाहे आप जो भी एसडीके संस्करण का उपयोग करें।

#
टूटने के

2. परिवर्तन तोड़ना

प्रबंधन कॉल के लिए अब service_role कुंजी की आवश्यकता है

functions.list(), get(), listJobs(), getJob(), enqueueJob(), listCronJobs(), createCronJob() और deleteCronJob() सार्वजनिक कुंजी या साइन-इन उपयोगकर्ता को 403 लौटाते हैं। इससे पहले, list() और get() ने सार्वजनिक कुंजी रखने वाले किसी भी व्यक्ति को स्रोत कोड और प्रत्येक फ़ंक्शन के वेरिएबल लौटाए थे। सुरक्षा मॉडल देखें।

before.ts (ब्राउज़र)typescript
const { data } = await aura.functions.list() // सार्वजनिक कुंजी के साथ काम किया
बाद में: इसे अपने सर्वर पर ले जाएंtypescript
// सर्वर/api/functions.ts
const admin = createClient(process.env.AURA_URL!, process.env.AURA_SERVICE_ROLE_KEY!)
export const GET = async () => Response.json((await admin.functions.list()).data?.map((f) => f.name))

केवल वही लौटाएँ जो आपके फ्रंटएंड को चाहिए (उदाहरण के लिए नाम), पूरी परिभाषा कभी नहीं।

जो निकाय JSON नहीं हो सकता उसे अस्वीकार कर दिया जाता है

invoke(name, { body: new Blob(…) }), और ArrayBuffer, टाइप किए गए सरणियों, FormData, URLSearchParams या ReadableStream के साथ भी ऐसा ही है, अब त्रुटि कोड invalid_body लौटाता है। इससे पहले, फ़ंक्शन को {} प्राप्त हुआ था और कोई त्रुटि रिपोर्ट नहीं की गई थी। बाइनरी डेटा (बेस64) को एन्कोड करें या इसे स्टोरेज पर अपलोड करें और इसका पथ भेजें।

किसी फ़ंक्शन का अपना 502, 503 या 504 एक FunctionsHttpError है

पहले, इन स्थितियों को हमेशा FunctionsRelayError के रूप में वर्गीकृत किया जाता था, तब भी जब आपका कोड उन्हें लौटाता था। अब FunctionsRelayError का मतलब है कि प्लेटफॉर्म विफल हो गया है। यदि आपने FunctionsRelayError पर पुनः प्रयास किया है, तो जांचें कि आपका पुनः प्रयास तर्क अभी भी मेल खाता है: त्रुटियां, टाइमआउट और पुनः प्रयास देखें।

FunctionDef अधिक सटीक है

env_vars Record<string, string> है (यह Record<string, unknown> था) और permissions जोड़ा गया है। इन फ़ील्ड्स को पढ़ने वाला कोड काम करता रहता है; वह कोड जो किसी अन्य प्रकार का मान निर्दिष्ट करता है, अब संकलित नहीं होता है।

#
ठीक करता है

3. व्यवहार ठीक करता है

पहलेअब
टेक्स्ट के साथ 500 लौटाने वाले फ़ंक्शन ने संदेश "null" उत्पन्न कियासंदेश वह पाठ है जो आपके फ़ंक्शन ने लौटाया है
एक फ़ंक्शन उत्पादित टेक्स्ट के साथ 200 लौटा रहा है { data: null, error: null }data पाठ है
डिफ़ॉल्ट मोड में एक बाइनरी प्रतिक्रिया { data: null, error: null } उत्पन्न हुईerror.code invalid_response है और संदेश responseType सुझाता है
responseType: 'text' एक त्रुटि के साथ JSON { "error": "…" } ने HTTP 503 दिखायासंदेश JSON से पढ़ा जाता है, जैसा कि डिफ़ॉल्ट मोड में होता है
'text', 'blob' और 'arrayBuffer' में कोई डिफ़ॉल्ट टाइमआउट नहीं थाक्लाइंट टाइमआउट (30 सेकंड) लागू होता है
यूआरएल में एक फ़ंक्शन नाम अनएन्कोडेड डाला गया थायह एन्कोड किया गया है: a/../b इसके पथ के अंदर रहता है
किसी कार्य पर delaySecs को नजरअंदाज कर दिया गया: कार्य तुरंत चला गयाकाम अपनी तारीख का इंतजार करता है

नए निर्यात: FunctionsHttpError, FunctionsRelayError, isRelayStatus और FunctionsResponseType @aurabase/aurabase-js के साथ-साथ @aurabase/functions से भी आते हैं। यदि आपने उन्हें @aurabase/functions से आयात किया है, तो वह काम करता रहता है; पीएनपीएम के साथ अब आपको प्रत्यक्ष निर्भरता के रूप में उस पैकेज की आवश्यकता नहीं है।

@aurabase/auth में, getClaims() के परिणाम में email का प्रकार अब string | null है, जो कि बिना ई-मेल पते वाले उपयोगकर्ता के लिए सेवा लौटाता है।

सीएलआई. aura functions deploy अब पहले से मौजूद फ़ंक्शन के रहस्यों को नहीं मिटाता है। aura functions invoke --data {} भेजने के बजाय अमान्य JSON को अस्वीकार कर देता है। aura functions download Deno फ़ंक्शन के लिए काम करता है। aura functions serve जिस पोर्ट की घोषणा करता है उसे सुनता है। aura studio पोर्ट 3000 पर स्टूडियो खोलता है।

#
सुरक्षा

4. उजागर रहस्यों को घुमाएँ

यदि आपका प्रोजेक्ट किसी सेवा संस्करण पर चलता है जो इस परिवर्तन से पहले का है, तो आपकी सार्वजनिक कुंजी का कोई भी धारक आपके फ़ंक्शन के कोड और वेरिएबल को पढ़ सकता है। मान लें कि वे पढ़े गए थे:

  1. service_role कुंजी के साथ अपने कार्यों को सूचीबद्ध करें और प्रत्येक के वेरिएबल खोलें।
  2. उनमें मौजूद प्रत्येक रहस्य को घुमाएँ: भुगतान कुंजियाँ, वेबहुक रहस्य, तृतीय-पक्ष टोकन।
  3. उन रहस्यों को हटाएं जो सीधे index.ts में लिखे गए थे और उन्हें वेरिएबल्स में ले जाएं।
  4. आपके द्वारा नहीं बनाई गई प्रविष्टियों के लिए प्रोजेक्ट के जॉब और अलर्ट नियमों की जाँच करें।
#
जांच सूची

5. चेकलिस्ट

  • ब्राउज़र में या सार्वजनिक कुंजी के साथ चलने वाले कोड में functions.list(, functions.get(, listJobs(, getJob(, enqueueJob(, createCronJob(, deleteCronJob( और listCronJobs( के लिए अपना कोड खोजें।
  • body: मान खोजें जो सादे JSON नहीं हैं।
  • पुनः प्रयास तर्क की जाँच करें जो FunctionsRelayError पर निर्भर करता है।
  • ऊपर वर्णित अनुसार रहस्यों को घुमाएँ।
  • सीएलआई को अद्यतन करें.