260322:1648 Correct Coresspondence / Doing RFA / Correct CI
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
**Objective:** Resolve Critical Build Failures
|
||||
|
||||
## Executive Summary
|
||||
|
||||
This session addressed critical TypeScript build errors in the backend that were preventing successful compilation (`pnpm build`). These errors originated from stricter TypeScript settings interacting with legacy P0 code and recent refactors.
|
||||
|
||||
**Result:** `pnpm build` now passes successfully.
|
||||
@@ -12,6 +13,7 @@ This session addressed critical TypeScript build errors in the backend that were
|
||||
## Fixed Issues
|
||||
|
||||
### 1. Workflow DSL Parser (`parser.service.ts`)
|
||||
|
||||
- **Issue:** Property mismatches between DSL JSON and `WorkflowDefinition` entity (camelCase vs snake_case).
|
||||
- **Fix:** Mapped properties correctly:
|
||||
- `dsl.name` -> `entity.workflow_code`
|
||||
@@ -21,33 +23,40 @@ This session addressed critical TypeScript build errors in the backend that were
|
||||
- **Fix:** Cast error to `any` and added fallback logic.
|
||||
|
||||
### 2. Permissions Guard (`permissions.guard.ts`)
|
||||
|
||||
- **Issue:** Strict type checking failures in `Ability.can(action, subject)`.
|
||||
- **Fix:** Explicitly cast action and subject to `any` to satisfy the CASL Ability type signature.
|
||||
|
||||
### 3. Ability Factory (`ability.factory.ts`)
|
||||
|
||||
- **Issue:** `item.constructor` access on potentially unknown type.
|
||||
- **Fix:** Explicitly typed `item` as `any` in `detectSubjectType`.
|
||||
|
||||
### 4. RBAC Guard (`rbac.guard.ts`)
|
||||
|
||||
- **Issue:** Incorrect import (`PERMISSION_KEY` vs `PERMISSIONS_KEY`) and mismatch with updated Decorator (Array vs String).
|
||||
- **Fix:** Updated to use `PERMISSIONS_KEY` and handle array of permissions. Fixed import paths (removed `.js`).
|
||||
|
||||
### 5. Document Numbering Service
|
||||
|
||||
- **Issue:** Unknown error type in catch block.
|
||||
- **Fix:** Cast error to `any` for logging.
|
||||
|
||||
### 6. P0-1: RBAC Tests (`ability.factory.spec.ts`)
|
||||
|
||||
- **Issue:** Tests failed to load due to `Cannot find module ... .js`.
|
||||
- **Fix:** Removed `.js` extensions from imports in `organization.entity.ts`, `project.entity.ts`, `contract.entity.ts`, `routing-template.entity.ts`.
|
||||
- **Issue:** Global Admin test failed (`can('manage', 'all')` -> false).
|
||||
- **Fix:**
|
||||
1. Updated `detectSubjectType` to return string subjects directly (fixing CASL string matching).
|
||||
2. Moved `system.manage_all` check to top of `parsePermission` to prevent incorrect splitting.
|
||||
1. Updated `detectSubjectType` to return string subjects directly (fixing CASL string matching).
|
||||
2. Moved `system.manage_all` check to top of `parsePermission` to prevent incorrect splitting.
|
||||
- **Verification:** `pnpm test src/common/auth/casl/ability.factory.spec.ts` -> **PASS** (7/7 tests).
|
||||
|
||||
## Verification
|
||||
|
||||
- Ran `pnpm build`.
|
||||
- **Outcome:** Success (Exit code 0).
|
||||
|
||||
## Next Steps
|
||||
|
||||
- Continue to P3 (Admin Panel) or P2-5 (Tests) knowing the foundation is stable.
|
||||
|
||||
Reference in New Issue
Block a user