leocrm-bot
3ab4925783
T01: core infrastructure + auth + multi-tenant + RLS
...
- 10 models: tenants, users, user_tenants, roles, sessions, audit_log, deletion_log, notifications, password_reset_tokens, api_tokens
- Session-based auth (Redis + PostgreSQL audit trail)
- Multi-tenant with ORM-level filtering + PostgreSQL RLS (set_config)
- RBAC with roles/permissions + field-level permissions
- CSRF protection via Origin header validation
- Auth rate limiting (Redis counters with TTL)
- CORS with explicit origins (no wildcard)
- Health endpoint (no auth required)
- Notification service + audit log middleware
- 29 tests, 26 ACs, all passing
- Coverage: 62% (infrastructure modules pending coverage in later tasks)
2026-06-29 08:02:14 +02:00
leocrm-bot
d8f46abe0b
chore: clean main for new system architecture
...
- Old code archived on archive/legacy-v0 and feat/T1-auth
- Main contains only requirements and analysis docs
- UI Prototype: https://webspace.media-on.de/leocrm-prototype-x7k2p9/
- Ready for Phase 2: Architecture design
2026-06-29 08:02:14 +02:00
leocrm-bot
b122ce443b
Initial commit: LeoCRM - Flask CRM with auth, companies, contacts
2026-06-29 08:02:14 +02:00
Agent Zero
b5f7a220fe
chore(quality): apply ruff autofixes and formatting (223 fixes, regression-free: 118/118 tests pass)
2026-06-29 08:01:45 +02:00
Leopoldadmin
7104335334
Upload app/webui/js/store.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
d5b6ec3090
Upload app/webui/js/components/notifications.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
c7a0b795fc
Upload app/webui/js/auth.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
be1b473b46
Upload app/webui/js/api.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
8d6f496d14
Upload app/webui/css/app.css
2026-06-29 08:01:45 +02:00
Leopoldadmin
6a340f8131
Upload app/webui/components/deal-kanban.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
498152d4a3
Upload app/webui/components/dashboard-kpis.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
7a3e23704b
Upload app/webui/components/app-shell.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
ff61126595
Upload app/webui/components/activity-list.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
8b9a77290e
Upload app/webui/components/account-list.js
2026-06-29 08:01:45 +02:00
Leopoldadmin
525d86002c
Upload app/services/user_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
7024575c9a
Upload app/services/tag_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
8b3febe1a7
Upload app/services/note_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
2b9bd76a78
Upload app/services/deal_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
8d904c316b
Upload app/services/dashboard_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
26fe49490d
Upload app/services/contact_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
f9a4ae2a00
Upload app/services/auth_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
57354f1fdd
Upload app/services/activity_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
e3526bad50
Upload app/services/account_service.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
2d5f9e7a3e
Upload app/services/_base.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
43d30e5f48
Upload app/services/__init__.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
f568b2b5ce
Upload app/schemas/user.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
6a252da85e
Upload app/schemas/tag.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
4d100e158a
Upload app/schemas/note.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
51a4c36d7c
Upload app/schemas/deal.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
03a0a40f72
Upload app/schemas/dashboard.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
961455fcb6
Upload app/schemas/contact.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
65c4547317
Upload app/schemas/common.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
f17e822bdb
Upload app/schemas/auth.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
cfa0909c60
Upload app/schemas/activity.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
da260ebe84
Upload app/schemas/account.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
fd444ab5f6
Upload app/schemas/__init__.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
3cd44c8b9f
Upload app/models/user.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
394a910941
Upload app/models/tag_link.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
53513546ed
Upload app/models/tag.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
17dc06e38b
Upload app/models/org.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
d4af99ee2f
Upload app/models/note.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
e217bb1836
Upload app/models/deal_stage_history.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
14e78478da
Upload app/models/deal.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
65ad6a5139
Upload app/models/contact.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
52d7d3cb14
Upload app/models/base.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
ffcf80ecd9
Upload app/models/activity.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
d733ca87a4
Upload app/models/account.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
ff91306b95
Upload app/models/__init__.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
b44b1f3fe3
Upload app/core/security.py
2026-06-29 08:01:45 +02:00
Leopoldadmin
f73c340757
Upload app/core/deps.py
2026-06-29 08:01:45 +02:00