NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4197 most downloaded on PyPI
SQLAlchemy admin for FastAPI and Starlette
Last release 14 days ago
20 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 55 of 59 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
59 releases · first in 2021
One column per quarter.
Added Role Based Access Control (RBAC) by @mmzeynalli in #1139
Full Changelog: 0.31.1...0.32.0
Fix advisory GHSA-h6cj-3759-22v4 : enforce the per-view is_accessible() authorization hook on @action and @expose endpoints, which were wrapped in log
GHSA-h6cj-3759-22v4: enforce the per-view is_accessible() authorization hook on @action and @expose endpoints, which were wrapped in login_required only, allowing an authenticated but unauthorized user to invoke custom actions and exposed views. Rejected requests now return HTTP 403 by @aminalaee.Full Changelog: 0.31.0...0.31.1
Update README by @aminalaee in #1110
where option in form_ajax_refs by @maxim-f1 in #1101Full Changelog: 0.30.0...0.31.0
where option in form_ajax_refs by @maxim-f1 in #1101column_(detail_)formatters by @mmzeynalli in #1108BaseView menu items active on their own page (#956) by @mmzeynalli in #1103Full Changelog: 0.30.0...0.31.0
[Feature] Added check_can_create by @maxim-f1 in #1102
check_can_create by @maxim-f1 in #1102Full Changelog: 0.29.0...0.30.0
check_can_create permission hook by @maxim-f1 in #1102get_object_identifier by @pctablet505 in #1092bootstrap global is undefined by @ebencollins in #1100TemplateResponse by @haykeminyan in #1094Full Changelog: 0.29.0...0.30.0
Using an empty string filter value for "All" is deprecated; use "__all" instead.
Response from AuthenticationBackend.login method. by @sheldygg in #935column_type_formatters_detail by @maxim-f1 in #999column_type_formatters_detail by @maxim-f1/@mmzeynalli in #999default_value to filters by @wnowicki/@mmzeynalli in #1004AuthenticationBackend.login to return Response by @sheldygg/@mmzeynalli in #935selectinload for AJAX relations on edit page by @arturbent0/@mmzeynalli in #1059Full Changelog: 0.28.0...0.29.0
feat: pass request to column formatters by @Dexter2099 in #1077
Full Changelog: 0.27.2...0.28.0
rich_text_fields for pluggable rich text editors by @vahidzhe in #1074request to column formatters by @Dexter2099 in #1077tabler-icons.min.css.map by @CHC383 in #1071_build_url_for and _url_for_delete use self.identity when the target object is an instance of the view's model (including polymorphic subclasses), and the object's class identity otherwise. Overrides of either helper apply to built-in templates.request argument to opt in.Full Changelog: 0.27.2...0.28.0
fix: render column defaults on the create form by @dhcsousa in #1061
Full Changelog: 0.27.1...0.27.2
Validate the sortBy list-view parameter against column_sortable_list GHSA-ccg5-9c8w-xh6v
sortBy list-view parameter against column_sortable_list GHSA-ccg5-9c8w-xh6vModelView.sort_query() did not check the attacker-controlled sortBy
query parameter against the configured column_sortable_list allow-list,
so a request could sort by any column of the model (including ones hidden
from column_list) and by related-model columns via a dotted path —
turning row order into an information-exposure ordering oracle. sortBy
is now rejected with HTTP 400 unless it is present in the configured
sortable columns.
Full Changelog: 0.27.0...0.27.1
GHSA-ccg5-9c8w-xh6v: restrict ModelView.sort_query() to the configured column_sortable_list allow-list (self._sort_fields) and reject invalid sortBy values with HTTP 400, preventing attacker-controlled ordering across arbitrary model and related-model columns and avoiding uncaught AttributeError (HTTP 500) by @aminalaee.Full Changelog: 0.27.0...0.27.1
fix(list): fix the list view to limit the page width to viewport size by @CHC383 in #1056
after_model_change response by @dhcsousa in #1030Full Changelog: 0.26.0...0.27.0
after_model_change response by @dhcsousa in #1030Full Changelog: 0.26.0...0.27.0
Drop Python 3.9 by @aminalaee in #1047
Full Changelog: 0.25.1...0.26.0
fix: Authenticate ajax lookup endpoint by @vahidzhe in #1035
ajax_lookupFull Changelog: 0.25.0...0.25.1
Move to org by @aminalaee in https://github.com/smithyhq/sqladmin/pull/1018
Full Changelog: https://github.com/smithyhq/sqladmin/compare/0.24.0...0.25.0
Full Changelog: 0.24.0...0.25.0
[Bug] Authorization vulnerability for expose and action by @maxim-f1 in https://github.com/aminalaee/sqladmin/pull/993
logo_url by @maxim-f1 in https://github.com/aminalaee/sqladmin/pull/995delete modal window by @maxim-f1 in https://github.com/aminalaee/sqladmin/pull/994Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.23.0...0.24.0
logo_url by @maxim-f1 in #995delete modal window by @maxim-f1 in #994Full Changelog: 0.23.0...0.24.0
Highlight applied filters with background and clear option by @danmysak in https://github.com/aminalaee/sqladmin/pull/964
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.22.0...0.23.0
Full Changelog: 0.22.0...0.23.0
Implement OperationColumnFilter to filter String, Numeric, and UUID Types by @chezou in https://github.com/aminalaee/sqladmin/pull/945
Fix filters inccorect records count by @birddevelper in https://github.com/aminalaee/sqladmin/pull/954
docs - update the example ColumnFilter by @proby-actvo in https://github.com/aminalaee/sqladmin/pull/949
Documentation improvements by @wnowicki in https://github.com/aminalaee/sqladmin/pull/941
Fix date and time type handling when used as primary key by @twoodwark in https://github.com/aminalaee/sqladmin/pull/958
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.21.0...0.22.0
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.21.0...0.22.0
Full Changelog: 0.21.0...0.22.0
Add category_icon by @sheldygg in https://github.com/aminalaee/sqladmin/pull/848
category_icon by @sheldygg in https://github.com/aminalaee/sqladmin/pull/848utf-8 by @alserious in https://github.com/aminalaee/sqladmin/pull/911Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.20.1...0.21.0
category_icon by @sheldygg in #848utf-8 by @alserious in #911Full Changelog: 0.20.1...0.21.0
Fix JSON export related model by @Vasiliy566 in https://github.com/aminalaee/sqladmin/pull/837
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.20.0...0.20.1
Full Changelog: 0.20.0...0.20.1
add json export format. by @Vasiliy566 in https://github.com/aminalaee/sqladmin/pull/829
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.19.0...0.20.0
Full Changelog: 0.19.0...0.20.0
Document update to resolve DeprecationWarning from Starlette (#809) by @a4rcvv in https://github.com/aminalaee/sqladmin/pull/810
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.18.0...0.19.0
Full Changelog: 0.18.0...0.19.0
Add form_rules, form_create_rules, form_edit_rules by @aminalaee in https://github.com/aminalaee/sqladmin/pull/779
form_rules, form_create_rules, form_edit_rules by @aminalaee in https://github.com/aminalaee/sqladmin/pull/779Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.17.0...0.18.0
form_rules, form_create_rules, form_edit_rules by @aminalaee in #779Full Changelog: 0.17.0...0.18.0
Add field description to Create/Edit templates by @ngaranko in https://github.com/aminalaee/sqladmin/pull/722
templates to templates/sqladmin by @hasansezertasan in https://github.com/aminalaee/sqladmin/pull/748form_args default by @aminalaee in https://github.com/aminalaee/sqladmin/pull/756Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.16.1...0.17.0
templates to templates/sqladmin by @hasansezertasan in #748form_args default by @aminalaee in #756Full Changelog: 0.16.1...0.17.0
Update model events docs to include request by @kostyaten in https://github.com/aminalaee/sqladmin/pull/677
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.16.0...0.16.1
Full Changelog: 0.16.0...0.16.1
Switch to async templates by @aminalaee in https://github.com/aminalaee/sqladmin/pull/652
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.15.2...0.16.0
Full Changelog: 0.15.2...0.16.0
Pin wtforms version < 3.1.0 to avoid breaking change in https://github.com/aminalaee/sqladmin/pull/646
wtforms version < 3.1.0 to avoid breaking change in https://github.com/aminalaee/sqladmin/pull/646Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.15.1...0.15.2
Avoid populating Select2 input with existing option by @Toshakins in https://github.com/aminalaee/sqladmin/pull/626
ItemMenu sort issue by @aminalaee in https://github.com/aminalaee/sqladmin/pull/631base_url @aminalaee in https://github.com/aminalaee/sqladmin/pull/638Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.15.0...0.15.1
Full Changelog: 0.15.0...0.15.1
Update AuthenticationBackend signature by @aminalaee in https://github.com/aminalaee/sqladmin/pull/581
list_query and count_query by @aminalaee in https://github.com/aminalaee/sqladmin/pull/610category config by @aminalaee in https://github.com/aminalaee/sqladmin/pull/616Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.14.1...0.15.0
list_query and count_query by @aminalaee in #610category config by @aminalaee in #616Full Changelog: 0.14.1...0.15.0
Fix Detail page to not use label to get value in https://github.com/aminalaee/sqladmin/pull/570
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.14.0...0.14.1
Pass request to model view methods by @rossmacarthur in https://github.com/aminalaee/sqladmin/pull/547
sessionmaker on BaseAdmin by @rossmacarthur in https://github.com/aminalaee/sqladmin/pull/542expose and action Auth backend not called by @aminalaee in https://github.com/aminalaee/sqladmin/pull/561Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.13.0...0.14.0
sessionmaker on BaseAdmin by @rossmacarthur in #542expose and action Auth backend not called by @aminalaee in #561Full Changelog: 0.13.0...0.14.0
Remove httpx from requirements by @agn-7 in https://github.com/aminalaee/sqladmin/pull/520
unique() to query related models by @florianabel in https://github.com/aminalaee/sqladmin/pull/535Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.12.0...0.13.0
unique() to query related models by @florianabel in #535Full Changelog: 0.12.0...0.13.0
Support sqlalchemy.sql.sqltypes.Uuid by @dexter-dopping-ekco in https://github.com/aminalaee/sqladmin/pull/501
sqlalchemy.sql.sqltypes.Uuid by @dexter-dopping-ekco in https://github.com/aminalaee/sqladmin/pull/501__all__ keyword by @aminalaee in https://github.com/aminalaee/sqladmin/pull/511ModelView can now have actions with the same name/slug by @murrple-1 in https://github.com/aminalaee/sqladmin/pull/503Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.11.0...0.12.0
sqlalchemy.sql.sqltypes.Uuid by @dexter-dopping-ekco in #501__all__ keyword by @aminalaee in #511ModelView can now have actions with the same name/slug by @murrple-1 in #503Full Changelog: 0.11.0...0.12.0
Add ability to specify custom actions by @murrple-1 in https://github.com/aminalaee/sqladmin/pull/486
ChoiceType by @aminalaee in https://github.com/aminalaee/sqladmin/pull/482Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.10.3...0.11.0
ChoiceType by @aminalaee in #482Full Changelog: 0.10.3...0.11.0
Fix ImageType converter by @aminalaee in https://github.com/aminalaee/sqladmin/pull/471
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.10.2...0.10.3
Full Changelog: 0.10.2...0.10.3
Fix nullable string fields by @aminalaee in https://github.com/aminalaee/sqladmin/pull/465
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.10.1...0.10.2
Full Changelog: 0.10.1...0.10.2
Fix PK getters for related objects by @timoniq in https://github.com/aminalaee/sqladmin/pull/449
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.10.0...0.10.1
Change AuthenticationBackend authenticate signature to support OAuth in https://github.com/aminalaee/sqladmin/pull/440
authenticate signature to support OAuth in https://github.com/aminalaee/sqladmin/pull/440Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.9.0...0.10.0
authenticate signature to support OAuth in #440Full Changelog: 0.9.0...0.10.0
Support PostgreSQL arrays in #414
PhoneNumberType, ColorType and ArrowType in #422Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.8.0...0.9.0
PhoneNumberType, ColorType and ArrowType in #422Full Changelog: 0.8.0...0.9.0
Add save_as option by @aminalaee in https://github.com/aminalaee/sqladmin/pull/377
save_as option by @aminalaee in https://github.com/aminalaee/sqladmin/pull/377save_as_continue option by @aminalaee in https://github.com/aminalaee/sqladmin/pull/379_url_for methods ignoring root_path by @aminalaee in https://github.com/aminalaee/sqladmin/pull/371list_query option by @villqrd in https://github.com/aminalaee/sqladmin/pull/381Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.7.0...0.8.0
save_as option by @aminalaee in #377save_as_continue option by @aminalaee in #379_url_for methods ignoring root_path by @aminalaee in #371list_query option by @villqrd in #381Full Changelog: 0.7.0...0.8.0
Add on_model_change and after_model_change methods by @dima23113 in https://github.com/aminalaee/sqladmin/pull/342
on_model_change and after_model_change methods by @dima23113 in https://github.com/aminalaee/sqladmin/pull/342on_model_delete and after_model_delete methods by @aminalaee in https://github.com/aminalaee/sqladmin/pull/343Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.6.1...0.7.0
on_model_change and after_model_change methods by @dima23113 in #342on_model_delete and after_model_delete methods by @aminalaee in #343Full Changelog: 0.6.1...0.7.0
Fix Boolean field for both nullable and non-nullable cases in https://github.com/aminalaee/sqladmin/pull/336
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.6.0...0.6.1
Full Changelog: 0.6.0...0.6.1
Add bulk delete action by @aminalaee in https://github.com/aminalaee/sqladmin/pull/317
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.5.0...0.6.0
Full Changelog: 0.5.0...0.6.0
Add remote_ajax_refs by @aminalaee in https://github.com/aminalaee/sqladmin/pull/292
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.4.0...0.5.0
Add Date and DateTime pickers using Fatpickr in https://github.com/aminalaee/sqladmin/pull/288
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.3.0...0.4.0
Add AuthenticationBackend in https://github.com/aminalaee/sqladmin/pull/277
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.2.1...0.3.0
Fix middlewares and ENGINE_TYPE types by @jockerz in https://github.com/aminalaee/sqladmin/pull/266
middlewares and ENGINE_TYPE types by @jockerz in https://github.com/aminalaee/sqladmin/pull/266Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.2.0...0.2.1
Add list_query, count_query and search_query options by @aminalaee in https://github.com/aminalaee/sqladmin/pull/243
list_query, count_query and search_query options by @aminalaee in https://github.com/aminalaee/sqladmin/pull/243BaseView for custom pages by @just-an-dev in https://github.com/aminalaee/sqladmin/pull/244expose for BaseView in https://github.com/aminalaee/sqladmin/pull/251ModelAdmin to ModelView in https://github.com/aminalaee/sqladmin/pull/249Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.12...0.2.0
list_query, count_query and search_query options in #243BaseView for custom pages in #244expose for BaseView in #251ModelAdmin to ModelView in #249Full Changelog: 0.1.12...0.2.0
Add time field converter by @ischaojie in https://github.com/aminalaee/sqladmin/pull/214
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.11...0.1.12
Full Changelog: 0.1.11...0.1.12
Add form_include_pk option by @aminalaee in https://github.com/aminalaee/sqladmin/pull/207
form_include_pk option by @aminalaee in https://github.com/aminalaee/sqladmin/pull/207Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.10...0.1.11
Add support for one-to-one relationship by @okapies in https://github.com/aminalaee/sqladmin/pull/182
impl is not callable by @aminalaee in https://github.com/aminalaee/sqladmin/pull/186Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.9...0.1.10
impl is not callable by @aminalaee in #186Full Changelog: 0.1.9...0.1.10
Add column_formatters by @skarrok in https://github.com/aminalaee/sqladmin/pull/140
Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.8...0.1.9
Full Changelog: 0.1.8...0.1.9
Add csv export support by @dwreeves in https://github.com/aminalaee/sqladmin/pull/101
self.get_converter by @lovetoburnswhen in https://github.com/aminalaee/sqladmin/pull/129Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.7...0.1.8
self.get_converter to use form_overrides by @lovetoburnswhen in #129Full Changelog: 0.1.7...0.1.8
Add SQLModel support by @aminalaee in https://github.com/aminalaee/sqladmin/pull/94
UUID field converter by @aminalaee in https://github.com/aminalaee/sqladmin/pull/82INET and MACADDR converters by @aminalaee in https://github.com/aminalaee/sqladmin/pull/83Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.6...0.1.7
UUID field converter by @aminalaee in #82INET and MACADDR converters by @aminalaee in #83Full Changelog: 0.1.6...0.1.7
FontAwesome6 icons by @EssaAlshammri in https://github.com/aminalaee/sqladmin/pull/78
column_sortable_list by @aminalaee in https://github.com/aminalaee/sqladmin/pull/65Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.5...0.1.6
Add column_searchable_list in #61
Allow templates to be configured in #52
Full Changelog: 0.1.3...0.1.4
Add title and logo options by @aminalaee in https://github.com/aminalaee/sqladmin/pull/20
title and logo options by @aminalaee in https://github.com/aminalaee/sqladmin/pull/20order_by to list pagination query by @bigg01 in https://github.com/aminalaee/sqladmin/pull/25Full Changelog: https://github.com/aminalaee/sqladmin/compare/0.1.2...0.1.3
title and logo options in #20order_by to list pagination query in #25Full Changelog: 0.1.2...0.1.3
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →