Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
6.8 KiB
6.8 KiB
Channel to Board Rename - Complete Plan
Phase 1: Frontend Text Changes (COMPLETED ✓)
What Was Changed:
-
ChannelsSettings.tsx
- All UI text updated from "Channel" to "Board"
- Error messages and success messages updated
-
ChannelPicker.tsx
- Placeholders and labels updated
- Filter options text updated
-
TicketingConfigStep.tsx
- Section headings and button text updated
- Form labels and placeholders updated
- Import dialog text updated
-
QuickAddTicket.tsx
- Placeholder text updated
-
CategoriesSettings.tsx
- Column headers and filter options updated
- Form labels and error messages updated
-
TicketingSettings.tsx
- Tab labels and placeholders updated
-
channelActions.ts
- Error messages updated
What Was NOT Changed:
- Variable names
- Function names
- File names
- Database fields
- API endpoints
Phase 2: Database Migration (FUTURE)
2.1 Migration File
Create migration rename_channels_to_boards.cjs:
Tables to Rename:
channels→boardsstandard_channels→standard_boards
Columns to Rename:
- In
boardstable:channel_id→board_idchannel_name→board_name
- In
standard_boardstable:channel_name→board_name
- In
categoriestable:channel_id→board_id
- In
ticketstable:channel_id→board_id
- In
tag_definitionstable:channel_id→board_id
Constraints to Update:
- Primary keys
- Foreign key constraints
- Check constraints
- RLS policies
Phase 3: Backend Code Changes (FUTURE)
3.1 Interfaces and Types
Files to Rename:
/server/src/interfaces/channel.interface.ts→board.interface.ts
Interface Changes:
// Old
export interface IChannel extends TenantEntity {
channel_id?: string;
channel_name?: string;
// ...
}
// New
export interface IBoard extends TenantEntity {
board_id?: string;
board_name?: string;
// ...
}
Update Imports:
- Update exports in
/server/src/interfaces/index.ts - Update all files importing
IChannelto importIBoard
3.2 Models
Files to Rename:
/server/src/lib/models/channel.ts→board.ts
Model Changes:
- Rename
Channelobject toBoard - Update all table references from 'channels' to 'boards'
- Update all column references
3.3 Actions
Files to Rename:
/server/src/lib/actions/channel-actions/→board-actions/channelActions.ts→boardActions.ts
Function Renames:
findChannelById→findBoardByIdfindChannelByName→findBoardByNamegetAllChannels→getAllBoardscreateChannel→createBoardupdateChannel→updateBoarddeleteChannel→deleteBoard
Type Renames:
FindChannelByNameOutput→FindBoardByNameOutput
3.4 API Routes
Route Path Changes:
/api/v1/categories/ticket/tree/[channelId]→/api/v1/categories/ticket/tree/[boardId]
Files to Update:
- Rename folder
[channelId]to[boardId] - Update parameter names in route handlers
3.5 Services
Update all references in:
TeamService.tsTicketService.tsCategoryService.tsTagService.ts
3.6 Validation Schemas
Update field names in:
teamSchemas.tsticket.tscategorySchemas.tstagSchemas.tswebhookSchemas.ts
Phase 4: Frontend Full Integration (FUTURE)
4.1 Component File Renames
ChannelsSettings.tsx→BoardsSettings.tsxChannelPicker.tsx→BoardPicker.tsx
4.2 Update All Props and State Variables
// Examples of changes needed:
channelId → boardId
channelName → boardName
selectedChannel → selectedBoard
channels → boards
channelData → boardData
channelFilter → boardFilter
onChannelSelect → onBoardSelect
4.3 Update Component Imports
// Old
import { IChannel } from '@/interfaces/channel.interface';
import { getAllChannels } from '@/actions/channel-actions/channelActions';
import ChannelPicker from '@/components/settings/general/ChannelPicker';
// New
import { IBoard } from '@/interfaces/board.interface';
import { getAllBoards } from '@/actions/board-actions/boardActions';
import BoardPicker from '@/components/settings/general/BoardPicker';
4.4 Update API Calls
- Update all action imports
- Update function calls
- Update response handling
Phase 5: Test Updates (FUTURE)
5.1 Update Test Files
- E2E tests in
/server/src/test/e2e/ - Unit tests in
/server/src/test/unit/ - Update test data and fixtures
- Update test descriptions and assertions
5.2 Update Test Data
- Change mock data from channel to board
- Update test database seeds
Phase 6: Additional Areas (FUTURE)
6.1 Workflow and Email Processing
- Update
emailService.ts - Update
system-email-processing-workflow.ts
6.2 Seed Data and Migrations
- Update seed data scripts
- Update reference data
6.3 Documentation
- Update API documentation
- Update user guides
- Update code comments
Phase 7: Deployment Strategy (FUTURE)
7.1 Pre-deployment
- Full backup of production database
- Test migration on staging environment
- Run full regression test suite
- Prepare rollback plan
7.2 Deployment Steps
- Deploy backend changes with backwards compatibility
- Run database migration
- Deploy frontend changes
- Verify all functionality
- Remove backwards compatibility layer (if any)
7.3 Post-deployment
- Monitor for errors
- Verify data integrity
- Update external documentation
- Communicate changes to users
Estimated Timeline for Full Overhaul
- Database Migration Development: 4-6 hours
- Backend Code Changes: 8-10 hours
- Frontend Full Integration: 6-8 hours
- Testing and Verification: 6-8 hours
- Documentation Updates: 2-3 hours
- Deployment and Monitoring: 2-3 hours
Total Estimated Time: 28-38 hours
Risk Mitigation
High Risk Areas:
-
Database Migration - Foreign key constraints could fail
- Mitigation: Test thoroughly on staging, have rollback ready
-
API Breaking Changes - External integrations might break
- Mitigation: Maintain backwards compatibility layer temporarily
-
Missed References - Some channel references might be missed
- Mitigation: Comprehensive search and testing
Medium Risk Areas:
-
Performance Impact - Migration might lock tables
- Mitigation: Run during low-traffic period
-
User Confusion - Sudden terminology change
- Mitigation: Communicate changes in advance
Notes for Implementation
- Backwards Compatibility: Consider maintaining both
channel_idandboard_idtemporarily - API Versioning: May need to create v2 endpoints
- Feature Flags: Consider using feature flags for gradual rollout
- Monitoring: Set up alerts for any channel-related errors post-deployment