Move 9 init/seed scripts into scripts/seed/ and 7 validation scripts (+ validators/ subfolder) into scripts/validate/ to reduce clutter in the root scripts/ directory. Update all references across Makefile, CI/CD configs, pre-commit hooks, docs (~40 files), and Python imports. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
146 lines
4.4 KiB
Markdown
146 lines
4.4 KiB
Markdown
# Session Note: Tenancy Module Consolidation Plan
|
|
|
|
**Date:** 2026-01-31
|
|
**Topic:** Complete migration plan for tenancy module and remaining legacy code
|
|
|
|
## Summary
|
|
|
|
This session established a comprehensive plan for migrating all identity and organizational management code to the tenancy module, plus identified where other legacy code should go.
|
|
|
|
## Key Decisions
|
|
|
|
### 1. Tenancy Module Scope
|
|
|
|
The tenancy module owns **identity and organizational hierarchy**:
|
|
- Platforms (top-level SaaS instances)
|
|
- Merchants (business entities)
|
|
- Stores (merchant accounts)
|
|
- Users (admin users, team members)
|
|
- Authentication (login, tokens, sessions)
|
|
- Teams (store team management)
|
|
- Domains (custom domain configuration)
|
|
|
|
### 2. Completed Migrations (This Session)
|
|
|
|
- Migrated `app/api/v1/store/info.py` → `tenancy/routes/api/store.py`
|
|
- Changed path from `/{store_code}` to `/info/{store_code}` (removes catch-all)
|
|
- Set up tenancy module as `is_self_contained=True`
|
|
- Updated frontend JS to use new endpoint path
|
|
|
|
### 3. Files Identified for Tenancy Migration
|
|
|
|
#### Routes to Migrate
|
|
```
|
|
Admin API:
|
|
- admin_users.py → tenancy/routes/api/admin_users.py
|
|
- merchants.py → tenancy/routes/api/admin_merchants.py
|
|
- platforms.py → tenancy/routes/api/admin_platforms.py
|
|
- stores.py → tenancy/routes/api/admin_stores.py
|
|
- store_domains.py → tenancy/routes/api/admin_store_domains.py
|
|
- users.py → tenancy/routes/api/admin_users.py
|
|
- auth.py → tenancy/routes/api/admin_auth.py
|
|
|
|
Store API:
|
|
- auth.py → tenancy/routes/api/store_auth.py
|
|
- profile.py → tenancy/routes/api/store_profile.py
|
|
- team.py → tenancy/routes/api/store_team.py
|
|
```
|
|
|
|
#### Services to Migrate
|
|
```
|
|
- store_service.py
|
|
- merchant_service.py
|
|
- platform_service.py
|
|
- admin_service.py
|
|
- admin_platform_service.py
|
|
- store_domain_service.py
|
|
- store_team_service.py
|
|
- team_service.py
|
|
- auth_service.py
|
|
- platform_signup_service.py
|
|
```
|
|
|
|
#### Models to Migrate
|
|
```
|
|
- store.py
|
|
- merchant.py
|
|
- platform.py
|
|
- admin.py
|
|
- admin_platform.py
|
|
- store_domain.py
|
|
- store_platform.py
|
|
- user.py
|
|
```
|
|
|
|
### 4. Other Module Assignments
|
|
|
|
| Module | Files to Receive |
|
|
|--------|-----------------|
|
|
| **monitoring** | background_tasks, logs, monitoring, platform_health, audit |
|
|
| **dev_tools** | code_quality, tests |
|
|
| **messaging** | messages, notifications, email_templates, email_settings |
|
|
| **cms** | media, images, store_themes |
|
|
| **core** (new) | dashboard, settings |
|
|
|
|
### 5. Framework-Level (Stay in ROOT)
|
|
|
|
- Module system (`modules.py`, `module_config.py`)
|
|
- Menu configuration (`menu_config.py`)
|
|
- System settings (`settings.py`)
|
|
- Base models (`base.py`, `platform_module.py`, `admin_menu_config.py`)
|
|
|
|
## Architecture Validation Updates
|
|
|
|
Added new rules to enforce module-first architecture:
|
|
- **MOD-016**: Routes must be in modules, not `app/api/v1/`
|
|
- **MOD-017**: Services must be in modules, not `app/services/`
|
|
- **MOD-018**: Tasks must be in modules, not `app/tasks/`
|
|
- **MOD-019**: Schemas must be in modules, not `models/schema/`
|
|
|
|
## Documentation Created
|
|
|
|
1. `docs/architecture/tenancy-module-migration.md` - Full migration plan
|
|
2. `docs/development/migration/module-autodiscovery-migration.md` - Migration history
|
|
3. Updated `docs/architecture/module-system.md` - Entity auto-discovery reference
|
|
|
|
## Next Actions
|
|
|
|
### Immediate (High Priority)
|
|
1. Migrate store auth routes to tenancy
|
|
2. Migrate admin auth routes to tenancy
|
|
3. Migrate store profile and team routes
|
|
|
|
### Short-term
|
|
4. Migrate merchant/store/platform admin routes
|
|
5. Move services to tenancy module
|
|
6. Create re-exports for backwards compatibility
|
|
|
|
### Medium-term
|
|
7. Migrate models to tenancy (careful - many dependencies)
|
|
8. Migrate schemas
|
|
9. Move messaging routes to messaging module
|
|
10. Move media routes to cms module
|
|
|
|
### Long-term
|
|
11. Create core module for dashboard/settings
|
|
12. Remove all re-exports once migration complete
|
|
13. Archive legacy directories
|
|
|
|
## Commits This Session
|
|
|
|
1. `401db56` - refactor: migrate remaining routes to modules and enforce auto-discovery
|
|
2. `23d5949` - refactor: move store info endpoint to tenancy module
|
|
|
|
## Key Principle
|
|
|
|
> **Tenancy owns identity and organizational hierarchy.**
|
|
> Everything else belongs to feature modules.
|
|
|
|
## Related Files
|
|
|
|
- `/docs/architecture/tenancy-module-migration.md`
|
|
- `/docs/architecture/module-system.md`
|
|
- `/docs/development/migration/module-autodiscovery-migration.md`
|
|
- `/.architecture-rules/module.yaml`
|
|
- `/scripts/validate/validate_architecture.py`
|