Skip to content

Implement Administration & Moderation API - #322

Merged
dDevAhmed merged 1 commit into
DigiNodes:mainfrom
RemmyAcee:moderation
Jul 29, 2026
Merged

Implement Administration & Moderation API#322
dDevAhmed merged 1 commit into
DigiNodes:mainfrom
RemmyAcee:moderation

Conversation

@RemmyAcee

Copy link
Copy Markdown

Close: #281

BE-015 Implementation is complete. Here's a summary:
Files Created (31 files)
Entities (3)

  • src/admin/entities/admin.entity.ts — Admin entity with AdminRole enum (super_admin, administrator, moderator, security_analyst, governance_operator, auditor) and role hierarchy
  • src/admin/entities/incident.entity.ts — Incident entity with classification, severity, status, investigation notes, resolution, and post-incident report
  • src/admin/entities/moderation-report.entity.ts — ModerationReport entity with type, priority, status, evidence, and resolution
    RBAC System (5)
  • src/admin/guards/admin.guard.ts — Validates JWT user is an active admin, attaches admin to request
  • src/admin/guards/roles.guard.ts — Enforces role hierarchy (super_admin > admin > moderator > auditor)
  • src/admin/decorators/roles.decorator.ts — @roles() decorator for endpoint-level RBAC
  • src/admin/decorators/current-admin.decorator.ts — @CurrentAdmin() parameter decorator
  • src/admin/decorators/permissions.decorator.ts — @permissions() fine-grained decorator
    DTOs (4 files)
  • src/admin/dto/admin.dto.ts — CreateAdminDto, UpdateAdminRoleDto, UpdateAdminStatusDto, AdminLoginDto
  • src/admin/dto/incident.dto.ts — CreateIncidentDto, UpdateIncidentDto, AddInvestigationNoteDto, ResolveIncidentDto, PostIncidentReportDto, IncidentQueryDto
  • src/admin/dto/moderation.dto.ts — CreateReportDto, UpdateReportDto, ResolveReportDto, AssignDto, ModerationQueryDto
  • src/admin/dto/dashboard.dto.ts — HealthStatusDto, DashboardOverviewDto, ModerationStatsDto, IncidentStatsDto, MonitoringMetricsDto, PaginatedResponseDto
    Services & Controllers (8 files)
  • Admin Authentication & Management: admin.service.ts, admin.controller.ts
  • POST /admin/auth/login, GET /admin/auth/profile
  • POST/GET /admin/admins, PATCH .../role, PATCH .../status
  • Moderation Queue: moderation/moderation.service.ts, moderation/moderation.controller.ts
  • GET/PATCH /admin/moderation/queue, POST/GET/PATCH /admin/moderation/reports
  • POST .../assign, POST .../resolve, GET /admin/moderation/stats
  • Incident Management: incidents/incident.service.ts, incidents/incident.controller.ts
  • POST/GET/PATCH /admin/incidents, POST .../assign, POST .../notes
  • POST .../resolve, POST .../report, GET .../stats/summary
  • Dashboard & Monitoring: dashboard/dashboard.service.ts, dashboard/dashboard.controller.ts
  • GET /admin/dashboard/overview, health, moderation, incidents, audit, monitoring
    Module & Registration
  • src/admin/admin.module.ts — Registers all components with TypeORM
  • src/admin/index.ts — Barrel exports
  • src/app.module.ts — Added AdminModule import
    Tests (6 files)
  • 4 unit test files in src/admin/tests/: admin.service.spec.ts, admin.guard.spec.ts, roles.guard.spec.ts, moderation.service.spec.ts, incident.service.spec.ts
  • 1 E2E test: test/admin.e2e-spec.ts
    Key Design Decisions
  • LBAC via Role Hierarchy: Uses AdminRoleHierarchy map where super_admin (100) > auditor (30), so higher roles inherit lower role permissions
  • Dual auth: AdminGuard validates the JWT user is an admin; RolesGuard enforces minimum role level
  • Audit integration: All actions are logged via the existing AuditTrailService with admin metadata
  • Existing convention patterns: TypeORM entities, NestJS module structure, class-validator DTOs, Swagger decorators — all consistent with the codebase

@RemmyAcee

Copy link
Copy Markdown
Author

Done, Close #322

@dDevAhmed
dDevAhmed merged commit 9d1e76c into DigiNodes:main Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BE-015 — Implement Administration & Moderation API

3 participants