Phase 7 (user mgmt, all of A–F) and Phase 8 (VIN observability Faz 1–4 + regression alert) are shipped. Teknikborc previously listed many of those as open — clean it up and section the remaining work into: - Phase 7 still-open items (support actions, KVKK, sessions, bulk ops, automation) — explicitly listed at top - Phase 8 still-open items (alert config UI, vin_anomaly_log table, pointing to RUNBOOK.md for documentation) - PRD ↔ Sase.tr reality gaps (EFT killed, B2B doesn't exist, etc.) - Defansif teknik borç (super_panel_reader rol, prisma db push multi-replica risk, pre-existing Sase.tr typecheck errors) - Sase.tr-side work (Faz 0+1 PostHog events; notes that the backend VIN telemetry was tried and reverted because query_logs already has everything we need) - BIP open work (P1 fix, eval golden set, pattern bundle, embedding similarity, multi-project routing) - Minor / low priority polish items RUNBOOK.md is new: founder operations guide. Sections: - Telegram alert → response matrix (success drop, regression, p95 spike, volume drop/spike, timeout dominance) - Founder daily review walkthrough (the / "Bugün" page sequence) - Pipeline/cron health (job cadences + how to check) - Coolify quick reference (app UUIDs + deploy command) - User report → fix call chain - Security model summary - Local dev + new endpoint scaffolding steps Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
7.2 KiB
Süper Panel Runbook
Founder operasyon kılavuzu. Telegram alert → ne yapacağın matrisi.
Telegram alert geldiğinde
🔴 VIN decode anomaly: success_rate_drop
Sase decode başarı oranı son 15dk'da baseline'ın altında.
sp.semih.ai→ Bugün sayfasına bak: 24h success delta + recent regressionssp.semih.ai/projects/sase/vin-decode→ P95, error breakdown, provider performans- Error breakdown kartında en sık hata bucket'ına tıkla → drill-down
- Hangi provider/brand etkilenmiş? Drill-down'da görünür
/projects/sase/vin-decode/trends→ bu provider/marka düştü mü histor ic?- Eğer deploy regression ile çakışıyorsa → bir sonraki bölüme bak
🔴 VIN regression after deploy
Sase.tr deploy sonrası 30dk içinde success rate ≥10pp düştü.
- Mesajdaki commit SHA'sına bak:
Deploy 5b26d10b: 94.2% → 81.3% - Gitea'da o commit'i aç:
git.semih.ai/root/sase.tr/commit/<sha> - Roll back kararı: değişiklik küçük ve net ise revert PR aç; büyükse ileriye doğru fix
- Acil revert: Gitea API ile yeni branch'te
git revert -m 1 <merge-sha>→ PR → merge → Coolify auto-deploy /projects/sase/vin-decode→ 5-10dk sonra success rate düzelmesini doğrula
🟡 VIN decode anomaly: p95_latency_spike
P95 yanıt süresi baseline'ın 2-3 katı.
/projects/sase/vin-decode→ provider attempts kartı: hangi provider yavaş?/providers/[name]→ o provider'ın günlük trendi- Sase.tr loglarında o provider'a özgü timeout/error pattern'i var mı (Coolify panel)
- PL24 circuit breaker tetiklendiyse otomatik açılır (30s), tekrarlı oluyorsa upstream sorun
🟡 VIN decode anomaly: volume_drop
Son 15dk'da volume baseline'ın -80% altında. Olası outage sinyali.
sase.trerişilebilir mi? curl/browser- Sase.tr Coolify status (
cool.semih.ai) - Frontend hata mı veriyor (kullanıcılar erişip sorgu yapamıyor)?
- CloudFlare/Traefik routing sorunu mu?
🟡 VIN decode anomaly: volume_spike
Son 15dk'da volume baseline'ın 5x'i. Fraud veya viral.
/projects/sase/users→ "Son 7g aktif" filtrele, yeni kayıt sayısı normal mi?- Tek bir kullanıcı mı patlattı (queryCount30d sırala):
/projects/sase/vin-decode/business→ Power users - Tek bir IP/UA pattern'i var mı (audit log'a bak)
- Fraud ise: kullanıcı detayında
[Ban]veya[Suspend]
🟡 VIN decode anomaly: timeout_dominance
Hatalarin ≥%50'si timeout. Bir provider çökmüş gibi davranıyor.
/projects/sase/vin-decode→ provider attempts: hangi provider'ın p95'i yüksek?- O provider'ı drill-down et:
/providers/[name] - Geçici çözüm: Sase.tr'de PL24 circuit breaker zaten var; manuel müdahale şart değil
- Uzun süreliyse upstream provider ile iletişim (PCAT/PL24 destek)
Founder daily review (sabah 08:00)
sp.semih.ai/ → Bugün sayfası. Sırayla:
- Üst KPI strip: Sase 24h success + delta vs prior 24h
- "Bugün bakmam gerekenler" action list — kritik/high item'lara tıkla
- Açık insight kartı: P0/P1 varsa
/insights?severity=P0aç - Son admin aksiyonlar: Senin yapmadığın bir aksiyon var mı? (Tek founder ortamında olmamalı)
- Sase user health: Dormant payer 10+ mı? → retention kampanyası tetiklenmeli
- Recent deploys: Regression var mı? Varsa fix loop'a gir
Türetilebilir metrik (henüz dashboard'da yok):
- Daily Brief Telegram'ı sabah 08:00'de geliyor (
apps/worker/src/jobs/daily-brief.ts). İçeriği: cost + insight özeti.
Pipeline / cron sağlığı
Aktif cron'lar (apps/worker/src/schedulers/pipeline.ts):
| Job | Cadence | Ne yapar |
|---|---|---|
posthog-ingest |
*/5min | PostHog'tan session event'leri çekip BIP'e besler |
tag-sessions |
*/2min | Yeni session'lara tag uygula |
compress-sessions |
*/3min | Tag'li session'ları timeline+sanitize ederek MinIO'ya kaydet |
analyze |
*/4min | LLM analizi (DeepSeek), insight üret |
validation |
05:00 UTC | Shipped insight'ları 14d sonra validate/regression |
github-sync |
*/10min | Gitea issue state'lerini insight'lara yansıt |
retention |
04:15 UTC | Eski session/MinIO/custom-event temizlik |
daily-brief |
05:00 UTC (08:00 İstanbul) | Telegram daily cost+insight özeti |
vin-anomaly-detect |
*/5min | Sase VIN decode anomalies + deploy regression check |
Cron çalışmıyor mu kontrolü:
- Coolify → panel-worker container log'larını izle
- Son
[pipeline] Xlog'larından her cron'un en son ne zaman fire ettiği görünür - BullMQ schedulers Redis'te (
panel-redis); restart sonrasıupsertJobSchedulerotomatik kurulur
Coolify hızlı referans
| App | UUID | Branch | Build pack |
|---|---|---|---|
| panel-web | os0w8sks8soo8k04cs0gg80k |
main | Dockerfile |
| panel-worker | jk8gsg04w0kwo4sc4s84k8cc |
main | Dockerfile |
| sase.tr | ro48g8ooo0gk4kskog0oo8s8 |
main | Docker compose |
Deploy tetikle:
TOKEN=<coolify_token>
curl -X POST -H "Authorization: Bearer $TOKEN" \
"https://cool.semih.ai/api/v1/deploy?uuid=<app-uuid>"
Env değişikliği sonrası: Coolify env edit sonra deploy gerekir. Bazı env'ler runtime, bazıları build-time (Coolify UI'da işaretli).
Çağrı zinciri: kullanıcı raporu → fix
Tipik akış:
- Müşteri Telegram/WhatsApp ile "VIN sorgusu çalışmıyor" diyor
sp.semih.ai/projects/sase/users→ email/isim ile bul- User detay → Aktivite sekmesi: son ne yaptı, hangi VIN, ne zaman
- Audit sekmesi: kendi yaptığım bir aksiyon mu durumu tetikledi (suspend gibi)?
- Gerekirse Impersonate (read-only) → 15dk yeni sekmede o user olarak Sase.tr'ye bak
- Sorunu repro ettiysen: ya direkt fix (panel'den lifecycle/billing aksiyon), ya da Sase.tr code change
- Geri dönüş: notes sekmesinde olay özeti
Güvenlik
- Panel sadece Tailscale ile erişilir (
sp.semih.aiCloudflare Tunnel arkasında Tailscale-tag'li) - Founder login: Better Auth + TOTP zorunlu (
/settingsüzerinden TOTP yönetimi) - Sase.tr admin token'ları:
INTERNAL_API_TOKENCoolify env'de; paneldeki log'lara basılmaz - Impersonation: read-only, 15-60dk TTL, mutation isteği → 403; cookie HMAC-imzalı (Better Auth uyumlu)
- Mutasyonel her aksiyon
audit_log'a yazılır (panel-pg) + Sase.tr-side de log'lanır (double audit)
Geliştirme
Local:
cd /home/s/sp
pnpm i
pnpm --filter @panel/web dev # port 3000
pnpm --filter @panel/worker dev
Build verify:
pnpm --filter @panel/web build
pnpm --filter @panel/web exec tsc --noEmit
pnpm --filter @panel/worker exec tsc --noEmit
Schema değişikliği (panel-pg):
# Edit apps/web/prisma/schema.prisma
# `start` scripti `prisma db push` çalıştırıyor — deploy yeterli
# Sase RO için:
pnpm --filter @panel/web exec prisma generate --schema=prisma/sase/schema.prisma
Yeni Sase.tr admin endpoint:
- Sase.tr
apps/api/src/internal-admin/<feature>.controller.ts+ service InternalTokenGuardekle:@UseGuards(InternalTokenGuard)+@Public()- Panel:
apps/web/src/lib/admin-sdk/sase.tsSaseAdmin interface + impl - Panel:
/api/sase/...route handler + auth check - Panel: UI client component + page mount