Skip to main content

Muffin-Admin

Muffin-Admin mounts a react-admin single page application on top of Muffin-REST resources. A resource that already has a REST API gets list, create, edit and delete screens without writing any JavaScript.

Read the documentation for configuration, resources, actions and authentication.

Documentation Tests Status PyPI Version Python Versions

Muffin-Admin

Requirements

  • Python 3.11 - 3.15
  • Muffin >= 3.1 and Muffin-REST >= 14.2
  • Peewee (muffin-peewee-aio) or SQLAlchemy Core (muffin-databases) for a storage backend

Install

pip install muffin-admin                # core
pip install "muffin-admin[peewee]"      # Peewee ORM
pip install "muffin-admin[sqlalchemy]"  # SQLAlchemy Core

Quickstart

from muffin_admin import Plugin, PWAdminHandler

admin = Plugin(app)


@admin.route
class UserResource(PWAdminHandler):
    """An admin resource for the User model."""

    class Meta(PWAdminHandler.Meta):
        model = User
        filters = "email", "is_active", "role"
        columns = "email", "is_active", "role", "created"

The admin is served at /admin and the resource API at /admin/api. See the quickstart for a complete application, including models and startup.

Features

  • List, create, edit and delete screens for Peewee ORM and SQLAlchemy Core resources
  • Filtering, sorting and pagination driven by Muffin-REST
  • Custom actions with forms, confirmation and file downloads
  • Dashboard cards and pluggable authorization hooks
  • Translations, custom CSS/JS and Material-UI icons

Documentation

Guide What it answers
Quickstart Build a working admin from scratch
Configuration Plugin options, config keys, environment variables
Resources AdminHandler.Meta in full
Custom actions Buttons, forms, files, confirmation
Authentication check_auth, login, storage, cookies
Dashboard Cards on the start page
Customization Translations, CSS/JS, mutation mode, frontend build
API reference Classes, options and hook signatures
Development Tests, examples, docs, release

Development

uv sync --all-extras --dev
uv run pytest tests     # tests
make lint               # pyrefly + ruff
make docs               # build the documentation
make example-peewee     # run the Peewee example

See Development for the full workflow.

Bug tracker and contributing

Issues and pull requests: https://github.com/klen/muffin-admin

License

MIT.

Metadata

Release files for muffin-admin 13.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for muffin-admin 13.4.0
File Size Uploaded Provenance Actions
muffin_admin-13.4.0.tar.gz 1.2 MB Without provenance Details for muffin_admin-13.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for muffin-admin 13.4.0
File Interpreter ABI Platform Actions
muffin_admin-13.4.0-py3-none-any.whl Python 3 none any Details for muffin_admin-13.4.0-py3-none-any.whl

Total release size: 2.3 MB

Release files / muffin_admin-13.4.0.tar.gz

Download URL muffin_admin-13.4.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
f39ab72837f06b4ceb322facdeb5105b0fd1ae387134e28adfc2ced976c604fe
BLAKE2b-256 checksum
How to use checksums
84bb5ddf3e4bd08399068db243040668147bd093192e35249b3761267c0d2309
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / muffin_admin-13.4.0-py3-none-any.whl

Download URL muffin_admin-13.4.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
41655fd895664d7583de36e49e1e40c04dbfeb16d1c5d4906fa5635174a89fb1
BLAKE2b-256 checksum
How to use checksums
a7dbf32fe96a841e6035b34d8ff8716b09022782db727d8e612176509a3c1b63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for muffin-admin 13.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

13.4.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page