Railshot
AI deployment & operations platform
Lokaalselt ehitatud veebirakendus ettevalmistatud pilve- ja kohapealsetesse keskkondadesse juurutamiseks ja käitamiseks.
AI-põhine juurutus- ja käitusplatvorm, mis viib lokaalselt ehitatud veebirakenduse ettevalmistatud pilve- või kohapealsetesse keskkondadesse ja hoiab seda töös.
Railshot vocabulary
- intake
- checks
- repair
- publish
- rollout
- route
- probe
- source commit
- digest
- binding
- unknown
- resume
- observation
Intake: deploy_repository · deploy_local_project · OAUTH MCP · Idempotency-Key · IDEMPOTENCY_CONFLICT · 202 ACCEPTED · EXECUTOR_BUSY · CAPACITY_EXCEEDED · maxConcurrentDeployments · workflow_dispatch · TARGET ALLOWLIST · reconciliation_required · CI_DISPATCH_UNCONFIRMEDChecks: package.policy · package.spec · source.quality · image.build · image.runtime · image.scan · GATE_ORDER · verdict.json · release_eligible · GATE VERDICT · SECRET SCAN · --cap-drop=ALL · source_change_allowed · verify_imagesAI Repair: GATE VERDICT · FIXABLE · give_up · PROMPT INJECTION · FAILURE SIGNATURE · REPAIR_SCOPE · MAX_REPAIR_ATTEMPTS · claude-agent-sdk · openai-codex · fixer · lessons.md · source_change_allowed · SDK_OUTCOME_UNKNOWNPublish: release_eligible · GHCR · images.json · EXACT TESTED BUNDLE · GITHUB-HOSTED RELEASE · published · publication_unverified · MANIFEST INSPECT · REGISTRY_VISIBILITY · publish-journal · railshot-release · containerd-snapshotter · images.tar · handoff.jsonRollout: bridge.py · workload.json · CONFIG GIT · pushing · REMOTE READBACK · ARGO CD · Synced · Healthy · targetRevision · sync_requested · NO PRUNE, NO FORCE · NetworkPolicy · readinessProbe · observed_images · NEVER BLINDLY RETRYPublic Route: routing · SHARED ALB · aws_lb_listener_rule · aws_lb_target_group · aws_route53_record · NodePort · LISTENER OWNERSHIP · GCP_ROUTE_APPLY_TIMEOUT · GCP_CERTIFICATE_DNS_FAILED · WireGuardHealth Probe: public_probe · site_probe · railshot-health/1 · NO PROXY, NO REDIRECT · expected_json · HTTPS 200 · verified_at · public_http · health_path · readinessProbe · probe_successSource Commit: workflow_dispatch · targetRevision · Railshot-Request · Railshot-Target · source_commit · source_parent · force: false · source_digest · snapshot.json · GITHUB_SHA · PLATFORM_REF · harness_sha256 · SUBMITTED SOURCE CHANGED · source_preparedImage Digest: GHCR · images.json · MANIFEST INSPECT · source_digest · IMMUTABLE GHCR DIGEST · images_sha256 · observed_images · PULL BY DIGEST · imagePullSecrets · containerd-snapshotter · RESUME_PUBLICATION_CHANGED · verify_images · images.tarRun Binding: Idempotency-Key · published · Railshot-Request · Railshot-Target · handoff.json · producer_attempt · bundle_artifact_id · run_id · state.bindings · CI_BINDING_MISMATCH · DEPLOYMENT BINDING CONFLICT · config_sha256 · TARGET ALLOWLIST · registered_applicationUnknown Outcome: publication_unverified · pushing · GCP_ROUTE_APPLY_TIMEOUT · outcome_unknown · CD_RECONCILE_REQUIRED · reconciliation_required · CD_OUTCOME_UNKNOWN · SDK_OUTCOME_UNKNOWN · unknown_timeout · CI_DISPATCH_UNCONFIRMED · NEVER BLINDLY RETRY · after_reconcile · reconcile_remote · CI_DISPATCH_NOT_IDENTIFIED · READ-ONLY OBSERVEResume: publish-journal · source_parent · RESUME_PUBLICATION_CHANGED · --resume · state.sqlite3 · resumePrepared · findDeployment · recoverDispatch · source_prepared · CI_DISPATCH_NOT_IDENTIFIED · resume_count · SAME WORKFLOW RUN · INTERRUPTEDObservation: observationRetry · next_retry_at · consecutive_failures · no_data · stale · collection_failed · NOT A SUCCESS GATE · probe_success · PROMETHEUS · BLACKBOX EXPORTER · READ-ONLY OBSERVE
Veebivaade ja kasutaja oma agent taotlevad juurutamist sama toote API kaudu.
Toode vastu võetud juurutustaotlusest CI kontrollide ja tõmmise avaldamise kaudu Giti konfiguratsiooni ja Argo CD rakendamiseni registreeritud sihtmärgil ning avaliku HTTPS-i verifitseerimiseni. Edu salvestatakse ainult siis, kui olemas on nii rakendatud redaktsioon kui ka avalik kontroll; tulemus, mida ei saa teada, jääb tundmatuks.
Projekti saab esitada veebivaatest või MCP kaudu ühendatud oma AI-agendist ning platvorm viib läbi juurutusfailide ettevalmistamise, tõrgete parandamise, tõmmise avaldamise, keskkonda viimise ja avaliku URL-i verifitseerimise; pärast juurutamist näitab sama vaade ajalugu ja logisid ning haldab uuendusi, peatamisi, jätkamisi ja kustutamist. Meeskonnaprojekt.
Võistluse arendusperiood 28. september 2026 – 4. oktoober 2026
Häkatoni ajal ehitatud veebivaade ja MCP-server. Kaug-MCP logib esitamiseks sisse OAuthiga; kohalikud kaustad esitatakse kohaliku MCP kaudu.
Esitamine → vastuvõtt
Veebivaade, kaug-MCP ja kohalik MCP kutsuvad sama toote API-t, mis salvestab kontrollitud päringu olekuga queued ja vastab koodiga 202.
Brauseri kasutajaandmed: kaust · ZIP · GitHubi URLveebivaade · ajalugu · Insights
apps/dashboardLähe ja registreeritud keskkond valitakse veebivaates.
veebivaade · ajalugu · Insights
apps/dashboardandmed: sama toote API · /api/v1valideerimine · sihtmärk · 202 vastu võetudapps/apiVeebivaade kutsub toote API-t samast päritolust.
MCP-klientandmed: OAuth · deploy_repositoryOAuth MCP · deploy_repository
agent/remote-mcp.jsKaug-MCP ühendub OAuthiga ja võtab sisendiks avaliku GitHubi repositooriumi.
OAuth MCP · deploy_repository
agent/remote-mcp.jsandmed: sama toote APIvalideerimine · sihtmärk · 202 vastu võetudapps/apiKaug-MCP-server kutsub sama juurutus-API-t oma sisemise API-kliendi kaudu.
railshot-local MCPandmed: ZIP-üleslaadimine · deploy_local_projectvalideerimine · sihtmärk · 202 vastu võetud
apps/apiKasutaja arvuti stdio-MCP pakib kausta ZIP-iks ja laadib selle üles. Selle seanssi ei jagata kaug-OAuthi seansiga.
valideerimine · sihtmärk · 202 vastu võetud
apps/apiandmed: salvestatud olekuga queued · 202operatsiooni olek · käivituse sidumineapi/product-store.jsKontrollitakse sisendit, registreeritud sihtmärki, mahtu ja idempotentsusvõtit; operatsioon salvestatakse olekuga queued ja sellele vastatakse koodiga 202. 202 tähendab vastu võetud, mitte juurutatud.
operatsiooni olek · käivituse sidumine
api/product-store.jsandmed: järjekorra järjestusjuurutusjärjekord · 3 korragaapps/apiVõetakse vastuvõtu järjekorras samaaegsete juurutuste piirangu piires (vaikimisi 3).
operatsiooni olek · käivituse sidumine
api/product-store.jsvaatlus: juurutuse olek · ajaluguveebivaade · ajalugu · Insightsapps/dashboardVeebivaade ja MCP-tööriistad loevad samu operatsioonikirjeid. Viimane katse ja praegune verifitseeritud juurutus näidatakse eraldi ning lõpetatud AI-ülesanne ei ole juurutuse edu.
CI kontrollid → tõmmise avaldamine
Fikseeritud platvormikood kontrollib esitatud commitit, annab AI-le ainult parandatavad tõrked ja avaldab ainult tõmmised, mis läbisid samad kontrollid uuesti.
juurutusjärjekord · 3 korraga
apps/apiandmed: source commitlähte-commit · traileridapps/<tenant>/<app>Esitatud lähtest saab commit privaatses apps-repositooriumis (traileritega Railshot-Request ja Railshot-Target) ning haru uuendatakse ilma force'ita.
juurutusjärjekord · 3 korraga
apps/apikäivitus · rakendamine: workflow_dispatchtsükkel · baaskontrollid L0–L3railshot-deploy.ymlTaotleb käivitust väärtustega tenant, app, source_commit ja target_id. Kui vastus kaob, seda uuesti ei saadeta; selle asemel otsitakse sama commiti käivitusi.
lähte-commit · trailerid
apps/<tenant>/<app>andmed: esitatud committsükkel · baaskontrollid L0–L3railshot-deploy.ymlTöökoopiasse võetakse ainult esitatud commit ja fikseeritud platvormikood (PLATFORM_REF).
SDK parandus · ainult parandatavad tõrked
railshot-deploy.ymlandmed: paranduse taotlus · tingimuslikAI SDK providerKutsutakse ainult parandatavate tõrkeklasside korral ja peatatakse, kui sama tõrge kordub või katsete piirang saab täis. Läbimise või läbikukkumise otsustavad kontrollid, mitte LLM.
release · avaldamine GHCR-is · sidumine
railshot-deploy.ymlandmed: kontrollitud tõmmiste avaldamineGHCRPärast kontrollid läbinud kimbu verifitseerimist avaldatakse samad tõmmised GHCR-is. Midagi uuesti ei ehitata.
CI käivituse sidumine · vaatlus
apps/apivaatlus: käivitus · avaldamise lugeminerailshot-deploy.ymlAvaldamine loetakse kehtivaks ainult siis, kui selle run id, lähte-commit, sihtmärk ja rakendus vastavad vastu võetud kirjele.
CI käivituse sidumine · vaatlus
apps/apitõrge · teadmata tulemus: failed · publication_unverifiedoperatsiooni olek · käivituse sidumineapi/product-store.jsCI tõrge või verifitseerimata avaldamine salvestatakse koos diagnostikaga ja seda CD-le edasi ei anta.
Rakendamine → avalik kontroll
Rakendab config Giti ja Argo CD kaudu ainult siis, kui avaldamine vastab registreeritud sihtmärgile, ning salvestab edu alles pärast registreeritud avaliku HTTPS-aadressi kontrolli.
release · avaldamine GHCR-is · sidumine
railshot-deploy.ymlandmed: images.json · spec · verdict · manifestcd.js · deployPublishedapps/apiCD loeb avaldamiskirje faile usaldatud laaduri kaudu. CI ise ei loo klastriressurssi, URL-i ega juurutuse edu.
cd.js · deployPublished
apps/apikäivitus · rakendamine: rakendamine · registreeritud sihtmärkusaldatud konfiguratsioon · registreeritud sihtmärkgitops/bridge.pyKäivitab gitops/bridge.py usaldatud konfiguratsiooniga ainult siis, kui registreeritud rakendus ja tenant vastavad avaldamiskirjele.
commit · push · kaugtagasilugemine
gitops/bridge.pyandmed: workload commit · pushConfig Giti repositooriumCommitib ainult faili workload.json eraldi haru registreeritud teele, salvestab kõigepealt push'i kavatsuse, teeb push'i ja loeb kaugredaktsiooni tagasi. Ebakindlat push'i ei korrata.
Config Giti repositooriumandmed: revisionApplication · AppProject kontroll
Argo CDConfig-repositooriumi redaktsioon, millele Argo CD Application osutab.
Argo sünkroonimine · vaatlus
gitops/bridge.pykäivitus · rakendamine: sünkroonimine · vaatlusApplication · AppProject kontrollArgo CDTaotleb sünkroonimist pärast AppProjecti kontrollimist; vaatlus ainult loeb, ilma sünkroonimiseta.
Application · AppProject kontroll
Argo CDkäivitus · rakendamine: rakendamineworkload · ServiceK3s rakendusklasterRakendab töökoormuse registreeritud sihtklastris.
workload · Service
K3s rakendusklasterandmed: tõmmise allalaadimine · räsiGHCRLaadib alla avaldatud räsi. Privaatne GHCR vajab eraldi pull-mandaati.
avalik HTTPS-sond
gitops/bridge.pyvaatlus: HTTPS healthAvalik HTTPS URLKontrollib ainult operaatori registreeritud HTTPS health-aadressi, ilma ümbersuunamisteta, kas vastus on 200 (ja seadistamisel oodatud JSON).
Avalik HTTPS URLandmed: avalik teeworkload · Service
K3s rakendusklasterAvalik tee (LB, NodePort, sertifikaat) erineb pakkuja ja registreeritud sihtmärgi kaupa.
cd.js · deployPublished
apps/apiandmed: succeeded · revision · URLoperatsiooni olek · käivituse sidumineapi/product-store.jsSalvestatakse olekuga succeeded ainult siis, kui olemas on cd.deployed, redaktsioon, edukas avalik HTTPS-kontroll, selle aeg ja kehtiv URL.
cd.js · deployPublished
apps/apitõrge · teadmata tulemus: unknown · vajab ühildamistoperatsiooni olek · käivituse sidumineapi/product-store.jsTulemus, mida ei saa teada, jääb olekuks unknown; sama rakendamist ei saadeta uuesti ega võeta tagasi.
Vaatlus · mitte verdikt
Mõõdikud ja sondid ei otsusta juurutuse edu. Puuduvad, aegunud ja ebaõnnestunud väärtused näidatakse nii, nagu need on.
metrics observer
apps/apivaatlus: PromQL päringPrometheusLoeb up-, probe_success- ja Podi aegridu. Puuduvad, aegunud või ebaõnnestunud väärtused näidatakse selles olekus ja neid ei muudeta kunagi 0-ks.
Prometheusvaatlus: scrape · probeworkload · Service
K3s rakendusklasterExporterite scrape ja HTTP-sond. Neid mõõdikuid ei kasutata juurutuse edu otsustamiseks.
operatsiooni olek · käivituse sidumine
api/product-store.jsvaatlus: juurutuse olek · ajaluguveebivaade · ajalugu · Insightsapps/dashboardVeebivaade ja MCP-tööriistad loevad samu operatsioonikirjeid. Viimane katse ja praegune verifitseeritud juurutus näidatakse eraldi ning lõpetatud AI-ülesanne ei ole juurutuse edu.
avalik HTTPS-sond
gitops/bridge.pyvaatlus: HTTPS healthAvalik HTTPS URLKontrollib ainult operaatori registreeritud HTTPS health-aadressi, ilma ümbersuunamisteta, kas vastus on 200 (ja seadistamisel oodatud JSON).
Kõik ühendused sama kaaluga. Vali voog, et tõsta esile ainult selle tee koos nummerdatud sammudega.
- Pidevjoon · lähte, tõmmiste ja päringute liikumissuund
- Kriipsjoon · käivitustaotlus, rakendamine või sünkroonimine
- Pikk kriips-punktjoon · olekupäringud, sondid ja mõõdikud, verdiktist eraldi
- Lühike kriips · salvestatud tõrge või teadmata tulemus
- Paks must joon · valitud voog; numbrid näitavad järjekorda
- Kast · omav piir, lähtetee päises
- Sisemine silt · komponent selle piiri sees
- Kriipsjoonega kast · platvormist väljas
- Oranž kontuur · koht, kus mudel otsustab
- Toote API
- Juurutuskirjed
- CD täitmise piir
- Sisenemine · CI · sihtmärk
Faili docs/architecture/README.md 2. oktoobri (bc61a5a) joonis on teostuse ajalugu; see arhitektuur järgib koodi 645e28a. Pakkujad ja võrguteed erinevad registreeritud sihtmärgi kaupa ning see ei tähenda, et iga pakkuja on alati sees.