Flaxon 0.3.0 and Teloce-Py 0.3.0 are available on PyPI. Release instructions are maintained on this site; source links identify the framework snapshot. Check version and upgrade guidance.
Admin and CMS API Reference
This is the implementation-oriented API map. For setup and production guidance, read Admin and CMS Production Guide.
Python APIs
from flaxon.admin import (
AdminConfig, AdminDashboard, AdminAuth, AdminStore, PostgreSQLAdminStore,
RedisAdminSessionBackend, write_admin_migration,
)
from flaxon.admin.cms import CMS, CMSField, ContentType
AdminDashboard
AdminDashboard(
app,
config=None,
url_prefix="/admin",
template_dir=None,
registry=None,
users=None,
auth_backend=None,
upload_dir="uploads",
store=None,
storage_path=None,
redis_url=None,
database=None,
password_reset_sender=None,
email_verification_sender=None,
require_email_verification=False,
max_upload_size=10 * 1024 * 1024,
allowed_upload_types=None,
)
Use exactly one AdminStore strategy for the auxiliary production services:
storage_path for the built-in SQLite store, or PostgreSQLAdminStore for a
PostgreSQL/Neon deployment. The separate database argument persists the
dashboard and CMS application data. redis_url adds shared sessions, rate
limits, publishing locks, and event broadcasting when configured.
from flaxon.admin import PostgreSQLAdminStore
store = PostgreSQLAdminStore(settings.database_url)
admin = AdminDashboard(app, database=database, store=store, redis_url=settings.redis_url)
app.on_shutdown(store.close)
Extension methods:
register(model, **options)andunregister(model)register_widget(widget)add_hook(name, callback)andrun_hook(name, value)csrf_token()for custom server-rendered forms
CMS
CMS(app, url_prefix="/admin/cms", title="CMS", template_path=None,
auth=None, database=None)
Methods:
register(content_type)add_hook(name, callback)run_hook(name, value)
CMS hooks include before_create, after_create, before_update,
after_update, before_delete, after_delete, and revision restore hooks.
ContentType
Important configuration fields:
ContentType(
name="post",
fields=[CMSField("title", required=True)],
list_display=["title", "status", "updated_at"],
list_filter=["status"],
search_fields=["title", "body"],
statuses=["draft", "review", "approved", "scheduled", "published", "archived"],
has_slug=True,
slug_source="title",
order_by="-updated_at",
)
Methods include create, get, update, delete, query, stats,
register_action, history, compare_revisions, and restore.
HTTP Routes
AdminDashboard serves /admin/, /admin/login, /admin/logout,
/admin/profile, /admin/users, /admin/roles, /admin/media,
/admin/settings, /admin/search, /admin/activity,
/admin/activity/export, /admin/notifications, and /admin/operations.
Model routes are /admin/<model>, /add, /<id>, /<id>/edit,
/<id>/delete, /<id>/history, and /actions/<name>.
CMS routes are listed below. Replace /admin/cms with the configured prefix.
| Method | Route | Auth/CSRF | Result |
|---|---|---|---|
| GET | /api/config |
session | Schemas |
| GET | /api/stats |
session | Counts |
| GET | /api/<type>/items |
session | Paginated query |
| POST | /api/<type>/items |
session + CSRF | Create |
| GET | /api/<type>/items/<id> |
session | Record |
| PUT | /api/<type>/items/<id> |
session + CSRF | Update + revision |
| DELETE | /api/<type>/items/<id> |
session + CSRF | Delete + revision |
| GET | /api/<type>/items/<id>/history |
session | Comparisons |
| POST | /api/<type>/items/<id>/restore/<revision> |
session + CSRF | Restore |
| POST | /api/<type>/actions/<action> |
session + CSRF | Bulk action |
| GET | /api/export/<type> |
session | JSON/CSV download |
| POST | /api/import/<type> |
session + CSRF | Import and row errors |
| GET/POST | /api/taxonomies |
session / CSRF | Taxonomy collection |
| POST/PATCH/DELETE | /api/taxonomies/<name> |
session + CSRF | Terms |
| GET/POST | /api/comments |
session / CSRF | Moderation queue |
| PATCH/DELETE | /api/comments/<id> |
session + CSRF | Moderate/delete |
| GET/PUT | /api/menus/<name> |
session / CSRF | Menu hierarchy |
Client Contract
Send the session cookie and CSRF header:
await fetch("/admin/cms/api/post/items", {
method: "POST",
credentials: "same-origin",
headers: {
"Content-Type": "application/json",
"X-CSRF-Token": csrfToken,
},
body: JSON.stringify({ title: "Hello", status: "draft" }),
});
Handle 401, 403, 404, 409, 413, and 422 explicitly. Import
responses contain items, imported, and row-level errors. Do not expose
password hashes, MFA secrets, reset tokens, or verification tokens to clients.
Migration API
from flaxon.admin import write_admin_migration
write_admin_migration("migrations")
Then run flaxon migrate --database <url> --migrations-dir migrations in the
same release step that deploys the application. Test both apply and rollback
in CI.
Use this capability in a full-stack app
Flaxon serves Python APIs and Teloce interfaces in one project. Keep validation, authorization and privileged operations on the server; components call those endpoints and present their results. Follow the full-stack lessons and Teloce integration reference to connect this capability to pages, components and application modules.