CRUDAdmin Usage Overview¶
This guide provides comprehensive information about using CRUDAdmin to create admin interfaces for your FastAPI applications. Whether you're just getting started or looking to implement advanced features, you'll find everything you need in these sections.
Core Documentation¶
Getting Started Guide¶
Learn the basics of CRUDAdmin and set up your first admin interface:
- Understanding CRUDAdmin's core concepts
- Setting up your first admin interface
- Configuring database connections
- Adding and managing models
- Basic usage and configuration
Security and Authentication¶
Implement robust security measures for your admin interface:
- Setting up authentication and session management
- Configuring IP restrictions and HTTPS
- Managing secrets securely
- Implementing access control
- Production security best practices
Monitoring and Maintenance¶
Keep your admin interface running smoothly:
- Setting up event tracking and audit logs
- Using the health monitoring dashboard
- Managing event logs effectively
- Implementing maintenance best practices
- Daily monitoring routines
Quick Start Example¶
Here's a minimal example to get your admin interface up and running:
from fastapi import FastAPI
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
from sqlalchemy.orm import declarative_base
import os
# Set up database
Base = declarative_base()
engine = create_async_engine("sqlite+aiosqlite:///app.db")
session = AsyncSession(engine)
# Create admin interface
admin = CRUDAdmin(
session=session,
SECRET_KEY=os.environ.get("ADMIN_SECRET_KEY"),
initial_admin={
"username": "admin",
"password": "secure_pass123"
}
)
# Mount to FastAPI
app = FastAPI()
app.mount("/admin", admin.app)
Common Use Cases¶
Basic Admin Interface¶
Perfect for simple applications needing data management:
# Define your model
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
username = Column(String, unique=True)
email = Column(String)
# Add to admin interface
admin.add_view(
model=User,
create_schema=UserCreate,
update_schema=UserUpdate
)
Secure Production Setup¶
Recommended configuration for production environments:
admin = CRUDAdmin(
session=session,
SECRET_KEY=SECRET_KEY,
enforce_https=True,
secure_cookies=True,
allowed_networks=["10.0.0.0/24"],
track_events=True
)
Monitored Environment¶
Set up comprehensive monitoring:
admin = CRUDAdmin(
session=session,
SECRET_KEY=SECRET_KEY,
track_events=True,
admin_db_url="postgresql+asyncpg://user:pass@localhost/admin_logs"
)
Next Steps¶
- Start with the Getting Started Guide to create your first admin interface
- Implement security measures using the Security and Authentication guide
- Set up monitoring using the Monitoring and Maintenance guide
Each guide provides detailed examples and best practices to help you make the most of CRUDAdmin's features.