6d626ff266
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
2026-04-17 — Groups management and Admin navigation split
Timestamp: 2026-04-17T12:00:00Z
Summary
Added a Groups system (backend models, API, migration) and split the Admin sidebar item into an expandable accordion with "Users" and "Groups" sub-navigation points.
Files Added / Modified / Deleted
Added
backend/app/models/group.py—GroupandGroupMembershipSQLAlchemy modelsbackend/app/schemas/group.py— Pydantic schemas:GroupCreate,GroupUpdate,GroupOut,GroupDetailOut,GroupMemberOutbackend/app/routers/groups.py— Admin CRUD endpoints for groups + member add/removebackend/alembic/versions/a3f9c2d14e87_add_groups_and_group_memberships.py— Migration creatinggroupsandgroup_membershipstablesfrontend/src/pages/AdminUsersPage.tsx— User management page (extracted from AdminPage)frontend/src/pages/AdminGroupsPage.tsx— Group management page with inline member panel
Modified
backend/app/models/__init__.py— ImportGroupandGroupMembershipbackend/app/main.py— Mount/api/admin/groupsrouterfrontend/src/api/client.ts— Added 7 group API functions and TypeScript typesfrontend/src/pages/AdminPage.tsx— Now a simple redirect to/admin/usersfrontend/src/App.tsx— Added routes/admin/usersand/admin/groupsfrontend/src/components/Sidebar.tsx— Admin item is now an expandable accordion with Users and Groups sub-itemsbackend/STATUS.md— Documented groups endpoints, models, updated future workfrontend/STATUS.md— Documented new routes, pages, API client functions
2026-04-17 — Explicit bcrypt work factor
Timestamp: 2026-04-17T15:00:00Z
Summary
Made the bcrypt cost factor explicit (13 rounds, ~300 ms) in hash_password so it is easy to audit and increase over time.
Files Modified
backend/app/core/security.py— added_BCRYPT_ROUNDS = 13; passedrounds=tobcrypt.gensalt()