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
6520e88d53
phase2: architecture, task_graph v2.1.0, AGENTS.md, quality gates, security review
...
- architecture.md (2019 lines): 73/73 v1 features, RLS policies, CORS, auth rate limiting, v2 FKs removed
- task_graph.json v2.1.0: 14 tasks (7 v1 + 7 v2), 143 features, 298 ACs, all dict test_specs
- AGENTS.md: 14 tasks mapped, T07a/T07b split, v1/v2 phase plan
- Quality gate reviews: Round 1, 2, 3 (all passed)
- Security review: APPROVED_WITH_CONCERNS (0 critical, 7 major, 8 minor)
- Architecture feasibility review: FEASIBLE_WITH_RISKS (3 critical fixed, 5 major fixed)
- All 3 critical issues from feasibility review resolved
- All pre-implementation security items addressed
2026-06-29 08:02:14 +02:00
leocrm-bot
578bb3a478
chore: remove remaining legacy files from main
...
- app.py, Dockerfile, requirements.txt, .coverage removed
- specs/, cache dirs removed
- Main is now clean: only docs/ + requirements artifacts
- Old code preserved on archive/legacy-v0 + feat/T1-auth
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
Leopoldadmin
6cf8955ded
B1+B2: requirements, architecture, design, tasks
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