LearnInk Automation & Integrations
Pipeline Konten: Notion → Supabase → Web
Alur Lengkap
code
Notion Database → [sync-notion-page] → incoming_contents (staging)
↓
[admin-architect] (AI Analysis)
↓
Admin Review (ContentApproval.tsx)
↓
Approve → modules (live)
↓
[TODO] Auto-Embed → RAG Ready
Edge Functions Aktif
sync-notion-page (Manual Trigger)
- •Auth: Memverifikasi user sebagai admin/superadmin sebelum sync.
- •AI Analysis: Otomatis memanggil
admin-architectuntuk menghasilkan summary, level, dan kategori AI. - •Upsert: Cek duplikat berdasarkan
notion_page_idsebelum insert. - •Properties Notion yang diekstrak: Name, Summary, Level, Category, Track, Slug, Cover.
ingest-content (API Endpoint External)
- •Auth: Mendukung 3 metode: Bearer Token (
sk_live_*), Service Role Key, dan Ingest Secret. - •Security: Rate limiting (100 req/15 menit), SHA-256 key hashing, constant-time comparison.
- •Logging: Audit trail untuk setiap auth failure dan rate limit exceeded.
admin-architect (AI Content Analyzer)
- •Menganalisis konten modul untuk menghasilkan summary, level (Pemula/Menengah/Lanjut), dan kategori secara otomatis.
- •Dipanggil oleh
sync-notion-pagesebagai sub-function.
Gap yang Perlu Ditangani
- •⚠️ Belum ada Smart Watcher: Sync masih manual per-halaman, belum ada polling Database Notion.
- •⚠️ Belum ada Auto-Embedding RAG: Modul yang di-approve belum otomatis dibuatkan embedding.
- •⚠️ Video & Embed: Dirender sebagai link biasa di
notion-to-md.ts, bukan iframe/player.
Maintenance Otomatis
Edge Functions Terjadwal
| Function | Deskripsi | Jadwal |
|---|---|---|
maintenance-cleanup | Memanggil RPC perform_maintenance() — VACUUM & log cleanup | Harian |
system-health | Cek DB, Auth, dan Gemini API, return status | Harian |
weekly-report | Statistik user, modul, notes → kirim ke Telegram | Senin 09:00 |
notify-telegram | Generic notifier, memerlukan admin auth | On-demand |
Cron Setup
Gunakan cron-job.org atau EasyCron untuk memanggil URL Edge Function secara terjadwal.
Monitoring & Notifikasi
Telegram Bot
- •Secrets:
TELEGRAM_BOT_TOKEN,TELEGRAM_CHAT_ID(viasupabase secrets set). - •Weekly Report sudah mengirim: total users, new users, total modules, total notes.
- •Health Check belum terhubung ke Telegram (saat ini hanya return JSON).
Integrasi Eksternal
| Service | Fungsi | Auth Method |
|---|---|---|
| Notion API | Sumber konten | Bearer Token, ver 2022-06-28 |
| Gemini API | AI Analysis, Tutor, Generator | API Key via Secrets |
| Telegram API | Notifikasi admin | Bot Token + Chat ID |
| Midtrans Snap.js | Pembayaran | Client Key di index.html |
| Cloudflare | DNS, DDoS, SSL | Dashboard config |
Yang TIDAK Boleh Dilakukan
- •❌ Sync Notion tanpa rate-limit handling (Notion API limit: 3 req/detik).
- •❌ Publish konten langsung ke
modulestanpa melalui stagingincoming_contents. - •❌ Menaruh logika berat di sisi klien — gunakan Edge Functions.
- •❌ Mengekspos
SUPABASE_SERVICE_ROLE_KEYdi frontend.