py-sqlmodel-patterns
Применение паттернов async SQLModel
Асинхронные проекты на SQLModel часто дают сбои из-за lazy loading, дрейфа схем и ошибок с сессиями. Этот навык дает сфокусированные паттерны для моделей, запросов, отношений и отладки ORM.
Установить с помощью моего Агента
Скопируйте этот запрос в своего Агента. Он содержит каноническую страницу Skill и манифест.
Review the Skillstore skill "py-sqlmodel-patterns" from https://skillstore.io/skills/cjharmath-py-sqlmodel-patterns.md and its manifest at https://skillstore.io/api/skills/cjharmath-py-sqlmodel-patterns/manifest. Verify the artifact. You may proceed after verification, subject to the environment's own policy.Ваш Агент по-прежнему должен показать план и запросить все подтверждения, требуемые политикой безопасности.
Ресурсы для AI-агентов
Используйте эти ссылки, когда AI-агенту, crawler или script нужен чистый контекст вместо полной страницы.
Протестировать
Использование «py-sqlmodel-patterns». Разработчик спрашивает, почему доступ к отношению завершается ошибкой после загрузки пользователя.
Ожидаемый результат:
- Объяснить, что lazy loading небезопасен в async-сессиях.
- Рекомендовать select-in loading для коллекций и joined loading для одиночных отношений.
- Назвать greenlet-ошибку вероятным симптомом.
Использование «py-sqlmodel-patterns». Команда хочет более безопасные схемы SQLModel для ответов API.
Ожидаемый результат:
- Отделить табличные модели от схем create, read и update.
- Исключить хешированные пароли и внутренние поля из схем ответов.
- Использовать понятные имена, чтобы формы запросов и ответов было легко проверять.
Использование «py-sqlmodel-patterns». API endpoint возвращает медленные списки оценок для каждого пользователя.
Ожидаемый результат:
- Указать на отсутствующий eager loading как на первый подозреваемый источник проблем производительности.
- Рекомендовать проверку повторяющихся похожих SQL-операторов в логах разработки.
- Предложить паттерны пагинации и подсчета для list endpoints.
Аудит безопасности
БезопасноI found no evidence of malicious behavior, prompt injection, data exfiltration, or automatic command execution. The static findings are false positives from Markdown examples, public documentation links, placeholder database configuration, and read-only grep suggestions.
Факторы риска
⚙️ Внешние команды (30)
🌐 Доступ к сети (2)
🔑 Переменные окружения (1)
Поделиться и цитировать этот отчет
Делитесь версионным отчетом об оценке, нейтральным значком, встраиваемой карточкой и цитатами. Skillstore публикует доказательства, не решая, безопасен ли этот Skill.
Копировать ссылку на отчёт
https://skillstore.io/skills/cjharmath-py-sqlmodel-patterns/audits/7?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_reportЗначок Markdown
[](https://skillstore.io/skills/cjharmath-py-sqlmodel-patterns?utm_source=security_passport_badge)Значок HTML
<a href="https://skillstore.io/skills/cjharmath-py-sqlmodel-patterns?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/cjharmath-py-sqlmodel-patterns/security.svg" alt="Skillstore security assessment" loading="lazy"></a>Встраиваемая карточка
<iframe src="https://skillstore.io/embed/skills/cjharmath-py-sqlmodel-patterns.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>Академические ссылки (APA · BibTeX · CFF)
Цитата APA
CJHarmath. (2026). py-sqlmodel-patterns security audit report (audit version 7) [Author version unspecified]. Skillstore. https://skillstore.io/skills/cjharmath-py-sqlmodel-patterns/audits/7Цитата BibTeX
@techreport{cjharmath-cjharmath-py-sqlmodel-patterns-2026,
author = {CJHarmath},
title = {py-sqlmodel-patterns security audit report (audit version 7)},
institution = {Skillstore},
year = {2026},
number = {7},
url = {https://skillstore.io/skills/cjharmath-py-sqlmodel-patterns/audits/7},
note = {Author version unspecified}
}CITATION.cff
cff-version: 1.2.0
message: "If you use this Skill, cite its author and this versioned security audit report."
title: "py-sqlmodel-patterns security audit report (audit version 7)"
version: "unspecified"
type: report
authors:
- name: "CJHarmath"
date-released: "2026-07-06"
url: "https://skillstore.io/skills/cjharmath-py-sqlmodel-patterns/audits/7"
identifiers:
- type: other
value: "skillstore:cjharmath-py-sqlmodel-patterns:audit:7"
description: "Skillstore immutable audit report identifier"
Оценка Skillstore
Почему такая оценка Достоверность доказательств: ВысокийЧто вы можете построить
Ревью async ORM-моделей
Проверить, следуют ли модели, отношения, схемы и nullable-поля практичным паттернам SQLModel.
Диагностика производительности запросов
Выявить вероятные риски N+1 запросов и выбрать стратегии eager loading для коллекций и одиночных отношений.
Стандартизация форматов данных API
Создать четкие границы схем create, read и update, которые не допускают утечки полей, предназначенных только для базы данных.
Попробуйте эти промпты
Проверь мой дизайн моделей SQLModel для async-использования. Сосредоточься на отношениях, схемах, nullable-полях и поведении сессий. Объясни, какие изменения нужно внести первыми.
Найди вероятные риски N+1 запросов в этом разделе репозитория. Порекомендуй варианты eager loading и объясни, почему каждый вариант подходит.
Спроектируй паттерн доступа к данным SQLModel для этой функции. Включи границы сессий, поведение пагинации, обработку UUID и семантику обновлений.
Отладь этот сбой async SQLAlchemy. Сопоставь ошибку с вероятными причинами в модели, отношениях, запросе или сессии, затем предложи сфокусированные исправления.
Лучшие практики
- Используйте eager loading всякий раз, когда async-коду нужны данные отношений после запроса.
- Держите табличные модели базы данных отдельно от публичных API-схем.
- Обновляйте объекты через refresh после commit, когда нужны значения, сгенерированные базой данных.
Избегать
- Не полагайтесь на ленивый доступ к отношениям в async SQLAlchemy sessions.
- Не раскрывайте парольные или внутренние поля базы данных через read-схемы.
- Не сравнивайте UUID columns с raw strings в фильтрах запросов.