وثائق المطوّرين

Docs

بدء سريع، وأربع SDKs، و16 وحدة، ونحو 270 نقطة نهاية. نسخة تجريبية مغلقة — ننشر ما يُشحَن فعلاً، لا ما نتمنّى وجوده.

Quickstart

أول حدث في دقائق

تثبيت ← تهيئة ← تتبّع. تُخاط هوية الويب والخادم نيابةً عنك، ويُفرَض عقد السجلّ في الـ CI.

  1. 01

    ثبّت الحزم

    Bun أو pnpm أو npm — الخيار لك. حزمة المتصفّح بلا تبعيّات بحجم 8.1 KB مضغوطة، والـ SDK الخادمي مُختبَر على Node 20+ وBun.

    bun add @gurulu/web @gurulu/node
  2. 02

    تتبّع في المتصفّح

    هيّئ بـ publicKey — وكل ما عداه تلقائي: anonymous_id (UUIDv7)، الجلسة، حالة موافقة GCM v2، و5 إشارات التقاط تلقائي (click وpageview وform_submit وscroll وrage_click).

    import { gurulu } from '@gurulu/web';
    
    gurulu.init({
      publicKey: 'pk_live_xxx',
      endpoint: 'https://ingest.gurulu.io',
    });
    
    gurulu.track('signup_completed', { plan: 'pro' });
  3. 03

    تحقّق من النتائج من جهة الخادم

    أرسِل أحداث حركة الأموال وأحداثاً بأسلوب signup_completed من خادمك — كي لا يستطيع متصفّح المستخدم تزييفها. الحقل personId مطلوب، ومن هنا ينطلق الإسناد.

    import { gurulu } from '@gurulu/node';
    
    const client = gurulu({
      secretKey: process.env.GURULU_SECRET_KEY,
    });
    
    await client.track('purchase_completed', {
      personId: user.id,
      amount: 149,
      currency: 'EUR',
    });
  4. 04

    استخدم السجلّ كعقد

    أسماء الأحداث ليست سلاسل حرّة — بل مُولَّدة بأنواع مُحكَمة من السجلّ. شغّل `gurulu validate` في الـ CI، وانحراف العقد يُفشِل الـ PR.

    gurulu pull               # registry → typed code-gen
    gurulu validate           # contract drift check
    gurulu push events.ts     # add/update event contracts

SDKs وأدوات

4 قنوات، 4 حزم

Script (متصفّح)، وSDK (خادم)، وCLI (سجلّ)، وMCP (Cursor وClaude Code وLovable). جميعها علنية على NPM.

خادم MCP

@gurulu/mcp-server

أدوات list_events وadd_event وvalidate_event. يستطيع محرّر الذكاء الاصطناعي خاصتك قراءة السجلّ — فيكفّ عن تخمين `bet.placed` ويستخدم `bet_placed` من السجلّ.

claude mcp add gurulu -- npx -y @gurulu/mcp-server
Cursor / Claude Code / LovableDetails

Web SDK

@gurulu/web

حزمة متصفّح بلا تبعيّات. 5 إشارات التقاط تلقائي + تتبّع يدوي + identify + موافقة + إعادة عرض جلسة اختيارية (المرحلة 2). أو أدرج وسم سكربت واحداً عبر CDN الخاص بـ t.js.

bun add @gurulu/web
8.1 KB gzipDetails

Server SDK

@gurulu/node

تحقّق من النتائج قائم على secretKey، وتفريغ دفعي، و23 مُحقِّق webhook (Stripe وShopify وLemonSqueezy وCustom و19 آخرين) ووسيط Hono/Express/Fastify.

bun add @gurulu/node
Node 20+ · Bun · EdgeDetails

CLI

@gurulu/cli

gurulu init / pull / push / validate / doctor. يربط السجلّ بتدفّق Git خاصتك — events.ts هو مصدر الحقيقة، والانحراف يُلتقَط في الـ CI.

bun add -g @gurulu/cli
@gurulu/cliDetails

كتالوج الوحدات

المرحلة 0 + المرحلة 1 — 16 وحدة

كم جدول Postgres، وعرض ClickHouse، ونقطة نهاية REST تشحنها كل وحدة — بنظرة واحدة.

#
Module
Phase
M01
auth-tenant@gurulu/auth
F0
M02
storage@gurulu/db
F0
M03
observability-own@gurulu/observability
F0
M04
consent-engine@gurulu/consent
F0
M05
identity-engine@gurulu/identity
F1
M06
event-registry@gurulu/registry
F1
M07
event-health@gurulu/health
F1
M08
attribution-engine@gurulu/attribution
F1
M09
ingest-api@gurulu/ingest
F1
M10
event-pipeline@gurulu/pipeline
F1
M11
sdk-web@gurulu/web
F1
M12
sdk-server@gurulu/node
F1
M13
playground@gurulu/playground
F1
M14
cli-mcp@gurulu/cli + mcp-server
F1
M15
dashboardapps/dashboard
F1
M16
notifications@gurulu/notifications
F1
M17
experiments@gurulu/experiments
F3
M18
popups@gurulu/activation
F3
M19
tours@gurulu/activation
F3
M20
personalization@gurulu/activation
F3
M21
boardsapps/dashboard
F3
M22
llm-analytics@gurulu/registry + web
F3
M23
heatmaps@gurulu/web
F3
M24
observability-suite@gurulu/observability
F3

PG = جدول Postgres · CH = جدول ClickHouse أو عرض مادّي · EP = نقطة نهاية REST علنية

ورقة API المرجعية

سطح REST — مُجمَّع

نقاط نهاية مختارة من سطح المرحلة 0 + 1. القائمة الكاملة (نحو 270) تُشحَن مع تأهيل مستأجري النسخة التجريبية المغلقة.

المصادقة والمستأجر

الرابط السحري أساسي، وOAuth عبر Google + GitHub بـ PKCE S256 ثانوي. بلا كلمات مرور.

  • POST/v1/auth/magic-link
  • POST/v1/auth/magic-link/verify
  • GET/v1/auth/oauth/:provider
  • POST/v1/auth/session/refresh
  • POST/v1/auth/session/revoke
  • POST/v1/auth/api-keys

Ingest

مستوى بيانات علني — https://ingest.gurulu.io. تعمل بوّابة التحقّق (قبول / تحذير / حجر / رفض) عند الاستيعاب.

  • POST/v1/track
  • POST/v1/batch
  • POST/v1/identify
  • POST/v1/alias
  • POST/v1/webhook/:provider

سجلّ الأحداث

مصدر عقد طبقة الحقيقة. snake_case مفروض؛ وتوليد شيفرة لثلاث لغات (TS وPython وSwift).

  • GET/v1/registry/events
  • POST/v1/registry/events
  • GET/v1/registry/events/:key
  • POST/v1/registry/validate
  • GET/v1/registry/code-gen
  • GET/v1/registry/packs

Identity

حلّ من 7 خطوات، وثقة من 3 مستويات، وسجلّ دمج للإلحاق فقط. كل دمج قابل للعكس.

  • POST/v1/identity/resolve
  • GET/v1/identity/person/:id
  • GET/v1/identity/person/:id/timeline
  • POST/v1/identity/merge
  • GET/v1/identity/merge-ledger

صحّة الأحداث

شذوذ بالتعلّم الآلي + إزالة تكرار + تغطية + عدم تطابق CAPI. يقارن ما أرسله الـ SDK بما رآه خادمك فعلاً.

  • GET/v1/health/events
  • GET/v1/health/events/:key
  • GET/v1/health/anomalies
  • GET/v1/health/coverage
  • POST/v1/health/dedup-check

Attribution

سياسة يحدّدها العميل + متعدّد النماذج (أول / آخر / خطّي / تناقص زمني / موقع / قائم على البيانات) + مسار المنشأ.

  • POST/v1/attribution/policy
  • POST/v1/attribution/compute
  • GET/v1/attribution/touchpoints/:personId
  • GET/v1/attribution/explain/:outcomeId

الموافقة وطلبات أصحاب البيانات (DSR)

GCM v2، متوائم مع GDPR / CCPA / KVKK. تصدير DSR + طابور النسيان باتفاقية مستوى خدمة 60 ثانية.

  • POST/v1/consent
  • GET/v1/consent/:personId
  • POST/v1/consent/dsr/export
  • POST/v1/consent/dsr/forget

الإدارة والعمليات

مساحات العمل، والأعضاء، وسجلّ التدقيق، وhealthz. https://api.gurulu.io هو مستوى التحكم.

  • GET/v1/workspaces
  • POST/v1/workspaces/:id/members
  • GET/v1/audit-log
  • GET/v1/healthz

المصادقة: Bearer JWT (مستخدم) أو مفتاح API بصيغة pk_/sk_ (خادم إلى خادم). كل الاستجابات JSON بترميز UTF-8، والأخطاء بصيغة RFC 7807 problem+json.

نموذج البيانات

نواة الكون — تعاقدية وقابلة للتفسير

مبدأ نواة الكون: كل حدث وجدول ونقطة نهاية يحمل مجموعة الحقول الكاملة منذ اليوم الأول. تُشحَن الواجهة لاحقاً، أمّا شكل البيانات فلا يتّسع أبداً.

الحقول المطلوبة

يحمل كل حدث وكل صفّ هذه المجموعة — بلا ALTER TABLE لاحقاً. نواة الكون إلزامية.

  • tenant_id
  • workspace_id
  • anonymous_id | person_id
  • session_id
  • source_context
  • confidence
  • consent_state
  • health_status

3 فئات أحداث

خلط الفئات ممنوع — استيعاب مختلف، وإسناد مختلف، وتقارير مختلفة.

  • Interactionالتقاط تلقائي في المتصفّح: click وpageview وscroll. ليست نتيجة.
  • Intentإضافة إلى السلّة، وcheckout_started، وإشارات نيّة أخرى. مفصولة في نموذج البيانات منذ اليوم الأول، ومُنتَجة في المرحلة 2+.
  • Outcomepurchase_completed وsignup_completed — من جهة الخادم. ومن هنا ينطلق الإسناد.

بوّابة التحقّق

يوجّه الاستيعاب كل حدث عبر 4 قرارات إزاء السجلّ. انحراف العقد يُفشِل الـ PR في الـ CI — فلا يصل الإنتاج أبداً.

acceptwarnquarantinereject

تعمّق أكثر

صفحات ذات صلة

انتقل إلى الصفحة التي تحوي ما تحتاجه.

الوثائق — Gurulu