225 lines
6.1 KiB
JSON
225 lines
6.1 KiB
JSON
{
|
||
"checkedAt": "2026-09-15T14:58:12.437Z",
|
||
"base": "https://ihaleist.com",
|
||
"readOnly": true,
|
||
"scope": "Yapılandırma, public kaynak okuması ve kimlik doğrulama kapıları denetlendi; giriş, veri değişikliği, AI üretimi, ödeme, mesaj veya teklif gönderimi yapılmadı.",
|
||
"integrations": [
|
||
{
|
||
"id": "BIK",
|
||
"label": "ilan.gov.tr ihale havuzu",
|
||
"status": "passed",
|
||
"evidence": {
|
||
"status": 200,
|
||
"source": "ilan.gov.tr",
|
||
"loaded": 3258
|
||
},
|
||
"remaining": "Güncel liste okuması doğrulandı; veri kalitesi D10/D04 kapsamında izlenir."
|
||
},
|
||
{
|
||
"id": "TCMB",
|
||
"label": "TCMB döviz satış kurları",
|
||
"status": "passed",
|
||
"evidence": {
|
||
"status": 200,
|
||
"bulletinDate": "15.09.2026",
|
||
"source": "https://www.tcmb.gov.tr/kurlar/today.xml",
|
||
"cached": false
|
||
},
|
||
"remaining": "Hata ve eski bülten UX testleri yerel otomasyonda kapsanıyor."
|
||
},
|
||
{
|
||
"id": "GOOGLE",
|
||
"label": "Google ile giriş",
|
||
"status": "configured",
|
||
"evidence": {
|
||
"status": 200,
|
||
"configured": true
|
||
},
|
||
"remaining": "Gerçek test hesabıyla giriş, çıkış ve oturum yenileme kabulü gerekli."
|
||
},
|
||
{
|
||
"id": "EKAP",
|
||
"label": "EKAP arama ve resmi doküman",
|
||
"status": "manual-gate",
|
||
"evidence": {
|
||
"browserAvailable": true,
|
||
"okasStatus": 428,
|
||
"okasCode": "HUMAN_VERIFICATION_REQUIRED",
|
||
"d10DocumentCode": "HUMAN_VERIFICATION_REQUIRED"
|
||
},
|
||
"remaining": "Yetkili kullanıcı güvenlik doğrulamasından sonra beş resmi paketi indirip yüklemeli."
|
||
},
|
||
{
|
||
"id": "KIK",
|
||
"label": "KİK kurul kararları",
|
||
"status": "manual-gate",
|
||
"evidence": {
|
||
"status": 428,
|
||
"code": "HUMAN_VERIFICATION_REQUIRED",
|
||
"resultCount": null,
|
||
"error": "EKAP güvenlik doğrulaması gerekiyor. EKAP’ı kendi tarayıcınızda açıp doğrulamayı tamamlayın; ardından indirdiğiniz dokümanı bu ihaleye yükleyin."
|
||
},
|
||
"remaining": "EKAP güvenlik doğrulamasından sonra arama ve karar metni tekrar denenmeli."
|
||
},
|
||
{
|
||
"id": "TED",
|
||
"label": "TED Avrupa ihaleleri",
|
||
"status": "passed",
|
||
"evidence": {
|
||
"status": 200,
|
||
"totalCount": 0,
|
||
"timedOut": false,
|
||
"error": null
|
||
},
|
||
"remaining": "Gerçek sonuçlu sorgu ve çeviri, kontrollü AI test bütçesiyle yapılmalı."
|
||
},
|
||
{
|
||
"id": "AI",
|
||
"label": "AI analiz ve teklif yardımcıları",
|
||
"status": "configured",
|
||
"evidence": {
|
||
"status": 200,
|
||
"configured": true,
|
||
"providerCount": 7
|
||
},
|
||
"remaining": "Yetkili test hesabı ve incelemesi tamamlanmış test belgesiyle analiz, soru, taslak ve denetim zinciri gerekli."
|
||
},
|
||
{
|
||
"id": "STRIPE",
|
||
"label": "Stripe plan, ödeme ve webhook",
|
||
"status": "configured",
|
||
"evidence": {
|
||
"status": 200,
|
||
"checkoutConfigured": true,
|
||
"webhookConfigured": true,
|
||
"planCount": 3
|
||
},
|
||
"remaining": "Yalnız Stripe test ortamında başarılı/başarısız ödeme, webhook tekrarı ve iptal senaryoları gerekli."
|
||
},
|
||
{
|
||
"id": "EMAIL",
|
||
"label": "E-posta bildirimleri",
|
||
"status": "guarded",
|
||
"evidence": {
|
||
"unauthenticatedStatus": 401
|
||
},
|
||
"remaining": "Yetkili test hesabında yapılandırma okunmalı; izinli test alıcısına tek gönderim ayrıca onaylanmalı."
|
||
},
|
||
{
|
||
"id": "TELEGRAM",
|
||
"label": "Telegram bağlantısı ve bildirim",
|
||
"status": "blocked",
|
||
"evidence": {
|
||
"status": 200,
|
||
"configured": false
|
||
},
|
||
"remaining": "Test sohbetinde bağlama kodu ve tek test mesajı için açık gönderim yetkisi gerekli."
|
||
},
|
||
{
|
||
"id": "PWA",
|
||
"label": "PWA manifest ve offline worker",
|
||
"status": "passed",
|
||
"evidence": {
|
||
"manifestStatus": 200,
|
||
"serviceWorkerStatus": 200
|
||
},
|
||
"remaining": "Gerçek cihazda kurulum, offline düzenleme ve yeniden bağlanma kabulü ayrıca izlenir."
|
||
},
|
||
{
|
||
"id": "API",
|
||
"label": "API anahtarı, RSS ve MCP",
|
||
"status": "guarded",
|
||
"evidence": {
|
||
"apiKeyGuard": 401,
|
||
"rssGuard": 401,
|
||
"mcpGuard": 401,
|
||
"publicResultsRssStatus": 200
|
||
},
|
||
"remaining": "Yetkili test hesabında anahtar oluşturma, RSS/MCP kullanma ve iptal zinciri gerekli."
|
||
},
|
||
{
|
||
"id": "SCHEDULER",
|
||
"label": "Zeyilname/sonuç zamanlayıcısı",
|
||
"status": "observable",
|
||
"evidence": {
|
||
"status": 200,
|
||
"browserAvailable": true,
|
||
"resultScanActive": true,
|
||
"resultScanRunning": false,
|
||
"directProcurementActive": true,
|
||
"directProcurementRunning": false
|
||
},
|
||
"remaining": "Yetkili test kaydıyla zeyilname/sonuç olayı ve tekrar engeli doğrulanmalı."
|
||
}
|
||
],
|
||
"guards": {
|
||
"authSession": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"documents": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"documentText": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"apiKeys": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"emailConfig": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"plan": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"subscriptions": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"sourceHistory": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"companyScan": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"aiAnalyze": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"checkout": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"emailSend": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"telegramMutation": {
|
||
"status": 401,
|
||
"passed": true
|
||
},
|
||
"notificationRun": {
|
||
"status": 403,
|
||
"passed": true
|
||
}
|
||
},
|
||
"summary": {
|
||
"total": 13,
|
||
"passed": 4,
|
||
"configured": 3,
|
||
"guarded": 2,
|
||
"observable": 1,
|
||
"manualGate": 2,
|
||
"blocked": 1,
|
||
"protectedGuardsPassed": 14,
|
||
"protectedGuardsTotal": 14
|
||
}
|
||
}
|