Демо в браузере
Откройте демо, используйте admin / admin.
Демо использует обычные главную, списки таблиц и формы записей админки. После входа
приглашение в необязательный тур предлагает Начать тур или Не сейчас. Переходы
и подсветка начинаются только после нажатия Начать тур. Отказ или закрытие приглашения
запоминаются; при желании выберите Начать тур в меню профиля. Тур только открывает
настоящие страницы и объясняет контролы; он не сохраняет записи. Управляйте им кнопками
Назад, Далее, Пропустить тур и Завершить. Закрытие и пропуск тоже
запоминаются. Шаг сохраняется при собственных переходах тура и перезагрузках в той же
вкладке; новая вкладка не запускает его автоматически.
Для английского или русского интерфейса откройте демо с ?lang=en или ?lang=ru.
Иначе используется сохранённый язык или язык браузера.
Для редактируемых дат откройте Список таблиц → Schedules → Создать запись или найдите
Schedules через Найти таблицу. В форме есть Дата, Дата и время и необязательное
Время. Значок календаря рядом с Дата или частью даты в Дата и время открывает
существующий календарь внутри страницы. Укажите название, заполните обязательные
значения и нажмите Создать запись, чтобы сохранить свою вымышленную запись.
Workflow документации собирает и публикует демо по пути /demo/.
Обзор интерфейса содержит скриншоты и пошаговые сценарии.
Что попробовать
| Экран | Работающий пример |
|---|---|
| Schedules | Откройте Создать запись для изменения Дата, Дата и время или Время и значка календаря; существующие записи также показывают микросекунды, nullable boolean, многострочный TEXT и JSON |
| Products | Измените цену/остаток прямо в ячейке, сохраните или отмените; переключите Active в списке |
| Field samples | Enum, UUID, числа, ссылки URL/issue, предпросмотр многострочного текста и JSON, значения модели по умолчанию, время/binary только для чтения и контрол ключа задачи с подсказками |
| Действия Field samples | Откройте образец и выполните Publish sample или Archive sample; проверьте статус и локальную историю |
| Folders | Поиск по 36 вариантам с пагинацией; родитель и дети в дереве со связью 1:N на ту же таблицу, отвязка nullable-связей и Samples только для чтения |
| Customers / Customer Profiles / Orders | Одиночный выбор с поиском для 1:1 и N:1; заказы клиента используют множественный выбор 1:N |
| Products / Tags | Редакторы M:N с поиском; конкурентные изменения форм вызывают конфликт устаревшего сохранения |
| Regional prices | Составной ключ Region + SKU, проверка чисел и ключевые поля только для чтения после создания |
| Price alerts | Обязательная связь Regional Price одним выбором задаёт Region + SKU; поиск по полному JSON-ключу |
| Reference rates | Таблица только для просмотра, без кнопок создания, сохранения и удаления |
| Demo accounts | Просмотр вымышленных аккаунтов; создание/изменение через сервисы и работа с паролями требуют Python-примера |
| Массовые действия | Выберите товары, откройте Массовые действия, укажите Deactivate products или Удалить выбранные записи, проверьте подтверждение и результат каждой записи |
| Экспорт данных | Выбор обычных или связанных столбцов и CSV всех подходящих записей, включая другие страницы |
| История действий | Примеры событий двух вымышленных пользователей и ваши локальные действия, сравнения «было → стало», Журнал/Таблица, общие фильтры и выбор дня/диапазона UTC |
| Фильтры списков | Фрагменты текста, повторные условия, диапазоны чисел/дат, наборы, SQL NULL, пустой текст и связанные записи; редактирование чипов |
| Orders | Переходы Далее/Назад в стиле cursor pagination, сортировка по столбцам, без точного общего количества |
| Главная / Навигация | Виды Карточки и Список таблиц по группам, закреплённые/недавние таблицы, глобальный поиск и постоянная полоса значков |
| Схема БД | Видимость таблиц, раскрытие полей, промежуточные таблицы M:N, перетаскивание и автокомпоновка |
Для одиночной связи используются радиокнопки, для множественной — флажки.
Выбранные записи остаются видны отдельно от результатов поиска; поиск, пагинация,
очистка и удаление из выбора используют тот же компонент, что и Python-приложение.
Изменения сохраняются кнопкой Сохранить изменения вместе с обычными полями записи.
В Price alerts поле Regional Price заполняет оба столбца внешнего ключа одним выбором.
Для точного поиска по составному ключу введите {"region":"US","sku":"NOTE-001"}.
Regional prices показывает обратную связь Alerts; обязательные оповещения отвязать нельзя.
Изменения и последние 200 локальных событий сохраняются в браузере, если разрешён
localStorage. У каждого посетителя своя копия. В пределах одной версии демо обновление
таблиц и метаданных полей сохраняет локальные записи. Новая версия демо начинает
с собственной браузерной копии вымышленных данных.
Что показывает браузер, а что требует сервера
Это самостоятельная JavaScript-демонстрация. Схема, вымышленные данные, правила полей,
метаданные действий и разметка периода экспортируются из адаптера/шаблонов настоящего
примера. CSS и компоненты дат, форм, JSON, boolean, отображения значений, редактирования
ячеек, фильтров, связей, массового выбора и схемы берутся из Python-пакета.
Store фиксированной демо-схемы и транспорт запросов реализованы в JavaScript.
| Доступно в браузерном демо | Требует настоящего ASGI-приложения |
|---|---|
| Локальная история «было → стало», фильтры пользователя/дат и оба вида, включая локальные действия записей/массовые действия | Постоянное хранилище SQLite/PostgreSQL/MySQL, таблицы quiteadmin_, инициализация и права/скрытие чувствительных данных; Python-пример использует history_level="audit" для событий аутентификации, экспорта и ошибок записи |
| Переходы в стиле cursor pagination по вымышленным записям | Keyset-запросы БД без COUNT/OFFSET и подписанные курсоры со сроком действия |
| CSV обычных/связанных столбцов с выбором полей, текущими фильтрами и сортировкой | XLSX, пакетные запросы связей к БД и серверные ограничения экспорта |
| Локальные проверки обязательных значений, enum, UUID, числовых границ и ограничений связей; локальный откат и защита от устаревших сохранений | Python-parser, Pydantic-схемы, OperationHooks и атомарные записи БД |
| Метаданные только для просмотра, эффекты действий записи, подтверждение/результаты массовых действий над локальными записями | Серверная проверка прав каждого запроса, Python-обработчики действий и транзакции БД |
| Demo accounts только для чтения | Поле пароля только в форме, Pydantic-валидация, create/update-сервисы приложения и хеширование пароля |
В браузере не запускаются FastAPI, Litestar, ORM и сервер авторизации. Вход
admin / admin — пример интерфейса. Он не проверяет аутентификацию, CSRF, серверные
права, надёжность аудита или совместимость БД. Настоящие cookies, пароли,
production-секреты и записи приложения не экспортируются. Создавать, изменять и удалять
Demo accounts в браузере нельзя; эти сервисы проверяются в Python-приложении.
Для этих возможностей запустите локальный ASGI-пример и открывайте
таблицы через главную или Найти таблицу. В нём есть те же поля и связи,
настоящие действия записей/массовые действия, сервисные формы, хуки, хранилище истории
и CSV/XLSX. Demo accounts — учебные записи, отдельные от входа в админку.
Настройка и гарантии описаны в разделах хранилища,
конфигурации, сервисов приложения и экспорта.
Редактор raw SQL и конструктор дашбордов пока не реализованы.
Локальная сборка
uv sync --locked
npm ci
npm run docs:build
npm run demo:test
npm run docs:serve
Откройте localhost:8001/demo/. Сборщик всегда создаёт
временную SQLite-базу и случайные временные учётные данные, не подключаясь к БД
пользовательского приложения. Результат находится в build/docs/demo; hash-навигация
работает с префиксом репозитория без серверного fallback. После сборки документации
пересоберите демо: документация заменяет выходную директорию.
Node-тесты проверяют связи/откат, устаревшие сохранения, сохранение истории и включительные
даты, обновление демоданных, составные ключи, локальные права/действия, окна пагинации,
CSV-экранирование, фильтры и компоновку схемы. Python-интеграционные тесты проверяют
контролы, хуки и сервисы аккаунтов примера. Весь браузерный результат входит
в существующий артефакт публикации сайта.