113 lines
3.2 KiB
Markdown
113 lines
3.2 KiB
Markdown
# Component-Based Laravel Infrastructure Project Progress Summary
|
|
|
|
## Technical Environment
|
|
- Laravel 10
|
|
- PostgreSQL 12 (dev) / 16 (prod)
|
|
- PHP 8.1
|
|
- Ubuntu 22.04 (dev) / Alma Linux (prod)
|
|
|
|
## Database Schema Implementation
|
|
1. Created and using schemas:
|
|
- public: Laravel system tables
|
|
- auth: Role/permission tables
|
|
- org: Organization structure tables
|
|
|
|
2. Key Tables Created:
|
|
```sql
|
|
- public.users
|
|
- auth.roles
|
|
- auth.permissions
|
|
- auth.role_permissions
|
|
- org.tbl_stores
|
|
- org.tbl_user_access_roles (with constraint requiring store_id OR group_id)
|
|
```
|
|
|
|
## Component Structure
|
|
```
|
|
app/
|
|
├── Components/
|
|
│ ├── Api/ # API functionality
|
|
│ │ ├── Http/
|
|
│ │ │ ├── Controllers/
|
|
│ │ │ │ └── v1/ # Version-specific controllers
|
|
│ │ │ └── Middleware/
|
|
│ │ └── routes/
|
|
│ │ └── v1/
|
|
│ └── Admin/ # Admin interface
|
|
│ ├── Http/
|
|
│ │ └── Controllers/
|
|
│ ├── Providers/
|
|
│ └── resources/
|
|
└── views/
|
|
```
|
|
|
|
## Current Working State
|
|
1. API endpoints functional with versioning and authentication
|
|
2. Admin interface operating with:
|
|
- User CRUD complete
|
|
- Role CRUD complete
|
|
- Permission CRUD complete
|
|
- Role-to-user assignments partially working (needs store/group handling)
|
|
|
|
## Specific Implementation Details
|
|
1. Models contain explicit schema references:
|
|
```php
|
|
protected $table = 'auth.roles';
|
|
protected $connection = 'pgsql';
|
|
```
|
|
|
|
2. Validation includes explicit schema references:
|
|
```php
|
|
Rule::unique('pgsql.auth.roles', 'code')
|
|
```
|
|
|
|
3. Current challenge: User-role assignments need to handle the constraint:
|
|
```sql
|
|
CONSTRAINT chk_store_group_ids CHECK (store_id IS NOT NULL OR group_id IS NOT NULL)
|
|
```
|
|
|
|
## Authentication & Authorization Implementation Progress
|
|
|
|
### Completed Components
|
|
1. Set up basic API structure with versioning
|
|
2. Implemented domain-specific "Hello World" endpoints for:
|
|
- Loyalty
|
|
- Management Reporting
|
|
- Cafe Menu Products
|
|
- Trading Desk
|
|
|
|
### Admin Interface Development
|
|
1. Created Admin component separate from API component
|
|
2. Implemented User Management:
|
|
- CRUD operations
|
|
- Integration with auth schema
|
|
- Role assignment interface (partially complete)
|
|
|
|
3. Implemented Role Management:
|
|
- CRUD operations
|
|
- Proper schema handling
|
|
- Validation with explicit schema references
|
|
|
|
4. Implemented Permission Management:
|
|
- Basic CRUD operations
|
|
- Schema-aware validation
|
|
- Views and controllers established
|
|
|
|
### Key Technical Decisions & Solutions
|
|
1. Explicit schema handling in PostgreSQL
|
|
2. Proper validation rules for cross-schema operations
|
|
3. Separation of web admin interface from API components
|
|
|
|
### Current Challenges
|
|
1. Role assignments need to handle:
|
|
- Store/group associations
|
|
- System-wide roles without store/group requirement
|
|
- UI updates for store/group selection
|
|
|
|
### Next Steps
|
|
1. Modify user-role assignments to handle store/group relationships
|
|
2. Update database constraints for system-wide roles
|
|
3. Enhance role assignment interface to include store/group selection
|
|
4. Implement permission assignment to roles
|
|
5. Set up role-based access control for API endpoints
|