حسابرسی استفاده از اعتبارنامه‌ها در n8n و ارسال به Google Sh…

حسابرسی استفاده از اعتبارنامه‌ها در n8n و ارسال به Google Sh…

15 دقیقه مطالعه · منتشر شده ۱۴۰۵/۵/۶

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 14423 · منبع: کاتالوگ Axeto

حسابرسی استفاده از اعتبارنامه‌ها در گردش کارها و ارسال به Google Sheets

این گردش کار، استفاده از اعتبارنامه‌ها را در سراسر نمونه خود-میزبانی شده n8n شما حسابرسی کرده و یافته‌ها را به Google Sheets صادر می‌کند که در یک پوشه اختصاصی Google Drive ذخیره می‌شوند. این گردش کار دو گزارش کلیدی ارائه می‌دهد:

1. فهرست موجودی اعتبارنامه‌های گردش کار: لیستی از هر گردش کار، گره‌های موجود در آن که از اعتبارنامه‌ها استفاده می‌کنند، و نام آن اعتبارنامه‌ها را نمایش می‌دهد.

2. نقشه تأثیر اعتبارنامه: برای هر اعتبارنامه، لیستی از تمام گردش کارهایی که به آن ارجاع می‌دهند را نمایش می‌دهد.

این گردش کار از API عمومی n8n برای فراداده گردش کار و اعتبارنامه‌ها استفاده می‌کند. همچنین از طریق گره‌های Code به طور مستقیم به پایگاه داده داخلی SQLite دسترسی پیدا می‌کند تا برچسب‌های نسخه را بازیابی کرده و استفاده از اعتبارنامه‌ها را به گردش کارها نگاشت کند، داده‌هایی که به راحتی از طریق API در دسترس نیستند.

توجه: این گردش کار به طور خاص برای محیط‌های Docker خود-میزبانی n8n طراحی شده است و نیاز به دسترسی مستقیم به فایل پایگاه داده SQLite (/home/node/.n8n/database.sqlite) با استفاده از ماژول sqlite3 دارد.

اجرای گردش کار

گردش کار برای اجرا به صورت هفتگی پیکربندی شده است. یک تریگر دستی غیرفعال برای اهداف آزمایشی گنجانده شده است.

۱. راه‌اندازی تریگر و سراسری

  • تریگر زمان‌بندی: گردش کار را به صورت هفتگی در روز جمعه ساعت ۱۴:۰۰ آغاز می‌کند.
  • تریگر دستی (غیرفعال): برای آزمایش درخواستی گنجانده شده است.
  • ایجاد پوشه (Google Drive): یک پوشه با مُهر زمانی در Google Drive برای ذخیره گزارش‌های تولید شده ایجاد می‌شود. این به عنوان یک مکان خروجی مرکزی برای هر دو شاخه گزارش‌دهی عمل می‌کند.

۲. شاخه ۱: فهرست موجودی اعتبارنامه‌های گردش کار

این شاخه گزارش "فهرست موجودی اعتبارنامه‌های گردش کار" را تولید می‌کند.

1. ایجاد صفحه گسترده (Google Sheets): یک صفحه گسترده جدید Google با عنوان "Workflow-Credentials-Inventory" و مُهر زمانی ایجاد می‌شود.

2. درخواست HTTP (n8n API): با استفاده از نقطه پایانی /api/v1/workflows، تمام گردش کارهای نمونه n8n شما را واکشی می‌کند.

3. تقسیم خروجی (گردش کارها): پاسخ API را برای پردازش هر گردش کار به صورت جداگانه گسترش می‌دهد.

4. کد (پرس و جو SQLite): پایگاه داده داخلی SQLite (/home/node/.n8n/database.sqlite) را برای بازیابی آخرین برچسب نسخه برای هر گردش کار از جدول workflow_history پرس و جو می‌کند.

5. تنظیم (فراداده گردش کار): فراداده گردش کار، از جمله نام، شناسه، وضعیت و برچسب نسخه بازیابی شده را نرمال‌سازی و غنی‌سازی می‌کند.

6. اگر (فیلتر گردش کارها): گردش کارهایی را که حاوی هیچ گره‌ای با استفاده از اعتبارنامه‌ها نیستند، فیلتر می‌کند.

7. تقسیم خروجی (گره‌ها): هر گردش کار را به موارد گره جداگانه گسترش می‌دهد.

8. اگر (فیلتر گره‌ها): موارد گره را فیلتر می‌کند تا فقط آن‌هایی را که دارای پیکربندی اعتبارنامه هستند، نگه دارد.

9. تنظیم (اعتبارنامه‌های گره): نام گره و نام اعتبارنامه را برای هر گره دارای اعتبارنامه استخراج می‌کند.

10. خلاصه‌سازی (تجمع بر اساس گردش کار): اطلاعات اعتبارنامه را بر اساس گردش کار گروه‌بندی می‌کند و لیستی از اعتبارنامه‌های استفاده شده در هر گردش کار ایجاد می‌کند.

11. تنظیم (قالب‌بندی برای صفحه گسترده): داده‌های تجمیع شده را پاک و قالب‌بندی می‌کند تا برای صادرات صفحه گسترده مناسب باشد.

12. Google Sheets: داده‌های اعتبارنامه گردش کار قالب‌بندی شده را به صفحه گسترده "Workflow Credentials Inventory" اضافه می‌کند.

13. Google Drive: صفحه گسترده تولید شده را به پوشه مُهر زمانی ایجاد شده در راه‌اندازی سراسری منتقل می‌کند.

14. زمان صرفه‌جویی شده: تلاش دستی صرفه‌جویی شده توسط خودکارسازی این حسابرسی را تخمین می‌زند.

۳. شاخه ۲: نقشه تأثیر اعتبارنامه

این شاخه گزارش "نقشه تأثیر اعتبارنامه" را تولید می‌کند.

1. ایجاد صفحه گسترده (Google Sheets): یک صفحه گسترده جدید Google با عنوان "Credential-Impact-Map" و مُهر زمانی ایجاد می‌شود.

2. درخواست HTTP (n8n API): تمام اعتبارنامه‌ها را از نمونه n8n شما واکشی می‌کند.

3. مرتب‌سازی: اعتبارنامه‌ها را بر اساس نام به ترتیب الفبا مرتب می‌کند.

4. کد (پرس و جو SQLite): پایگاه داده داخلی SQLite را برای یافتن تمام workflowIdهای مرتبط با هر اعتبارنامه پرس و جو می‌کند. این نگاشت از جدول credentials مشتق شده است که اعتبارنامه‌ها را به گردش کارها پیوند می‌دهد.

5. تنظیم (نگاشت اعتبارنامه): اعتبارنامه و شناسه‌های گردش کار مرتبط با آن را قالب‌بندی می‌کند.

6. درخواست HTTP (n8n API - گردش کارها): تمام گردش کارها را دوباره واکشی می‌کند تا نام‌های آن‌ها را بر اساس شناسه‌های یافت شده در مرحله قبل بازیابی کند.

7. ادغام (نام گردش کار): نام‌های گردش کار را با داده‌های اعتبارنامه ادغام می‌کند.

8. تنظیم (قالب‌بندی برای صفحه گسترده): داده‌ها را پاک و قالب‌بندی می‌کند تا برای صادرات صفحه گسترده مناسب باشد.

9. Google Sheets: داده‌های تأثیر اعتبارنامه قالب‌بندی شده را به صفحه گسترده "Credential Impact Map" اضافه می‌کند.

10. Google Drive: صفحه گسترده تولید شده را به پوشه مُهر زمانی ایجاد شده در راه‌اندازی سراسری منتقل می‌کند.

11. زمان صرفه‌جویی شده: تلاش دستی صرفه‌جویی شده توسط خودکارسازی این حسابرسی را تخمین می‌زند.

---

تحلیل گره به گره

۱. گره‌های تریگر

  • تریگر زمان‌بندی (n8n-nodes-base.scheduleTrigger)

* هدف: نقطه ورود تولید، به صورت هفتگی اجرا می‌شود.

* پیکربندی: هر جمعه ساعت ۱۴:۰۰ اجرا می‌شود.

* وابستگی‌ها: ندارد.

* خروجی: گره "ایجاد پوشه" را فعال می‌کند.

  • تریگر دستی (n8n-nodes-base.manualTrigger)

* هدف: برای تست دستی (در حال حاضر غیرفعال است).

* پیکربندی: به طور پیش‌فرض غیرفعال است.

* وابستگی‌ها: ندارد.

* خروجی: در صورت فعال بودن، گره "ایجاد پوشه" را فعال می‌کند.

۲. ایجاد پوشه خروجی سراسری

  • ایجاد پوشه (n8n-nodes-base.googleDrive)

* هدف: یک پوشه تاریخ‌دار در Google Drive برای ذخیره گزارش‌های خروجی ایجاد می‌کند.

* پیکربندی:

* منبع: folder

* نام پوشه: {{ $now.toISODate() }}_{{ $now.toISOTime().split('.')[0] }}

* شناسه پوشه والد: (الزامی: با شناسه پوشه هدف خود جایگزین کنید)

* درایو: My Drive

* رنگ: #F18F17

* وابستگی‌ها: تریگر زمان‌بندی یا تریگر دستی.

* خروجی: گره‌های "ایجاد credInventory" و "ایجاد credMap" را فعال می‌کند.

* خطاها: احراز هویت Google Drive، شناسه پوشه والد نامعتبر، مجوزهای ناکافی.

۳. شاخه ۱: موجودی اعتبارنامه‌های گردش کار

  • ایجاد credInventory (n8n-nodes-base.googleSheets)

* هدف: صفحه گسترده برای گزارش موجودی گردش کار را ایجاد می‌کند.

* پیکربندی:

* منبع: spreadsheet

* عنوان صفحه گسترده: Workflow-Credentials-Inventory_{{ $now.toISODate() }}_{{ $now.toISOTime().split('.')[0] }}

* وابستگی‌ها: ایجاد پوشه.

* خروجی: flowsList را فعال می‌کند.

* خطاها: احراز هویت Google Sheets، محدودیت‌های سهمیه، مشکلات مجوز.

  • flowsList (n8n-nodes-base.httpRequest)

* هدف: تمام گردش کارهای API n8n را دریافت می‌کند.

* پیکربندی:

* متد: GET

* URL: https://<YOUR_N8N_DOMAIN>/api/v1/workflows (الزامی: جایگزین را جایگزین کنید)

* هدرها: X-N8N-API-KEY: <YOUR_API_KEY> (الزامی: جایگزین را جایگزین کنید)

* وابستگی‌ها: ایجاد credInventory.

* خروجی: splitFlows را فعال می‌کند.

* خطاها: کلید API نامعتبر، دامنه نادرست، مشکلات شبکه، تغییرات فرمت پاسخ API.

  • splitFlows (n8n-nodes-base.splitOut)

* هدف: آرایه پاسخ API را به اشیاء گردش کار مجزا تقسیم می‌کند.

* پیکربندی:

* فیلد برای تقسیم: data

* وابستگی‌ها: flowsList.

* خروجی: version_labels را فعال می‌کند.

* خطاها: فیلد data در پاسخ API وجود ندارد.

  • version_labels (n8n-nodes-base.code)

* هدف: پایگاه داده SQLite را برای آخرین برچسب نسخه هر گردش کار جستجو می‌کند.

* پیکربندی:

* کد: یک کوئری جاوا اسکریپت با استفاده از ماژول sqlite3 برای انتخاب name از workflow_history برای workflowId داده شده اجرا می‌کند.

* مسیر پایگاه داده: /home/node/.n8n/database.sqlite

* کوئری SQL: SELECT name FROM workflow_history WHERE workflowId = ? AND name IS NOT NULL ORDER BY createdAt DESC LIMIT 1

* وابستگی‌ها: splitFlows.

* خروجی: flowEdits را فعال می‌کند.

* الزامات:

متغیرهای محیطی NODE_FUNCTION_ALLOW_BUILTIN= و NODE_FUNCTION_ALLOW_EXTERNAL=sqlite3 باید در کانتینر Docker n8n شما تنظیم شوند.

* ماژول sqlite3 باید در کانتینر نصب شده باشد.

* خطاها: اجرای گره کد غیرفعال است، مسیر پایگاه داده نادرست، فایل پایگاه داده قفل شده است، جدول workflow_history وجود ندارد.

  • flowEdits (n8n-nodes-base.set)

* هدف: فراداده گردش کار را نرمال‌سازی و غنی‌سازی می‌کند.

* پیکربندی: فیلدهایی مانند Workflow.name, Workflow.id, Workflow.published.status, Workflow.published.latestVersion, Workflow.published.date, Workflow.currentVersion.id را تنظیم می‌کند.

* وابستگی‌ها: version_labels.

* خروجی: If را فعال می‌کند.

* خطاها: فیلد activeVersion در پاسخ API وجود ندارد.

  • If (n8n-nodes-base.if)

* هدف: گردش کارها را فیلتر می‌کند تا فقط آنهایی که دارای گره‌هایی با استفاده از اعتبارنامه‌ها هستند را شامل شود.

* پیکربندی: بررسی می‌کند که آیا $json.nodes.some(node => node.hasOwnProperty('credentials')) درست است یا خیر.

* وابستگی‌ها: flowEdits.

* خروجی (درست): splitNodes را فعال می‌کند.

* خطاها: فیلد nodes وجود ندارد یا آرایه نیست.

  • splitNodes (n8n-nodes-base.splitOut)

* هدف: هر گردش کار را به اشیاء گره مجزا تقسیم می‌کند.

* پیکربندی:

* فیلد برای تقسیم: nodes

* شامل: allOtherFields

* وابستگی‌ها: مسیر درست If.

* خروجی: If1 را فعال می‌کند.

* خطاها: فیلد nodes وجود ندارد.

  • If1 (n8n-nodes-base.if)

* هدف: آیتم‌های گره را فیلتر می‌کند تا فقط آنهایی که دارای پیکربندی اعتبارنامه هستند را نگه دارد.

* پیکربندی: وجود $json.nodes.credentials را بررسی می‌کند.

* وابستگی‌ها: splitNodes.

* خروجی (درست): nodeEdits را فعال می‌کند.

* خطاها: ساختار شیء گره غیرمنتظره است.

  • nodeEdits (n8n-nodes-base.set)

* هدف: نام گره و نام اعتبارنامه را استخراج و قالب‌بندی می‌کند.

* پیکربندی: فیلدهای nodeName و credentials را ایجاد می‌کند.

* وابستگی‌ها: مسیر درست If1.

* خروجی: Summarize را فعال می‌کند.

* خطاها: ساختار شیء credentials متفاوت است.

  • Summarize (n8n-nodes-base.summarize)

* هدف: استفاده از اعتبارنامه را بر اساس گردش کار جمع‌آوری می‌کند.

* پیکربندی: بر اساس Workflow.id گروه‌بندی می‌کند و nodeName و credentials.name را در آرایه‌ها جمع‌آوری می‌کند.

* وابستگی‌ها: nodeEdits.

* خروجی: CleanJson را فعال می‌کند.

* خطاها: مشکلات کلید گروه‌بندی.

  • CleanJson (n8n-nodes-base.set)

* هدف: داده‌های خلاصه‌شده را برای Google Sheets قالب‌بندی می‌کند.

* پیکربندی: داده‌ها را به ستون‌های نام گردش کار، شناسه گردش کار، نام گره و نام اعتبارنامه بازسازی می‌کند.

* وابستگی‌ها: Summarize.

* خروجی: Append Credential Inventory را فعال می‌کند.

* خطاها: ناسازگاری ساختار داده.

  • Append Credential Inventory (n8n-nodes-base.googleSheets)

* هدف: داده‌های قالب‌بندی‌شده اعتبارنامه گردش کار را به صفحه گسترده اضافه می‌کند.

* پیکربندی:

* منبع: rows

* شناسه صفحه گسترده: (به طور خودکار از "ایجاد credInventory" شناسایی می‌شود)

* نام برگه: Sheet1

* مقادیر: از خروجی CleanJson استفاده می‌کند.

* وابستگی‌ها: CleanJson.

* خروجی: Move Credential Inventory را فعال می‌کند.

* خطاها: عدم تطابق شناسه صفحه گسترده، برگه یافت نشد، خطاهای فرمت داده.

  • Move Credential Inventory (n8n-nodes-base.googleDrive)

* هدف: صفحه گسترده تولید شده را به پوشه خروجی تاریخ‌دار منتقل می‌کند.

* پیکربندی:

* منبع: file

* عملیات: Move

* شناسه فایل: (به طور خودکار از "Append Credential Inventory" شناسایی می‌شود)

* به شناسه پوشه: (به طور خودکار از "ایجاد پوشه" شناسایی می‌شود)

* وابستگی‌ها: Append Credential Inventory.

* خروجی: Time Saved (Inventory) را فعال می‌کند.

* خطاها: فایل یافت نشد، پوشه مقصد یافت نشد، خطاهای مجوز.

  • Time Saved (Inventory) (n8n-nodes-base.timeSaved)

* هدف: زمان تخمینی صرفه‌جویی شده برای این شاخه را محاسبه می‌کند.

* وابستگی‌ها: Move Credential Inventory.

* خروجی: ندارد (پایان شاخه).

۴. شاخه ۲: نقشه تاثیر اعتبارنامه

  • ایجاد credMap (n8n-nodes-base.googleSheets)

* هدف: صفحه گسترده گزارش نقشه تاثیر اعتبارنامه را ایجاد می‌کند.

* پیکربندی:

* منبع: spreadsheet

* عنوان صفحه گسترده: Credential-Impact-Map_{{ $now.toISODate() }}_{{ $now.toISOTime().split('.')[0] }}

* وابستگی‌ها: ایجاد پوشه.

* خروجی: credentialsList را فعال می‌کند.

* خطاها: احراز هویت Google Sheets، محدودیت‌های سهمیه، مشکلات مجوز.

  • credentialsList (n8n-nodes-base.httpRequest)

* هدف: تمام اعتبارنامه‌های API n8n را دریافت می‌کند.

* پیکربندی:

* متد: GET

* URL: https://<YOUR_N8N_DOMAIN>/api/v1/credentials (الزامی: جایگزین را جایگزین کنید)

* هدرها: X-N8N-API-KEY: <YOUR_API_KEY> (الزامی: جایگزین را جایگزین کنید)

* وابستگی‌ها: ایجاد credMap.

* خروجی: sortCredentials را فعال می‌کند.

* خطاها: کلید API نامعتبر، دامنه نادرست، مشکلات شبکه، تغییرات فرمت پاسخ API.

  • sortCredentials (n8n-nodes-base.sort)

* هدف: اعتبارنامه‌ها را بر اساس نام به ترتیب الفبا مرتب می‌کند.

* پیکربندی: بر اساس name مرتب می‌کند.

* وابستگی‌ها: credentialsList.

* خروجی: credentialWorkflowLookup را فعال می‌کند.

* خطاها: فیلد name وجود ندارد.

  • credentialWorkflowLookup (n8n-nodes-base.code)

* هدف: SQLite را برای یافتن گردش کارهای مرتبط با هر اعتبارنامه جستجو می‌کند.

* پیکربندی:

* کد: یک کوئری جاوا اسکریپت با استفاده از sqlite3 برای انتخاب workflowId از جدول credentials که credentialId مطابقت دارد، اجرا می‌کند.

* مسیر پایگاه داده: /home/node/.n8n/database.sqlite

* کوئری SQL: SELECT workflowId FROM credentials WHERE credentialId = ?

* وابستگی‌ها: sortCredentials.

* خروجی: credentialEdits را فعال می‌کند.

* الزامات: مشابه گره version_labels.

* خطاها: اجرای گره کد غیرفعال است، مسیر پایگاه داده نادرست، فایل پایگاه داده قفل شده است، جدول credentials وجود ندارد.

  • credentialEdits (n8n-nodes-base.set)

* هدف: داده‌های اعتبارنامه و شناسه‌های گردش کار مرتبط را قالب‌بندی می‌کند.

* پیکربندی: فیلدهای Credential.name و Workflow.ids را ایجاد می‌کند.

* وابستگی‌ها: credentialWorkflowLookup.

* خروجی: workflowLookup را فعال می‌کند.

* خطاها: ناسازگاری ساختار داده.

  • workflowLookup (n8n-nodes-base.httpRequest)

* هدف: جزئیات گردش کار (به ویژه نام‌ها) را برای شناسه‌های یافت شده دریافت می‌کند.

* پیکربندی:

* متد: POST

* URL: https://<YOUR_N8N_DOMAIN>/api/v1/workflows/get-many (الزامی: جایگزین را جایگزین کنید)

* بدنه: {"workflowIds": {{ $json.workflowIds }}}

* هدرها: X-N8N-API-KEY: <YOUR_API_KEY> (الزامی: جایگزین را جایگزین کنید)

* وابستگی‌ها: credentialEdits.

* خروجی: mergeWorkflowNames را فعال می‌کند.

* خطاها: کلید API نامعتبر، دامنه نادرست، مشکلات شبکه، تغییرات فرمت پاسخ API، آرایه workflowIds خالی است.

  • mergeWorkflowNames (n8n-nodes-base.set)

* هدف: نام‌های گردش کار دریافت شده را با داده‌های اعتبارنامه ادغام می‌کند.

* پیکربندی: فیلد Workflow.names را با نگاشت شناسه‌های گردش کار به نام‌ها از پاسخ workflowLookup ایجاد می‌کند.

* وابستگی‌ها: workflowLookup.

* خروجی: formatCredMap را فعال می‌کند.

* خطاها: عدم تطابق بین شناسه‌های درخواستی و داده‌های بازگردانده شده.

  • formatCredMap (n8n-nodes-base.set)

* هدف: داده‌های تاثیر اعتبارنامه را برای Google Sheets قالب‌بندی می‌کند.

* پیکربندی: ستون‌های نام اعتبارنامه، شناسه‌های گردش کار و نام‌های گردش کار را ایجاد می‌کند.

* وابستگی‌ها: mergeWorkflowNames.

* خروجی: Append Credential Map را فعال می‌کند.

* خطاها: ناسازگاری ساختار داده.

  • Append Credential Map (n8n-nodes-base.googleSheets)

* هدف: داده‌های قالب‌بندی‌شده تاثیر اعتبارنامه را به صفحه گسترده اضافه می‌کند.

* پیکربندی:

* منبع: rows

* شناسه صفحه گسترده: (به طور خودکار از "ایجاد credMap" شناسایی می‌شود)

* نام برگه: Sheet1

* مقادیر: از خروجی formatCredMap استفاده می‌کند.

* وابستگی‌ها: formatCredMap.

* خروجی: Move Credential Map را فعال می‌کند.

* خطاها: عدم تطابق شناسه صفحه گسترده، برگه یافت نشد، خطاهای فرمت داده.

  • Move Credential Map (n8n-nodes-base.googleDrive)

* هدف: صفحه گسترده تولید شده را به پوشه خروجی تاریخ‌دار منتقل می‌کند.

* پیکربندی:

* منبع: file

* عملیات: Move

* شناسه فایل: (به طور خودکار از "Append Credential Map" شناسایی می‌شود)

* به شناسه پوشه: (به طور خودکار از "ایجاد پوشه" شناسایی می‌شود)

* وابستگی‌ها: Append Credential Map.

* خروجی: Time Saved (Impact Map) را فعال می‌کند.

* خطاها: فایل یافت نشد، پوشه مقصد یافت نشد، خطاهای مجوز.

  • Time Saved (Impact Map) (n8n-nodes-base.timeSaved)

* هدف: زمان تخمینی صرفه‌جویی شده برای این شاخه را محاسبه می‌کند.

* وابستگی‌ها: Move Credential Map.

* خروجی: ندارد (پایان گردش کار).

---

راه‌اندازی و پیکربندی

1. کلید API ان‌۸‌ان (n8n API Key): یک کلید API در نمونه ان‌۸‌ان خود ایجاد کنید (Settings -> API یا Settings -> Users -> API Keys) و جایگزین <YOUR_API_KEY> در نودهای HTTP Request مربوط به flowsList و credentialsListworkflowLookup) شوید.

2. دامنه ان‌۸‌ان (n8n Domain): <YOUR_N8N_DOMAIN> را با دامنه یا آدرس IP واقعی نمونه ان‌۸‌ان خود که به صورت خود-میزبانی (self-hosted) اجرا می‌کنید، در نودهای HTTP Request جایگزین کنید.

3. شناسه پوشه Google Drive: شناسه پوشه والد را در نود Create folder با شناسه پوشه Google Drive که می‌خواهید گزارش‌ها در آن ذخیره شوند، جایگزین کنید. می‌توانید شناسه پوشه را در URL هنگام مشاهده پوشه در Google Drive پیدا کنید (مثلاً https://drive.google.com/drive/folders/<FOLDER_ID>).

4. احراز هویت گوگل (Google Authentication): اطمینان حاصل کنید که اعتبارسنجی‌های OAuth2 برای Google Drive و Google Sheets را در ان‌۸‌ان پیکربندی کرده‌اید. اگر از قبل راه‌اندازی نشده باشند، نودها از شما برای احراز هویت درخواست خواهند کرد.

5. دسترسی به SQLite (در Docker):

* تأیید کنید که کانتینر Docker ان‌۸‌ان شما به فایل پایگاه داده SQLite در مسیر /home/node/.n8n/database.sqlite دسترسی دارد. این مکان پیش‌فرض برای پایگاه داده داخلی ان‌۸‌ان است.

* اطمینان حاصل کنید که ماژول Node.js sqlite3 در ایمیج Docker شما نصب شده است. اگر نصب نشده است، ممکن است لازم باشد ایمیج خود را با npm install sqlite3 بازسازی کنید یا آن را مستقیماً در یک کانتینر در حال اجرا نصب کنید (اگرچه بازسازی برای پایداری توصیه می‌شود).

* به طور حیاتی، متغیرهای محیطی زیر را برای کانتینر Docker ان‌۸‌ان خود تنظیم کنید:

```bash

NODE_FUNCTION_ALLOW_BUILTIN=*

NODE_FUNCTION_ALLOW_EXTERNAL=sqlite3

```

این متغیرها به نودهای Code اجازه می‌دهند تا جاوا اسکریپت را با دسترسی به ماژول‌های داخلی و بسته خارجی sqlite3 اجرا کنند.

جزئیات فنی

  • نسخه n8n: این Workflow برای نسخه‌های جدید n8n طراحی شده است. نسخه‌های Node type در تحلیل جزئیات ذکر شده‌اند.
  • وابستگی‌ها: Google Drive، Google Sheets، n8n API، SQLite3.
  • منابع داده: n8n API (/api/v1/workflows, /api/v1/credentials, /api/v1/workflows/get-many)، پایگاه داده SQLite (database.sqlite).
  • قالب خروجی: داده‌های CSV که به Google Sheets اضافه می‌شوند.

---

نحوه استفاده

1. وارد کردن: این JSON گردش کار را به نمونه n8n خود وارد کنید.

2. پیکربندی: مقادیر جایگزین برای کلید API، دامنه n8n و شناسه پوشه Google Drive را به‌روزرسانی کنید.

3. احراز هویت: اعتبارنامه‌های Google OAuth2 را در n8n راه‌اندازی کنید.

4. متغیرهای محیطی: اطمینان حاصل کنید که متغیرهای محیطی NODE_FUNCTION_ALLOW_BUILTIN و NODE_FUNCTION_ALLOW_EXTERNAL به درستی برای کانتینر Docker شما تنظیم شده‌اند.

5. فعال‌سازی و اجرا: Schedule Trigger را فعال کرده و گردش کار را اجرا کنید. همچنین می‌توانید برای آزمایش، Manual Trigger را فعال کنید.

این گردش کار روشی قوی برای حسابرسی استفاده از اعتبارنامه‌ها ارائه می‌دهد و امنیت و قابلیت نگهداری نمونه n8n شما را افزایش می‌دهد.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار چه گزارش‌هایی را تولید می‌کند؟

این گردش کار دو گزارش اصلی تولید می‌کند: ۱. فهرست موجودی اعتبارنامه‌های گردش کار (لیست گردش کارها، گره‌ها و اعتبارنامه‌های مورد استفاده) و ۲. نقشه تأثیر اعتبارنامه (لیست گردش کارهایی که به هر اعتبارنامه ارجاع می‌دهند).

آیا این گردش کار برای نمونه‌های ابری n8n نیز کار می‌کند؟

خیر، این گردش کار به طور خاص برای محیط‌های Docker خود-میزبانی n8n طراحی شده است و نیاز به دسترسی مستقیم به پایگاه داده داخلی SQLite دارد.

چگونه این گردش کار به داده‌های اعتبارنامه دسترسی پیدا می‌کند؟

این گردش کار از API عمومی n8n برای فراداده گردش کار و اعتبارنامه‌ها استفاده می‌کند و همچنین مستقیماً از طریق گره‌های Code به پایگاه داده داخلی SQLite برای بازیابی اطلاعات اضافی دسترسی پیدا می‌کند.

چگونه گزارش‌ها ذخیره می‌شوند؟

گزارش‌ها به صورت صفحات گسترده Google (Google Sheets) تولید شده و سپس در یک پوشه اختصاصی با مُهر زمانی در Google Drive ذخیره می‌شوند.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.