Szkic i rewizje
Zmiany plików trafiają najpierw do szkicu (z autorem i czasem każdej zmiany). Zatwierdź szkic w Workspace → Zmiany, żeby zapisać niezmienną rewizję — numerowany snapshot wszystkich plików. Rewizji nigdy się nie edytuje; wycofanie to publikacja starszego wdrożenia. Różnice między rewizjami albo szkicem widzisz jako diff w tej samej zakładce.Build
Build zamienia pliki projektu na statyczne HTML, CSS i JS. Trafia do kolejki, a wykonuje się w izolowanym kontenerze:npm ci --ignore-scriptsi komenda z manifestu — skrypty instalacyjne pakietów nie są wykonywane,- sieć tylko do rejestru npm (
registry.npmjs.org), bez dostępu do sekretów i danych sklepu, - 1 vCPU, 1 GiB RAM, ograniczona liczba procesów, brak uprawnień roota, twardy limit czasu 120 s,
- komenda builda z
itemshop.site.jsonmusi mieć postaćnpm run <skrypt>,vite buildalbonpx vite build.
queued → building → ready albo failed. Przy failed zobaczysz log (do 1 MB) — AI edytor umie go przeczytać i naprawić błąd. Limity buildów zależą od planu: Free — 1 aktywny build naraz i 10 na godzinę, Pro — 2 naraz i 30 na godzinę (409 SITE_BUILD_BUSY, 429 SITE_BUILD_RATE_LIMIT). Buildy bez wdrożenia starsze niż 14 dni są usuwane razem z logiem i wynikiem, a niepodpięte pliki po 24 godzinach.
Zmienne builda
Przy projektachvite-react builder ustawia jawne zmienne ITEMSHOP_* — odczytasz je w vite.config.ts lub kodzie (np. do tagów SEO). Projekty static nie mają kroku builda i ich nie dostają.
W przeglądarce
shopId i adres API dalej pochodzą z /itemshop.config.js — zmienne ITEMSHOP_* istnieją tylko w czasie builda.
Co builder dodaje
Podgląd i produkcja
Domena
itemshop.site jest inna niż domena panelu (itemshop.dev), więc kod strony nigdy nie ma dostępu do ciasteczek panelu. Każdy build może mieć wiele podglądów. Produkcja wskazuje dokładnie jedno wdrożenie. Własne domeny działają tak jak dotąd (weryfikacja TXT / Cloudflare), bez dodatkowej konfiguracji.
Publikacja
Opublikuj w panelu (alboitemshop deploy --prod) przepina produkcję na wybrane wdrożenie. Z klucza API, tokenu MCP, CLI lub agenta AI produkcja podlega zasadom publikacji: przy włączonym zatwierdzaniu (domyślnie) odpowiedź to 403 WORKSPACE_PRODUCTION_REQUIRES_APPROVAL, więc itemshop deploy --prod zadziała dopiero po wyłączeniu tej opcji albo promocji w panelu. Sesja panelu zawsze może publikować. Gracze zobaczą nową wersję po odświeżeniu strony (dokumenty HTML są zawsze rewalidowane, zasoby w assets/ są cache’owane bezterminowo).
Zasady publikacji
W Workspace → Publikacje ustawiasz, jak zmiany trafiają do graczy:
Log builda widzisz na żywo w tej samej zakładce.
Wycofanie zmian
Rollback to ponowna publikacja starszego wdrożenia: Workspace → Publikacje → wybierz wdrożenie → Przywróć. Nic nie jest budowane od nowa, więc zmiana trwa sekundy. Wycofane wdrożenie zostaje na liście, więc możesz do niego wrócić.Bezpieczeństwo strony
- Hostowany jest wyłącznie statyczny wynik — żaden kod ze strony nie działa na serwerach ItemShop, a serwer hostingu odpowiada tylko na odczyt.
-
Nagłówek Content-Security-Policy każdej strony zawiera m.in.:
-
Do odpowiedzi dochodzą
X-Content-Type-Options: nosniff,Referrer-Policyi COOP. Na domenach sklepów nie ma ciasteczek platformy. - Sklep zablokowany lub nieaktywny zwraca 404.
Strona musi więc ładować skrypty ze swojej domeny i łączyć się tylko z własną domeną i API ItemShop. Biblioteka z CDN albo skrypt inline zostaną zablokowane przez przeglądarkę — dodaj je do projektu i zbuduj razem ze stroną.
Przez API
Ten sam przepływ jest dostępny przez API z kluczem (site:write):
Limity
Czas builda, rozmiary, AI.
Domeny
Własna domena dla strony.