Sandbox Tagix — безопасная проверка TGX до публикации
Sandbox Tagix#
Что можно тестировать в /sandbox/, какие ограничения safe-mode и как интерпретировать ошибки.
Синтаксис#
POST /api/v1/sandbox
Пример 1: минимум (копипаст для старта)#
POST /api/v1/sandbox
Пример 2: реальный сценарий#
<form tgx:ajax-post="/api/v1/sandbox" tgx:target="#sandbox-result">
<textarea name="template"><div tgx:if="user">Hi</div></textarea>
<button type="submit">Проверить</button>
</form>
Пример 3: комбинированный сценарий#
<tgx tgx:set="items">["A","B","C"]</tgx>
<ul>
<li tgx:repeat="items -> item"></li>
</ul>
Разбор#
Sandbox разрешает только безопасный поднабор директив и блокирует опасные теги/URL схемы. Есть лимиты: timeout 10s, общий бюджет repeat-итераций 5000, глубинаtgx:component до 10.
Когда использовать#
- Когда нужно управлять поведением блока прямо в шаблоне, не дублируя логику в нескольких местах.
- Когда важно сделать поведение страницы предсказуемым для пользователя в реальных сценариях.
Частые ошибки#
- Пытаться использовать в sandbox директивы, требующие доступ к DB/HTTP/system
- Не учитывать лимит вложенности компонентов и лимит итераций
Проверка перед публикацией#
- Код не содержит script/iframe/object/embed/base/link и JS URL-схем
- Проверен объем циклов: суммарно не больше sandbox-лимита
См. также#
Связанные статьи
Sandbox Tagix — безопасная проверка TGX до публикации
Sandbox Tagix#
Что можно тестировать в /sandbox/, какие ограничения safe-mode и как интерпретировать ошибки.
Синтаксис#
POST /api/v1/sandbox
Пример 1: минимум (копипаст для старта)#
POST /api/v1/sandbox
Пример 2: реальный сценарий#
<form tgx:ajax-post="/api/v1/sandbox" tgx:target="#sandbox-result">
<textarea name="template"><div tgx:if="user">Hi</div></textarea>
<button type="submit">Проверить</button>
</form>
Пример 3: комбинированный сценарий#
<tgx tgx:set="items">["A","B","C"]</tgx>
<ul>
<li tgx:repeat="items -> item"></li>
</ul>
Разбор#
Sandbox разрешает только безопасный поднабор директив и блокирует опасные теги/URL схемы. Есть лимиты: timeout 10s, общий бюджет repeat-итераций 5000, глубинаtgx:component до 10.
Когда использовать#
- Когда нужно управлять поведением блока прямо в шаблоне, не дублируя логику в нескольких местах.
- Когда важно сделать поведение страницы предсказуемым для пользователя в реальных сценариях.
Частые ошибки#
- Пытаться использовать в sandbox директивы, требующие доступ к DB/HTTP/system
- Не учитывать лимит вложенности компонентов и лимит итераций
Проверка перед публикацией#
- Код не содержит script/iframe/object/embed/base/link и JS URL-схем
- Проверен объем циклов: суммарно не больше sandbox-лимита