דילוג לתוכן

מדריך העזר ל-SDK של צד השרת בתוספים ​

קוד תוסף צד השרת רץ בסביבת JavaScript המבודדת של Ogma ומקבל אובייקט sdk מהיישום המארח.

לפורמט המלא של חבילת התוסף, שדות המניפסט, הרשאות ודוגמאות, התחילו במדריך מערכת התוספים.

נקודת כניסה ​

תוספי צד שרת חושפים פונקציית init:

js
async function init(sdk) {
  sdk.console.log("plugin started");
}

Ogma קורא ל-init(sdk) כאשר התוסף מופעל.

מרחבי השמות המרכזיים ​

מרחב שמותמטרה
sdk.consoleכתיבת הודעות למאגר היומן של התוסף.
sdk.metaקריאת מטא-נתונים של התוסף ונתיבי נתונים.
sdk.eventsרישום פונקציות קריאה חוזרת לאירועי Ogma.
sdk.requestsתשאול היסטוריית HTTP ונתוני בקשות.
sdk.findingsתשאול או יצירת ממצאים כאשר ההרשאות מאפשרות זאת.
sdk.scopeקריאת מידע על תחום הבדיקה הפעיל.
sdk.storageשמירה מתמשכת של מצב התוסף בזוגות מפתח/ערך.
sdk.fsפעולות קבצים בתיקיית הנתונים הפרטית של התוסף.
sdk.pathכלי עזר להרכבת נתיבים בתיקיית הנתונים של התוסף.
sdk.apiחשיפת פונקציות טיפול בצד השרת לצד הלקוח של התוסף.

רישום ביומן ​

js
sdk.console.log("message")
sdk.console.warn("warning")
sdk.console.error("error")

הודעות מוצגות בממשק היומנים של התוסף. הקפידו על יומנים תמציתיים והימנעו מכתיבת סודות.

מטא-נתונים ​

js
sdk.meta.id()
sdk.meta.packageId()
sdk.meta.version()
sdk.meta.path()

השתמשו ב-sdk.meta.path() לנתונים ייעודיים לתוסף. אל תניחו שלקוד תוסף מבודד יש גישה לנתיבים שרירותיים במערכת הקבצים.

js
sdk.storage.set("key", "value")
sdk.storage.get("key")
sdk.storage.keys()
sdk.storage.delete("key")
sdk.storage.clear()
js
sdk.fs.readFile("relative/file.txt")
sdk.fs.writeFile("relative/file.txt", "text")
sdk.fs.appendFile("relative/file.txt", "more")
sdk.fs.exists("relative/file.txt")
sdk.fs.existsSync("relative/file.txt")
sdk.fs.mkdir("relative/dir")
sdk.path.join("a", "b", "c")

אירועים ​

js
sdk.events.onInterceptRequest(function(req) {
  return req
})

sdk.events.onInterceptResponse(function(req, res) {
  sdk.console.log(res.getCode())
})

sdk.events.onProjectChange(function() {
  sdk.console.log("project changed")
})

פונקציות קריאה חוזרת צריכות להיות מהירות. יש להעביר עבודה ממושכת לפעולות מפורשות של המשתמש או לפונקציות טיפול ב-API של צד השרת.

פונקציות הטיפול בגשר צד הלקוח ​

תוספי צד שרת יכולים לחשוף פונקציות טיפול ללוחות צד הלקוח של התוסף:

js
sdk.api.register("ping", async function(input) {
  return { ok: true, input: input };
});

צד הלקוח קורא לפונקציית הטיפול דרך ה-SDK של צד הלקוח ב-Ogma. ראו מדריך העזר ל-SDK של צד הלקוח.

דרישות אבטחה ​

  • התייחסו לתעבורת HTTP, לממצאים, ליומנים ולייצוא כאל מידע רגיש.
  • בקשו רק את ההרשאות שהתוסף צריך.
  • לעולם אל תרשמו כברירת מחדל פרטי הזדהות, עוגיות, אסימוני גישה מסוג Bearer או תעבורה פרטית.
  • הקפידו שהתנהגות התוסף תהיה מפורשת ומובנת למשתמש.

תוכנה קניינית. כל הזכויות שמורות.