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

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

הוראות להתקנת הניסוי של Firebase CLI לתוכנית 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 Owner, ‏ Cloud Editor,‏
Firebase Admin ו-Firebase Develop Admin.
גישה מלאה למשאבי 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 Viewer

ההרשאה הזו ניתנת על ידי התפקידים Cloud Owner, ‏ Cloud Editor,‏
Cloud Viewer, ‏ Firebase Admin, ‏ Firebase Viewer,‏
Firebase Develop Admin ו-Firebase Develop Viewer.
גישה לקריאה בלבד למשאבי 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
firebasedataconnect.googleapis.com/dataAdminאדמין של נתונים ב-Firebase Data Connect API firebasedataconnect.googleapis.com/dataAdmin ההרשאה הזו ניתנת על ידי התפקידים Cloud Owner, ‏ Cloud Editor,‏firebasedataconnect.googleapis.com/dataAdmin Firebase Admin ו-Firebase Develop Admin.



גישת קריאה וכתיבה מלאה למקורות נתונים.

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

כלי להצגת נתונים של Firebase Data Connect APIfirebasedataconnect.googleapis.com/dataViewer
הכלי הזה זמין למשתמשים עם התפקידים הבאים: בעלים ב-Cloud, עורך ב-Cloud,
מנהל מערכת ב-Firebase ומנהל פיתוח ב-Firebase.
הרשאת קריאה בלבד למקורות נתונים.

firebasedataconnect.googleapis.com/services.executeGraphqlRead