Files
HIPCTF2/docs/architecture/key-files.md
T

3.9 KiB

type, title, description, tags, timestamp
type title description tags timestamp
architecture Key Files Index One-line responsibility for important source files, including authenticated event streaming.
architecture
index
key-files
2026-07-22T10:32:00Z

Backend

File Responsibility
backend/src/main.ts Bootstraps Nest, middleware, OpenAPI, static assets, and SPA fallback.
backend/src/app.module.ts Wires feature modules and global providers.
backend/src/database/database.module.ts Configures TypeORM with SQLite.
backend/src/database/database-init.service.ts Initializes the database and runs migrations.
backend/src/common/guards/jwt-auth.guard.ts Global JWT authorization guard.
backend/src/common/middleware/csrf.middleware.ts Double-submit CSRF protection.
backend/src/common/services/event-status.service.ts Computes the event-window state machine.
backend/src/common/services/sse-hub.service.ts In-process pub/sub for server-sent event streams.
backend/src/modules/system/system.controller.ts Registers bootstrap, event status, settings, and SSE endpoints.
backend/src/modules/system/system.service.ts Builds the public bootstrap payload.
backend/src/modules/auth/auth.controller.ts Registers authentication and account endpoints.
backend/src/modules/auth/auth.service.ts Handles sessions, authentication, registration, and password changes.

Frontend

File Responsibility
frontend/src/main.ts Bootstraps Angular and registers HTTP interceptors.
frontend/src/app/app.routes.ts Defines public, shell, child, and admin routes.
frontend/src/app/app.component.ts Loads bootstrap data and restores the session.
frontend/src/app/features/home/home.component.ts Authenticated shell container; starts user and event state services.
frontend/src/app/core/services/auth.service.ts Signal-backed access token and current-user state; owns the cross-tab invalidation BroadcastChannel + storage-event fallback.
frontend/src/app/core/services/auth-session-events.pure.ts Pure cross-tab message encoding/validation and namespaced constants used by the auth broadcast channel.
frontend/src/app/core/services/authenticated-event-source.service.ts Fetch-based authenticated SSE transport with frame parsing, abort support, and a separate 'unauthorized' event for 401/403.
frontend/src/app/core/services/event-status.store.ts Event state signal store, one-second countdown timer, and the optional onUnauthorized callback wiring.
frontend/src/app/core/services/event-status.pure.ts Event payload types, transport interface (including 'unauthorized' listener), pure countdown helpers, and the LED_COLOR_BY_STATE map used by the shell LED.
frontend/src/app/features/home/home.component.ts Authenticated shell container; starts user and event state services, subscribes to peer invalidation, and navigates to /login when the session is invalidated elsewhere.
frontend/src/app/features/shell/header/shell-header.component.ts Shell title, status LED (size/shape only — color comes from the pure map via [style.background-color]), countdown, and user menu.
frontend/src/app/features/shell/tabs/quick-tabs.component.ts Main shell navigation tabs.
frontend/src/app/features/shell/change-password/change-password-modal.component.ts Change-password form modal.
tests/frontend/authenticated-event-source.spec.ts Tests SSE authorization, frame transport behavior, and the 401/403 unauthorized path.
tests/frontend/auth-session-events.spec.ts Pure tests for cross-tab invalidation message encoding, payload validation, and storage-event filtering.

See also