İçeriğe atla
Cloudflare Wiki

    gez · aç · Esc kapat

    Artifacts

    Git protokolü konuşan, programatik olarak oluşturulan depolar; AI agent'ları için tasarlandı. Kapalı beta.

    • DurumKapalı beta
    • Fiyatİşlem sayısı + depolama (GB-ay)
    • Doğrulama

    Artifacts nedir?

    Çözdüğü problem, duyurudan birebir:

    “Source control platforms are especially struggling here: they were built to meet the needs of humans, not a 10x change in volume driven by agents who never sleep.”

    Neden Git? “Agents know Git. It’s deep in the training data of most models.”

    Nasıl çalışır?

    Mimari

    Her depo bir Durable Object’tir. Git sunucusu saf Zig ile yazılmış, WASM’a derlenmiş ~100 KB’lık bir ikili: SHA-1, zlib, delta kodlama, pack ayrıştırma ve tam Git smart HTTP protokolü.

    Dosyalar Durable Object’in SQLite veritabanında durur; 2 MB satır sınırı yüzünden büyük Git nesneleri parçalara bölünür. R2 yalnızca snapshot’lar için, KV token takibi için kullanılır.

    Nesne modeli: Namespace → Depo. Namespace örtük olarak oluşturulur — yeni bir namespace adıyla ilk depoyu yarattığında Artifacts onu da yaratır.

    Protokol desteği

    İşlemProtokol v1Protokol v2
    Clone / fetch
    Push❌ desteklenmiyor

    v1’de bazı yetenekler de eksik: filter ve include-tag.

    Git remote biçimi:

    https://<HESAP_ID>.artifacts.cloudflare.net/git/<namespace>/<depo>.git

    Token modeli

    Biçim: art_v1_<40 hex>?expires=<unix saniye>. İki kapsam: read (clone/fetch/pull) ve write (push dahil). TTL 60 saniye ile 1 yıl arası.

    İki farklı token tipini karıştırma:

    TokenNe için
    Cloudflare API tokenKontrol düzlemi — depo oluşturma, listeleme, silme
    Depo kapsamlı Artifacts tokenGit işlemleri — clone, fetch, push

    Bunlar birbirinin yerine kullanılamaz.

    git notes desteği

    Agent metadata’sını commit’lere iliştirmenin belgelenmiş yolu — “without mutating the objects themselves.” Uyarı: notes ayrı ref’lerde durur, refs/notes/* de push ve fetch edilmeli, yoksa metadata sessizce kaybolur.

    ArtifactFS

    Cloudflare, github.com/cloudflare/artifact-fs adresinde açık kaynak bir FUSE sürücüsü yayımlıyor. Önce blobsuz clone yapıp arka planda paket manifestlerini ve config dosyalarını önceliklendirerek dolduruyor. Blog iddiası: 2,4 GB’lık bir deponun clone süresi *“close to 2 minutes”*ten *“~10-15 seconds”*e iniyor. Herhangi bir Git remote’uyla çalışıyor, yalnızca Artifacts ile değil.

    Ne zaman kullanılır, ne zaman kullanılmaz

    Uygun olduğu işler

    • Oturum başına izole çalışma alanı gereken AI agent’ları
    • Ortak bir temelden fork’layıp paralel çalışan agent’lar
    • Programatik olarak oluşturulup silinen kısa ömürlü depolar
    • Versiyonlanabilir müşteri yapılandırması saklama (geri alma yeteneğiyle)

    Uygun olmadığı işler

    • Beta erişimin yoksa hiçbir şey. Beş aydır kapalı.
    • Ücretsiz plan. Kullanılamaz.
    • 10 GB’ı aşan depolar. Sert tavan.
    • İnsan işbirliği. PR yok, code review yok, issue yok, branch protection yok.
    • Paket veya container registry ihtiyacı. Bu ürün onu yapmıyor.
    • Düz blob depolama. R2 hem sınırsız hem 33 kat ucuz.
    • Protokol v2 ile push. Desteklenmiyor.

    Yerleşik alternatiflere karşı dürüst konum

    İhtiyaçDoğru araç
    İnsan kaynak kontrolü, code review, CI ekosistemiGitHub / GitLab — Artifacts bu alanda rekabet etmiyor ve etmeye çalışmıyor
    Build çıktısı, paket, container imageGitHub Packages / Artifactory / Amazon ECR — Artifacts bunu hiç yapmıyor
    Versiyonlama semantiği gerekmeyen blob depolamaR2 — sınırsız boyut, GB-ay başına 0,015 USD

    Olgunluk değerlendirmesi: bu portalda incelenen en olgunlaşmamış ürün. Kapalı beta, ücretsiz katman yok, kaçırılmış public beta tarihi, duyurulandan farklı şipilen bir özellik, ve kendi dokümantasyonu içinde tutarsız URL’ler.

    Somut örnekler

    1. Oturum başına depo — kanonik desen

    {
      "name": "artifacts-worker",
      "main": "src/index.ts",
      "compatibility_date": "2026-09-01",
      "artifacts": [{ "binding": "ARTIFACTS", "namespace": "varsayilan" }]
    }
    // Docs önerisi: çakışmayı önlemek için benzersiz adlandırma
    async function oturumDeposuAc(env, agentAdi, oturumId, depoAdi) {
      const benzersizAd = `${agentAdi}-${oturumId}-${depoAdi}`;
      return env.ARTIFACTS.create(benzersizAd);
    }

    2. Temel depoyu içe aktar, oturum başına fork’la

    // Bir kez: dış depoyu içe aktar
    const iceAktarilan = await env.ARTIFACTS.import({
      source: { url: "https://github.com/sirket/temel-sablon", branch: "main" },
      target: { name: "temel-sablon" },
    });
    
    // Her oturum: fork'la
    const temel = await env.ARTIFACTS.get("temel-sablon");
    const fork = await temel.fork(`temel-${oturumId}`, {
      description: `${oturumId} oturumu için fork`,
      defaultBranchOnly: true,
      readOnly: false,
    });
    
    return { remote: fork.remote, token: fork.token };

    3. Kısa ömürlü, dar kapsamlı token

    const depo = await env.ARTIFACTS.get(depoAdi);
    const token = await depo.createToken("read", 900);   // 15 dakika, yalnızca okuma
    
    return Response.json({
      kapsam: token.scope,
      bitis: token.expiresAt,
      token: token.plaintext,
    });

    4. Agent metadata’sını git notes ile taşıma

    git notes add -m 'kullanıcı: Benzersiz depo adları için en iyi uygulama bölümü ekle.' HEAD
    git notes append -m 'asistan: Adlandırma rehberi ve kod örneği eklendi.' HEAD
    git notes show HEAD
    
    # Metadata'nın taşınması için notes ref'ini de push et
    git push origin 'refs/notes/*'

    5. Git istemcisi olmadan dosya okuma

    curl "$ARTIFACTS_BASE_URL/repos/$DEPO/file?ref=main&path=yapilandirma.json" \
      --header "Authorization: Bearer $CF_API_TOKEN"

    Bu, “versiyonlanabilir müşteri yapılandırması” kullanımını mümkün kılar — Git semantiğinden yararlanırsın ama okuma tarafında Git istemcisine ihtiyacın olmaz.

    Demo 1: Programatik depo oluşturma ve klonlama

    Adım 1 — Namespace ve depo oluştur

    npx wrangler artifacts namespaces list
    npx wrangler artifacts repos create demo-depo --namespace varsayilan
    Terminal — oluşturulan deponun adı, remote URL'i ve durumu

    Adım 2 — Token üret

    npx wrangler artifacts repos issue-token demo-depo \
      --namespace varsayilan --scope write --ttl 3600
    Terminal — art_v1_ ile başlayan token ve expires parametresi

    Adım 3 — Klonla

    git -c http.extraHeader="Authorization: Bearer $ARTIFACTS_TOKEN" \
      clone "$ARTIFACTS_REMOTE" demo-klon
    Terminal — başarılı clone çıktısı ve klasör içeriği

    Adım 4 — Push et

    Terminal — commit ve push çıktısı; protokol v1 kullanıldığı görünsün

    Adım 5 — Protokol v2 ile push’un başarısız olduğunu göster

    git -c protocol.version=2 push origin main
    Terminal — v2 receive-pack desteklenmediğini gösteren hata

    Demo 2: Agent deseni — fork ve izolasyon

    Adım 1 — Temel depoyu içe aktar

    Terminal veya API çıktısı — import işleminin başlaması ve durum alanının 'importing' olması

    Adım 2 — Üç oturum için fork oluştur

    Üç fork işleminin çıktısı ve her birinin farklı remote URL'i

    Adım 3 — İzolasyonu doğrula

    Bir fork’a commit at, diğerlerinde görünmediğini göster.

    İki fork'ta git log çıktısı — birinde yeni commit var, diğerinde yok

    Adım 4 — git notes ile metadata ekle

    git notes show çıktısı — commit'e iliştirilmiş prompt ve agent bilgisi

    Adım 5 — Kullanımı gözle

    Panel veya GraphQL sorgusu — repo başına işlem sayısı ve depolama kullanımı

    Ölçüm

    ÖlçütDeğer
    Depo oluşturma süresi
    Fork süresi
    Clone süresi (ArtifactFS’siz)
    Clone süresi (ArtifactFS ile)
    100 depo için depolama
    100 depo için işlem sayısı

    Fiyatlandırma

    BirimWorkers FreeWorkers Paid
    İşlem (1.000 işlem)KullanılamazAyda ilk 10.000 dahil, sonrası 0,15 USD / 1.000 işlem
    Depolama (GB-ay)KullanılamazAyda ilk 1 GB dahil, sonrası 0,50 USD / GB-ay

    İşlem tanımı: “the number of repo operations, such as create, push, pull, and clone.”

    Depolama notları:

    • GB-ay, 30 günlük dönemde günlük tepe kullanımın ortalamasıdır
    • Tüm depolar üzerinden hesaplanır
    • Replikalar ek depolama ücreti doğurmaz — replikasyon varsayılan olarak açıktır
    • Depolar açıkça silinene kadar saklanır

    Limitler

    ÖzellikSınır
    Kontrol düzlemi istek hızıNamespace başına 10 saniyede 2.000 istek
    Git istek hızıArtifact başına 10 saniyede 2.000 istek
    Depo başına depolama10 GB
    Hesap başına depolama1 TB (talep üzerine artırılabilir)
    Depo sayısıSınırsız
    Namespace sayısıSınırsız
    Token TTL60 saniye – 1 yıl

    Ad kuralı: harf veya rakamla başlamalı; kalan karakterler harf, rakam, ., _ ve - olabilir.

    Lisanslama ve hukuki çerçeve

    Artifacts tescilli bir hizmettir; Cloudflare Hizmet Şartları kapsamındadır.

    Veri yerleşimi: Namespace oluşturulurken eu veya us yargı bölgesi verilebilir ve bu ayar sonradan değiştirilemez. Türkiye için tanımlı bölge yoktur.

    İçe aktarılan depoların lisansı. Dış bir Git deposunu Artifacts’e içe aktarıyorsan o deponun lisans koşulları geçerli olmaya devam eder. Özellikle agent’lara fork ettirdiğin temel şablonlarda buna dikkat et.

    Agent’ların ürettiği kod. Depolarda biriken kodun telif durumu, üreten modele ve kullanım şartlarına bağlıdır. git notes ile hangi prompt’un hangi commit’i ürettiğini kaydetmek, bu soruya sonradan cevap verebilmek açısından pratik bir alışkanlıktır.

    Sık yapılan hatalar

    Paket veya build deposu sanmak. Git deposu saklar; kategori hatası yapma.

    Kısa ve paylaşılan depo adı kullanmak. ${agentAdi}-${oturumId}-${depoAdi} biçimini kullan.

    Tek paylaşılan depoyu çok agent için kuyruk olarak kullanmak. Açıkça uyarılmış anti-desen.

    Uzun ömürlü write token dağıtmak. Varsayılan read olsun, TTL kısa olsun, oturum başına yeniden üret.

    İki token tipini karıştırmak. Cloudflare API token’ı kontrol düzlemi, Artifacts token’ı Git içindir.

    Token’ın tamamını Basic-auth URL’ine koymak. Önce ?expires= sonekini ayırman gerekir.

    import ve fork sonrası 409 Conflict durumunu ele almamak. İkisi de asenkron.

    refs/notes/* senkronizasyonunu unutmak. Agent metadata’sı sessizce kaybolur.

    Her şeyi tek namespace’e yığmak. Hız sınırları namespace başınadır.

    Token üreten uç noktayı kimlik doğrulamasız bırakmak. Docs’un kendi örneğinde bile uyarı var: “In production, authorize the caller before creating repos or returning tokens.”

    Sıkça sorulan sorular

    Artifacts build çıktısı veya paket deposu mu?
    Hayır — ve bu, adın yarattığı en yaygın yanlış anlama. Artifacts Git depoları saklar: versiyonlanmış dosya ağaçları. Docs sloganı net: “Versioned storage that speaks Git.” Paket kayıt defteri değil, container registry değil, build çıktısı deposu değil. GitHub Packages, Artifactory veya Amazon ECR'ın alternatifi değildir — bu bir kategori hatasıdır. Doğru zihinsel model: agent ölçeğinde programatik olarak oluşturulan Git remote'ları.
    Bugün kullanabilir miyim?
    Yalnızca betaya kabul edildiysen. Nisan 2026'dan beri kapalı beta ve bekleme listesi arkasında. Terminoloji resmî sayfalar arasında tutarsız: changelog ve blog “private beta”, dokümantasyon “closed beta”, pazarlama sayfası hiçbirini demeden “Join the waitlist” diyor. Üçü de erişimin kapalı olduğunda hemfikir.
    Public beta ne zaman geliyor?
    Söz verilmişti, gelmedi. 16 Nisan 2026 tarihli duyuru birebir şöyleydi: “Artifacts is launching in private beta, and we expect public beta to be ready in early May (2026, to be clear!).” 1 Eylül 2026 itibarıyla hâlâ kapalı beta ve public beta ya da GA duyuran hiçbir resmî sayfa yok.
    Ücretsiz katmanı var mı?
    Hayır. Limit tablosunda Workers Free için hem işlem hem depolama “Unavailable” yazıyor. Duyuru blogunda “We'll also be bringing Artifacts to the Workers Free plan (with some fair limits) as the beta progresses” deniyordu — bu da henüz gerçekleşmedi.
    R2 üzerine mi kurulu?
    Yalnızca içeride, snapshot'lar için. Kullanıcıya dönük depolama Durable Object SQLite'tır — her depo için bir Durable Object. Fiyatlandırma da ayrıdır ve çok daha pahalıdır: GB-ay başına 0,50 USD, R2'nin 0,015 USD'sine karşı — yaklaşık 33 kat. Bu farkı Git semantiği için ödüyorsun.
    Depo boyutu sınırı ne?
    Depo başına 10 GB, hesap başına 1 TB (talep üzerine artırılabilir). Depo ve namespace sayısında sınır yok. İkili varlık içeren büyük monorepo'lar 10 GB'a sığmayabilir.
    git push normal çalışıyor mu?
    Protokol v1 üzerinden evet. Ama protokol v2 ile push desteklenmiyor. Clone ve fetch her iki protokolde de çalışıyor. Bazı v1 yetenekleri de eksik: filter ve include-tag.
    GitHub'ın yerini alır mı?
    Hayır. Pull request yok, code review yok, issue yok, branch protection yok, ekip izin modeli yok. Erişim kontrolü depo başına iki kapsamlı (read/write) düz bir token sistemidir ve token'ları senin Worker'ın üretir. Docs bunu açıkça söylüyor: “Your Worker or API layer decides when to mint those tokens.” Bu bir işbirliği platformu değil, programlanabilir bir Git remote'udur.
    Agent'lar için neden Git?
    Cloudflare'in gerekçesi birebir şu: “Agents know Git. It's deep in the training data of most models.” Duyurudaki problem tanımı da şöyle: “Source control platforms are especially struggling here: they were built to meet the needs of humans, not a 10x change in volume driven by agents who never sleep.”
    Kaç depo oluşturmalıyım?
    Dokümanın kendi tavsiyesi radikal: “If you have 10,000 agents, create 10,000 repos.” Depo sayısı sınırsız ve izolasyon deponun kendisidir. Anti-desen olarak işaretlenen şey ise tersi: “Do not use one shared repo as a queue for many autonomous agents.”
    Token'ları nasıl yönetmeliyim?
    Resmî uyarı net: “Do not issue one long-lived write token to every agent. Mint the narrowest token you can, for the shortest time you can.” Token biçimi art_v1_<40 hex>?expires=<unix>, TTL 60 saniye ile 1 yıl arası. Dikkat: Cloudflare API token'ı ile depo token'ı farklı şeylerdir — ilki kontrol düzlemi, ikincisi Git içindir.
    Workers Builds ile entegre mi?
    Hayır — ve duyuru bu konuda yanıltıcı olmuş. Nisan 2026 blogu “We're also planning an API for Workers Builds” diyordu ama şipilen bu değil. 4 Ağustos 2026'da gelen CI özelliği Event Subscriptions → Workflows → @cloudflare/ci SDK → Sandbox snapshot zincirini kullanıyor, Workers Builds'i değil.
    Verimi AB'de tutabilir miyim?
    Evet. Namespace oluştururken eu veya us yargı bölgesi verilir. Ama dikkat: bu ayar sonradan değiştirilemez. Türkiye için tanımlı bölge yoktur.

    İlgili servisler

    • R2S3 uyumlu object storage — çıkış (egress) trafiği ücretsiz.
    • WorkersJavaScript/TypeScript/Python kodunu Cloudflare’in 330+ şehirdeki sunucularında, sunucu yönetmeden çalıştırır.
    • Durable ObjectsHer nesnenin tek bir instance’ı olan, state tutan compute; sohbet odası, oyun oturumu, sayaç gibi işler için.
    • SandboxesGüvenilmeyen kodu — özellikle LLM’in ürettiği kodu — izole bir Linux ortamında çalıştırır.
    • WorkflowsSaatler veya günler süren çok adımlı işleri, adım bazında kalıcı state ve otomatik retry ile yürütür.

    Bu sayfadaki fiyat ve özellik bilgileri 1 Eylül 2026 tarihinde Cloudflare’in resmî kaynaklarından doğrulanmıştır. Cloudflare fiyatlandırmasını önceden haber vermeden değiştirebilir; bağlayıcı bilgi içinresmî sayfaya bakın.

    Hata bildir

    Yanlış bir rakam, eskimiş bir bilgi veya bozuk bir bağlantı mı buldun? Bildir, kaynağıyla birlikte kontrol edelim.