Sandbox a prostredia
Pribalený plugin Prostredia prináša dve veci: bezpečnejšie spúšťanie príkazov pre účty bez oprávnenia prevádzkovateľa a trvalé prostredia pre spravované Projekty. Každodenný postup popisuje článok Projekty, prostredia a GitHub.
Spúšťanie na spárovanom počítači
Jadro pozná iba ovládací prvok Sandboxu. Pre výslovne miestny cieľ odovzdá Sandbox vyhľadanie cieľa, jeho zviazanie, prácu so súbormi aj prípravu procesov ovládaciemu prvku miestneho spúšťania, ktorý jadro registruje v démonovi pre spárované počítače s Elowen CLI. Ovládací prvok sa vyhodnocuje za behu na hranici volania a jadro ho registruje vždy, takže chýbajúci vlastník znamená pokazeného hostiteľa a každé miestne volanie vrátane vyhľadania zlyhá. Miestne cesty nikdy neprechádzajú pomocníkmi hostiteľa pre realpath ani pre obmedzenie prístupu. Požiadavky určené runnerovi prechádzajú zdedeným spojením s hostiteľom a používajú rovnaké zmluvy pre súbory aj procesy. Príprava procesov démona a runnera zdieľa jedného pomocníka pre relácie, výstupné prúdy, štandardný vstup a návratový kód; Sandbox vlastní miestne metadáta a obal lease a zrušenie preruší ten istý pôvodný príkaz. Podporovaná je príprava procesov pre súbory, editor, terminál, MCP a LSP; každý iný lease je odmietnutý ako nepodporovaný. Metadáta miestneho cieľa sú prechodný kontext spúšťania, kým trvalá identita konverzácie obsahuje iba druh cieľa a ID Projektu.
Keď konverzácia beží na niektorom z vašich spárovaných počítačov, Elowen sa po každej vašej správe dozvie, ktorý počítač spúšťa jeho nástroje, aký má operačný systém a aký shell v ňom používa nástroj Bash: /bin/sh na macOS a Linuxe, PowerShell 7 alebo Windows PowerShell 5.1 na Windows, vrátane syntaxe PowerShellu a podoby ciest Windows, ktorú má použiť. Názov počítača sa zobrazí tak, ako ste ho pomenovali, bez zátvoriek, úvodzoviek a zalomení riadku. Riadok sa v konverzácii nezobrazuje.
Sites vedia publikovať aplikáciu z Projektu na spárovanom počítači rovnakým ovládacím prvkom publikovania, aký používajú spravované Projekty. Účet, ktorý publikuje, musí zostať členom daného počítača. Sandbox si port a publikujúci účet ponechá v existujúcom zázname publikácie; jadro vlastní privátny socket a každého návštevníka presmeruje na 127.0.0.1 v danom počítači. HTTP aj WebSocket spojenia používajú rovnaký prenos. Odpojený počítač znamená nedostupnú publikáciu, kým sa znova nepripojí. Ak publikovanie ohlási LOCAL_CLIENT_OUTDATED, aktualizujte CLI. Odobratie publikujúceho člena zavrie jeho bežiace publikácie. Podrobnosti k integrácii nájdete v zmluve o publikovaní.
Kde prostredia spravovať
- Nastavenia → Pluginy → Prostredia obsahuje panel pripravenosti hostiteľa a predvolené hodnoty pre celú inštanciu.
- Otvorte spravovaný Projekt a zvoľte Prostredia; spustíte alebo zastavíte jeho prostredie, zobrazíte využitie prostriedkov a logy, vytvoríte či obnovíte snímky a spravujete zdieľané pracovné kópie.
- Používatelia → účet → Vývojové prostredie zobrazuje súkromný domovský adresár účtu (HOME), režim spúšťania, aktívne procesy a autora Gitu. Administrátori tu môžu HOME resetovať.
Plugin nepridáva žiadny slash príkaz. Systémové logy v novovytvorených kontajneroch majú predvolene strop 100 MB.
Prístup agenta
Plugin sám o sebe neregistruje pre prostredia žiadne nástroje agenta. Agent spravuje prostredie spravovaného Projektu nástrojom Project, a to za rovnakých pravidiel ako panel Prostredia. Môže čítať stav, limity a snímky (get), prostredie spustiť, zastaviť, reštartovať alebo vytvoriť znova, meniť prostriedky a sieť (resources, network), urobiť, obnoviť alebo vymazať snímku (snapshot, restore, delete_snapshot), čítať log životného cyklu a log hosťa (logs, posledných 100 riadkov, ak nepožiadate o viac), spravovať zdieľané pracovné kópie (worktrees, worktree_create, worktree_remove) a sledovať nevybavenú operáciu (operation).
Vymazanie Projektu, obnovenie alebo vymazanie snímky a zmena prostriedkov, ktorá zmenší disk, vyžadujú potvrdenie. Požadovaná operácia môže byť po návrate nástroja stále nevybavená. Nástroj Desktop, opísaný nižšie, je jediný nástroj, ktorý tento plugin poskytuje.
Plánovací režim funguje aj v spravovaných Projektoch: Elowen môže prehľadávať súbory a spúšťať nedeštruktívne príkazy, pričom zapisuje iba vlastný plánovací súbor konverzácie. Sub-agenti len na čítanie smú spúšťať rovnaké zisťovacie príkazy, ale plán upravovať nesmú. Zmeny životného cyklu prostredia a akcie na ploche zostávajú počas plánovania nedostupné. Plán spravovaného Projektu zostáva v prostredí svojho Projektu a odstráni sa pri vyčistení alebo vymazaní konverzácie; čistenie počká, kým bude zastavené prostredie dostupné. Tá istá konverzácia si plán ponechá aj pri zmene cieľa spúšťania.
Zapnite plugin a nastavte predvolené hodnoty
Plugin je pribalený a predvolene zapnutý. Nemožno ho prideliť používateľom. Správa prostredia navyše vyžaduje prístup k spravovanému Projektu. Uloženie nastavení pluginu alebo zapnutie či vypnutie pluginu vyžiada reštart Elowenu. Obrazovka nastavení oznámi, že zmena je uložená a Elowen sa reštartuje.
V Nastavenia → Pluginy → Prostredia môžu administrátori nastaviť predvolené hodnoty pre novovytvárané prostredia:
| Nastavenie | Kľúč konfigurácie | Predvolené | Rozsah |
|---|---|---|---|
| Izolovať príkazy bežných účtov | confineNonOperators |
Zapnuté | Zapnuté alebo vypnuté |
| Procesor | defaultCpus |
1 CPU | 0,1–64 CPU |
| Pamäť | defaultMemoryMb |
1 024 MiB | 128–65 536 MiB |
| Swap | defaultSwapMb |
0 MiB | 0–4 096 MiB |
| Limit procesov a vlákien | defaultPidsLimit |
512 | 32–8 192 |
| Rýchlosť disku | defaultIoMbPerSec |
150 MB/s | 5–4 000 MB/s |
| Rýchlosť siete | defaultNetMbitPerSec |
Bez obmedzenia | 0–10 000 Mb/s |
| Predvolený sieťový režim | defaultNetworkMode |
Zdieľaná odchádzajúca sieť | Zdieľaná alebo izolovaná |
Zdieľaná sieť ponúka odchádzajúci internet cez privátne spojenie stroja. Izolovaný režim povoľuje iba prevádzku v rámci vlastného loopbacku prostredia. Administrátori môžu pri Projekte nastaviť aj presmerovanie prichádzajúcich TCP alebo UDP portov. Port hostiteľa sa na loopbackovom rozhraní hostiteľa neotvára.
Predvolené hodnoty platia pri prvom vytvorení prostredia. Existujúce prostredia si ponechajú vlastné limity a sieťový režim. Administrátori ich menia v bloku Limity v časti Prostredia daného Projektu. Pred prvým spustením sa zmeny prostriedkov uložia bez toho, aby sa vytvoril stroj, a prvé spustenie použije upravené limity. Zmena limitu prostriedkov pri bežiacom prostredí sa použije bez reštartu. Zmena sieťového režimu prostredie na chvíľu zastaví a znova obnoví. Neplatné limity sú odmietnuté skôr, než sa operácia zaradí do frontu. Strop disku sa nastavuje pre každý Projekt zvlášť, nie v týchto predvolených hodnotách. Ak prostredie nemá vlastný strop, platia vstavané hodnoty: nulový swap, rýchlosť disku 150 MB/s a 10 GiB miesta na disku.
Každé prostredie má aj strop rýchlosti disku, jeden pre čítanie a jeden pre zápis, aby jedno prostredie, ktoré veľa kopíruje alebo zostavuje, neprinútilo ostatné služby hostiteľa čakať na disk. Jeden MB je 10^6 bajtov, teda ako počítajú výrobcovia diskov. Predvolených 150 MB/s zodpovedá tomu, čo udrží pevný disk s 7200 ot/min. Administrátori ho menia pri každom Projekte na stránke Prostredia alebo akciou resources nástroja Project (ioMbPerSec). Najnižší prijímaný strop je 5 MB/s, a to pri posuvníku (ktorý sa posúva po piatich), pri predvolenej hodnote pluginu, pri nástroji Project aj pri privilegovanom pomocníkovi; nižšia hodnota je odmietnutá.
Prostredia sú tiež držané mimo swapu hostiteľa. Limit swapu udáva, koľko swapu hostiteľa smie prostredie využiť nad rámec svojho limitu pamäte. Predvolene je nulový, takže prostredie, ktoré dosiahne svoj limit pamäte, v sebe zastaví procesy namiesto stránkovania na disk hostiteľa. Administrátori ho menia pri každom Projekte na stránke Prostredia, v riadku nad rýchlosťou disku, alebo akciou resources nástroja Project (swapMb, v MiB).
V zásuvke Projektu zobrazuje blok Prostriedky v hornej časti Prehľadu, čo prostredie spravovaného Projektu práve využíva, s rovnakými piatimi kruhmi, aké kreslí karta Projektu: CPU, RAM, miesto na disku, rýchlosť disku a sieť. Každý kruh otvorí históriu danej metriky. Kruh CPU uvádza model procesora a blok, ktorého údaje sa nepodarilo obnoviť, hlási, že ide o posledné známe hodnoty. Zastavené prostredie si kruhy ponechá a vypíše v nich Zastavené, hostiteľský Projekt takýto blok nemá. Sieť ukazuje rušnejší zo smerov sťahovania a odosielania v desiatkových Mb/s; jej bublinová nápoveda ukazuje oba smery. Neobmedzená sieť má nameranú hodnotu bez oblúka percent. Izolované prostredia nemajú vonkajšiu prevádzku. História má Sieť na svojej pravej osi. Kruh rýchlosti disku ukazuje rušnejší smer voči svojmu stropu; jeho bublinová nápoveda ukazuje oba smery. Dátový adresár sandboxu musí ležať na disku alebo na oddiele, ktorý hostiteľ dokáže vyúčtovať.
Rýchlosť siete nastavte na stránke Prostredia daného Projektu alebo nástrojom pre prostriedky Projektu. Nula znamená bez obmedzenia a kladný limit platí pre sťahovanie a odosielanie oddelene, bez reštartu prostredia. Nástroj prijíma celé čísla do 100 000 Mb/s, posuvník ponúka do 10 000. Izolované prostredia si nastavenie ponechajú pre neskoršiu zdieľanú sieť.
Bloky Limity a Sieť na karte Prostredia sú vždy otvorené; vlastné karty zásuvky Projektu nahradili skoršie skladanie. Strop procesov počíta procesy aj vlákna.
Domovský adresár účtu a spúšťanie príkazov
Každý prepojený účet má súkromný HOME pre konfiguráciu Gitu, npm a nástrojov. Je oddelený od Projektov. Administrátori môžu nastaviť meno a e-mail autora Gitu na stránke Vývojové prostredie daného účtu. Reset HOME odstráni jeho konfiguráciu. Najprv zobrazí náhľad, čo sa stratí, vyžiada opísanú potvrdzovaciu frázu a je zablokovaný, kým má účet aktívne procesy. Reset čaká na odstránenie súborov starého HOME, kým ohlási úspech. Ak odstránenie zlyhá, reset ohlási chybu; nový, prázdny HOME už je na mieste. Odobratie účtu tiež čaká na odstránenie jeho uložených súborov, kým uprace záznamy Gitu pre pracovné priestory starších účtov.
Príkazy účtov bez oprávnenia prevádzkovateľa sa predvolene spúšťajú v obmedzenom prostredí bubblewrap. Majú prístup k svojim dostupným adresárom Projektov a k domovskému adresáru účtu a sieť im zostáva dostupná. Ak kontrola izolácie za behu zlyhá, príkaz je odmietnutý. Administrátor môže vypnúť Izolovať príkazy bežných účtov, čím týmto účtom povolí spúšťať príkazy priamo na hostiteľovi.
Prevádzkovateľ, ktorý spúšťa príkazy mimo spravovaného Projektu, používa hostiteľa priamo. Príkazy spravovaného Projektu bežia v jeho vlastnom prostredí. To je oddelené od nastavenia spúšťania na hostiteľovi pri účte. Príkazy na pozadí spustené pluginmi zostávajú izolované.
Prihlasovací údaj účtu ku GitHubu dostanú iba terminálové relácie, nie služby na pozadí alebo iné pluginy. Dostane ho terminál v prostredí spravovaného Projektu aj izolovaný terminál na hostiteľovi. Každý výstup, ktorý údaj obsahuje, sa začierni.
Interaktívny terminál otvorený z karty Projektu je vlastný shell daného človeka a je izolovaný presne ako príkaz, ktorý spustí v chate: terminál prevádzkovateľa beží priamo na hostiteľovi, terminál kohokoľvek iného pod bubblewrapom s domovským adresárom jeho účtu, a Izolovať príkazy bežných účtov rozhoduje pri nich rovnako ako pri príkazoch. Otvoriť ho smie iba prihlásená webová relácia, iba pre Projekt, ktorého je účet členom, a pseudo-terminál vzniká vnútri daného prostredia, takže shell si v ňom zachová riadenie úloh. V spravovanom Projekte sa terminál otvorí v jeho bežiacom prostredí a začne v adresári Projektu. Pred otvorením terminálu zastavené prostredie spustite. Minimalizácia ho nechá bežať; X ukončí shell aj všetko, čo spustil. Terminálové relácie končia reštartom démona. Spárovaný linuxový alebo windowsový počítač otvorí terminál na sebe a použije vlastné prihlásenie ku Gitu a GitHub CLI; potrebuje výslovné členstvo, online aktuálneho klienta a na Linuxe /usr/bin/python3. Windows používa PowerShell cez ConPTY. Strata spojenia s vykonávateľom tento shell ukončí; náhradné spojenie ho nemôže prevziať. Obmedzenia, opätovné pripojenie a ovládanie okna opisuje článok Terminál a procesy.
Trvalé prostredia Projektov
Každý spravovaný Projekt má jedno trvalé prostredie systemd-nspawn. Kým možno vytvoriť nové prostredie, musí byť hostiteľ pripravený. Panel Počítač Elowen hlási chýbajúce požiadavky. Administrátor tam môže zvoliť Pripraviť hostiteľa. Hostiteľ si publikovaný koreňový systém súborov stiahne a overí, až keď je potrebný. Prostredie sa vytvára na vyžiadanie a po zastavení si ponechá súbory aj nainštalované balíčky. Hlási jeden z týchto stavov: nevytvorené, spúšťa sa, spustené, zastavené, zlyhalo, maže sa alebo vymazané.
Keď iný proces ukladá dáta, obnovovanie prostriedkov a upratovanie spúšťania na hostiteľovi čakajú bez toho, aby blokovali ostatné požiadavky. Obnovenie zo staršej generácie prostredia nemôže nahradiť aktuálne údaje. Stav operácie a jej uchovaná história sa ukladajú spolu; neúspešná aktualizácia histórie ponechá predchádzajúci uložený stav nedotknutý.
Akcie spustenia, zastavenia, snímky a obnovenia sú trvalé požiadavky. Každá vracia operáciu, ktorá môže ešte bežať, preto si predpoklad dokončenia overte jej stavom. Opakovanie prerušenej požiadavky s rovnakým ID ju nezaradí dvakrát. Logy vracajú najviac 1 000 riadkov.
Čítanie a zápis súborov znova používa spojenie vnútri prostredia Projektu. Prístup sa kontroluje pri každej operácii. Zastavenie alebo reštart prostredia, urobenie snímky alebo odobratie prístupu vlastníkovi spojenia toto spojenie zavrie; ďalšia povolená operácia so súbormi otvorí nové. Operácia so súbormi, ktorá prekročí dve minúty, zlyhá bez toho, aby sa automaticky opakovala. Výpisy adresárov vynechávajú vyhradené dočasné názvy začínajúce .elowen-upload-, .elowen-write- alebo .elowen-copy- ešte pred výberom stránky. Prechádzanie ich vynecháva tiež a do týchto adresárov nikdy nevstupuje; ostatné skryté súbory zostávajú viditeľné. Skryté položky sa však počítajú do limitu návštev pri prechádzaní.
Úplná snímka zachytí koreňový systém súborov, HOME, pracovné stromy a dáta pri pozastavenom spúšťaní. Snímku možno opísať poznámkou do 2 000 znakov. Snímky sú konzistentné pri páde, nie z hľadiska databázy, preto databázy aplikácií v prípade potreby exportujte zvlášť. Snímka Projektu obsahuje všetky súčasti jeho prostredia.
Dok operácií na pozadí sleduje iba operácie, ktoré ste sami spustili vo webovom rozhraní, vrátane vytvorenia Projektu a výberu zastaveného prostredia. Vymazanie Projektu sleduje Elowen samostatne ako operáciu vymazania Projektu. Administrátori tiež vidia iba svoje vlastné operácie. Požiadavky agenta, požiadavky s API tokenom, automatické obnovenie a príprava hostiteľa sa tam nezobrazujú. Bežiace operácie prežijú obnovenie stránky. Dokončený výsledok zostáva, kým ho nepotvrdíte. Každé prostredie si drží 20 najnovších operácií a staršie vybavené sa mažú. Odstránením výsledku zmizne vo všetkých vašich kartách aj zariadeniach.
Obnovenie nahradí prostredie zvolenou snímkou v novej generácii. Zahodí zmeny vykonané po tejto snímke a preruší bežiacu prácu, preto vyžaduje výslovné potvrdenie. Karta Prostredia daného Projektu vypisuje všetky úplné snímky, najnovšie prvé, s časom, zabratým miestom a základným obrazom, z ktorého vznikla. Každú tam možno obnoviť alebo vymazať. Vymazanie snímky odstráni jej uloženú kópiu z hostiteľa. Odmietne sa, kým je iná operácia prostredia nevybavená alebo beží, takže obnovenie nikdy nepríde o snímku, ktorú práve kopíruje. Prostredia a snímky zostávajúce po odstránenom behovom prostredí Podman nemožno spustiť ani obnoviť. Vymazať ich možno, jednotlivo alebo s ich Projektom. Ak chcete funkčné prostredie, Projekt vymažte a vytvorte znova.
Vymazanie Projektu vymaže aj jeho prostredie a uchované snímky. Potvrdenie vypíše dotknuté cesty úložiska. Elowen odstráni závislé služby vrátane publikovaných webov Sites skôr než úložisko prostredia. Ak niektorá služba alebo vlastník úložiska nemôže skončiť, vymazanie zostane zablokované s uvedeným dôvodom; Projekt sa nehlási ako vymazaný. Opakovanie pokračuje v uloženom upratovaní namiesto začatia druhého vymazania.
Organizačné pracovné kópie zdieľajú všetci s prístupom k Projektu. Ich vetvy sa volajú elowen/<label>-<suffix>. Oddeľujú prácu, ale nie sú bezpečnostne izolované a nevyberajú cieľ spúšťania konverzácie. Kým niektorú odoberiete, uložte necommitnuté súbory a commity, ktoré zatiaľ nie sú dostupné z inej vetvy. Pre izolovanú prácu s repozitárom vytvorte natívny Git worktree; pozri Projekty, prostredia a GitHub.
Plocha dodávaná s Projektom
Nové prostredia Projektov používajú aktuálny obraz project-base@19, ktorý prináša GNOME na Waylande s Ubuntu 26.04 a obsahuje GitHub CLI (gh). Každý kontajner Projektu má práve jednu zdieľanú plochu. Spustí sa, keď Elowen výslovne použije nástroj Desktop. Beží, kým ju člen Projektu nezastaví alebo kým sa nezastaví prostredie, a to aj cez reštarty démona. Prostredie si ponechá obraz, z ktorého vzniklo. Vytvorenie znova alebo obnovenie s vyradeným obrazom je odmietnuté skôr, než sa prostredie zastaví alebo zmení. Dostupnosť plochy závisí od možností obrazu prostredia. Projekt vytvorený zo staršieho obrazu bez podporovanej plochy potrebuje nový Projekt.
Používajte jediný nástroj Desktop s parametrom action. Vždy pracuje s plochou Projektu, v ktorom konverzácia beží. V konverzácii mimo spravovaný Projekt vráti chybu s pokynom najprv prejsť do spravovaného Projektu. Akcie sú: look, read, screenshot, click, clickxy, fill, type, key, scroll, hover, drag, wait, activate, batch a handover. Cieľ je odkaz z akcie look alebo selektor, napríklad name="Submit" či text~=Done, takže ovládací prvok, ktorý viete pomenovať, žiadne look vopred nepotrebuje. batch vykoná 1 až 20 krokov v jednom volaní. activate prinesie zakryté okno do popredia. Akcie zadávania prijímajú aj expect, selektor, ktorý musí po akcii platiť v novom pohľade, s expectTimeout v sekundách (najviac 60, predvolených 10). Výsledok overí bez toho, aby vstup zopakoval.
Aplikácie sa spúšťajú zo shellu príkazom desktop-open <app> [args]. Príkaz ohlási titulok nového okna. Ak ovládacie prvky okna ešte nemožno prečítať, povie to a navrhne snímku obrazovky. Ak sa do 10 sekúnd neobjaví žiadne okno, oznámi to. Takto spustené programy skončia s reláciou plochy. Na programy spustené mimo tohto pomocníka sa táto životnosť nevzťahuje.
Pre prihlásenie, captcha alebo iný krok, ktorý zvládne iba človek, agent použije handover. Elowen sa opýta v chate a vy prevezmete ovládanie tlačidlom Prevziať ovládanie v dlaždici chatu. Zbalenie dlaždice počas vášho ovládania ju tiež vráti agentovi. Keď ovládanie vrátite, agent sa pozrie znova. Agent nemôže prevziať ovládanie od človeka ani zastaviť plochu.
Kedykoľvek plocha Projektu konverzácie beží, chat zobrazí dlaždicu. Dlaždica zostáva viditeľná aj po obnovení stránky alebo reštarte démona. Ponúka zdieľaný náhľad na celú obrazovku, popisy akcií agenta a odkaz na nevybavenú otázku. Zdieľanú obrazovku môže sledovať každý aktuálny člen Projektu a prihlásenia do aplikácií aj dokumenty sú zdieľané. Zbalené náhľady sa obnovujú zhruba každých 1,5 sekundy. Kým je pripojený živý divák, kliknutia agenta pred vykonaním krátko plynule dojdú k cieľu a každé kliknutie v živej obrazovke označí miznúci krúžok. Snímky obrazovky tento krúžok nikdy neobsahujú.
Účet / Plochy vypisuje plochy bežiace v Projektoch, ktoré môžete otvoriť, s odkazmi na Projekt, stavom a meradlami CPU, pamäte a disku. Tlačidlom vedľa plochy alebo v jej rozbalenom náhľade zavriete živý náhľad aj otvorené aplikácie a uvoľníte ich pamäť. Potvrdenie vysvetlí, čo sa zavrie. Súbory Projektu zostanú uložené a prostredie beží ďalej. Účet ovládanie nikdy nepreberá. Ikona monitora vedľa názvu Projektu ukazuje, že jeho plocha beží alebo sa spúšťa. Meradlá pamäte merajú celé prostredie.
V rozbalenom náhľade ponúka Ďalšie možnosti každému divákovi vrátane náhľadov iba na sledovanie na Účte voľby Kvalita a Rýchlosť. Vašu voľbu si prehliadač pamätá. Kvalita zachováva obraz v natívnom rozlíšení a je predvolená. Rýchlosť vymení detail za plynulosť. U hosťa s aktualizovaným agentom prenáša obraz v 75 % jeho veľkosti, takže z 1920 × 1080 je 1440 × 810. Veľké zmeny navyše posiela ako JPEG v kvalite 50. Malé zmeny a ustálené obrazovky zostávajú bezstratové. Zmena voľby sa nepripája znova, nemení rozlíšenie zdieľanej obrazovky a neprideľuje ovládanie. Existujúce prostredia potrebujú aktualizovaný balíček hosťa, kým môžu prenášať menší obraz.
Pre číselné kolieska používajte fill. Nastaví hodnotu, prečíta potvrdené číslo a overí, že zobrazený text zodpovedá. Hodnoty mimo medzí poľa odmietne a ohlási chybu, ak aplikácia hodnotu zaokrúhli alebo oreže. Nikdy tento zápis nezopakuje ako vstup z klávesnice. Bežné vyplnenie textu overuje presný text a nestlačí Enter, s výnimkou bunky tabuľky, kde po texte Enter stlačí.
type vždy vyžaduje target. key vyžaduje práve jeden z target alebo window, napríklad {action:"key",key:"ctrl+s",window:"Editor"}. Už zameraný cieľ si ponechá kurzor aj výber. Zameranie sa kontroluje okolo behov textu, na hraniciach navigácie a vkladania a medzi stlačeniami skratiek. Neúspešná kontrola zamerania vstup zastaví. Predchádzajúce kliknutie nie je nikdy implicitný cieľ. Tab, Enter a skratky môžu zameranie presunúť, preto pre ďalšie pole použite iný cielený príkaz. Ak kontrola zamerania zlyhá až po doručení vstupu, výsledok si tento dôkaz ponechá. Kým akciu zopakujete, prezrite si aktuálny stav.
Selektory sa kontrolujú pred odoslaním akéhokoľvek vstupu. Zmiešanie voľnej frázy s predikátmi alebo filtrami je odmietnuté s opraveným príkladom. Napríklad text~="Display Line Numbers" exists=false je platné, ale Save role=button zmiešané s voľnou frázou nie. Výsledky hlásia success, error_type a action_delivered. Tu je action_delivered true, false alebo null a null znamená neznámo. Keď je null, vstup nikdy neopakujte. wait prijíma najviac 30 sekúnd a súradnice obrazovky musia byť celé čísla.
Výsledky práce s plochou sa do modelu dostanú automaticky na konci skriptu, aj keď skript vypíše iba stav. Snímky obrazovky obsahujú obrázok iba raz.
Existujúce Projekty si ponechajú svoj obraz. Opätovné vytvorenie prostredia Projektu ho neaktualizuje.
Prístup a limity
Prístup k Projektu sa kontroluje pri spustení operácie prostredia. Iba administrátori môžu spravovať pripravenosť hostiteľa, nastavenia HOME účtu a limity prostriedkov Projektu.
- Snímky sú konzistentné pri páde, nie z hľadiska databázy.
- Predvolené hodnoty prostriedkov ovplyvňujú iba nové prostredia. Limity existujúceho prostredia sa menia pri jeho Projekte.
- Vytvorenie prostredia vyžaduje pripraveného hostiteľa a dostupný, overiteľný koreňový systém súborov. Panel pripravenosti hostiteľa hlási, čo treba doriešiť. Prvé spustenie je odmietnuté, ak niektorá požiadavka chýba.
- Administrátor nastavuje limity CPU, pamäte, procesov a disku pri každom Projekte. Strop disku je najmenej 1 024 MiB a najviac toľko, koľko má zväzok s diskom prostredia. Predvolený je 10 GiB. Využitie disku nad stropom prostredie zastaví. Pred ďalším spustením uvoľnite miesto alebo strop zvýšte.
- Upozornenia vo zvončeku varujú, keď využitie disku dosiahne 80 % stropu, a hlásia, keď ho prekročí. Spustenie odmietnuté pre disk nad stropom vyvolá vlastné upozornenie. Ak automatické obnovenie zlyhá, upozornenie uvedie počet pokusov a požiada o ručný zásah; zostáva, kým ho nepotvrdíte. Upozornenia k disku zmiznú, keď využitie klesne pod 75 % stropu.
- Prichádzajúce presmerovanie podporuje TCP alebo UDP. Porty hostiteľa musia byť 1 024–65 535. Porty prostredia môžu byť 1–65 535.
- Akcie prostredia nástroja
Projectnespravujú weby Sites. Hostiteľský Projekt žiadne prostredie nemá.
Interné spojenie pre súbory používa JSON rámce s dĺžkovým prefixom: telo požiadavky má najviac 1 MiB a telo odpovede najviac 16 MiB, na oboch stranách spojenia. Tieto medze platia pre zakódované telo rámca bez štvorbajtového dĺžkového prefixu; príliš veľké alebo poškodené rámce sú odmietnuté. Pomocník hosťa sa doručuje obsahom a odtlačkom cez existujúce naviazanie pomocníka, takže táto zmluva nevyžaduje nový obraz koreňového systému.
Správu pluginov opisuje článok Pluginy.