Start the setup
Documentation menu

This page is written in Turkish. The navigation is in English. A version written for AI tools is linked below as Markdown.

Yayın: kod nasıl yayına girer

Devoplus One'da kod sizin makinenizden yayımlanmaz. Uygulamanın deposu Devoplus'ın dışa kapalı GitLab'ındadır; ona erişmeniz gerekmez. Kodu Devoplus API'si depoya yazar, platformun hattı kapılardan geçirir ve yayımlar.

Akış

Release pipeline1. ai/<topic> branch: the change and the AI-Assisted note 2. Merge request: pipeline checks run 3. Release request: your AI tool or one publish 4. Gates: validation, secret, code, dependency, continuity 5. Test (preview): shareable preview address 6. Uat and live: promotion gate; live needs approval1ai/<topic> branchthe change andthe AI-Assisted note2Merge requestpipeline checksrun3Release requestyour AI tool orone publish4Gatesvalidation, secret, code,dependency, continuity5Test (preview)shareablepreview address6Uat and livepromotion gate;live needs approvalRelease pipeline1. ai/<topic> branch: the change and the AI-Assisted note 2. Merge request: pipeline checks run 3. Release request: your AI tool or one publish 4. Gates: validation, secret, code, dependency, continuity 5. Test (preview): shareable preview address 6. Uat and live: promotion gate; live needs approval1ai/<topic> branchthe change andthe AI-Assisted note2Merge requestpipeline checksrun3Release requestyour AI tool orone publish4Gatesvalidation, secret, code,dependency, continuity5Test (preview)shareablepreview address6Uat and livepromotion gate;live needs approval
Code is never published from the developer's machine; the live deployment needs human approval.
  1. Uygulamanın kök dizininde one publish çalıştırın ya da yapay zeka aracınıza söyleyin. Komut projenin tam görüntüsünü test ortamının deposuna yükler (dizin bir git deposuysa .gitignore git'in kurallarıyla uygulanır) ve yayını başlatır. Bağımlılıklar, yerel durum klasörleri, .gitlab-ci.yml ve sır dosyaları (.env, .env.*, .dev.vars) yüklenmez.
  2. Yükleme test dalına tek commit olarak yazılır; commit'te sizin adınız ve --message ile verdiğiniz açıklama durur.
  3. Hat kapılardan geçer ve test ortamına yayımlar. Hat durursa one pipeline hangi işin neden durduğunu gösterir.
  4. Ortam sırası test, uat ve canlıdır. Test'ten uat'a one promote ile (uat ortamında oturum açarak) siz ya da yapay zeka aracınız taşır. Canlıya terfiyi uygulamanın sahibi Portal'daki Devoplus One Uygulamalarım ekranından, şirket yöneticisi Devoplus Console'dan yapar; yapay zeka aracı canlıda yayın isteyemez.

Hattı uygulama deposu tanımlamaz: deponuza .gitlab-ci.yml ya da başka bir hat dosyası yazılmaz, platformun hattı koşar. pnpm-lock.yaml depoya girer; postinstall gibi kurulum betikleri eklenmez.

Kapılar: yayını durduran şeyler

KapıDurdururNe yapmalısınız
DoğrulamaGeçersiz one.manifest.json, eksik README.md ya da AGENTS.mdManifest kurallarına uyun
Yapay zeka rehberiManifest agent.tools beyan ediyor ama AGENT_GUIDE.md yok ya da eksik (uyarı değil, hata)Rehberi yazın
Veri modelione.data.json değişmiş ama one data generate çalıştırılmamış (şema değişikliği dosyası, tipler ya da anlık görüntü güncel değil)one data generate çalıştırıp üretilen dosyaları depoya ekleyin
ArayüzSatır içi <script>, başka adresten betik, satır içi olay işleyicisi (onclick="..."), javascript: adresiBetikleri uygulamayla birlikte sunun, olayları köprü ya da betik dosyasında bağlayın
Sır taramasıDepoya girmiş API anahtarı, belirteç, parola, özel anahtar, .env ya da .dev.varsSır yazmayın; gerçek olmayan bulgu .one-secrets-ignore dosyasına parmak izi ve gerekçeyle yazılır
Kod güvenliğiYüksek önemli güvenlik bulgusu (ör. kullanıcı girdisinin eval ya da innerHTML'e gitmesi)Kodu düzeltin; gerçek olmayan bulgu .one-sast-ignore dosyasına parmak izi ve gerekçeyle yazılır
BağımlılıkBilinen açığı olan paketSürümü yükseltin; günlük taramanın önerdiği yama için aşağıdaki "Bağımlılık açığı"
SüreklilikUygulanmış bir şema değişikliği dosyasının değişmesi, sıra dışı dosya, DROP TABLE, ALTER ... DROP/RENAME ya da WHERE'siz DELETEYeni numaralı bir şema değişikliği dosyası ekleyin; eski sütunu bir sonraki sürümde kaldırın
SürümYayındakinden düşük sürümapp.version'ı artırın
Terfi (platform açtıysa)Canlıya, uat'ta doğrulanmamış sürümÖnce uat'a dağıtın

Bir kapı durduğunda hattın çıktısını one pipeline ile okuyun, düzeltin ve yeniden yükleyin.

Hattan önce reddedilen yayın (bu denetim Devoplus'ın uygulamalar arası okuma güncellemesiyle gelir; o yayına alınana kadar yayın eskisi gibi hatta denetlenir ve başarısız yayında one pipeline incelenir): Devoplus her yayın ve terfide, hat başlamadan yayınlanacak commit'teki manifesti denetler (ONE-APP-E-164 her uygulamada; -162 ve -163 yalnız exports beyan eden uygulamada). Bu durumda hat açılmaz, one pipeline incelenecek bir iş göstermez; yanıt doğrudan 409 ve hata kodudur (manifest "Yayın kuralları"). Geri almada bu denetim yapılmaz:

KodNedenNe yapmalısınız
ONE-APP-E-163Aynı ad ve sürümdeki bir dışa açımın açıklaması, izni ya da şeması değişmişDeğişikliği yeni bir version ile beyan edin; eskisini alan uygulamalar geçene kadar birlikte sunun
ONE-APP-E-162Aynı portalda onaylı olarak okunan bir dışa açım sürümü kaldırılmış (yanıt alan uygulamayı adlandırır)Sürümü geri ekleyin; alan uygulama yeni sürüme geçip onay alana kadar ikisini birlikte sunun
ONE-APP-E-164Yayınlanacak commit'teki one.manifest.json yok, başka uygulamaya ait ya da exports / imports geçersizManifesti düzeltip yeniden yükleyin

SDK sürümü (uyarı, yayını durdurmaz): kurulu @devoplus/one-sdk asgari sürümden (bugün 0.2.0-next.158) eskiyse ya da sürümü okunamıyorsa (kilit dosyası yoksa) hat çıktısında ⚠ SDK: ile başlayan bir satır görünür. SDK'yı güncelleyin (pnpm add @devoplus/one-sdk@latest (kurulu SDK ön sürümse @next), ardından npx one upgrade (sürümü tam sabitler, one.manifest.json sdkVersion alanını ve AGENTS.md'nin platform kuralları bölümünü yazar)), testleri çalıştırın ve pnpm-lock.yaml, one.manifest.json, one.platform-state.json ve AGENTS.md'yi de yükleyin. Platform bu denetimi ileride zorlayıcı yapabilir; o zaman eski SDK yayını durdurur.

SDK beyanı: one.manifest.json'daki sdkVersion uygulamanın derlendiği SDK sürümüdür ve elle yazılmaz. Kurulu SDK sürümünden farklıysa yayın durur (ONE-RULE-007); SDK 0.3.0 ve sonrasında alan eksikse de durur (ONE-RULE-008). İkisinin çaresi npx one upgrade'dir. Ayrıntı: Manifest.

Güncelleme döngüsü: var olan bir uygulamaya yeni sürüm çıkarılırken SDK güncellenir (pnpm add @devoplus/one-sdk@latest (kurulu SDK ön sürümse @next), ardından npx one upgrade), yapay zeka aracınız Devoplus One sunucusundan işlenmiş durumdan bu yana gelen kuralları ve sürüm notlarını okur, npx one doctor bulgularını düzeltir ve npx one upgrade --complete ... ile işlenmiş durumu ilerletir. Sunucunun listesi hattınkinden eski olabilir; esas olan hattın çıktısıdır. Komutun ayrıntısı SDK başvurusundadır.

Yerel denetim: npx one doctor, hattın kataloğa bağlı kapılarını (manifest, veri modeli, arayüz, SDK beyanı) kurulu SDK'nın katalog kopyasıyla yerelde çalıştırır ve bulguları kural kimliği, düzeyi, konumu ve düzeltme satırıyla yazar; dosyaya dokunmaz, zorunlu bulguda çıkış kodu 1'dir. Belge ve ajan rehberi kapıları, giriş dosyası denetimi, SDK asgari sürüm denetimi, sır, bağımlılık, kod güvenliği ve süreklilik taramaları yalnız hatta çalışır. Katalog kopyası hattınkinden eski olabileceği için esas olan hattın çıktısıdır.

Silme (uyarı, yayını durdurmaz): kodda ya da migration'da DELETE FROM (kalıcı silme) ya da onay sorulmadan gönderilen DELETE isteği hat çıktısında ⚠ arayüz: ile başlayan bir satır olarak görünür. Kural yine zorunludur: yumuşak silin (deleted_at), isteği one.remove(...) ile gönderin; gerçekten gerekiyorsa ya da uyarı yanlışsa gerekçeli yorum yazın (Silme ve pasife alma). Tarama her biçimi yakalamaz, bu yüzden yayını durdurmaz. Veri modelinde (one.data.json) gerekçesiz "softDelete": false ise uyarı değildir: veri modeli kapısı yayını durdurur.

Tek komutla yayın, önizleme, terfi ve geri alma

GitLab'a girmeniz gerekmez: yayını siz istersiniz, Devoplus isteği kaydeder ve hattı kendisi başlatır. Hattın kapıları (yukarıdaki tablo) bu yolda da aynen çalışır; hiçbiri atlanmaz. Yapay zeka aracınız aynı işleri Devoplus One bağlantısı üzerinden yapabilir.

İşKomut
Kodu yükleyip test ortamına yayınlama (önizleme)one publish [--portal <anahtar>] [--message <açıklama>]
Depodaki kodu yeniden yayınlama (yüklemeden)one publish --no-upload
Hat ve iş günlüğüone pipeline [--deployment <kimlik>] [--job <iş>]
Test'ten uat'a terfione promote [--portal <anahtar>] (uat oturumuyla)
Önceki sürüme geri alma (test, uat)one rollback [--portal <anahtar>] [--to <x.y.z>] --yes
Yayın isteklerinin durumuone deployments [--portal <anahtar>]
Bağımlılık taraması ve önerilen yamaone deps patch [--ref test|uat|main] [--apply]
  • Komutlar one login oturumuyla çalışır; uygulamanın kısa adı one.manifest.json'dan okunur (--app ile de verilebilir). --portal verilmezse istek portal anahtarı taşımaz ve kurulumu sunucu seçer.
  • Kodu yalnız uygulamanın sahibi (ya da platform yöneticisi) yükleyebilir. Yayın isteğini sahip ya da o portalın şirket yöneticisi gönderebilir. Vekalet ya da Yerine Görüntüle oturumunda yükleme ve istek gönderilmez.
  • Önizleme test ortamıdır. one publish her zaman test ortamına yayınlar. Hat bittiğinde uygulama https://<kısa-ad>-<portal>.test-one.devoplus.dev adresinde çalışır ve test Portal'ından açılır; bu adres paylaşılabilir önizlemedir.
  • Terfi yalnız bir önceki ortamda doğrulanmış ve başarıyla yayınlanmış kodu taşır (terfi kapısı).
  • Geri alma uygulamayı önceki sürüme (ya da --to ile verilen sürüme) döndürür. Kod sürüm etiketinden alınır; etiketi Devoplus her terfide kendisi yazar (v<sürüm>, sürüm one.manifest.json içindeki app.version). Hiç terfi etmemiş sürüme dönülemez; --to verilmezse dalın ucundaki sürümden küçük en büyük etiket seçilir. Geri alınan kod da bütün kapılardan yeniden geçer. ⛔ Veritabanı da o sürümün yapısına dönmek zorundaysa dönülen noktadan sonra kaydedilen veriler kaybolur ve bu geri alınamaz; komut bu yüzden --yes olmadan çalışmaz.
  • Yanıt "Yayın hattı bu ortamda yapılandırılmamış" derse o ortamda tek komutla yayın henüz açık değildir.
  • İsteğin sonucunu one deployments, hattın işlerini one pipeline ile izleyin; hat durursa günlüğü okuyun, düzeltin ve yeniden yükleyin.

Bağımlılık açığı: günlük tarama ve yama

Devoplus uygulamanızın bağımlılıklarını her gün bilinen güvenlik açıklarına karşı tarar (test dalı; uat ve main varsa onlar da). Açık bulunursa ve düzeltilmiş sürüm varsa platform bir yama önerir (package.json ve pnpm-lock.yaml). Yama kendiliğinden uygulanmaz ve depoda birleştirme isteği açılmaz: kodun doğru kaynağı sizin yerel kopyanızdır.

  • one deps patch bulguları ve yamayı gösterir, hiçbir dosya yazmaz. --ref verilmezse test; yama yalnız test için önerilir, uat ve main yalnız taranır.
  • one deps patch --apply yamayı uygulamanın dizinine uygular: yalnız bu iki dosya değişir, commit atılmaz. Bu dosyalarda kaydedilmemiş değişiklik varsa, git yoksa ya da yama yerel koda uymuyorsa hiçbir dosyaya dokunulmaz.
  • Sonra bağımlılıkları kurun, pnpm test ve one build çalıştırın ve one publish ile yükleyin. Yapay zeka aracınız aynı işi Devoplus One bağlantısı üzerinden yapabilir.
  • Bulguları yalnız uygulamanın sahibi ya da platform yöneticisi görebilir.

Yayından sonra

  • Uygulamanın görünmesi için kurulum ve menü izni gerekir (başlangıç, 5. adım).
  • Olay ve hata kayıtları platform günlüğündedir (logEvent, logError); kişisel veri ya da sır yazmayın.
  • Kullanım ve hatalar kullanım ve hata panosunda görünür; bir sorun bildirildiğinde önce oraya bakın.
  • Yedekleme platform ekibinin işidir; sizden bir adım beklenmez.

The version of this topic written for AI tools (Markdown): /docs/publishing.md

Ready to turn your idea into an app?

Paste the setup text into your AI tool; it starts by asking what you want to build.