Files
sp/teknikborc.md
Semih 230ef63433 docs: mark super_panel_reader role as done
Role created on the Sase.tr standalone Postgres with SELECT-only
privileges on schema public + ALTER DEFAULT PRIVILEGES so future
tables inherit the grant. Panel-web DATABASE_URL_SASE_RO switched to
this role; panel redeployed; UPDATE/INSERT/DELETE rejected with
'permission denied' as expected; SELECT count(*) FROM users still
works.

Process: temporarily exposed sase-postgres on port 54320, ran the
SQL via psql, then closed the public port. Password generated with
openssl rand -hex 24 (lives only in Coolify env).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 16:46:22 +03:00

7.1 KiB
Raw Blame History

Teknik Borç

Süper Panel'in shipped'i takip etmediği açık iş listesi. Her item'ın ne zaman/neden yapılması gerekiyor not'lu.


Süper Panel Phase 7 (User Management) — DONE

Phase 7a7c (foundation + tüm AF mutation faz'ları) shipped (2026-05-18):

  • Adım 1: User listesi sayfası
  • Adım 2: User detay 360° (header + 5 sekme)
  • Adım 3: Read-only impersonation (Sase.tr + panel, signed cookie + readonly guard)
  • Phase A: Founder notes (panel-only)
  • Phase B: Suspend / Reactivate / Ban (users.status + session kill)
  • Phase C: Trial extend + manual activate
  • Phase D: Plan change + cancel/resume
  • Phase E: Refund (Stripe) + bonus süre extension
  • Phase F: Brand reassignment (per-plan brandCount validate)

Henüz yok (PRD §6.5, §9.2-5):

  • Support actions: password reset link, email verify (resend + manuel), 2FA reset
  • KVKK export + erase (right-to-erasure)
  • Active session yönetimi (revoke individual / revoke all)
  • API key + webhook yönetimi (Sase.tr'de tablo yok, defer)
  • Bulk operations (segment + bulk email/quota/plan)
  • Automation rules (auto-suspend, churn alert, trial-end handling)

Süper Panel Phase 8 (VIN Decode Observability) — DONE

Faz 14 + regression alert shipped (2026-05-18):

  • Faz 1: Operational health + provider performans dashboard
  • Faz 2a: Error fingerprint drill-down
  • Faz 2b: Deploy regression analizi (Coolify deploys + ±30dk window)
  • Faz 2c: BIP insight integration (provider_quality + keyword filter)
  • Faz 3: Business impact dashboard (8 metric, quota'sız model)
  • Faz 4: Trends (90g volume, peak heatmap, cache, efficiency) + provider drill-down
  • Regression Telegram alert (per-deploy 24h dedupe)
  • VIN anomaly detection + Telegram (success drop, latency spike, volume drop/spike, timeout dominance)

Henüz yok (Phase 8 defer):

  • Alert threshold config UI — eşikleri panel'den ayarla (şimdi hardcoded)
  • Anomali kayıt persistance — vin_anomaly_log tablosu yok; sadece Redis dedupe + Telegram
  • Documentation / runbook (bu commit'te RUNBOOK.md eklendi)

PRD ↔ Sase.tr gerçeği gap'leri

super-panel-user-management-prd-v1.md ve super-panel-vin-decode-observability-prd-v1.md Sase.tr için bazı yapıları varsayıyor; gerçek Drizzle şeması daha sade:

  • EFT akışı kaldırıldı — Stripe Migration sonrası (May 2026) EFT alınmıyor; payments.method='eft' historical. PRD §7.1 işlevsiz.
  • B2B / company / multi-seat yok — PRD §8 (Grup 4) ve company görünümleri uygulanamaz.
  • API key + webhook yönetimi yok — Sase.tr'de tablolar yok, defer.
  • Quota tablosu yokqueryLogs + plans.brandCount üzerinden türetiliyor; observability Faz 3 quota-bağımsız tasarlandı.
  • WhatsApp chatbot conversation entegrasyonu — sistem bilinmiyor, defer.
  • ML decoder events emit edilmiyorvin_decode_succeeded.ml_decoder_used/ml_confidence Sase.tr backend'inde set edilmiyor (Sase.tr VAG ML pipeline kod akışında değil).

Defansif teknik borç

super_panel_reader DB rolü — DONE (2026-05-18)

Panel DATABASE_URL_SASE_RO env'i artık super_panel_reader rolüyle bağlanıyor. Smoke test doğrulandı: SELECT çalışıyor, UPDATE/INSERT/DELETE → permission denied for table. Rol Coolify standalone postgres'te GRANT SELECT ON ALL TABLES IN SCHEMA public + ALTER DEFAULT PRIVILEGES ile kuruldu (geçici public port üzerinden psql ile, sonra port kapatıldı).

prisma db push multi-replica güvensizliği

apps/web/package.json start scripti: prisma db push --skip-generate && next start. Tek replica'da OK; multi-replica olursa race condition. İlerideki bir Coolify pre-deployment hook'una taşı veya proper migrations'a geç.

Sase.tr apps/web pre-existing typecheck error'ları

FULL_PLAN_BRAND_LIMIT eksik, @radix-ui/react-accordion types eksik. Phase 7/8 patch'lerimiz etkilemedi ama temizlik borç.


Sase.tr-side (Süper Panel için)

Faz 0 + Faz 1 PostHog event taxonomy

sase-posthog-events-prd.md referansı. BIP'in 15 tag rule'unun yaklaşık 9'u henüz fire etmiyor:

Tag Beklediği event
payment_ui_silent_failure (P0) payment_succeeded + payment_success_ui (dual-capture rename)
payment_friction (P1) payment_initiated
vin_decode_fail_pattern (P1) vin_decode_failed (mevcut alias çalışıyor)
provider_reliability_issue (P2) provider_fallback_triggered
provider_mismatch (P2) provider_fallback_triggered + vin_decode_succeeded
compatibility_quality_gap (P2) compatibility_check_completed
parts_export_abandoned (P3) parts_export_initiated
search_validation_friction (P3) search_input_validation_failed
at_risk_active_session (P2) identify() ile subscription_status + total_vin_queries_last_30d

Etki: Pipeline %30-40 → tam kapasite. LLM analizleri çok daha specific olur.

Faz 0 (2 gün): identify schema + group + alias + data-private audit + 5 parts/compat event. Faz 1 (5-7 gün): VIN decode + provider + search + feature discovery + API key/webhook + subscription funnel + payment dual-capture.

Not: VIN decode backend telemetry'sini PR #32'de eklemiştik, PR #33 ile revert ettik (query_logs zaten her şeyi tutuyor, PostHog hop gereksiz). Frontend UX event'leri için bu Faz 0+1 hala değerli.


BIP (Behavioral Insight Pipeline) açık işler

1. Pilot'un bulduğu P1 bug'ı fix et (highest ROI)

Insight ID: cmp4oipcr000amsdsu2t8qnyi · /insights/i/cmp4oipcr000amsdsu2t8qnyi

Başarılı VIN decode sonrası frontend /api/vehicles/undefined ve /api/categories/tree/undefined çağırıyor → 500. ~30-60 dk Sase.tr fix. Loop kapanışı: Fix → Gitea issue kapat → github-sync 10dk içinde shippedvalidation cron 14d sonra validated.

2. Eval golden set

Şu an sadece bug_triage 2-case. 6 prompt için 0 case. Her aktif prompt için 15-20 gerçek session'dan elle ground truth. ~yarım gün (per prompt ~30dk).

3. Pattern bundle gerçek veri ile validate

pattern_bundle prompt deploy ama ≥3 same-fingerprint senaryo gelmedi (volume düşük). Sase.tr Faz 0+1 sonrası 1 hafta bekle veya aylık session ≥1000 olunca.

4. Embedding-based cross-fingerprint similarity

PRD Phase 6e içinde defer edilmiş. Pattern aggregation şu an string match. 50+ insight birikince pgvector + sentence-transformers/MiniLM.

5. Multi-project routing

INSIGHT_PROJECT_KEY=sase hardcoded. Spokes (catvicer, kokpit, otoyedekparca, eryaman, doner312) status='planned'. İlk spoke canlandığında: per-project PostHog polling + per-spoke budget alloc + GITEA_REPO_<KEY> (env mapping zaten supportluyor).


Minor / Düşük öncelik

  • pattern_bundle UI surface/insights/patterns ayrı başlık
  • Cost dashboard chartlar — şu an tablo; recharts ile daily trend
  • POST /api/webhooks/gitea — receiver yazıldı, polling primary; webhook real-time gerekirse Cloudflare/Tailscale çözümü gerekli
  • github-sync job renameissue-sync'e taşı (BullMQ state cleanup gerekir)
  • Audit log retention — şu an pruning yok, aylık partition + 90gün retention eklenebilir