Skip to content

Merge pull request #445 from Williams-1604/feat/course-prerequisites-… #265

Merge pull request #445 from Williams-1604/feat/course-prerequisites-…

Merge pull request #445 from Williams-1604/feat/course-prerequisites-… #265

Triggered via push August 31, 2026 11:51
Status Failure
Total duration 1m 40s
Artifacts

ci.yml

on: push
Fit to window
Zoom out
Zoom in

Annotations

22 errors and 14 warnings
Lint & Typecheck: tests/unit/middleware/rate-limit.test.ts#L55
Property 'errorResponseBuilder' does not exist on type 'FastifyRateLimitOptions'.
Lint & Typecheck: tests/unit/middleware/rate-limit.test.ts#L45
Property 'keyGenerator' does not exist on type 'FastifyRateLimitOptions'.
Lint & Typecheck: tests/unit/middleware/rate-limit.test.ts#L34
Property 'keyGenerator' does not exist on type 'FastifyRateLimitOptions'.
Lint & Typecheck: tests/unit/middleware/rate-limit.test.ts#L24
Property 'errorResponseBuilder' does not exist on type 'FastifyRateLimitOptions'.
Lint & Typecheck: tests/unit/middleware/rate-limit.test.ts#L23
Property 'keyGenerator' does not exist on type 'FastifyRateLimitOptions'.
Lint & Typecheck: tests/unit/middleware/rate-limit.test.ts#L22
Property 'timeWindow' does not exist on type 'FastifyRateLimitOptions'.
Lint & Typecheck: tests/unit/middleware/rate-limit.test.ts#L21
Property 'max' does not exist on type 'FastifyRateLimitOptions'.
Lint & Typecheck: tests/unit/metrics/metrics.test.ts#L22
Property 'name' does not exist on type 'Histogram<"method" | "route" | "status_code">'.
Lint & Typecheck: tests/unit/metrics/metrics.test.ts#L17
Property 'name' does not exist on type 'Counter<"method" | "route" | "status_code">'.
Lint & Typecheck: src/modules/courses/course.service.ts#L1434
Argument of type '"course.archived"' is not assignable to parameter of type 'AuditEvent'.
Test
No files were found with the provided path: coverage/. No artifacts will be uploaded.
src/test/quiz-grading-and-warming.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/quiz-generation-rate-limit.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/logout.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/jwt-revocation.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/course-prerequisites.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/course-modules.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/course-enrollment-cache-invalidation.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/course-cache-and-progress.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/cache.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
src/test/account-deletion.test.ts: src/config/index.ts#L87
ZodError: [ { "validation": "regex", "code": "invalid_string", "message": "Invalid Stellar secret key format", "path": [ "STELLAR_PLATFORM_SECRET" ] } ] ❯ Object.get error [as error] node_modules/zod/v3/types.js:39:31 ❯ ZodObject.parse node_modules/zod/v3/types.js:114:22 ❯ loadConfig src/config/index.ts:87:24 ❯ ensureConfig src/config/index.ts:116:15 ❯ src/config/index.ts:123:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { issues: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], addIssue: 'Function<anonymous>', addIssues: 'Function<anonymous>', errors: [ { validation: 'regex', code: 'invalid_string', message: 'Invalid Stellar secret key format', path: [ 'STELLAR_PLATFORM_SECRET' ] } ], format: 'Function<format>', isEmpty: false, flatten: 'Function<flatten>', formErrors: { formErrors: [], fieldErrors: { STELLAR_PLATFORM_SECRET: [ 'Invalid Stellar secret key format' ] } } }
Security Scan
Process completed with exit code 1.
Lint & Typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Lint & Typecheck: src/modules/auth/auth.controller.ts#L5
'AuthenticatedRequest' is defined but never used. Allowed unused vars must match /^_/u
Lint & Typecheck: src/modules/admin/admin-users.service.ts#L9
'auditLogs' is defined but never used. Allowed unused vars must match /^_/u
Lint & Typecheck: src/middleware/validation.ts#L41
Unexpected any. Specify a different type
Lint & Typecheck: src/middleware/validation.ts#L32
Unexpected any. Specify a different type
Lint & Typecheck: src/middleware/response-envelope.ts#L13
Unexpected any. Specify a different type
Lint & Typecheck: src/middleware/rate-limit.ts#L68
Unexpected any. Specify a different type
Lint & Typecheck: src/middleware/rate-limit.ts#L54
Unexpected any. Specify a different type
Lint & Typecheck: src/middleware/rate-limit.ts#L20
Unexpected any. Specify a different type
Lint & Typecheck: src/middleware/auth.ts#L40
'reply' is defined but never used. Allowed unused args must match /^_/u
Lint & Typecheck: src/database/seed.ts#L53
'course3' is assigned a value but never used. Allowed unused vars must match /^_/u
Test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Security Scan
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, github/codeql-action/analyze@v3, github/codeql-action/init@v3. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Security Scan
CodeQL Action v3 will be deprecated in December 2026. Please update all occurrences of the CodeQL Action in your workflow files to v4. For more information, see https://github.blog/changelog/2025-10-28-upcoming-deprecation-of-codeql-action-v3/