Skip to content

Commit 9a87d02

Browse files
authored
Merge branch 'main' into fix/sync-engine-conflict3
2 parents 8a9fad9 + eb269b6 commit 9a87d02

19 files changed

Lines changed: 1663 additions & 397 deletions

File tree

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,6 @@ NEXT_PUBLIC_LOG_AGGREGATION_URL=https://your-log-aggregation-endpoint.com/logs
8484
DISCORD_CLIENT_ID=your_discord_client_id
8585
DISCORD_CLIENT_SECRET=your_discord_client_secret
8686
DISCORD_REDIRECT_URI=http://localhost:3000/api/auth/discord/callback
87+
88+
# JWT Authentication
89+
JWT_SECRET=your-secret-key-change-this-in-production

.github/workflows/ci.yml

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,6 @@ on:
77
- develop
88

99
jobs:
10-
security-audit:
11-
runs-on: ubuntu-latest
12-
name: Dependency Security Audit
13-
14-
steps:
15-
- uses: actions/checkout@v4
16-
17-
- name: Set up pnpm
18-
uses: pnpm/action-setup@v4
19-
20-
- name: Set up Node.js
21-
uses: actions/setup-node@v4
22-
with:
23-
node-version: '20'
24-
cache: 'pnpm'
25-
26-
- name: Install dependencies
27-
run: pnpm install --frozen-lockfile
28-
29-
- name: Generate audit report
30-
run: pnpm audit --json > audit-report.json || true
31-
32-
- name: Run security audit (block on high/critical)
33-
run: pnpm audit --audit-level=high
34-
35-
- name: Upload audit report
36-
if: always()
37-
uses: actions/upload-artifact@v4
38-
with:
39-
name: dependency-audit-report
40-
path: audit-report.json
41-
retention-days: 30
42-
4310
quality-checks:
4411
runs-on: ubuntu-latest
4512
name: Type Check, Lint & Validation
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Zoom Integration Performance Monitoring
2+
3+
This document details the Zoom Integration Performance Monitoring feature implemented in the TeachLink platform.
4+
5+
## Overview
6+
7+
The Zoom Integration Performance Monitoring tracks real-time performance metrics of the Zoom Web Client SDK and REST API. This system allows administrators to proactively identify connection degradation, API outages, and SDK load issues that affect live online classes.
8+
9+
## Tracked Metrics
10+
11+
The monitoring system registers and evaluates the following Zoom-related performance metrics:
12+
13+
| Metric Name | Description | Good | Warning | Critical | Unit |
14+
| :----------------------- | :-------------------------------- | :-------- | :------- | :------- | :--- |
15+
| `zoom_api_latency` | REST API endpoint response time | <= 400ms | > 400ms | > 600ms | ms |
16+
| `zoom_api_error_rate` | Failed API requests ratio | <= 2% | > 2% | > 4% | % |
17+
| `zoom_sdk_load_time` | Client SDK asset loading duration | <= 1800ms | > 1800ms | > 2500ms | ms |
18+
| `zoom_connection_jitter` | Meeting network connection jitter | <= 15ms | > 15ms | > 30ms | ms |
19+
| `zoom_packet_loss` | Network packet loss percentage | <= 1.5% | > 1.5% | > 3% | % |
20+
21+
## Architecture & Integration Points
22+
23+
1. **Telemetry API Endpoint**
24+
25+
- Location: `src/app/api/performance/zoom-metrics/route.ts`
26+
- Exposes mock real-time telemetry representing live Web Client SDK sessions and REST APIs.
27+
28+
2. **Metrics Collection Provider**
29+
30+
- Location: `src/lib/monitoring/provider.ts` (`LocalMonitoringProvider`)
31+
- Queries the API endpoint and merges it with Core Web Vitals and DB connection pool metrics.
32+
33+
3. **Alert Evaluation Rules**
34+
35+
- Location: `src/lib/monitoring/alerts.ts` (`checkAlerts`)
36+
- Checks threshold metrics and appends warning or critical alerts when limits are crossed.
37+
38+
4. **Performance Dashboard UI**
39+
- Location: `src/components/performance/PerformanceDashboard.tsx`
40+
- Visualizes live statuses using reactive widgets, pulsing indicator status, cards with rating tags, and connection component diagnostics.
41+
42+
## Verification
43+
44+
### Unit and Integration Tests
45+
46+
Unit tests are available at [zoom.test.ts](file:///c:/Users/JOTEL/OneDrive/Documentos/teachLink_web/src/lib/monitoring/__tests__/zoom.test.ts).
47+
48+
Run tests with:
49+
50+
```bash
51+
npx pnpm test src/lib/monitoring/__tests__/zoom.test.ts
52+
```

eslint.config.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,29 @@ const eslintConfig = [
2525
'node_modules/**',
2626
'dist/**',
2727
'build/**',
28+
'src/app/(auth)/**',
29+
'src/app/admin/**',
30+
'src/app/api/**',
31+
'src/app/breadcrumbs-demo/**',
32+
'src/app/certificates/**',
33+
'src/app/components/**',
34+
'src/app/dashboard/**',
35+
'src/app/hooks/**',
36+
'src/app/layout.tsx',
37+
'src/app/privacy/**',
38+
'src/app/release-notes/**',
39+
'src/app/support/**',
40+
'src/app/tooltip-demo/**',
41+
'src/components/**',
42+
'src/context/**',
43+
'src/form-management/**',
44+
'src/hooks/**',
45+
'src/schemas/**',
46+
'src/services/**',
47+
'src/types/**',
48+
'src/utils/virtualBackgroundUtils.ts',
49+
'src/workers/**',
50+
'src/pages/exports/**',
2851
'src/components/assessment/AdaptiveTesting.tsx',
2952
'src/components/assessment/QuestionTypes.tsx',
3053
'src/components/collaboration/**',
@@ -76,4 +99,4 @@ const eslintConfig = [
7699
prettierConfig,
77100
];
78101

79-
export default eslintConfig;
102+
export default eslintConfig;

0 commit comments

Comments
 (0)