Reorganize app workspaces and align Admin architecture

This commit is contained in:
Igor Martyniuk
2026-07-17 13:46:21 +00:00
parent ba691d3a0c
commit 0ba01cd111
183 changed files with 3745 additions and 4354 deletions
+7 -7
View File
@@ -9,10 +9,10 @@ The Access Control module manages admin accounts, roles, and permissions in the
| Frontend module | `apps/admin/src/core/AccessControl/` |
| Frontend routes | `apps/admin/src/core/AccessControl/config/routing.tsx` |
| Frontend translations | `apps/admin/src/core/AccessControl/config/translation/` |
| Backend admin module | `backend/app/base_modules/Admin/` |
| Backend role module | `backend/app/base_modules/Role/` |
| Backend permission module | `backend/app/base_modules/Permission/` |
| Permission loader | `backend/app/services/permission_service.ts` |
| Backend admin module | `apps/backend/app/base_modules/Admin/` |
| Backend role module | `apps/backend/app/base_modules/Role/` |
| Backend permission module | `apps/backend/app/base_modules/Permission/` |
| Permission loader | `apps/backend/app/services/permission_service.ts` |
## Documentation
@@ -46,8 +46,8 @@ The Access Control module manages admin accounts, roles, and permissions in the
| Add an admin field | `entities/AdminEntity.ts`, `data/api/dto.ts`, `data/mappers/AdminMapper.ts`, `view/forms/AdminForm/` |
| Change admin list columns | `view/widgets/AdminTable.tsx` |
| Change role form behavior | `view/forms/RoleForm/` |
| Add a new permission source | Backend module `config/permissions.ts` and `backend/app/services/permission_service.ts` |
| Add a new permission source | Backend module `config/permissions.ts` and `apps/backend/app/services/permission_service.ts` |
| Change cache invalidation | `data/queries/cache.ts` |
| Change translations | `config/translation/en.json` and `config/translation/uk.json` |
| Change backend admin API | `backend/app/base_modules/Admin/controller/admin_controller.ts` |
| Change backend role API | `backend/app/base_modules/Role/controller/role_controller.ts` |
| Change backend admin API | `apps/backend/app/base_modules/Admin/controller/admin_controller.ts` |
| Change backend role API | `apps/backend/app/base_modules/Role/controller/role_controller.ts` |
+14 -14
View File
@@ -3,9 +3,9 @@
Access Control frontend uses three backend base modules:
```txt
backend/app/base_modules/Admin/
backend/app/base_modules/Role/
backend/app/base_modules/Permission/
apps/backend/app/base_modules/Admin/
apps/backend/app/base_modules/Role/
apps/backend/app/base_modules/Permission/
```
## Routes
@@ -32,16 +32,16 @@ All routes use `middleware.auth()` except login routes owned by Auth.
Policies:
```txt
backend/app/base_modules/Admin/policy/admin_policy.ts
backend/app/base_modules/Role/policy/role_policy.ts
backend/app/base_modules/Permission/policy/permission_policy.ts
apps/backend/app/base_modules/Admin/policy/admin_policy.ts
apps/backend/app/base_modules/Role/policy/role_policy.ts
apps/backend/app/base_modules/Permission/policy/permission_policy.ts
```
Permission slugs are defined in:
```txt
backend/app/base_modules/Admin/config/permissions.ts
backend/app/base_modules/Role/config/permissions.ts
apps/backend/app/base_modules/Admin/config/permissions.ts
apps/backend/app/base_modules/Role/config/permissions.ts
```
Current AccessControl slugs:
@@ -62,7 +62,7 @@ role.delete
Available permissions are collected by:
```txt
backend/app/services/permission_service.ts
apps/backend/app/services/permission_service.ts
```
`getAllPermissions()` scans `app/base_modules/*/config/permissions.ts` and `app/modules/*/config/permissions.ts`. Add permissions to the owning backend module config; do not hard-code them in the frontend.
@@ -72,11 +72,11 @@ backend/app/services/permission_service.ts
Validators:
```txt
backend/app/base_modules/Admin/validators/admin_create_validator.ts
backend/app/base_modules/Admin/validators/admin_update_validator.ts
backend/app/base_modules/Admin/validators/admin_update_profile_validator.ts
backend/app/base_modules/Role/validator/role_create_validator.ts
backend/app/base_modules/Role/validator/role_update_validator.ts
apps/backend/app/base_modules/Admin/validators/admin_create_validator.ts
apps/backend/app/base_modules/Admin/validators/admin_update_validator.ts
apps/backend/app/base_modules/Admin/validators/admin_update_profile_validator.ts
apps/backend/app/base_modules/Role/validator/role_create_validator.ts
apps/backend/app/base_modules/Role/validator/role_update_validator.ts
```
Keep frontend form rules compatible with backend validators. Backend validation is authoritative.
+8 -8
View File
@@ -4,14 +4,14 @@ The Account Settings module provides the current admin user's profile settings s
## Source Map
| Area | Path |
| ------------------------- | ----------------------------------------------------------------------------- |
| Frontend module | `apps/admin/src/core/AccountSettings/` |
| Frontend routes | `apps/admin/src/core/AccountSettings/config/routing.tsx` |
| Frontend translations | `apps/admin/src/core/AccountSettings/config/translation/` |
| Auth provider dependency | `apps/admin/src/core/Auth/providers/AuthProvider/` |
| Backend profile endpoint | `backend/app/base_modules/Admin/controller/admin_controller.ts` |
| Backend profile validator | `backend/app/base_modules/Admin/validators/admin_update_profile_validator.ts` |
| Area | Path |
| ------------------------- | ---------------------------------------------------------------------------------- |
| Frontend module | `apps/admin/src/core/AccountSettings/` |
| Frontend routes | `apps/admin/src/core/AccountSettings/config/routing.tsx` |
| Frontend translations | `apps/admin/src/core/AccountSettings/config/translation/` |
| Auth provider dependency | `apps/admin/src/core/Auth/providers/AuthProvider/` |
| Backend profile endpoint | `apps/backend/app/base_modules/Admin/controller/admin_controller.ts` |
| Backend profile validator | `apps/backend/app/base_modules/Admin/validators/admin_update_profile_validator.ts` |
## Documentation
@@ -11,8 +11,8 @@ Account Settings does not have a separate backend base module. It uses the Admin
Source:
```txt
backend/app/base_modules/Admin/routes.ts
backend/app/base_modules/Admin/controller/admin_controller.ts
apps/backend/app/base_modules/Admin/routes.ts
apps/backend/app/base_modules/Admin/controller/admin_controller.ts
```
The route uses `middleware.auth()`.
@@ -35,7 +35,7 @@ PUT /admin/update-profile
Validator:
```txt
backend/app/base_modules/Admin/validators/admin_update_profile_validator.ts
apps/backend/app/base_modules/Admin/validators/admin_update_profile_validator.ts
```
Keep frontend validation compatible with this validator. Backend validation is authoritative.
+9 -9
View File
@@ -4,15 +4,15 @@ The Auth module owns admin authentication, current-user state, token persistence
## Source Map
| Area | Path |
| --------------------- | -------------------------------------------------- |
| Frontend module | `apps/admin/src/core/Auth/` |
| Frontend routes | `apps/admin/src/core/Auth/config/routing.tsx` |
| Frontend provider | `apps/admin/src/core/Auth/providers/AuthProvider/` |
| Frontend translations | `apps/admin/src/core/Auth/config/translation/` |
| Backend module | `backend/app/base_modules/Auth/` |
| Backend admin model | `backend/app/base_modules/Admin/model/admin.ts` |
| Auth config | `backend/config/auth.ts` |
| Area | Path |
| --------------------- | ---------------------------------------------------- |
| Frontend module | `apps/admin/src/core/Auth/` |
| Frontend routes | `apps/admin/src/core/Auth/config/routing.tsx` |
| Frontend provider | `apps/admin/src/core/Auth/providers/AuthProvider/` |
| Frontend translations | `apps/admin/src/core/Auth/config/translation/` |
| Backend module | `apps/backend/app/base_modules/Auth/` |
| Backend admin model | `apps/backend/app/base_modules/Admin/model/admin.ts` |
| Auth config | `apps/backend/config/auth.ts` |
## Documentation
+5 -5
View File
@@ -5,7 +5,7 @@ The backend Auth module exposes token-based admin authentication routes.
Source root:
```txt
backend/app/base_modules/Auth/
apps/backend/app/base_modules/Auth/
```
## Routes
@@ -19,7 +19,7 @@ backend/app/base_modules/Auth/
Route file:
```txt
backend/app/base_modules/Auth/routes.ts
apps/backend/app/base_modules/Auth/routes.ts
```
## Request Flow
@@ -51,7 +51,7 @@ GET /auth/user
Login validator:
```txt
backend/app/base_modules/Auth/validators/auth_login_validator.ts
apps/backend/app/base_modules/Auth/validators/auth_login_validator.ts
```
Current rules:
@@ -64,13 +64,13 @@ Current rules:
Auth config:
```txt
backend/config/auth.ts
apps/backend/config/auth.ts
```
The admin model is configured as the token user provider:
```txt
backend/app/base_modules/Admin/model/admin.ts
apps/backend/app/base_modules/Admin/model/admin.ts
```
## Response Contracts
+9 -9
View File
@@ -6,14 +6,14 @@ renaming, deleting, duplicating, and editing supported files.
## Source Map
| Area | Path |
| ---------------------- | ------------------------------------------------------------------------------------- |
| Backend module | `backend/app/base_modules/FileManager/` |
| Backend storage config | `backend/config/drive.ts` |
| Backend S3 adapter | `backend/app/base_modules/FileManager/services/storage_service/s3_storage_service.ts` |
| Frontend module | `apps/admin/src/core/FileManager/` |
| Frontend file assets | `apps/admin/public/media/files/` |
| Frontend routes | `apps/admin/src/core/FileManager/config/routing.tsx` |
| Area | Path |
| ---------------------- | ------------------------------------------------------------------------------------------ |
| Backend module | `apps/backend/app/base_modules/FileManager/` |
| Backend storage config | `apps/backend/config/drive.ts` |
| Backend S3 adapter | `apps/backend/app/base_modules/FileManager/services/storage_service/s3_storage_service.ts` |
| Frontend module | `apps/admin/src/core/FileManager/` |
| Frontend file assets | `apps/admin/public/media/files/` |
| Frontend routes | `apps/admin/src/core/FileManager/config/routing.tsx` |
## Documentation
@@ -92,7 +92,7 @@ The frontend maps DTOs into frontend entities and adds UI-oriented metadata such
| Change | Start Here |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Add or change an API route | `backend/app/base_modules/FileManager/routes.ts` and `controller/file_manager_controller.ts` |
| Add or change an API route | `apps/backend/app/base_modules/FileManager/routes.ts` and `controller/file_manager_controller.ts` |
| Change path validation or naming rules | `services/path_service.ts` |
| Change list filtering, sorting, or pagination | `services/entry_list_service.ts` and frontend query payloads |
| Add or change a storage backend | `services/storage_service/storage_service_interface.ts`, `create_storage_service.ts`, and [Backend storage docs](./backend.md#storage) |
+2 -2
View File
@@ -5,7 +5,7 @@ The backend module exposes authenticated file operations under `/file-manager`.
Source root:
```txt
backend/app/base_modules/FileManager/
apps/backend/app/base_modules/FileManager/
```
## Request Flow
@@ -252,7 +252,7 @@ DRIVE_DISK=s3
Adonis Drive config lives in:
```txt
backend/config/drive.ts
apps/backend/config/drive.ts
```
Configured disks:
+1 -1
View File
@@ -5,7 +5,7 @@ uploads, deletion, duplication, renaming, image editing tools, image map tools,
reusable file picker widgets.
This module follows the general
[React frontend architecture](../../apps-architecture/react-frontend/Readme.md) inside its own
[React frontend architecture](../../apps/admin/architecture/Readme.md) inside its own
module boundary.
Source root:
+2 -2
View File
@@ -10,8 +10,8 @@ The Permission module provides frontend permission checks and gates. It also cor
| Frontend gates | `apps/admin/src/core/Permission/view/gates/` |
| Frontend hook | `apps/admin/src/core/Permission/hooks/usePermissions.ts` |
| Frontend types | `apps/admin/src/core/Permission/entities/permission.ts` |
| Backend module | `backend/app/base_modules/Permission/` |
| Backend permission service | `backend/app/services/permission_service.ts` |
| Backend module | `apps/backend/app/base_modules/Permission/` |
| Backend permission service | `apps/backend/app/services/permission_service.ts` |
## Documentation
+8 -8
View File
@@ -5,7 +5,7 @@ The backend Permission module exposes available permission definitions. It is us
Source root:
```txt
backend/app/base_modules/Permission/
apps/backend/app/base_modules/Permission/
```
## Route
@@ -17,7 +17,7 @@ backend/app/base_modules/Permission/
Route file:
```txt
backend/app/base_modules/Permission/routes.ts
apps/backend/app/base_modules/Permission/routes.ts
```
## Request Flow
@@ -36,14 +36,14 @@ GET /permission
Permission discovery lives in:
```txt
backend/app/services/permission_service.ts
apps/backend/app/services/permission_service.ts
```
`getAllPermissions()` scans:
```txt
backend/app/base_modules/*/config/permissions.ts
backend/app/modules/*/config/permissions.ts
apps/backend/app/base_modules/*/config/permissions.ts
apps/backend/app/modules/*/config/permissions.ts
```
Each config exports permission items:
@@ -60,9 +60,9 @@ type PermissionItem = {
Core permission definitions currently include:
```txt
backend/app/base_modules/Admin/config/permissions.ts
backend/app/base_modules/Role/config/permissions.ts
backend/app/base_modules/FileManager/config/permissions.ts
apps/backend/app/base_modules/Admin/config/permissions.ts
apps/backend/app/base_modules/Role/config/permissions.ts
apps/backend/app/base_modules/FileManager/config/permissions.ts
```
When adding a feature that needs access control, add permission definitions to the owning backend module's `config/permissions.ts`.