מסמך עזר בנושא הגדרות ואבטחה

באמצעות ה-CLI של Firebase אפשר לנהל את פרויקטי Firebase בספריית פרויקטים מקומית עם בקרת גרסאות. הנתונים האלה כוללים שירותי Data Connect בפרויקטים, מחברים לשירותים האלה ומשאבים כמו מקורות של סכמות, שאילתות ומוטציות לכל מחבר. באמצעות ה-CLI תוכלו גם להתקין ולהפעיל את האמולטור של Firebase Data Connect. ה-CLI הוא חלופה יעילה לעבודה במסוף Firebase.

הוראות להתקנת הניסוי של CLI Firebase בתוכנית Private Preview, ופקודות CLI שקשורות ל-Data Connect, מפורטות במאמרי העזרה של CLI.

במדריך העזר הזה מוסבר:

  • רשומות ספציפיות ל-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 מאוחסנים פרטי תצורה לגבי המיקומים של מקורות הסכימה של האפליקציה, מקורות המחברים ומידע על החיבורים של מקורות הנתונים. הקובץ משמש גם כסימון של ספריית הפרויקט ב-CLI של 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

הגדרת IAM לפרויקטים של Data Connect

תפקידי IAM מפורטים ל-Data Connect

התפקידים הבסיסיים והתפקידים המוגדרים מראש ב-Firebase ממופים לתפקידים ברמה נמוכה יותר של Data Connect. בטבלה מפורט המיפוי.

כדי לנהל הקצאות ספציפיות של תפקידים ב-IAM ל-Data Connect ברמה מפורטת יותר, משתמשים במסוף Google Cloud.

תפקיד IAM הרשאות
firebasedataconnect.googleapis.com/admin

אדמין ב-Firebase Data Connect API

התפקיד הזה כולל גם את התפקיד 'צפייה ב-Firebase Data Connect API'.
היא שוות ערך ל-firebasedataconnect.*.

התפקידים 'בעלים ב-Cloud', 'עריכה ב-Cloud',
'אדמין ב-Firebase' ו'אדמין פיתוח ב-Firebase' מספקים את ההרשאה הזו.
גישה מלאה למשאבי Firebase Data Connect API, כולל נתונים.

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 API

ההרשאה הזו ניתנת על ידי התפקידים 'בעלים ב-Cloud', 'עריכה ב-Cloud',
'צפייה ב-Cloud', 'אדמין ב-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 API

התפקיד הזה ניתן לתפקידים הבאים: בעלים ב-Cloud, עורך ב-Cloud,
אדמין ב-Firebase ואדמין פיתוח ב-Firebase.
גישה מלאה לקריאה וכתיבה למקורות הנתונים.

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

צפייה בנתונים של Firebase Data Connect API

התפקידים שמאפשרים את הגישה הזו הם 'בעלים', 'עריכה' ו'אדמין' ב-Cloud,
'אדמין' ו'אדמין פיתוח' ב-Firebase.
הרשאת קריאה בלבד למקורות הנתונים.

firebasedataconnect.googleapis.com/services.executeGraphqlRead