Kaynak (İngilizce orijinal): Datasette Apps: Host custom HTML applications inside Datasette · Simon Willison · 18 Haziran 2026
Bu yazıda ne var?
Datasette, SQLite veritabanlarını web üzerinden gezip sorgulamanızı sağlayan açık kaynak bir araçtır. Simon Willison yeni datasette-apps eklentisini tanıttı: Datasette içinde kendi HTML ve JavaScript uygulamanızı çalıştırabilirsiniz — tıpkı Claude’un “Artifacts” özelliğinde kod parçacığı oluşturmak gibi, ama bu sefer gerçek bir ilişkisel veritabanına bağlı. Bu yazıda ne problem çözdüğünü, güvenlik modelini ve pratik kullanım senaryolarını anlatıyoruz.
Hangi ihtiyaca cevap veriyor?
Veriniz tablolarda duruyor; grafik, filtre veya özel arayüz istiyorsunuz. Seçenekler genelde: (1) tam bir frontend projesi yazmak, (2) notebook’ta analiz yapmak, (3) hazır dashboard aracına veri aktarmak. Datasette Apps dördüncü bir yol sunuyor: küçük, tek dosyalık HTML/JS uygulaması — veritabanınıza doğrudan sorgu atarak çalışır.
Willison’un Eventbrite’teki iç doküman arama motoru örneği bunun erken haliydi: cron ile veriyi SQLite’a aktar, tarayıcıda JavaScript ile sorgula. Yıllar sonra yapay zeka modellerinin HTML üretme yeteneğiyle birleşince soru doğdu: “Model bir arayüz üretse ve kalıcı veriye erişse ne olur?” Datasette Apps tam bunu yapıyor.
Güvenlik modeli: güvenilmeyen kodu nasıl izole edersiniz?
Uygulama kodu siz yazsanız da, yapay zeka üretse de “güvenilmeyen kod” sayılır. Üç katmanlı koruma var:
iframe sandbox, HTML’i ana sayfadan izole eden bir çerçevedir. İçerideki JavaScript ana sayfanın çerezlerine (cookie), oturum bilgisine veya DOM’una erişemez.
CSP (Content Security Policy), tarayıcıya “bu sayfa hangi dış kaynaklara istek atabilir?” kuralını söyleyen güvenlik başlığıdır. Datasette Apps dış HTTP isteklerini engeller — hatalı veya kötü niyetli kod verinizi dışarı gönderemez.
MessageChannel, iframe ile ana sayfa arasında güvenli mesajlaşma kanalıdır. Uygulama SQL çalıştırmak istediğinde bu kanal üzerinden istek gönderir; iframe başka bir adrese giderse kanal kapanır.
Varsayılan olarak SQL sorguları salt okunur (read-only). Yazma işlemi için önceden tanımlanmış stored query (kayıtlı sorgu) kullanılır — örneğin add_todo adlı, parametreleri belli bir ekleme sorgusu. Genel “istediğim her SQL’i çalıştır” izni verilmez.
Geliştirici deneyimi
Hata ayıklamayı kolaylaştırmak için sorgular ve CSP ihlalleri sayfada görünür loglanır. Yeni uygulama oluştururken veritabanı şemasını içeren bir prompt kopyalayıp ChatGPT, Claude veya Gemini’ye yapıştırabilirsiniz; model size başlangıç kodu üretir.
Datasette Agent kuruluysa, sohbet içinden uygulama oluşturma ve düzenleme de mümkün.
Gerçek bir güvenlik açığı ve dersi
Claude Fable 5 modeli, izin testinde bir zafiyet buldu: düşük yetkili bir kullanıcı, yöneticiyi kötü amaçlı bir uygulamaya çekip yönetici kimliğiyle özel veri sorgulayabiliyordu. Düzeltme: CSP kaynak listesini değiştirmek için ayrı izin (apps-set-csp) ve site düzeyinde onaylı kaynak listesi (allowed_csp_origins) eklendi.
Ders: sandbox tek başına yetmez; kim hangi uygulamayı açarsa o kullanıcının yetkileriyle çalışır. Yetki yükseltme senaryolarını ayrıca düşünmek gerekir.
RAG değil, yapılandırılmış veri + arayüz
RAG (Retrieval-Augmented Generation), modele metin parçaları aratarak cevap üretme yöntemidir. Datasette Apps farklı bir yol: veriniz zaten tablolarda; model veya siz SQL ile doğrudan sorgulayıp sonucu arayüzde gösteriyorsunuz. Veri gazeteciliği, açık veri setleri veya şirket içi raporlama için hızlı prototip aracı olarak düşünülebilir.
Özet
Datasette Apps, veritabanınızın üzerine sandbox’lanmış mini web uygulamaları koymanızı sağlar. Salt okunur sorgu varsayılan, yazma kontrollü, dış ağ kapalı. Yapay zeka ile arayüz üretip gerçek veriye bağlamak isteyen geliştiriciler için pratik bir pattern. Denemek için: agent.datasette.io (GitHub ile giriş).
