App-implementatie
OpenFactory kan een ondersteunde Git-repository omzetten in een immutable app variant,
een vervangende VM opstarten, een health-check uitvoeren en de app-route pas omzetten
nadat de kandidaat gezond is. Web services en static sites krijgen een URL onder
https://<slug>.apps.openfactory.tech wanneer het public ingress-pad beschikbaar is.
Beschikbaarheid: de deployment pipeline en het public-route-pad zijn end-to-end gevalideerd. De UI voor Apps en deployment-geschiedenis is niet af, scheduled jobs worden geweigerd, en WebSocket/SSE pass-through heeft nog een dedicated production acceptance test nodig. Behandel een teruggegeven URL als bruikbaar pas nadat de deployment status
liveis en uw eigen request slaagt.
Wat een deployment doet
- Bepaalt de exacte Git-revisie met de connected source credentials van het account.
- Staged de source zonder Git-credentials of
.git-geschiedenis in de image te kopiëren. - Verpakt de app via OBS wanneer geselecteerd en ondersteund, of gebruikt de image build hook.
- Bouwt en start een nieuwe app-specifieke variant.
- Schrijft runtime environment values na boot, start de service en voert een health check uit.
- Zet de gateway-route om en verwijdert de vorige VM pas nadat de nieuwe kandidaat gezond is.
De live VM is een deployment artifact. OpenFactory installeert, bouwt of bewerkt geen source in de VM.
Een geregistreerde app deployen
Registreer de source eenmalig:
create_app(
name="my-shop",
git_url="https://github.com/example/my-shop",
branch="main",
deployment_type="web-service",
port=3000,
visibility="private"
)Zet daarna een deployment in de wachtrij:
deploy_app(app_id="<app-id>")deploy_app is standaard asynchroon. Bewaar de teruggegeven app_id, deploy_id en
build_id, en poll:
get_app_deploy_status(app_id="<app-id>", deploy_id="<deploy-id>")De deployment gaat door als een MCP-client time-out. Dien geen dubbele deployment in alleen omdat een wachtperiode eindigde. Controleer eerst de bestaande deployment.
Succes en falen
Een geslaagde queue response bewijst niet dat de app live is. Vereis al het volgende:
- deployment status is
live; - de health-check-fase is geslaagd;
- de teruggegeven URL levert de verwachte revisie; en
- een geauthenticeerde check slaagt wanneer visibility
privateis.
Bij falen noteert u de mislukte stage, error, build_id en deploy_id. Omdat
cutover health-gated is, laat een mislukte kandidaat de vorige gezonde route staan.
Buildstrategie
use_obs=true vereist een gezond, ondersteund OBS-pad en faalt closed als dat pad
niet beschikbaar is. use_obs=false kiest de image-build hook. Als u het argument
weglaten, kiest de service OBS voor ondersteunde Node/static-projecten en valt terug
op de hook.
Alleen public-prefix-waarden mogen in een variant worden gebaked. Secrets en andere runtime-waarden horen in de encrypted app environment en worden na boot toegepast.
Een app testen die elders wordt gehost
U hoeft een app niet via OpenFactory te deployen om hem te testen. Elke URL die bereikbaar is vanaf de tester VM kan worden gebruikt met een app scenario of een autonomous walk.
Huidige beperkingen
- Web services en static sites worden ondersteund; scheduled jobs niet.
- De management-UI voor app-geschiedenis ontbreekt nog; MCP-status is de source of truth.
- Preview-beschikbaarheid hangt af van de app gateway, wildcard ingress, DNS en de kandidaat-VM.
- Private previews zijn vandaag owner-gated; delen met organization members is niet geïmplementeerd.
- Checkpoint rollback is nog niet gemigreerd naar dit immutable deployment-model. Zie Checkpoints and rollback.