logologo
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
logologo
अवलोकन

डेटा सोर्स

डेटा सोर्स प्रबंधन
मुख्य डेटा सोर्स

बाहरी डेटा सोर्स (डेटाबेस)

परिचय
बाहरी MySQL
बाहरी MariaDB
बाहरी PostgreSQL
बाहरी MSSQL
बाहरी Oracle
मुख्य बनाम बाहरी डेटाबेस तुलना
REST API डेटा सोर्स
KingbaseES डेटा सोर्स

डेटा टेबल

अवलोकन
सामान्य टेबल
इनहेरिटेड टेबल
फ़ाइल टेबल
ट्री टेबल
कैलेंडर टेबल
कमेंट टेबल
एक्सप्रेशन टेबल
SQL टेबल
डेटाबेस व्यू

डेटा टेबल फ़ील्ड

अवलोकन
फ़ील्ड वैलिडेशन

बेसिक टाइप

सिंगल लाइन टेक्स्ट
मल्टी लाइन टेक्स्ट
मोबाइल नंबर
ईमेल
URL
इंटीजर
नंबर
प्रतिशत
पासवर्ड
कलर
आइकॉन

सिलेक्शन टाइप

चेकबॉक्स
ड्रॉपडाउन (सिंगल सेलेक्ट)
ड्रॉपडाउन (मल्टी सेलेक्ट)
रेडियो बटन
चेकबॉक्स

मल्टीमीडिया

Markdown
Markdown (Vditor)
रिच टेक्स्ट
अटैचमेंट (रिलेशनशिप)
अटैचमेंट (URL)

डेट और टाइम

अवलोकन
डेटटाइम (टाइमज़ोन सहित)
डेटटाइम (टाइमज़ोन रहित)
Unix टाइमस्टैम्प
डेट (टाइम रहित)
टाइम

ज्योमेट्री

पॉइंट
लाइन
सर्कल
पॉलीगॉन

एडवांस्ड टाइप

UUID
Nano ID
सॉर्टिंग
कैलकुलेशन फ़ॉर्मूला
ऑटो-एनकोडिंग
JSON
डेटा टेबल सेलेक्टर
एन्क्रिप्शन

सिस्टम जानकारी

निर्माण तिथि
अंतिम संशोधन तिथि
निर्माता
अंतिम संशोधक
स्थान
Table OID

संबंध प्रकार

अवलोकन
एक-से-एक
एक-से-अनेक
अनेक-से-एक
अनेक-से-अनेक
अनेक-से-अनेक (Array)

विकास

अवलोकन
Previous Pageडेटा टेबल सेलेक्टर
Next Pageनिर्माण तिथि
TIP

यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें

#एन्क्रिप्शन

#परिचय

कुछ निजी व्यावसायिक डेटा, जैसे ग्राहक का मोबाइल नंबर, ईमेल पता, कार्ड नंबर आदि को एन्क्रिप्ट किया जा सकता है। एन्क्रिप्शन के बाद, इसे डेटाबेस में सिफरटेक्स्ट (गुप्त पाठ) के रूप में संग्रहीत किया जाता है।

20251104192513

#एन्क्रिप्शन के तरीके

WARNING

प्लगइन स्वचालित रूप से एक एप्लिकेशन कुंजी (application key) बनाता है, जिसे /storage/apps/main/encryption-field-keys डायरेक्टरी में सहेजा जाता है।

एप्लिकेशन कुंजी फ़ाइल का नाम कुंजी ID होता है और इसका एक्सटेंशन .key होता है। कृपया फ़ाइल का नाम अपनी मर्ज़ी से न बदलें।

कृपया एप्लिकेशन कुंजी फ़ाइल को सुरक्षित रखें। यदि आप एप्लिकेशन कुंजी फ़ाइल खो देते हैं, तो एन्क्रिप्टेड डेटा को डिक्रिप्ट नहीं किया जा सकेगा।

यदि किसी सब-एप्लिकेशन (sub-application) द्वारा प्लगइन सक्षम किया गया है, तो कुंजी डिफ़ॉल्ट रूप से /storage/apps/${सब-एप्लिकेशन नाम}/encryption-field-keys डायरेक्टरी में सहेजी जाती है।

#यह कैसे काम करता है

यह एनवेलप एन्क्रिप्शन (Envelope Encryption) विधि का उपयोग करता है।

20251118151339

#कुंजी निर्माण प्रक्रिया

  1. जब पहली बार कोई एन्क्रिप्टेड फ़ील्ड बनाया जाता है, तो सिस्टम स्वचालित रूप से एक 32-बिट एप्लिकेशन कुंजी बनाता है, जिसे Base64 एन्कोडिंग में डिफ़ॉल्ट स्टोरेज डायरेक्टरी में सहेजा जाता है।
  2. हर बार जब कोई नया एन्क्रिप्टेड फ़ील्ड बनाया जाता है, तो उस फ़ील्ड के लिए एक रैंडम 32-बिट फ़ील्ड कुंजी (field key) जनरेट की जाती है। फिर इसे एप्लिकेशन कुंजी और एक रैंडम रूप से जनरेट किए गए 16-बिट फ़ील्ड एन्क्रिप्शन वेक्टर (field encryption vector) का उपयोग करके एन्क्रिप्ट किया जाता है (AES एन्क्रिप्शन एल्गोरिथम), और fields टेबल के options फ़ील्ड में सहेजा जाता है।

#फ़ील्ड एन्क्रिप्शन प्रक्रिया

  1. हर बार जब आप किसी एन्क्रिप्टेड फ़ील्ड में डेटा लिखते हैं, तो आप सबसे पहले fields टेबल के options फ़ील्ड से एन्क्रिप्टेड फ़ील्ड कुंजी और फ़ील्ड एन्क्रिप्शन वेक्टर प्राप्त करते हैं।
  2. एप्लिकेशन कुंजी और फ़ील्ड एन्क्रिप्शन वेक्टर का उपयोग करके एन्क्रिप्टेड फ़ील्ड कुंजी को डिक्रिप्ट किया जाता है। फिर, फ़ील्ड कुंजी और एक रैंडम रूप से जनरेट किए गए 16-बिट डेटा एन्क्रिप्शन वेक्टर (data encryption vector) का उपयोग करके डेटा को एन्क्रिप्ट किया जाता है (AES एन्क्रिप्शन एल्गोरिथम)।
  3. डिक्रिप्ट की गई फ़ील्ड कुंजी का उपयोग करके डेटा पर हस्ताक्षर किए जाते हैं (HMAC-SHA256 डाइजेस्ट एल्गोरिथम)। इसे Base64 एन्कोडिंग में एक स्ट्रिंग में बदला जाता है (डेटा हस्ताक्षर (data signature) का उपयोग बाद में डेटा पुनर्प्राप्ति के लिए किया जाता है)।
  4. 16-बिट डेटा एन्क्रिप्शन वेक्टर और एन्क्रिप्टेड डेटा सिफरटेक्स्ट (data ciphertext) को बाइनरी रूप से जोड़ा जाता है, फिर Base64 एन्कोडिंग में एक स्ट्रिंग में बदला जाता है।
  5. डेटा हस्ताक्षर की Base64-एन्कोडेड स्ट्रिंग और जोड़ी गई डेटा सिफरटेक्स्ट की Base64-एन्कोडेड स्ट्रिंग को . विभाजक का उपयोग करके जोड़ा जाता है।
  6. अंतिम जोड़ी गई स्ट्रिंग को डेटाबेस में सहेजा जाता है।

#एनवायरनमेंट वैरिएबल

यदि आप एक कस्टम एप्लिकेशन कुंजी निर्दिष्ट करना चाहते हैं, तो ENCRYPTION_FIELD_KEY_PATH एनवायरनमेंट वैरिएबल सेट करें। प्लगइन उस पाथ पर स्थित फ़ाइल को एप्लिकेशन कुंजी के रूप में लोड करेगा।

एप्लिकेशन कुंजी फ़ाइल के लिए आवश्यकताएँ:

  1. फ़ाइल एक्सटेंशन .key होना चाहिए।
  2. फ़ाइल नाम का उपयोग कुंजी ID के रूप में किया जाएगा; विशिष्टता सुनिश्चित करने के लिए UUID का उपयोग करने की सलाह दी जाती है।
  3. फ़ाइल सामग्री Base64-एन्कोडेड 32-बिट बाइनरी डेटा होनी चाहिए।
ENCRYPTION_FIELD_KEY_PATH=/path/to/my/app-keys/270263524860909922913.key

#फ़ील्ड कॉन्फ़िगरेशन

20240802173721

#एन्क्रिप्शन के बाद फ़िल्टरिंग पर प्रभाव

एन्क्रिप्टेड फ़ील्ड केवल निम्न का समर्थन करते हैं: बराबर, बराबर नहीं, मौजूद है, मौजूद नहीं है।

20240802174042

फ़िल्टरिंग वर्कफ़्लो:

  1. एन्क्रिप्टेड फ़ील्ड की फ़ील्ड कुंजी प्राप्त करें, और एप्लिकेशन कुंजी का उपयोग करके इसे डिक्रिप्ट करें।
  2. उपयोगकर्ता द्वारा दर्ज किए गए टेक्स्ट पर फ़ील्ड कुंजी का उपयोग करके हस्ताक्षर करें (HMAC-SHA256 डाइजेस्ट एल्गोरिथम)।
  3. हस्ताक्षर किए गए टेक्स्ट को . विभाजक के साथ जोड़ें, और डेटाबेस में एन्क्रिप्टेड फ़ील्ड पर प्रीफ़िक्स-मैच क्वेरी करें।

#कुंजी रोटेशन

WARNING

nocobase key-rotation कमांड का उपयोग करने से पहले, सुनिश्चित करें कि एप्लिकेशन ने इस प्लगइन को लोड कर लिया है।

जब किसी एप्लिकेशन को नए एनवायरनमेंट में माइग्रेट किया जाता है और आप पुराने एनवायरनमेंट के समान कुंजी का उपयोग जारी नहीं रखना चाहते हैं, तो आप एप्लिकेशन कुंजी को बदलने के लिए nocobase key-rotation कमांड का उपयोग कर सकते हैं।

कुंजी रोटेशन कमांड चलाने के लिए पुराने एप्लिकेशन की एप्लिकेशन कुंजी निर्दिष्ट करना आवश्यक है। कमांड निष्पादित होने के बाद, एक नई एप्लिकेशन कुंजी जनरेट की जाएगी और डिफ़ॉल्ट डायरेक्टरी में (Base64-एन्कोडेड) सहेजी जाएगी।

# --key-path पुराने एनवायरनमेंट की एप्लिकेशन कुंजी फ़ाइल को निर्दिष्ट करता है जो डेटाबेस में एन्क्रिप्टेड डेटा से संबंधित है
 yarn nocobase key-rotation --key-path /path/to/old-app-keys/270263524860909922913.key

यदि किसी सब-एप्लिकेशन की एप्लिकेशन कुंजी को बदलना है, तो --app-name पैरामीटर जोड़ें और सब-एप्लिकेशन का नाम निर्दिष्ट करें:

 yarn nocobase key-rotation --app-name a_w0r211vv0az --key-path /path/to/old-app-keys/270263524860909922913.key