Geliştir API
Geliştir modülünün tüm işlemleri (10) ve veri modelleri (2): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Fikrinizi gerçek bir uygulamaya dönüştürün: Era onu kendi yapı taşlarından kurar ya da kodlama araçlarınız deponuzu değiştirir ve Era önizlemeli bir pull request açar.
Modül kodu build · 10 işlem · 2 veri modeli · 6 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: build (hepsi), build:read (yalnız okuma) ya da build:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
build_projects | build_project | /api/v1/build_projects | |||
build_runs | build_run | /api/v1/build_runs |
Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.
İşlemler
| İşlem | Gereken izin | Ne yapar |
|---|---|---|
build.archive_project | build:delete | Projeyi arşivle |
build.cancel_run | build:write | Yapımı durdur |
build.complete_run | build:handle | Yapımı bitir |
build.create_project | build:write | Proje başlat |
build.fail_run | build:handle | Yapımı başarısız say |
build.record_preview | build:handle | Önizlemeyi kaydet |
build.record_progress | build:handle | Yapım ilerlemesini kaydet |
build.record_publish | build:handle | Uygulamanın yayına alındığını kaydet |
build.request_run | build:write | Bir şey kur ya da değiştir |
build.update_project | build:write | Projeyi değiştir |
build.archive_project
Projeyi arşivle — Projeler listesinden kaldırır. Sitesine, deposuna ve pull request’lerine dokunulmaz.
Gereken izin build:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/build_projects/{id}/actions/archive_project- Asıl adres:
POST /api/v1/actions/build.archive_project
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Proje · kimliği: build_project |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Bu proje bu çalışma alanında bulunamadı. |
run_open | Bu projede devam eden bir kurulum var. |
Neye yazar: build_project (update) — → archived
curl -X POST https://app.getera.io/api/v1/build_projects/BUILD_PROJECT_ID/actions/archive_project \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": []
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.buildProjects.archiveProject("BUILD_PROJECT_ID")era build_projects archive_project BUILD_PROJECT_ID{
"name": "era__build__archive_project",
"arguments": {
"id": "BUILD_PROJECT_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, run_open · 429 çok sık istek
build.cancel_run
Yapımı durdur — Durdurur; bilgisayardaki kodlama aracı da durur. Hiçbir şey commit edilmez.
Gereken izin build:write · siler ya da geri alınamaz
https://app.getera.io/api/v1/build_runs/{id}/actions/cancel_run- Asıl adres:
POST /api/v1/actions/build.cancel_run
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Geliştir · kimliği: build_run |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Bu kurulum bulunamadı. |
run_closed | Yalnızca devam eden bir kurulum durdurulabilir. |
Neye yazar: build_run (update) — → cancelled; build_project (update) — Back to ready or draft
curl -X POST https://app.getera.io/api/v1/build_runs/BUILD_RUN_ID/actions/cancel_run \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": []
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.buildRuns.cancelRun("BUILD_RUN_ID")era build_runs cancel_run BUILD_RUN_ID{
"name": "era__build__cancel_run",
"arguments": {
"id": "BUILD_RUN_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, run_closed · 429 çok sık istek
build.complete_run
Yapımı bitir — Kurulanı kaydeder: pull request ve dosyaları ya da kurulan uygulama ve yayın adresi. Yalnızca sistem.
Gereken izin build:handle · veriyi değiştirir
403 machine_only).https://app.getera.io/api/v1/build_runs/{id}/actions/complete_run- Asıl adres:
POST /api/v1/actions/build.complete_run
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Geliştir · kimliği: build_run |
summary | string | Özet · en çok 8000 | |
commitSha | string | Commit et · en çok 64 | |
prNumber | number | Pull request · en az 1 | |
prUrl | string | Pull request adresi · en çok 500 | |
previewUrl | string | Önizle · en çok 500 | |
liveUrl | string | Canlı adres · en çok 500 | |
filesChanged | number | Değişen dosya sayısı · en az 0 | |
changes | object / array | Değişen dosyalar | |
usage | object / array | Kullanım | |
siteId | uuid | Site | |
blueprintCode | string | Hazır kurulum · en çok 80 | |
plan | object / array | Ne hazırlandı | |
awaitingPublish | boolean | Taslakta durdu | |
externalUrl | string | Expo derleme sayfası · en çok 500 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Bu kurulum bulunamadı. |
run_closed | Bu kurulum zaten bitmiş. |
Yayımladığı olaylar: build.run_succeeded
Neye yazar: build_run (update) — → succeeded, with its result; build_project (update) — → ready, with its preview / live address
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, run_closed · 429 çok sık istek
build.create_project
Proje başlat — Era’nın kendi yapı taşlarından kurduğu bir uygulama ya da kodlama araçlarınla üzerinde çalıştığı bir kod deposu.
Gereken izin build:write · veriyi değiştirir
https://app.getera.io/api/v1/build_projects/actions/create_project- Asıl adres:
POST /api/v1/actions/build.create_project
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
kind | string (enum) | evet | Tür · İzin verilen değerler: app, code |
name | string | evet | Ad · en çok 160 |
description | string | Nedir · en çok 4000 | |
credentialId | uuid | GitHub / GitLab bağlantısı · kimliği: credential | |
repoProvider | string (enum) | Sağlayıcı · İzin verilen değerler: github, gitlab | |
repoFullName | string | Depo · owner/name · en çok 200 | |
repoUrl | string | Depo adresi · en çok 400 | |
defaultBranch | string | Ana dal · en çok 200 | |
harness | string | Kodlama aracı · claude = Claude Code · codex = Codex · gemini = Antigravity · grok = Grok Build · copilot = Copilot CLI · cursor = Cursor CLI · kimi = Kimi Code CLI · vibe = Mistral Vibe · opencode = opencode · amp = Amp CLI · kiro = Kiro CLI · cline = Cline CLI · auggie = Auggie CLI · en çok 32 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
empty_name | Projenin bir adı olmalı. |
repo_incomplete | Depo için bağlantı, sağlayıcı ve tam ad birlikte gerekiyor. |
credential_not_found | Depo bağlantısı bu çalışma alanının bir GitHub ya da GitLab bağlantısı olmalı. |
connection_not_usable | Bağlantı kişinin kendisine ya da çalışma alanına ait olmalı veya kişiyle paylaşılmış olmalı. |
harness_not_supported | Kodlama aracı, Harness Manager’ın çalıştırdığı araçlardan biri olmalı. |
Yayımladığı olaylar: build.project_created
Neye yazar: build_project (insert) — Writes the project
curl -X POST https://app.getera.io/api/v1/build_projects/actions/create_project \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"kind":"app","name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"build.project_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.buildProjects.createProject({
kind: "app",
name: "Name"
})era build_projects create_project \
--kind "app" \
--name "Name"{
"name": "era__build__create_project",
"arguments": {
"kind": "app",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_name, repo_incomplete, credential_not_found, connection_not_usable, harness_not_supported · 429 çok sık istek
build.fail_run
Yapımı başarısız say — Neden ve hangi adımda durduğunu kaydeder. Yalnızca sistem.
Gereken izin build:handle · veriyi değiştirir
403 machine_only).https://app.getera.io/api/v1/build_runs/{id}/actions/fail_run- Asıl adres:
POST /api/v1/actions/build.fail_run
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Geliştir · kimliği: build_run |
error | string | Neden · en çok 2000 | |
step | string | Adım · en çok 40 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Bu kurulum bulunamadı. |
run_closed | Bu kurulum zaten bitmiş. |
Yayımladığı olaylar: build.run_failed
Neye yazar: build_run (update) — → failed; build_project (update) — → failed, unless an earlier build left it ready
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, run_closed · 429 çok sık istek
build.record_preview
Önizlemeyi kaydet — Pull request’in önizleme yayını göründü (Vercel, Netlify, Cloudflare Pages…). Yalnızca sistem.
Gereken izin build:handle · veriyi değiştirir
403 machine_only).https://app.getera.io/api/v1/build_runs/{id}/actions/record_preview- Asıl adres:
POST /api/v1/actions/build.record_preview
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Geliştir · kimliği: build_run |
previewUrl | string | evet | Önizle · en çok 500 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Yalnızca biten bir derlemenin önizlemesi olur. |
bad_url | Önizleme bir web adresidir. |
Yayımladığı olaylar: build.preview_ready
Neye yazar: build_run (update) — Sets the preview; build_project (update) — Sets the project’s latest preview
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, bad_url · 429 çok sık istek
build.record_progress
Yapım ilerlemesini kaydet — Yapımı bir sonraki adıma taşır (depo hazırlanıyor, kod yazılıyor, pull request açılıyor). Yalnızca sistem.
Gereken izin build:handle · veriyi değiştirir
403 machine_only).https://app.getera.io/api/v1/build_runs/{id}/actions/record_progress- Asıl adres:
POST /api/v1/actions/build.record_progress
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Geliştir · kimliği: build_run |
status | string (enum) | Durum · İzin verilen değerler: waiting, running | |
step | string | Adım · en çok 40 | |
stepStatus | string (enum) | Adım durumu · İzin verilen değerler: doing, done, failed, skipped | |
detail | string | Ayrıntı · en çok 300 | |
harness | string | Kodlama aracı · en çok 20 | |
deviceId | string | Bilgisayar · en çok 64 | |
runnerJobId | string | Çalıştırıcı işi · en çok 64 | |
branch | string | Dal · en çok 200 | |
baseBranch | string | Temel dal · en çok 200 | |
baseSha | string | Temel commit · en çok 64 | |
externalId | string | Expo derlemesi · en çok 120 | |
externalUrl | string | Expo derleme sayfası · en çok 500 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Bu kurulum bulunamadı. |
run_closed | Bu kurulum zaten kapanmış. |
Neye yazar: build_run (update) — Status, step and where it runs
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, run_closed · 429 çok sık istek
build.record_publish
Uygulamanın yayına alındığını kaydet — Kişi taslağı onayladı ve sitesi yayına alındı. Yalnızca sistem: yayın adresini kaydeder.
Gereken izin build:handle · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
403 machine_only).https://app.getera.io/api/v1/build_projects/{id}/actions/record_publish- Asıl adres:
POST /api/v1/actions/build.record_publish
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Proje · kimliği: build_project |
liveUrl | string | evet | Canlı adres · en çok 500 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
bad_url | Yayın adresi bir web adresidir. |
not_found | Bu proje bulunamadı. |
not_draft | Yalnızca taslakta bekleyen bir uygulama yayına alınır. |
Yayımladığı olaylar: build.app_published
Neye yazar: build_project (update) — → live, with its address; build_run (update) — The last app run’s "live" step done
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 bad_url, not_found, not_draft · 429 çok sık istek
build.request_run
Bir şey kur ya da değiştir — Uygulama projesinde: Era uygulamayı yapı taşlarından (modüller, iş akışları, Era’lar, site) kurar ve yayına almadan önce taslak olarak gösterir — “yayına al” dersen hemen yayına alır. Bağlı bir depo varsa kodlama aracın (Claude Code, Codex, Antigravity, Copilot, Cursor… Harness Manager’ın çalıştırdığı her biri) kodu bilgisayarında değiştirir, Era önizlemeli bir pull request açar; “mobile” Expo’dan iPhone / Android derlemesi ister.
Gereken izin build:write · veriyi değiştirir
https://app.getera.io/api/v1/build_projects/{id}/actions/request_run- Asıl adres:
POST /api/v1/actions/build.request_run
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
projectId | uuid | evet | Doldurulduğu yer: adresteki {id} · Proje · kimliği: build_project |
prompt | string | evet | Ne yapılacak ya da değişecek · en çok 8000 |
mode | string (enum) | Çalıştırma türü · İzin verilen değerler: compose, code, mobile | |
publish | boolean | Bitince yayımla | |
harness | string | Kodlama aracı · claude = Claude Code · codex = Codex · gemini = Antigravity · grok = Grok Build · copilot = Copilot CLI · cursor = Cursor CLI · kimi = Kimi Code CLI · vibe = Mistral Vibe · opencode = opencode · amp = Amp CLI · kiro = Kiro CLI · cline = Cline CLI · auggie = Auggie CLI · en çok 32 | |
deviceId | string | Bilgisayar · en çok 64 | |
via | string (enum) | Nereden istendi · İzin verilen değerler: web, era, work, phone, workflow, desktop | |
workStepId | uuid | Plan adımı |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
empty_prompt | Ne yapılacağını yazın. |
not_found | Bu proje bulunamadı ya da arşivlenmiş. |
no_repo | Kodu değiştirmek ya da telefon için derlemek için deponun bağlı olması gerekiyor. |
no_mobile | Telefon derlemesi için Expo projesinin ayarlanması gerekiyor. |
harness_not_supported | Kodlama aracı, Harness Manager’ın çalıştırdığı araçlardan biri olmalı. |
connection_not_usable | Deponun bağlantısı, isteyen kişi tarafından kullanılabilir olmalı. |
run_open | Bu projede zaten devam eden bir kurulum var. |
Yayımladığı olaylar: build.run_requested
Neye yazar: build_run (insert) — Queues the run with its steps; build_project (update) — → building
curl -X POST https://app.getera.io/api/v1/build_projects/BUILD_PROJECT_ID/actions/request_run \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"prompt":"What to build or change"}'{
"ok": true,
"result": "…",
"events": [
"build.run_requested"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.buildProjects.requestRun("BUILD_PROJECT_ID", {
prompt: "What to build or change"
})era build_projects request_run BUILD_PROJECT_ID \
--prompt "What to build or change"{
"name": "era__build__request_run",
"arguments": {
"projectId": "BUILD_PROJECT_ID",
"prompt": "What to build or change"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_prompt, not_found, no_repo, no_mobile, harness_not_supported, connection_not_usable, run_open · 429 çok sık istek
build.update_project
Projeyi değiştir — Adını, açıklamasını değiştir, deposunu (bir uygulamanın özel kodu da) bağla, kodlama aracını ve bilgisayarı seç ya da telefon derlemeleri için Expo projesini ayarla.
Gereken izin build:write · veriyi değiştirir
https://app.getera.io/api/v1/build_projects/{id}/actions/update_project- Asıl adres:
POST /api/v1/actions/build.update_project
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Proje · kimliği: build_project |
name | string | Ad · en çok 160 | |
description | string | Nedir · en çok 4000 | |
credentialId | uuid | GitHub / GitLab bağlantısı · kimliği: credential | |
repoProvider | string (enum) | Sağlayıcı · İzin verilen değerler: github, gitlab | |
repoFullName | string | Depo · owner/name · en çok 200 | |
repoUrl | string | Depo adresi · en çok 400 | |
defaultBranch | string | Ana dal · en çok 200 | |
harness | string | Kodlama aracı · claude = Claude Code · codex = Codex · gemini = Antigravity · grok = Grok Build · copilot = Copilot CLI · cursor = Cursor CLI · kimi = Kimi Code CLI · vibe = Mistral Vibe · opencode = opencode · amp = Amp CLI · kiro = Kiro CLI · cline = Cline CLI · auggie = Auggie CLI · en çok 32 | |
deviceId | string | Bilgisayar · Eşlenmiş bir bilgisayar (Era Desktop veya bulut bilgisayar); boş = açık olan ilki. · en çok 64 | |
expoProjectId | string | Expo projesi (telefon derlemeleri) · expo.dev → projen → Project ID. Boş = telefon derlemesi yok. · en çok 64 | |
platforms | object / array | Telefonlar · ["ios","android"] |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_found | Bu proje bu çalışma alanında bulunamadı. |
empty_name | Projenin bir adı olmalı. |
repo_incomplete | Depo için bağlantı, sağlayıcı ve tam ad birlikte gerekiyor. |
credential_not_found | Depo bağlantısı bu çalışma alanının bir GitHub ya da GitLab bağlantısı olmalı. |
connection_not_usable | Bağlantı kişinin kendisine ya da çalışma alanına ait olmalı veya kişiyle paylaşılmış olmalı. |
harness_not_supported | Kodlama aracı, Harness Manager’ın çalıştırdığı araçlardan biri olmalı. |
bad_mobile | Telefon derlemesi için Expo projesi (bir uuid) ve iPhone ve/veya Android belirtilmeli. |
Neye yazar: build_project (update) — Changes the project
curl -X POST https://app.getera.io/api/v1/build_projects/BUILD_PROJECT_ID/actions/update_project \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"Name"}'{
"ok": true,
"result": "…",
"events": []
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.buildProjects.updateProject("BUILD_PROJECT_ID", {
name: "Name"
})era build_projects update_project BUILD_PROJECT_ID \
--name "Name"{
"name": "era__build__update_project",
"arguments": {
"id": "BUILD_PROJECT_ID",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde build:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, empty_name, repo_incomplete, credential_not_found, connection_not_usable, harness_not_supported, bad_mobile · 429 çok sık istek
Veri modelleri
BuildProject
Tablo build_project · Kaynak build_projects
GET /api/v1/build_projectsGET /api/v1/build_projects/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
created_by | string (uuid) · uuid | evet | app_user | |
kind | string · text | app, code | ||
name | string · text | |||
description | string · text | evet | ||
status | string · text | draft, building, ready, failed, archived | ||
repo_provider | string · text | evet | ||
repo_full_name | string · text | evet | ||
repo_url | string · text | evet | ||
default_branch | string · text | evet | ||
harness | string · text | evet | ||
device_id | string · text | evet | ||
blueprint_code | string · text | evet | ||
plan | object · jsonb | |||
site_id | string (uuid) · uuid | evet | ||
preview_url | string · text | evet | ||
live_url | string · text | evet | ||
last_run_id | string (uuid) · uuid | evet | ||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz | |||
site_state | string · text | evet | ||
mobile | object · jsonb |
Birincil anahtar: id
Denetimler:
CHECK (((harness IS NULL) OR (harness ~ '^[a-z][a-z0-9_]{1,31}$'::text)))CHECK ((length(btrim(name)) > 0))CHECK (((repo_provider IS NULL) OR (repo_provider = ANY (ARRAY['github'::text, 'gitlab'::text]))))CHECK (((site_state IS NULL) OR (site_state = ANY (ARRAY['draft'::text, 'live'::text]))))
BuildRun
Tablo build_run · Kaynak build_runs
GET /api/v1/build_runsGET /api/v1/build_runs/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
project_id | string (uuid) · uuid | build_project | ||
created_by | string (uuid) · uuid | evet | app_user | |
kind | string · text | compose, code, mobile | ||
prompt | string · text | |||
status | string · text | queued, waiting, running, succeeded, failed, cancelled | ||
steps | object · jsonb | |||
harness | string · text | evet | ||
device_id | string · text | evet | ||
runner_job_id | string · text | evet | ||
branch | string · text | evet | ||
base_branch | string · text | evet | ||
base_sha | string · text | evet | ||
commit_sha | string · text | evet | ||
pr_number | integer · int4 | evet | ||
pr_url | string · text | evet | ||
preview_url | string · text | evet | ||
live_url | string · text | evet | ||
files_changed | integer · int4 | |||
changes | object · jsonb | |||
summary | string · text | evet | ||
error | string · text | evet | ||
usage | object · jsonb | evet | ||
requested_via | string · text | web, era, work, phone, workflow, desktop | ||
work_step_id | string (uuid) · uuid | evet | ||
started_at | string (date-time) · timestamptz | evet | ||
finished_at | string (date-time) · timestamptz | evet | ||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz | |||
publish | boolean · bool | evet | ||
external_id | string · text | evet | ||
external_url | string · text | evet |
Birincil anahtar: id
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
build.app_published | Bir uygulamanın taslağı onaylandı ve yayında. | projectId, liveUrl, recipientUserId |
build.preview_ready | Bir pull request’in önizlemesi bakmaya hazır. | id, projectId, previewUrl, recipientUserId |
build.project_created | Bir proje başlatıldı (uygulama ya da kod deposu). | id, kind, name |
build.run_failed | Bir derleme tamamlanamadı. | id, projectId, error, recipientUserId |
build.run_requested | Biri (ya da Era) bir derleme başlatılmasını istedi. | id, projectId, kind, harness |
build.run_succeeded | Bir derleme bitti: pull request açıldı ya da uygulama yayında. | id, projectId, kind, prUrl, previewUrl, liveUrl, awaitingPublish, recipientUserId |