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
उपयोगकर्ता

भूमिकाएँ और अनुमतियाँ

भूमिका कॉन्फ़िगरेशन
अनुमति कॉन्फ़िगरेशन
UI में लागू करें
भूमिका यूनियन

विकास गाइड

अनुमति कॉन्फ़िगरेशन बार का विस्तार करें

विभाग

विभाग प्रबंधन
विभाग भूमिका प्रबंधन

उपयोगकर्ता डेटा सिंक

सिंक प्रबंधन

डेटा सोर्स

वीकॉम
HTTP API

विकास गाइड

सिंक डेटा स्रोत का विस्तार करें
सिंक लक्ष्य संसाधन का विस्तार करें
Previous PageHTTP API
Next Pageसिंक लक्ष्य संसाधन का विस्तार करें
TIP

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

#सिंक्रनाइज़्ड डेटा स्रोत का विस्तार करना

#अवलोकन

NocoBase आपको अपनी ज़रूरत के अनुसार उपयोगकर्ता डेटा सिंक्रनाइज़ेशन के लिए डेटा स्रोत (Data Source) प्रकारों का विस्तार करने की सुविधा देता है।

#सर्वर साइड

#डेटा स्रोत (Data Source) इंटरफ़ेस

बिल्ट-इन उपयोगकर्ता डेटा सिंक्रनाइज़ेशन प्लगइन (Plugin) डेटा स्रोत (Data Source) प्रकारों के पंजीकरण और प्रबंधन की सुविधा देता है। किसी डेटा स्रोत (Data Source) प्रकार का विस्तार करने के लिए, आपको प्लगइन (Plugin) द्वारा प्रदान की गई SyncSource एब्सट्रैक्ट क्लास को इनहेरिट करना होगा और संबंधित मानक इंटरफ़ेस को लागू करना होगा।

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    return [];
  }
}

SyncSource क्लास में एक options प्रॉपर्टी होती है, जिसका उपयोग डेटा स्रोत (Data Source) के लिए कस्टम कॉन्फ़िगरेशन प्राप्त करने के लिए किया जाता है।

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    //...
    const { appid, secret } = this.options;
    //...
    return [];
  }
}

#UserData फ़ील्ड का विवरण

फ़ील्डविवरण
dataTypeडेटा प्रकार, विकल्प user और department हैं
uniqueKeyअद्वितीय पहचानकर्ता फ़ील्ड
recordsडेटा रिकॉर्ड
sourceNameडेटा स्रोत (Data Source) का नाम

यदि dataType user है, तो records फ़ील्ड में निम्नलिखित फ़ील्ड शामिल होते हैं:

फ़ील्डविवरण
idउपयोगकर्ता ID
nicknameउपयोगकर्ता उपनाम
avatarउपयोगकर्ता अवतार
emailईमेल
phoneफ़ोन नंबर
departmentsविभाग ID का ऐरे

यदि dataType department है, तो records फ़ील्ड में निम्नलिखित फ़ील्ड शामिल होते हैं:

फ़ील्डविवरण
idविभाग ID
nameविभाग का नाम
parentIdपैरेंट विभाग ID

#डेटा स्रोत (Data Source) इंटरफ़ेस के कार्यान्वयन का उदाहरण

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    // ...
    const ThirdClientApi = new ThirdClientApi(
      this.options.appid,
      this.options.secret,
    );
    const departments = await this.clientapi.getDepartments();
    const users = await this.clientapi.getUsers();
    // ...
    return [
      {
        dataType: 'department',
        uniqueKey: 'id',
        records: departments,
        sourceName: this.instance.name,
      },
      {
        dataType: 'user',
        uniqueKey: 'id',
        records: users,
        sourceName: this.instance.name,
      },
    ];
  }
}

#डेटा स्रोत (Data Source) प्रकार का पंजीकरण

विस्तारित डेटा स्रोत (Data Source) को डेटा प्रबंधन मॉड्यूल के साथ पंजीकृत करना होगा।

import UserDataSyncPlugin from '@nocobase/plugin-user-data-sync';

class CustomSourcePlugin extends Plugin {
  async load() {
    const syncPlugin = this.app.pm.get(
      UserDataSyncPlugin,
    ) as UserDataSyncPlugin;
    if (syncPlugin) {
      syncPlugin.sourceManager.reigsterType('custom-source-type', {
        syncSource: CustomSyncSource,
        title: 'Custom Source',
      });
    }
  }
}

#क्लाइंट साइड

क्लाइंट उपयोगकर्ता इंटरफ़ेस, उपयोगकर्ता डेटा सिंक्रनाइज़ेशन प्लगइन (Plugin) के क्लाइंट इंटरफ़ेस द्वारा प्रदान किए गए registerType मेथड का उपयोग करके डेटा स्रोत (Data Source) प्रकारों को पंजीकृत करता है:

import SyncPlugin from '@nocobase/plugin-user-data-sync/client';

class CustomSourcePlugin extends Plugin {
  async load() {
    const sync = this.app.pm.get(SyncPlugin);
    sync.registerType(authType, {
      components: {
        AdminSettingsForm, // बैकएंड प्रबंधन फ़ॉर्म
      },
    });
  }
}

#बैकएंड प्रबंधन फ़ॉर्म

ऊपरी भाग सामान्य डेटा स्रोत (Data Source) कॉन्फ़िगरेशन प्रदान करता है, जबकि निचला भाग कस्टम कॉन्फ़िगरेशन फ़ॉर्म के पंजीकरण की अनुमति देता है।