fastfort buyrug‘i
To‘rtta buyruq — imzolash kaliti, birinchi hisob, deployni to‘xtatib turishi mumkin bo‘lgan konfiguratsiya hisoboti va admin nimalarni boshqarishi haqidagi ro‘yxat.
Mavjud v0.1.0
uv add "fastfort[cli]"
Loyihaga admin umuman ishlashi uchun to‘rtta narsa kerak: maxfiy kalit, tizimga kirish uchun birinchi hisob, konfiguratsiya to‘g‘riligini tekshirish usuli va nimalar ro‘yxatga olinganini ko‘rish usuli. Dastlabki ikkitasisiz yangi o‘rnatilgan tizimdan alohida skript yozmasdan foydalanib bo‘lmaydi.
--app
Loyihangizga murojaat qiladigan har bir buyruq shu parametrni qabul qiladi:
uv run fastfort check --app main:fort
module:attribute — FastFort obyekti qayerda joylashganini bildiradi. U
import qilinishi mumkin, chunki main.py faylingiz uni modul darajasida
yaratadi.
generate-secret
uv run fastfort generate-secret
uv run fastfort generate-secret --export # FASTFORT_SECRET_KEY=…
uv run fastfort generate-secret --length 64
Faqat ekranga chiqariladi — boshqa hech narsa. Hech qachon faylga yozilmaydi. Vosita diskka yozib qo‘ygan sir — bu ertami-kechmi commitga tushib qoladigan sirdir.
FastFortSettingsda standart secret_key yo‘q, chunki uni o‘zi bilan birga
taqdim etadigan freymvork qandaydir deployning aynan shu kalit bilan
ishlashini kafolatlaydi. Validator, bundan tashqari, to‘ldirilgan andozani, 32
belgidan qisqa har qanday qiymatni va 8 tadan kam noyob belgidan iborat
qiymatlarni rad etadi.
createsuperuser
# Interactive
uv run fastfort createsuperuser --app main:fort
# CI
FF_PASSWORD='…' uv run fastfort createsuperuser \
--app main:fort \
--identity you@example.com \
--password-env FF_PASSWORD \
--no-input
--password emas, --password-env: argument sifatida uzatilgan parol shell
tarixida va ps buyrug‘i chiqishida ko‘rinib turadi. --passwordni
interaktiv tarzda uzatganda shu haqda ogohlantirish chiqariladi.
Buyruq parolni auth.password_min_length va keng tarqalgan parollar
ro‘yxatiga solishtirib tekshiradi, takrorlangan identifikatorni rad etadi va
faqat spesifikatsiya tahrirlanadigan deb belgilagan maydonlarga yozadi —
shuning uchun foydalanuvchi modelida besh odatiy ustundan birining yo‘qligi
xatolikka olib kelmaydi, ortiqcha kalit shunchaki e’tiborsiz qoldiriladi.
check
uv run fastfort check --app main:fort
uv run fastfort check --app main:fort --deploy
Birinchi muammoda to‘xtab qolish o‘rniga barcha muammolarni yig‘adi va nolga teng bo‘lmagan kod bilan yakunlanadi — shu tufayli u deployni to‘xtatib turishi mumkin:
Fastfort Freight · 17 model(s)
warn debug=True exposes tracebacks and internal state. Set FASTFORT_DEBUG=false.
warn security.cookie_secure=False sends the session cookie over plain HTTP.
Set FASTFORT_SECURITY__COOKIE_SECURE=true and serve over HTTPS.
warn auth.access_token_ttl is 7200s. A leaked access token stays valid that
long; 900s is the recommended ceiling.
3 problem(s) found.
--deploy bo‘lmasa, faqat ulanishlar tekshiriladi: yetishmayotgan backend,
yetishmayotgan foydalanuvchi modeli, backend ishlay olmaydigan model, bo‘sh
reestr. Bu flag bilan esa — production uchun tekshiruvlar ham qo‘shiladi.
- name: Configuration check
run: uv run fastfort check --app main:fort --deploy
env:
FASTFORT_SECRET_KEY: ${{ secrets.FASTFORT_SECRET_KEY }}
FASTFORT_DEBUG: "false"
registered-models
uv run fastfort registered-models --app main:fort
Accounts
accounts.user app.models.accounts.User
/admin/accounts.user/
accounts.role app.models.accounts.Role
/admin/accounts.role/
Catalog
catalog.product app.models.catalog.Product
/admin/catalog.product/
Admin nimalarni boshqarayotgani, har bir model qayerda joylashgani va har bir
sahifaning URL manzilini ko‘rsatadi. autodiscover kutganingizni topdimi
yoki yo‘qmi — buni bilish uchun foydali.
version
uv run fastfort version
Ro‘yxatga olish — aniq yoki avtomatik aniqlash orqali
fort.include_admin("app.admin") # named; an import error names the module
fort.autodiscover("app") # walks for every app/**/admin.py
autodiscover nimani import qilgan bo‘lsa, o‘shani qaytaradi,
registered-models esa shu natijani chiqaradi — shunday qilib nima sodir
bo‘lgani doim ko‘rinib turadi, sehr emas. Import paytida istisno tashlaydigan
modullar yashirilmaydi.