diff --git a/docs/quality/evidence/qa-live-five-tenders.json b/docs/quality/evidence/qa-live-five-tenders.json index a311427..772e243 100644 --- a/docs/quality/evidence/qa-live-five-tenders.json +++ b/docs/quality/evidence/qa-live-five-tenders.json @@ -1,124 +1,644 @@ { - "checkedAt": "2026-09-06T17:39:49.038Z", + "checkedAt": "2026-09-15T14:45:21.910Z", "base": "https://ihaleist.com", "readOnly": true, - "listCount": 8224, - "tenders": [ + "listProbe": { + "status": 200, + "success": true + }, + "listCount": 10898, + "selectedCount": 5, + "announcementPassCount": 5, + "officialDocumentPackagePassCount": 0, + "positiveCount": 0, + "pass": false, + "blockers": [ { - "ikn": "2026/1582991", - "scenario": "mikroskop", - "id": "ilan-2204986", - "title": "Mikroskop satın alınacaktır", - "institution": "GİRESUN EĞİTİM VE ARAŞTIRMA HASTANESİ BAŞHEKİMLİĞİ", - "city": "Giresun", - "sector": "Laboratuvar & Ölçüm", - "procedure": "4734 Sayılı KİK, Açık İhale Usulü", - "announcementDate": "2026-08-27", - "tenderDate": "10.09.2026", - "tenderTime": "10:00", - "sourceDateTime": "10.09.2026 10:00", - "officialDateSource": "documents/ilan sourceDateTime", - "announcementDateConflict": null, - "detailStatus": true, - "documentProbeStatus": 200, - "documentCount": 0, - "announcementCount": 1, - "okasCount": 2, - "documentEndpointSuccess": true, - "sourceUrl": "https://www.ilan.gov.tr/ilan/2204986/ihale-duyurulari-mal-alim-ihaleleri-mikroskop-satin-alinacaktir" + "ikn": "2026/1634449", + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." }, { - "ikn": "2026/1534665", - "scenario": "sarf", - "id": "ilan-2205024", - "title": "26 kalem laboratuvar sarf malzeme alımı", - "institution": "KAYSERİ DEVLET HASTANESİ BAŞHEKİMLİĞİ", - "city": "Kayseri", - "sector": "Laboratuvar & Ölçüm", - "procedure": "4734 Sayılı KİK, Açık İhale Usulü", - "announcementDate": "2026-08-31", - "tenderDate": "22.09.2026", - "tenderTime": "11:00", - "sourceDateTime": "22.09.2026 11:00", - "officialDateSource": "documents/ilan sourceDateTime", - "announcementDateConflict": null, - "detailStatus": true, - "documentProbeStatus": 200, - "documentCount": 0, - "announcementCount": 1, - "okasCount": 1, - "documentEndpointSuccess": true, - "sourceUrl": "https://www.ilan.gov.tr/ilan/2205024/ihale-duyurulari-mal-alim-ihaleleri-26-kalem-laboratuvar-sarf-malzeme-alimi" + "ikn": "2026/1676347", + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." }, { - "ikn": "2026/1499061", - "scenario": "cihaz-servis", - "id": "ilan-2204525", - "title": "Laboratuvar malzemesi alınacaktır", - "institution": "AKDENİZ ÜNİVERSİTESİ REKTÖRLÜĞÜ ÜNİVERSİTE HASTANESİ BAŞ MÜDÜRLÜĞÜ", - "city": "Antalya", - "sector": "Laboratuvar & Ölçüm", - "procedure": "4734 Sayılı KİK, Açık İhale Usulü", - "announcementDate": "2026-08-27", - "tenderDate": "22.09.2026", - "tenderTime": "10:30", - "sourceDateTime": "22.09.2026 10:30", - "officialDateSource": "documents/ilan sourceDateTime", - "announcementDateConflict": null, - "detailStatus": true, - "documentProbeStatus": 200, - "documentCount": 0, - "announcementCount": 1, - "okasCount": 1, - "documentEndpointSuccess": true, - "sourceUrl": "https://www.ilan.gov.tr/ilan/2204525/ihale-duyurulari-mal-alim-ihaleleri-laboratuvar-malzemesi-alinacaktir" + "ikn": "2026/1667534", + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." }, { - "ikn": "2026/1573235", - "scenario": "kismi-teklif", - "id": "ilan-2203314", - "title": "Laboratuvar sarf malzemeleri satın alınacak", - "institution": "AKSARAY ÜNİVERSİTESİ EĞİTİM VE ARAŞTIRMA HASTANESİ", - "city": "Aksaray", - "sector": "Laboratuvar & Ölçüm", - "procedure": "4734 Sayılı KİK, Açık İhale Usulü", - "announcementDate": "2026-08-24", - "tenderDate": "16.09.2026", - "tenderTime": "10:00", - "sourceDateTime": "16.09.2026 10:00", - "officialDateSource": "documents/ilan sourceDateTime", - "announcementDateConflict": "ilan listesi 09.09.2026; resmi detay 16.09.2026", - "detailStatus": true, - "documentProbeStatus": 200, - "documentCount": 1, - "announcementCount": 1, - "okasCount": 1, - "documentEndpointSuccess": true, - "sourceUrl": "https://www.ilan.gov.tr/ilan/2203314/ihale-duyurulari-mal-alim-ihaleleri-laboratuvar-sarf-malzemeleri-satin-alinacak" + "ikn": "2026/1620320", + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." }, { - "ikn": "2026/1523851", - "scenario": "100-kalem", - "id": "ilan-2200563", - "title": "Laboratuvar malzemesi satın alınacaktır", - "institution": "İZMİR TEPECİK EĞİTİM VE ARAŞTIRMA HASTANESİ", - "city": "İzmir", - "sector": "Laboratuvar & Ölçüm", - "procedure": "4734 Sayılı KİK, Açık İhale Usulü", - "announcementDate": "2026-08-21", - "tenderDate": "11.09.2026", - "tenderTime": "10:00", - "sourceDateTime": "11.09.2026 10:00", - "officialDateSource": "documents/ilan sourceDateTime", - "announcementDateConflict": null, - "detailStatus": true, - "documentProbeStatus": 200, - "documentCount": 1, - "announcementCount": 1, - "okasCount": 1, - "documentEndpointSuccess": true, - "sourceUrl": "https://www.ilan.gov.tr/ilan/2200563/ihale-duyurulari-mal-alim-ihaleleri-laboratuvar-malzemesi-satin-alinacaktir" + "ikn": "2026/1636687", + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." } ], - "scope": "Live metadata/detail/document endpoint probes only; no authentication, writes, payments, messages, or submissions." + "tenders": [ + { + "ikn": "2026/1634449", + "scenario": "20-kalem-laboratuvar-cihazi", + "id": "ilan-2219605", + "title": "Laboratuvar cihazı satın alınacaktır", + "institution": "R.T.E. ÜNİVERSİTESİ İDARİ VE MALİ İŞLER DAİRE BAŞKANLIĞI", + "city": "Rize", + "tenderDate": "05.10.2026", + "tenderTime": "10:30", + "sourceUrl": "https://www.ilan.gov.tr/ilan/2219605/ihale-duyurulari-mal-alim-ihaleleri-laboratuvar-cihazi-satin-alinacaktir", + "publicAnnouncement": { + "endpointStatus": 200, + "textChars": 5592, + "normalizedTextSha256": "17456819e593dca234080014db40aa47532d01b8b095a5e3f0976838d93cd1a1", + "checks": { + "listed": true, + "detailEndpoint": true, + "ikn": true, + "title": true, + "date": true, + "time": true, + "nature": true, + "delivery": true, + "validity": true, + "partialOffer": true, + "requirements": true + }, + "requirementChecks": [ + { + "key": "offer-letter", + "label": "Teklif mektubu", + "sourceTerm": "Teklif mektubu", + "present": true + }, + { + "key": "authorization", + "label": "Teklif vermeye yetki bilgileri", + "sourceTerm": "Teklif vermeye yetkili olunduğunu gösteren bilgi ve belgeler", + "present": true + }, + { + "key": "temporary-guarantee", + "label": "Geçici teminat", + "sourceTerm": "Geçici teminat", + "present": true + }, + { + "key": "manufacturer-or-authorized-seller", + "label": "İmalatçı/yetkili satıcı/yetkili temsilci belgesi", + "sourceTerm": "Yetkili Satıcı Belgesi", + "present": true + }, + { + "key": "service-qualification", + "label": "TSE Hizmet Yeterlilik Belgesi", + "sourceTerm": "TSE Hizmet Yeterlilik Belgesi", + "present": true + }, + { + "key": "catalog", + "label": "Katalog", + "sourceTerm": "Katalog", + "present": true + }, + { + "key": "brand-model", + "label": "Marka-model beyanı", + "sourceTerm": "MARKA - MODEL BEYANI", + "present": true + }, + { + "key": "specification-response", + "label": "Teknik şartnameye cevaplar ve açıklamalar", + "sourceTerm": "Teknik Şartnameye Cevaplar ve Açıklamalar", + "present": true + } + ] + }, + "officialDocumentProbe": { + "endpointStatus": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "documentCount": 0, + "announcementCount": 0, + "okasCount": 0, + "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." + }, + "stages": { + "selectionAndAnnouncement": { + "passed": true, + "status": "passed" + }, + "officialDocumentPackage": { + "passed": false, + "status": "blocked", + "blocker": { + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." + } + }, + "productMatch": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "companyDocumentEvidence": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "priceAndOutputs": { + "passed": false, + "status": "blocked-by-official-document-package" + } + }, + "positive": false + }, + { + "ikn": "2026/1676347", + "scenario": "cihaz-malzeme-yazilim", + "id": "ilan-2218485", + "title": "Laboratuvar cihaz, malzeme ve yazılım mal alım ihalesi", + "institution": "SİVAS BİLİM VE TEKNİK ÜNİVERSİTESİ İDARİ VE MALİ İŞL. DAİRE BAŞK.", + "city": "Sivas", + "tenderDate": "01.10.2026", + "tenderTime": "10:30", + "sourceUrl": "https://www.ilan.gov.tr/ilan/2218485/ihale-duyurulari-mal-alim-ihaleleri-laboratuvar-cihaz-malzeme-ve-yazilim-mal-alim-ihalesi", + "publicAnnouncement": { + "endpointStatus": 200, + "textChars": 4455, + "normalizedTextSha256": "64902b106e05f9feff268530435498e65a067efc0f51cb665edd9f878d372cd7", + "checks": { + "listed": true, + "detailEndpoint": true, + "ikn": true, + "title": true, + "date": true, + "time": true, + "nature": true, + "delivery": true, + "validity": true, + "partialOffer": true, + "requirements": true + }, + "requirementChecks": [ + { + "key": "offer-letter", + "label": "Teklif mektubu", + "sourceTerm": "Teklif mektubu", + "present": true + }, + { + "key": "authorization", + "label": "Teklif vermeye yetki bilgileri", + "sourceTerm": "Teklif vermeye yetkili olunduğunu gösteren bilgi ve belgeler", + "present": true + }, + { + "key": "temporary-guarantee", + "label": "Geçici teminat", + "sourceTerm": "Geçici teminat", + "present": true + }, + { + "key": "catalog", + "label": "Katalog", + "sourceTerm": "Katalog", + "present": true + }, + { + "key": "specification-response", + "label": "Teknik şartnameye cevaplar ve açıklamalar", + "sourceTerm": "Teknik Şartnameye Cevaplar ve Açıklamalar", + "present": true + } + ] + }, + "officialDocumentProbe": { + "endpointStatus": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "documentCount": 0, + "announcementCount": 0, + "okasCount": 0, + "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." + }, + "stages": { + "selectionAndAnnouncement": { + "passed": true, + "status": "passed" + }, + "officialDocumentPackage": { + "passed": false, + "status": "blocked", + "blocker": { + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." + } + }, + "productMatch": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "companyDocumentEvidence": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "priceAndOutputs": { + "passed": false, + "status": "blocked-by-official-document-package" + } + }, + "positive": false + }, + { + "ikn": "2026/1667534", + "scenario": "yedek-parca-ve-sarf", + "id": "ilan-2217472", + "title": "Laboratuvar cihaz yedek parça ve sarf malzeme satın alınacak", + "institution": "KONYA İL SAĞLIK MÜDÜRLÜĞÜ", + "city": "Konya", + "tenderDate": "28.09.2026", + "tenderTime": "10:30", + "sourceUrl": "https://www.ilan.gov.tr/ilan/2217472/ihale-duyurulari-mal-alim-ihaleleri-laboratuvar-cihaz-yedek-parca-ve-sarf-malzeme-satin-alinacak", + "publicAnnouncement": { + "endpointStatus": 200, + "textChars": 4897, + "normalizedTextSha256": "d076d3e94136ccfd9e1cd1eb1e98e1bcb600bce20bf7d8ae7d5d3ea0a2f13044", + "checks": { + "listed": true, + "detailEndpoint": true, + "ikn": true, + "title": true, + "date": true, + "time": true, + "nature": true, + "delivery": true, + "validity": true, + "partialOffer": true, + "requirements": true + }, + "requirementChecks": [ + { + "key": "offer-letter", + "label": "Teklif mektubu", + "sourceTerm": "Teklif mektubu", + "present": true + }, + { + "key": "authorization", + "label": "Teklif vermeye yetki bilgileri", + "sourceTerm": "Teklif vermeye yetkili olunduğunu gösteren bilgi ve belgeler", + "present": true + }, + { + "key": "temporary-guarantee", + "label": "Geçici teminat", + "sourceTerm": "Geçici teminat", + "present": true + }, + { + "key": "catalog", + "label": "Katalog", + "sourceTerm": "Katalog", + "present": true + }, + { + "key": "specification-response", + "label": "Teknik şartnameye cevaplar ve açıklamalar", + "sourceTerm": "Teknik Şartnameye Cevaplar ve Açıklamalar", + "present": true + }, + { + "key": "sample", + "label": "Numune", + "sourceTerm": "Numune sunulması istenmektedir", + "present": true + } + ] + }, + "officialDocumentProbe": { + "endpointStatus": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "documentCount": 0, + "announcementCount": 0, + "okasCount": 0, + "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." + }, + "stages": { + "selectionAndAnnouncement": { + "passed": true, + "status": "passed" + }, + "officialDocumentPackage": { + "passed": false, + "status": "blocked", + "blocker": { + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." + } + }, + "productMatch": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "companyDocumentEvidence": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "priceAndOutputs": { + "passed": false, + "status": "blocked-by-official-document-package" + } + }, + "positive": false + }, + { + "ikn": "2026/1620320", + "scenario": "220-kalem-laboratuvar-sarfi", + "id": "ilan-2214836", + "title": "Laboratuvar sarf malzemeleri satın alınacaktır", + "institution": "ZONGULDAK İL SAĞLIK MÜDÜRLÜĞÜ", + "city": "Zonguldak", + "tenderDate": "01.10.2026", + "tenderTime": "10:00", + "sourceUrl": "https://www.ilan.gov.tr/ilan/2214836/ihale-duyurulari-mal-alim-ihaleleri-laboratuvar-sarf-malzemeleri-satin-alinacaktir", + "publicAnnouncement": { + "endpointStatus": 200, + "textChars": 4891, + "normalizedTextSha256": "3a82b6347d3237ba29c57e211f46febd48ffd3570a7a4d818af04789fd0be5d0", + "checks": { + "listed": true, + "detailEndpoint": true, + "ikn": true, + "title": true, + "date": true, + "time": true, + "nature": true, + "delivery": true, + "validity": true, + "partialOffer": true, + "requirements": true + }, + "requirementChecks": [ + { + "key": "offer-letter", + "label": "Teklif mektubu", + "sourceTerm": "Teklif mektubu", + "present": true + }, + { + "key": "authorization", + "label": "Teklif vermeye yetki bilgileri", + "sourceTerm": "Teklif vermeye yetkili olunduğunu gösteren bilgi ve belgeler", + "present": true + }, + { + "key": "temporary-guarantee", + "label": "Geçici teminat", + "sourceTerm": "Geçici teminat", + "present": true + }, + { + "key": "scope-exclusion", + "label": "Kapsam Dışı Belgesi", + "sourceTerm": "Kapsam Dışı Belgesi", + "present": true + }, + { + "key": "sales-center", + "label": "Satış Merkezi Yetki Belgesi", + "sourceTerm": "Satış Merkezi Yetki Belgesi", + "present": true + }, + { + "key": "uts", + "label": "TİTUBB veya ÜTS belgesi", + "sourceTerm": "TİTUBB veya ÜTS belgesi", + "present": true + }, + { + "key": "sample", + "label": "Numune", + "sourceTerm": "Numune sunulması istenmektedir", + "present": true + } + ] + }, + "officialDocumentProbe": { + "endpointStatus": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "documentCount": 0, + "announcementCount": 0, + "okasCount": 0, + "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." + }, + "stages": { + "selectionAndAnnouncement": { + "passed": true, + "status": "passed" + }, + "officialDocumentPackage": { + "passed": false, + "status": "blocked", + "blocker": { + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." + } + }, + "productMatch": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "companyDocumentEvidence": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "priceAndOutputs": { + "passed": false, + "status": "blocked-by-official-document-package" + } + }, + "positive": false + }, + { + "ikn": "2026/1636687", + "scenario": "kit-karsiligi-otoanalizor", + "id": "ilan-2211682", + "title": "Kit karşılığı otoanalizör satın alınacak", + "institution": "GAZİ ÜNİVERSİTESİ SAĞLIK ARAŞTIRMA VE UYGULAMA MERKEZİ", + "city": "Ankara", + "tenderDate": "28.09.2026", + "tenderTime": "14:00", + "sourceUrl": "https://www.ilan.gov.tr/ilan/2211682/ihale-duyurulari-mal-alim-ihaleleri-kit-karsiligi-otoanalizor-satin-alinacak", + "publicAnnouncement": { + "endpointStatus": 200, + "textChars": 5820, + "normalizedTextSha256": "8cbd40ad56a471132a881f1b922739f80c3ad3dea99bd18a556acf7dd3b9975f", + "checks": { + "listed": true, + "detailEndpoint": true, + "ikn": true, + "title": true, + "date": true, + "time": true, + "nature": true, + "delivery": true, + "validity": true, + "partialOffer": true, + "requirements": true + }, + "requirementChecks": [ + { + "key": "offer-letter", + "label": "Teklif mektubu", + "sourceTerm": "Teklif mektubu", + "present": true + }, + { + "key": "authorization", + "label": "Teklif vermeye yetki bilgileri", + "sourceTerm": "Teklif vermeye yetkili olunduğunu gösteren bilgi ve belgeler", + "present": true + }, + { + "key": "temporary-guarantee", + "label": "Geçici teminat", + "sourceTerm": "Geçici teminat", + "present": true + }, + { + "key": "service-training", + "label": "Teknik Servis Eğitim Sertifikası", + "sourceTerm": "Teknik Servis Eğitim Sertifikası", + "present": true + }, + { + "key": "brochure", + "label": "Broşür", + "sourceTerm": "Broşür", + "present": true + }, + { + "key": "user-guide", + "label": "Cihaz ve ODS kullanım kılavuzu", + "sourceTerm": "ODS yazılım sistemine ait kullanım klavuzu", + "present": true + }, + { + "key": "catalog", + "label": "Katalog", + "sourceTerm": "Katalog", + "present": true + }, + { + "key": "specification-response", + "label": "Teknik şartnameye cevaplar ve açıklamalar", + "sourceTerm": "Teknik Şartnameye Cevaplar ve Açıklamalar", + "present": true + }, + { + "key": "sales-center", + "label": "Satış Merkezi Yetki Belgesi", + "sourceTerm": "Satış Merkezi Yetki Belgesi", + "present": true + }, + { + "key": "device-id-cards", + "label": "Cihaz ve sistem tanıtım kimlik kartı", + "sourceTerm": "tanıtım kimlik kartı", + "present": true + }, + { + "key": "production-and-age", + "label": "Üretimde olma ve 13 yaş altı kanıtı", + "sourceTerm": "on üç yaşın altında olduğunu belirten belgeler", + "present": true + }, + { + "key": "offer-authorization-proof", + "label": "Teklif yetkisi kanıtı", + "sourceTerm": "Teklif vermeye yetkili olduğuna dair kanıtlayıcı belge", + "present": true + }, + { + "key": "uts-evidence", + "label": "ÜTS beyanı ve kanıtlayıcı belgeler", + "sourceTerm": "ÜRÜN TAKİP SİSTEMİ (ÜTS) BEYANI VE KANITLAYICI BELGELER", + "present": true + } + ] + }, + "officialDocumentProbe": { + "endpointStatus": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "documentCount": 0, + "announcementCount": 0, + "okasCount": 0, + "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." + }, + "stages": { + "selectionAndAnnouncement": { + "passed": true, + "status": "passed" + }, + "officialDocumentPackage": { + "passed": false, + "status": "blocked", + "blocker": { + "stage": "officialDocumentPackage", + "status": 428, + "code": "HUMAN_VERIFICATION_REQUIRED", + "retryable": false, + "message": "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." + } + }, + "productMatch": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "companyDocumentEvidence": { + "passed": false, + "status": "blocked-by-official-document-package" + }, + "priceAndOutputs": { + "passed": false, + "status": "blocked-by-official-document-package" + } + }, + "positive": false + } + ], + "scope": "Canlı liste, ilan metni ve resmi doküman uçları salt okunur denetlendi; giriş, veri değişikliği, ödeme, mesaj veya teklif gönderimi yapılmadı." } diff --git a/docs/quality/evidence/qa-live-runtime.json b/docs/quality/evidence/qa-live-runtime.json index d4b8544..382f23b 100644 --- a/docs/quality/evidence/qa-live-runtime.json +++ b/docs/quality/evidence/qa-live-runtime.json @@ -1,7 +1,9 @@ { "base": "https://ihaleist.com", "readOnly": true, - "checkedAt": "2026-09-06T17:30:38.609Z", + "checkedAt": "2026-09-15T14:45:06.693Z", + "expectedRelease": "e5e1b12185b98a8ddf9e05a88381a5f0e377d60e", + "expectedAssetSha256": "4bca821e3b14ef1e349cd31e312c5027fa8527d17ecc2697852a004a6826eb7e", "checks": { "home": { "status": 200, @@ -55,8 +57,66 @@ } }, "apiSuccess": true + }, + "version": { + "status": 200, + "contentType": "application/json; charset=utf-8", + "headers": { + "x-content-type-options": "nosniff", + "referrer-policy": "no-referrer", + "permissions-policy": "camera=(), microphone=(), geolocation=()", + "x-frame-options": "DENY", + "content-security-policy": "default-src 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; script-src 'self' https://accounts.google.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com data:; img-src 'self' data: blob: https:; connect-src 'self' https:; worker-src 'self' blob:; frame-src 'self' https://accounts.google.com", + "strict-transport-security": "max-age=31536000; includeSubDomains" + }, + "json": { + "ok": true, + "release": "e5e1b12185b98a8ddf9e05a88381a5f0e377d60e", + "version": "1.0.0", + "frontendAsset": { + "path": "/assets/index-vuTn9Luj.js", + "sha256": "4bca821e3b14ef1e349cd31e312c5027fa8527d17ecc2697852a004a6826eb7e", + "bytes": 569810 + } + }, + "apiSuccess": true + }, + "documents": { + "status": 200, + "contentType": "application/json; charset=utf-8", + "headers": { + "x-content-type-options": "nosniff", + "referrer-policy": "no-referrer", + "permissions-policy": "camera=(), microphone=(), geolocation=()", + "x-frame-options": "DENY", + "content-security-policy": "default-src 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; script-src 'self' https://accounts.google.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com data:; img-src 'self' data: blob: https:; connect-src 'self' https:; worker-src 'self' blob:; frame-src 'self' https://accounts.google.com", + "strict-transport-security": "max-age=31536000; includeSubDomains" + }, + "json": { + "tarayiciVar": true + }, + "apiSuccess": true + }, + "frontendAsset": { + "status": 200, + "contentType": "application/javascript", + "headers": { + "x-content-type-options": "nosniff", + "referrer-policy": "no-referrer", + "permissions-policy": "camera=(), microphone=(), geolocation=()", + "x-frame-options": "DENY", + "content-security-policy": "default-src 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; script-src 'self' https://accounts.google.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com data:; img-src 'self' data: blob: https:; connect-src 'self' https:; worker-src 'self' blob:; frame-src 'self' https://accounts.google.com", + "strict-transport-security": "max-age=31536000; includeSubDomains" + }, + "path": "/assets/index-vuTn9Luj.js", + "bytes": 569810, + "sha256": "4bca821e3b14ef1e349cd31e312c5027fa8527d17ecc2697852a004a6826eb7e" } }, + "releaseValid": true, + "releaseMatches": true, + "assetMatchesRuntime": true, + "assetMatchesExpected": true, "pass": true, "missingHeaders": [] } diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index e3ec22b..f48ec9e 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -6,7 +6,7 @@ - Tarihi açık beş laboratuvar ihalesi seçildi: `2026/1634449` (Rize), `2026/1676347` (Sivas), `2026/1667534` (Konya), `2026/1620320` (Zonguldak) ve `2026/1636687` (Ankara). - Beşinin de canlı liste kaydı, ilan metni, tarih/saat, kapsam, teslimat, teklif geçerlilik süresi, kısmi/tam teklif hükmü ve ilan içindeki gerçek belge şartları doğrulandı. Kanıt: [`qa-live-five-tenders.json`](evidence/qa-live-five-tenders.json). - EKAP resmi doküman paketi beş kayıtta da HTTP 428 insan doğrulaması istedi. Bu nedenle ürün eşleştirme, firma belge kanıtı, fiyat cetveli ve son çıktılar D10 pozitif kabulü olarak işaretlenmedi: ilan aşaması `5/5`, resmi paket `0/5`, tam pozitif zincir `0/5`. -- Uygulamanın bu 428 yanıtını tekrar denenebilir genel 502 hatası gibi göstermesi düzeltildi. Yeni yanıt `HUMAN_VERIFICATION_REQUIRED`, `retryable: false` ve elle yapılacak adımı içeriyor; belge ekranı kullanıcıyı EKAP doğrulamasına ve indirdiği dosyayı yüklemeye yönlendiriyor. +- Uygulamanın bu 428 yanıtını tekrar denenebilir genel 502 hatası gibi göstermesi `e5e1b12` sürümünde düzeltildi ve canlıda doğrulandı. Yeni yanıt `HUMAN_VERIFICATION_REQUIRED`, `retryable: false` ve elle yapılacak adımı içeriyor; belge ekranı kullanıcıyı EKAP doğrulamasına ve indirdiği dosyayı yüklemeye yönlendiriyor. Bu aşamada D10 tamamlanmış değildir. Kapanış için yetkili kullanıcının EKAP güvenlik doğrulamasından sonra beş resmi doküman paketini indirip uygulamaya yüklemesi ve test firmasının gerçek ürün/belge kayıtlarıyla kalan dört kapıyı geçmesi gerekir. Resmi teklif gönderilmedi.