Skip to content

Seeding

The seed script populates the database with default permissions, roles, and an admin user.

Run

docker compose exec api python -m app.core.seed

What gets created

Permissions

Name Description
users:read View users
users:create Create users
users:update Update users
users:delete Delete users
users:assign_roles Assign roles to users
roles:read View roles
roles:create Create roles
roles:update Update roles
roles:delete Delete roles
permissions:read View permissions
permissions:create Create permissions
permissions:update Update permissions
permissions:delete Delete permissions

Roles

Role Permissions
admin All permissions
manager Read/create/update users, assign roles, read roles and permissions
viewer Read-only access to users, roles, and permissions

Admin User

Field Value
Email admin@cms.local
Password Admin123!
Role admin

Idempotent

The seed script is safe to run multiple times — it skips existing records and only creates what's missing.

Warning

Change the default admin password immediately after first login in production.