مرجع الأمان والضبط

تتيح لك واجهة سطر الأوامر Firebase إدارة مشاريعك على Firebase في دليل مشاريع محلي يمكن التحكّم في إصداراته. ويشمل ذلك Data Connect الخدمات في مشاريعك، والموصّلات الخاصة بهذه الخدمات، والموارد مثل مخطط قاعدة البيانات ومصادر طلبات البحث والتعديل لكل موصّل. تتيح لك واجهة سطر الأوامر أيضًا تثبيت محاكي Firebase Data Connect وتشغيله. تمثّل واجهة سطر الأوامر بديلاً فعالاً للعمل في Firebase.

للحصول على تعليمات حول تثبيت تجربة واجهة سطر الأوامر Firebase لبرنامج المعاينة الخاصة، وأوامر واجهة سطر الأوامر ذات الصلة Data Connect، راجِع مرجع واجهة سطر الأوامر.

يوثّق دليل المرجع هذا ما يلي:

  • إدخالات خاصة بـ Data Connect في ملف إعداد مشروع firebase.json
  • إعدادات Data Connect في dataconnect.yaml وconnector.yaml
  • أدوار إدارة الهوية وإمكانية الوصول (IAM) التي عليك ضبطها للمشاريع التي تستخدم Data Connect

ملفات إعداد مشروع Firebase

مرجع إعدادات firebase.json

استخدِم مفاتيح dataconnect لإعداد خدمة واحدة أو أكثر من خدمات Data Connect في مشروعك.

dataconnect: {
   source: string // Path to the directory containing the dataconnect.yaml service file.
}

مرجع إعدادات dataconnect.yaml

يخزّن الملف dataconnect.yaml معلومات الإعداد حول مواقع مصادر مخططات التطبيقات ومصادر الموصلات ومعلومات ربط مصادر البيانات. يعمل الملف أيضًا كمؤشر لدليل المشروع في واجهة سطر الأوامر Firebase.

يتحكّم المفتاح schemaValidation في مستوى التحقّق من صحة المخطط الذي يتم تنفيذه عند نقل المخططات أثناء عملية النشر. في حال عدم ضبط أي قيمة، يكون سلوك الأمر dataconect:sql:migrate هو تطبيق التغييرات المتوافقة ومطالبتك بالتأكيد قبل تنفيذ أي تغييرات صارمة. عند ضبط هذا الخيار، يكون السلوك على النحو التالي:

  • وضع STRICT يجب أن يتطابق مخطط قاعدة البيانات تمامًا مع مخطط التطبيق قبل أن يتم نشر مخطط التطبيق. سيتم حذف أي جداول أو أعمدة غير مستخدَمة في مخطط Data Connect من قاعدة البيانات.
  • وضع COMPATIBLE يجب أن يكون مخطط قاعدة البيانات متوافقًا مع مخطط التطبيق قبل أن يتم نشر مخطط التطبيق، ويُعدّ أي تغيير إضافي اختياريًا. يعني التوافق أنّ عمليات نقل البيانات الخاصة بالمخطط تستند إلى مخطط التطبيق الذي تكتبه. تظل العناصر في قاعدة البيانات التي لا يستخدمها مخطط التطبيق بدون تعديل. لذلك، بعد النشر، قد يحتوي الخلفية على مخططات وجداول وأعمدة غير مستخدَمة.

يتم توضيح قيم المفاتيح الأخرى في هذا الملف في التعليقات أدناه.

# The top-level Firebase Data Connect YAML file.

# The Firebase Data Connect API version to target.
# Optional. Defaults to the latest version.
specVersion: string

# The ID of the Firebase Data Connect service resource.
# Required.
serviceId: string

# The location of the Firebase Data Connect service.
# Required.
location: string

# Required.
schema:
  # Relative path to directory for schema definitions.
  # Recursively loads all .gql files in this directory.
  # Optional. If not present, defaults to ./schema.
  source: string
  # Datasource connection information.
  # Required.
  datasource:
    # Required.
    postgresql:
      # The name of the PostgreSQL database.
      # Required.
      database: string
      cloudSql:
        # The ID of the CloudSQL instance resource.
        # Required.
        instanceId: string
        # Schema validation mode for schema migrations.
        # Defaults to unspecified/commented out, meaning you are prompted to
        # review all changes during migration.
        # If desired, uncomment and indicate one of "STRICT" or "COMPATIBLE".
        schemaValidation: string

# Required.
# Relative paths to directories for connector definitions.
# Recursively loads all .gql files in the listed directories.
# All directories specified MUST contain a connector.yaml file.
connectorDirs: [string]

يفترض ملف YAML بنية دليل تلقائية (قابلة للإعداد) على النحو التالي:

./(project root)
   /dataconnect
      dataconnect.yaml
      /schema
        *.gql
      /connector
        connector.yaml
        *.gql

مرجع إعدادات connector.yaml

استخدِم connector.yaml لضبط وضع المصادقة التلقائي وخيارات إنشاء حزمة تطوير البرامج (SDK).

# The connector-level YAML file.

# Required. The connector name of the Firebase Data Connect connector resource.
connectorId: string

# Optional. If not specified, no generated libraries (i.e. type-safe SDKs) will be generated.
generate:
    # Optional.
    javascriptSdk:
        # Path to the directory that will be updated with the latest generated
        # web SDK.
        # Required.
      - outputDir: string
        # Path to your package.json directory. If specified, the new generated sdk will be installed in this path.
        # Optional. If not provided, the package will not be auto-installed for you.
      - packageJsonDir: string
        # Name of the package to be created.
        # Optional. Defaults to @firebasegen/<connectorID>
      - package: string
        <option>: string
    # Optional.
    swiftSdk:
        # Path to the directory that will be updated with the latest generated
        # iOS Swift SDK.
        # Required.
      - outputDir: string
        # Name of the package to be created.
      - package: string
        <option>: string
    # Optional.
    kotlinSdk:
        # Path to the directory that will be updated with the latest generated
        # Android SDK.
        # Required.
      - outputDir: string
        # Name of the package to be created.
      - package: string
        <option>: string

إعدادات إدارة الهوية وإمكانية الوصول لمشاريع Data Connect

أدوار دقيقة في "إدارة الهوية وإمكانية الوصول" للمنتج Data Connect

تتطابق الأدوار الأساسية والأدوار المحدّدة مسبقًا في Firebase مع الأدوار ذات المستوى الأدنى Data Connect. راجِع الجدول لمعرفة عملية الربط.

لإدارة عمليات تعيين أدوار "إدارة الهوية وإمكانية الوصول" الفردية في Data Connect بمستوى أكثر دقة، استخدِم وحدة تحكّم Google Cloud.

دور إدارة الهوية وإمكانية الوصول الأذونات
firebasedataconnect.googleapis.com/admin

مشرف واجهة برمجة التطبيقات Firebase Data Connect

يتضمّن هذا الدور "مستخدِم واجهة برمجة التطبيقات Firebase Data Connect".
وهي تعادل firebasedataconnect.*.

يتم توفير هذا الدور من خلال أدوار "مالك السحابة" و"محرّر السحابة"
و"مشرف Firebase" و"مشرف تطوير Firebase".
إمكانية الوصول الكامل إلى موارد واجهة برمجة التطبيقات Firebase Data Connect، بما في ذلك البيانات

firebasedataconnect.googleapis.com/operations.delete
firebasedataconnect.googleapis.com/operations.cancel
firebasedataconnect.googleapis.com/services.create
firebasedataconnect.googleapis.com/services.update
firebasedataconnect.googleapis.com/services.delete
firebasedataconnect.googleapis.com/services.executeGraphql
firebasedataconnect.googleapis.com/services.executeGraphqlRead
firebasedataconnect.googleapis.com/schemas.create
firebasedataconnect.googleapis.com/schemas.update
firebasedataconnect.googleapis.com/schemas.delete
firebasedataconnect.googleapis.com/schemaRevisions.create
firebasedataconnect.googleapis.com/schemaRevisions.delete
firebasedataconnect.googleapis.com/connectors.create
firebasedataconnect.googleapis.com/connectors.update
firebasedataconnect.googleapis.com/connectors.delete
firebasedataconnect.googleapis.com/connectorRevisions.create
firebasedataconnect.googleapis.com/connectorRevisions.delete
firebasedataconnect.googleapis.com/viewer

مُشاهد واجهة برمجة التطبيقات Firebase Data Connect

يتم توفير هذا الدور من خلال أدوار "مالك السحابة" و"محرِّر السحابة"
و"مُشاهد السحابة" و"مشرف Firebase" و"مُشاهد Firebase"
و"مشرف تطوير Firebase" و"مُشاهد تطوير Firebase".
إذن بالاطّلاع على موارد واجهة برمجة التطبيقات Firebase Data Connect API فقط لا يمنح الدور إذن الوصول إلى البيانات.

cloudresourcemanager.googleapis.com/projects.list
cloudresourcemanager.googleapis.com/projects.get

firebasedataconnect.googleapis.com/operations.list
firebasedataconnect.googleapis.com/operations.get
firebasedataconnect.googleapis.com/locations.list
firebasedataconnect.googleapis.com/locations.get
firebasedataconnect.googleapis.com/services.list
firebasedataconnect.googleapis.com/services.get
firebasedataconnect.googleapis.com/schemas.list
firebasedataconnect.googleapis.com/schemas.get
firebasedataconnect.googleapis.com/schemaRevisions.list
firebasedataconnect.googleapis.com/schemaRevisions.get
firebasedataconnect.googleapis.com/connectors.list
firebasedataconnect.googleapis.com/connectors.get
firebasedataconnect.googleapis.com/connectorRevisions.list
firebasedataconnect.googleapis.com/connectorRevisions.get
firebasedataconnect.googleapis.com/dataAdmin

مشرف بيانات واجهة برمجة التطبيقات Firebase Data Connect

يتم توفير هذا الدور من خلال أدوار مالك السحابة الإلكترونية ومحرِّر السحابة الإلكترونية
ومشرف Firebase ومشرف تطوير Firebase.
إذن كامل بالقراءة والكتابة في مصادر البيانات

firebasedataconnect.googleapis.com/services.executeGraphql
firebasedataconnect.googleapis.com/services.executeGraphqlRead
firebasedataconnect.googleapis.com/dataViewer

أداة عرض البيانات في Firebase Data Connect API

يتم توفير هذه الأداة من خلال أدوار "مالك السحابة" و"محرِّر السحابة"
و"مشرف Firebase" و"مشرف تطوير Firebase".
إذن بالاطّلاع فقط على مصادر البيانات

firebasedataconnect.googleapis.com/services.executeGraphqlRead