Skip to main content

General-purpose admin panel framework powered by FastAPI. Some call it heavenly in its brilliance.

Project description

Brilliance Admin

PyPI License CI

General-purpose admin panel framework powered by FastAPI. Some call it heavenly in its brilliance.

  • Serves a prebuilt SPA frontend as static files
  • Generates schemas for frontend sections on the backend
  • Provides a backend-driven API for admin interfaces
  • Designed for fast data management and data viewing from any sources
  • Inspired by Django Admin and Django REST Framework
  • Focused on minimal boilerplate and simplified backend-controlled configuration

Live Demo | Example App | Documentation (todo)

Features:

  • Tables with full CRUD support, including filtering, sorting, and pagination.
  • Ability to define custom table actions with forms, response messages, and file uploads.
  • SQLAlchemy integration with automatic field generation from models.
  • Authorization via any account data source.
  • Localization support with language selection in the interface.

How to use it

Installation:

pip install brilliance-admin

You need to generate AdminSchema instance:

from admin_panel import schema

admin_schema = schema.AdminSchema(
    title='Admin Panel',
    auth=YourAdminAuthentication(),
    groups=[
        schema.Group(
            slug='example',
            title='Example',
            icon='mdi-star',
            categories=[
                CategoryExample(),
            ]
        ),
    ],
)

admin_app = admin_schema.generate_app()

# Your FastAPI app
app = FastAPI()
app.mount('/admin', admin_app)

SQLAlchemy integration

Brilliance Admin supports automatic schema generation from SQLAlchemy and provides a ready-made CRUD implementation for tables.

from admin_panel import sqlalchemy
from admin_panel.translations import TranslateText as _

from your_project.models import Terminal


class TerminalAdmin(sqlalchemy.SQLAlchemyAdmin):
    db_async_session = async_sessionmaker
    model = Terminal
    title = _('terminals')
    icon = 'mdi-console-network-outline'
    
    ordering_fields = ['id']
    search_fields = ['id', 'title']

    table_schema = sqlalchemy.SQLAlchemyFieldsSchema(
        model=Terminal, 
        list_display=['id', 'merchant_id'],
    )
    table_filters = sqlalchemy.SQLAlchemyFieldsSchema(
        model=Terminal, 
        fields=['id', 'created_at'],
        created_at=schema.DateTimeField(range=True),
    )


category = TerminalAdmin()

Now, the TerminalAdmin instance can be passed to categories.

Can be used both via inheritance and instancing

For SQLAlchemyFieldsSchema

class TerminalTableSchema(sqlalchemy.SQLAlchemyFieldsSchema):
    model = Terminal
    fields = ['id', 'created_at']

    created_at=schema.DateTimeField(range=True)


class TerminalAdmin(sqlalchemy.SQLAlchemyAdmin):
    table_schema = TerminalTableSchema()

And SQLAlchemyAdmin category schema itself

If table_schema is not specified, it will be generated automatically and will include all discovered fields and relationships of the table in the output.

category = sqlalchemy.SQLAlchemyAdmin(db_async_session=async_sessionmaker, model=Terminal)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brilliance_admin-0.42.0.tar.gz (3.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brilliance_admin-0.42.0-py3-none-any.whl (3.7 MB view details)

Uploaded Python 3

File details

Details for the file brilliance_admin-0.42.0.tar.gz.

File metadata

  • Download URL: brilliance_admin-0.42.0.tar.gz
  • Upload date:
  • Size: 3.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.29

File hashes

Hashes for brilliance_admin-0.42.0.tar.gz
Algorithm Hash digest
SHA256 7fbd84290b05420328d7e2d44e73fa5b7695e1441b7dbb648acaeba0b7b0383e
MD5 f42b5fadf3f7046496d95f7e493aa6c8
BLAKE2b-256 d49ba3b7a44ea214e4f0755d068d64c9b471b6a89cebfce15cb2badced36d213

See more details on using hashes here.

File details

Details for the file brilliance_admin-0.42.0-py3-none-any.whl.

File metadata

File hashes

Hashes for brilliance_admin-0.42.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c7b2f28bc8379585d978eeeeaa92ab916adeeb9799591a840d7da9dcbfd6c82
MD5 7d5971f1a27636f2e1a4617b231459a2
BLAKE2b-256 7d4822e4c2e543d4c1eff519a8795a5fe1ff17316b24271153f944269783e4ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page