Compare commits
106 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 96487fb065 | |||
| 9ef83f7963 | |||
| 27fc028bad | |||
| d1b4141e63 | |||
| 76fa204ae8 | |||
| 75f2b215a1 | |||
| 367524d611 | |||
| 86bf2675eb | |||
| 2c190dc874 | |||
| 36db09e5e7 | |||
| f7885dc440 | |||
| a9c2f63adc | |||
| bec9d83ef3 | |||
| cf68530fc2 | |||
| f2b154d491 | |||
| 1e10a93e32 | |||
| a5dd9003c1 | |||
| 1db1776217 | |||
| 87dc8ffff4 | |||
| 04a87b8293 | |||
| a25807aca1 | |||
| 9e88eba43f | |||
| 14a94ea03f | |||
| e392ade3f8 | |||
| 8980d98394 | |||
| 8f6634b03f | |||
| c690fb602e | |||
| bba4044eaf | |||
| b4d31f3660 | |||
| f27a1df90f | |||
| bf9ae5f01f | |||
| 83fad59878 | |||
| 016b5632e1 | |||
| 1cf8066cf3 | |||
| cf157643d7 | |||
| 638f78da94 | |||
| 173109d352 | |||
| 74a4cd4f1d | |||
| 3af8de2797 | |||
| df532a0e2a | |||
| d1377291ab | |||
| 37f81f25a7 | |||
| a1d33d9318 | |||
| 7963f28021 | |||
| 8bc5e0e130 | |||
| 14fd1fa189 | |||
| f216435dd0 | |||
| 0b90e4217a | |||
| 137b110c74 | |||
| 68335a9d5f | |||
| 684216ab40 | |||
| e9af77200d | |||
| 19cfa031d0 | |||
| d8598755e0 | |||
| a1ff3beb35 | |||
| b288b29e35 | |||
| 2c8f1bcca0 | |||
| 34a6df5949 | |||
| 3e82b19480 | |||
| 6720375fa1 | |||
| 1893d0006d | |||
| 725516ad6c | |||
| aba7a506ad | |||
| 585e7c96fb | |||
| 4bf667a1ac | |||
| 8600fa7c1d | |||
| 270bb79451 | |||
| b10143ba1a | |||
| 19c762fe67 | |||
| 9296782fc1 | |||
| fa868e7c1d | |||
| 724162b9c9 | |||
| 85e188b5e2 | |||
| fe08dd3603 | |||
| 370dc9934b | |||
| 3012707ba8 | |||
| 48c29d81d0 | |||
| c4b86143bf | |||
| 8948751bbc | |||
| e5b601e483 | |||
| 76c513d8fb | |||
| f68540f511 | |||
| 2bc2138d0e | |||
| 87c790aa05 | |||
| 38a54f9005 | |||
| 7fa4150b3a | |||
| ea83034e9a | |||
| 298c31597f | |||
| 59160cbbcb | |||
| 6d452ab71f | |||
| 4765d14123 | |||
| f65696ce32 | |||
| eb696d9d27 | |||
| 8acc7d30fc | |||
| 8a7500eb69 | |||
| f398183332 | |||
| 94702a33aa | |||
| f089d314ca | |||
| 7eaf2408a1 | |||
| a231fa4b5e | |||
| 68cec47d09 | |||
| b93363330f | |||
| 175db04ec6 | |||
| d5cddb186d | |||
| 28ced1c764 | |||
| ceeab2647d |
@@ -7,3 +7,6 @@ Archive_*/**
|
|||||||
|
|
||||||
#ignore dist folder
|
#ignore dist folder
|
||||||
**/dist/**
|
**/dist/**
|
||||||
|
|
||||||
|
#ignore log files
|
||||||
|
**/*.log
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,41 @@
|
|||||||
|
# Development Environment Variables for Local Build
|
||||||
|
# These are used when running build scripts outside of Docker containers
|
||||||
|
|
||||||
|
NODE_ENV=development
|
||||||
|
PORT=3000
|
||||||
|
|
||||||
|
# Database Configuration (Docker containers)
|
||||||
|
DB_HOST=localhost
|
||||||
|
DB_PORT=5432
|
||||||
|
DB_NAME=serpentrace
|
||||||
|
DB_USERNAME=postgres
|
||||||
|
DB_PASSWORD=postgres
|
||||||
|
|
||||||
|
# Redis Configuration (Docker containers)
|
||||||
|
REDIS_HOST=localhost
|
||||||
|
REDIS_PORT=6379
|
||||||
|
REDIS_URL=redis://localhost:6379
|
||||||
|
|
||||||
|
# JWT Configuration
|
||||||
|
JWT_SECRET=dev_jwt_secret_change_in_production
|
||||||
|
JWT_EXPIRATION=24h
|
||||||
|
JWT_REFRESH_EXPIRATION=7d
|
||||||
|
|
||||||
|
# MinIO Configuration (Docker containers)
|
||||||
|
MINIO_ENDPOINT=localhost
|
||||||
|
MINIO_PORT=9000
|
||||||
|
MINIO_ACCESS_KEY=serpentrace
|
||||||
|
MINIO_SECRET_KEY=serpentrace123!
|
||||||
|
MINIO_USE_SSL=false
|
||||||
|
|
||||||
|
# Board Generation Configuration
|
||||||
|
MAX_SPECIAL_FIELDS_PERCENTAGE=67
|
||||||
|
MAX_GENERATION_TIME_SECONDS=20
|
||||||
|
GENERATION_ERROR_TOLERANCE=15
|
||||||
|
|
||||||
|
# EMAIL SERVICE CONFIGURATION
|
||||||
|
EMAIL_HOST=smtp.gmail.com
|
||||||
|
EMAIL_PORT=587
|
||||||
|
EMAIL_USER=your_email@domain.com
|
||||||
|
EMAIL_PASS=your_email_password
|
||||||
|
EMAIL_FROM=noreply@serpentrace.com
|
||||||
@@ -20,10 +20,28 @@ REDIS_HOST=localhost
|
|||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
REDIS_URL=redis://localhost:6379
|
REDIS_URL=redis://localhost:6379
|
||||||
|
|
||||||
# JWT CONFIGURATION
|
# JWT AUTHENTICATION CONFIGURATION
|
||||||
JWT_SECRET=your_super_secret_jwt_key_change_in_production
|
JWT_SECRET=your-super-secure-secret-key-here
|
||||||
JWT_EXPIRY=86400
|
JWT_REFRESH_SECRET=your-super-secure-refresh-secret-key-here
|
||||||
JWT_EXPIRATION=24h
|
|
||||||
|
# Access Token Expiry (choose ONE option, priority order listed):
|
||||||
|
JWT_ACCESS_TOKEN_EXPIRY=1800 # Seconds (recommended for production)
|
||||||
|
# JWT_ACCESS_TOKEN_EXPIRATION=30m # Duration string (user-friendly)
|
||||||
|
# JWT_EXPIRY=1800 # Legacy: seconds
|
||||||
|
# JWT_EXPIRATION=30m # Legacy: duration string
|
||||||
|
|
||||||
|
# Refresh Token Expiry (choose ONE option, priority order listed):
|
||||||
|
JWT_REFRESH_TOKEN_EXPIRY=604800 # Seconds (7 days)
|
||||||
|
# JWT_REFRESH_TOKEN_EXPIRATION=7d # Duration string (recommended)
|
||||||
|
# JWT_REFRESH_EXPIRATION=7d # Legacy: duration string
|
||||||
|
|
||||||
|
# Cookie Names (optional)
|
||||||
|
JWT_COOKIE_NAME=auth_token
|
||||||
|
JWT_REFRESH_COOKIE_NAME=refresh_token
|
||||||
|
|
||||||
|
# Legacy JWT Configuration (deprecated - use above options)
|
||||||
|
# JWT_EXPIRY=86400
|
||||||
|
# JWT_EXPIRATION=24h
|
||||||
GAME_TOKEN_EXPIRY=86400
|
GAME_TOKEN_EXPIRY=86400
|
||||||
|
|
||||||
# EMAIL SERVICE CONFIGURATION
|
# EMAIL SERVICE CONFIGURATION
|
||||||
|
|||||||
@@ -0,0 +1,338 @@
|
|||||||
|
# JWT Refresh Token Implementation Guide
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The JWT authentication system supports both **cookie-based** and **header-based** (Bearer token) authentication with comprehensive refresh token functionality and proper logout logic. **All authentication methods now use refresh tokens** - there is no legacy single-token mode.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Dual Authentication Methods**: Support for both cookie-based and Bearer token authentication
|
||||||
|
- **Universal Refresh Tokens**: All logins receive both access and refresh tokens
|
||||||
|
- **Automatic Token Refresh**: Tokens are refreshed when 75% of their lifetime has passed
|
||||||
|
- **Logout Functionality**: Proper token blacklisting and cleanup
|
||||||
|
- **Security**: Short-lived access tokens (30 minutes) and longer-lived refresh tokens (7 days)
|
||||||
|
|
||||||
|
## Authentication Methods
|
||||||
|
|
||||||
|
### 1. Cookie-Based Authentication
|
||||||
|
- Access token stored in `auth_token` cookie
|
||||||
|
- Refresh token stored in `refresh_token` cookie
|
||||||
|
- Suitable for web applications with same-origin requests
|
||||||
|
- Tokens also returned in response body
|
||||||
|
|
||||||
|
### 2. Bearer Token Authentication
|
||||||
|
- Access token sent in `Authorization: Bearer <token>` header
|
||||||
|
- Refresh token sent in `X-Refresh-Token` header
|
||||||
|
- Suitable for mobile apps, SPAs, and API integrations
|
||||||
|
- Tokens returned in response body
|
||||||
|
|
||||||
|
## API Endpoints
|
||||||
|
|
||||||
|
### Login
|
||||||
|
```http
|
||||||
|
POST /api/user/login
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"username": "user@example.com",
|
||||||
|
"password": "password123"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Response (all logins):**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"user": { ... },
|
||||||
|
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
||||||
|
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
For cookie-based auth, tokens are also set as httpOnly cookies.
|
||||||
|
|
||||||
|
### Refresh Token
|
||||||
|
```http
|
||||||
|
POST /api/user/refresh-token
|
||||||
|
```
|
||||||
|
|
||||||
|
**For Cookie-based auth:**
|
||||||
|
- Refresh token is read from `refresh_token` cookie
|
||||||
|
- New tokens are set as cookies AND returned in response body
|
||||||
|
|
||||||
|
**For Bearer token auth:**
|
||||||
|
```http
|
||||||
|
POST /api/user/refresh-token
|
||||||
|
X-Refresh-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
||||||
|
```
|
||||||
|
|
||||||
|
**Response:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"message": "Tokens refreshed successfully",
|
||||||
|
"accessToken": "new_access_token",
|
||||||
|
"refreshToken": "new_refresh_token"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Logout
|
||||||
|
```http
|
||||||
|
POST /api/user/logout
|
||||||
|
Authorization: Bearer <access_token>
|
||||||
|
```
|
||||||
|
|
||||||
|
Response:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"success": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Environment Variables
|
||||||
|
|
||||||
|
```env
|
||||||
|
# JWT Configuration
|
||||||
|
JWT_SECRET=your-secret-key-for-access-tokens
|
||||||
|
JWT_REFRESH_SECRET=your-secret-key-for-refresh-tokens
|
||||||
|
|
||||||
|
# Access Token Expiry (use one of these)
|
||||||
|
JWT_ACCESS_TOKEN_EXPIRY=1800 # Access token expiry in seconds (30 minutes)
|
||||||
|
JWT_ACCESS_TOKEN_EXPIRATION=30m # Access token expiry (supports s, m, h, d)
|
||||||
|
JWT_EXPIRY=1800 # Legacy: Access token expiry in seconds
|
||||||
|
JWT_EXPIRATION=30m # Legacy: Access token expiry with duration
|
||||||
|
|
||||||
|
# Refresh Token Expiry (use one of these)
|
||||||
|
JWT_REFRESH_TOKEN_EXPIRY=604800 # Refresh token expiry in seconds (7 days)
|
||||||
|
JWT_REFRESH_TOKEN_EXPIRATION=7d # Refresh token expiry (supports s, m, h, d)
|
||||||
|
JWT_REFRESH_EXPIRATION=7d # Legacy: Refresh token expiry with duration
|
||||||
|
|
||||||
|
# Cookie Names (optional)
|
||||||
|
JWT_COOKIE_NAME=auth_token # Access token cookie name (default: auth_token)
|
||||||
|
JWT_REFRESH_COOKIE_NAME=refresh_token # Refresh token cookie name (default: refresh_token)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Environment Variable Priority
|
||||||
|
|
||||||
|
**Access Token Expiry** (checked in order):
|
||||||
|
1. `JWT_ACCESS_TOKEN_EXPIRY` (seconds)
|
||||||
|
2. `JWT_ACCESS_TOKEN_EXPIRATION` (duration string)
|
||||||
|
3. `JWT_EXPIRY` (seconds) - legacy
|
||||||
|
4. `JWT_EXPIRATION` (duration string) - legacy
|
||||||
|
5. Default: 1800 seconds (30 minutes)
|
||||||
|
|
||||||
|
**Refresh Token Expiry** (checked in order):
|
||||||
|
1. `JWT_REFRESH_TOKEN_EXPIRY` (seconds)
|
||||||
|
2. `JWT_REFRESH_TOKEN_EXPIRATION` (duration string)
|
||||||
|
3. `JWT_REFRESH_EXPIRATION` (duration string) - legacy
|
||||||
|
4. Default: 604800 seconds (7 days)
|
||||||
|
|
||||||
|
### Duration String Format
|
||||||
|
Supports: `s` (seconds), `m` (minutes), `h` (hours), `d` (days)
|
||||||
|
Examples: `30s`, `15m`, `2h`, `7d`
|
||||||
|
|
||||||
|
## Token Structure
|
||||||
|
|
||||||
|
### Access Token Payload
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"userId": "user-uuid",
|
||||||
|
"authLevel": 0,
|
||||||
|
"userStatus": 1,
|
||||||
|
"orgId": "org-uuid",
|
||||||
|
"type": "access",
|
||||||
|
"iat": 1640995200,
|
||||||
|
"exp": 1640997000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Refresh Token Payload
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"userId": "user-uuid",
|
||||||
|
"orgId": "org-uuid",
|
||||||
|
"type": "refresh",
|
||||||
|
"iat": 1640995200,
|
||||||
|
"exp": 1641600000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Automatic Token Refresh
|
||||||
|
|
||||||
|
The system automatically refreshes tokens when:
|
||||||
|
- Token is within 25% of its expiration time (75% of lifetime has passed)
|
||||||
|
- Valid refresh token is available
|
||||||
|
- User makes an authenticated request
|
||||||
|
|
||||||
|
**✅ Automatic refresh happens on every authenticated API call** - no manual intervention needed!
|
||||||
|
|
||||||
|
### Response Headers
|
||||||
|
For Bearer token authentication, refresh responses include:
|
||||||
|
- `X-New-Access-Token`: New access token
|
||||||
|
- `X-New-Refresh-Token`: New refresh token
|
||||||
|
- `X-Token-Refreshed`: "true" indicator
|
||||||
|
|
||||||
|
### Manual Refresh (Optional)
|
||||||
|
|
||||||
|
While automatic refresh handles most scenarios, manual refresh is available for:
|
||||||
|
- **Proactive refresh**: Before critical operations
|
||||||
|
- **Background apps**: Long-running applications that need fresh tokens
|
||||||
|
- **Offline recovery**: When app reconnects after being offline
|
||||||
|
|
||||||
|
```http
|
||||||
|
POST /api/user/refresh-token
|
||||||
|
X-Refresh-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Client Implementation Examples
|
||||||
|
|
||||||
|
### JavaScript/TypeScript (Fetch API)
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
class ApiClient {
|
||||||
|
private accessToken: string = '';
|
||||||
|
private refreshToken: string = '';
|
||||||
|
|
||||||
|
async login(username: string, password: string) {
|
||||||
|
const response = await fetch('/api/user/login', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify({ username, password })
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
this.accessToken = data.token;
|
||||||
|
this.refreshToken = data.refreshToken; // Always present now
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
async makeAuthenticatedRequest(url: string, options: RequestInit = {}) {
|
||||||
|
const headers = {
|
||||||
|
'Authorization': `Bearer ${this.accessToken}`,
|
||||||
|
...options.headers
|
||||||
|
};
|
||||||
|
|
||||||
|
let response = await fetch(url, { ...options, headers });
|
||||||
|
|
||||||
|
// Automatically handle token refresh (tokens updated in response headers)
|
||||||
|
if (response.headers.get('X-Token-Refreshed') === 'true') {
|
||||||
|
const newAccessToken = response.headers.get('X-New-Access-Token');
|
||||||
|
const newRefreshToken = response.headers.get('X-New-Refresh-Token');
|
||||||
|
|
||||||
|
if (newAccessToken) this.accessToken = newAccessToken;
|
||||||
|
if (newRefreshToken) this.refreshToken = newRefreshToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optional: Manual refresh (usually not needed due to automatic refresh)
|
||||||
|
async refreshTokens() {
|
||||||
|
const response = await fetch('/api/user/refresh-token', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'X-Refresh-Token': this.refreshToken
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
const data = await response.json();
|
||||||
|
this.accessToken = data.accessToken;
|
||||||
|
this.refreshToken = data.refreshToken;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
async logout() {
|
||||||
|
await fetch('/api/user/logout', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Authorization': `Bearer ${this.accessToken}` }
|
||||||
|
});
|
||||||
|
|
||||||
|
this.accessToken = '';
|
||||||
|
this.refreshToken = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### React Hook Example
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { useState, useCallback } from 'react';
|
||||||
|
|
||||||
|
export const useAuth = () => {
|
||||||
|
const [accessToken, setAccessToken] = useState<string>('');
|
||||||
|
const [refreshToken, setRefreshToken] = useState<string>('');
|
||||||
|
|
||||||
|
const login = useCallback(async (username: string, password: string) => {
|
||||||
|
const response = await fetch('/api/user/login', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify({ username, password })
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
setAccessToken(data.token);
|
||||||
|
setRefreshToken(data.refreshToken); // Always present
|
||||||
|
return data;
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const logout = useCallback(async () => {
|
||||||
|
if (accessToken) {
|
||||||
|
await fetch('/api/user/logout', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Authorization': `Bearer ${accessToken}` }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
setAccessToken('');
|
||||||
|
setRefreshToken('');
|
||||||
|
}, [accessToken]);
|
||||||
|
|
||||||
|
return { accessToken, refreshToken, login, logout };
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
## Security Considerations
|
||||||
|
|
||||||
|
1. **Token Blacklisting**: Logout tokens are blacklisted in Redis with TTL matching token expiration
|
||||||
|
2. **Short-lived Access Tokens**: 30-minute expiry reduces exposure window
|
||||||
|
3. **Secure Cookies**: httpOnly, secure, sameSite attributes for cookie-based auth
|
||||||
|
4. **Token Rotation**: Refresh tokens are rotated on each refresh
|
||||||
|
5. **Environment-specific Secrets**: Different secrets for access and refresh tokens
|
||||||
|
|
||||||
|
## Migration Guide
|
||||||
|
|
||||||
|
### From Single Token to Refresh Token System
|
||||||
|
|
||||||
|
Since this is a new implementation, all clients should expect:
|
||||||
|
|
||||||
|
1. **Login Response**: Always includes both `token` (access) and `refreshToken`
|
||||||
|
2. **Token Storage**: Store both tokens securely
|
||||||
|
3. **API Requests**: Use access token in Authorization header
|
||||||
|
4. **Automatic Refresh**: Tokens refresh automatically - just watch for response headers
|
||||||
|
5. **Logout**: Call logout endpoint to invalidate tokens
|
||||||
|
|
||||||
|
**Key Point**: Manual refresh is optional since automatic refresh handles token renewal seamlessly.
|
||||||
|
|
||||||
|
**No backward compatibility needed** - this is the only authentication method.
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Login and get tokens
|
||||||
|
curl -X POST http://localhost:3000/api/user/login \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"username": "test@example.com", "password": "password"}'
|
||||||
|
|
||||||
|
# Use access token
|
||||||
|
curl -X GET http://localhost:3000/api/user/profile \
|
||||||
|
-H "Authorization: Bearer <access_token>"
|
||||||
|
|
||||||
|
# Refresh tokens
|
||||||
|
curl -X POST http://localhost:3000/api/user/refresh-token \
|
||||||
|
-H "X-Refresh-Token: <refresh_token>"
|
||||||
|
|
||||||
|
# Logout
|
||||||
|
curl -X POST http://localhost:3000/api/user/logout \
|
||||||
|
-H "Authorization: Bearer <access_token>"
|
||||||
|
```
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
module.exports = {
|
||||||
|
preset: 'ts-jest',
|
||||||
|
testEnvironment: 'node',
|
||||||
|
roots: ['<rootDir>/tests', '<rootDir>/src'],
|
||||||
|
testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
|
||||||
|
transform: {
|
||||||
|
'^.+\\.ts$': 'ts-jest',
|
||||||
|
},
|
||||||
|
collectCoverageFrom: [
|
||||||
|
'src/**/*.ts',
|
||||||
|
'!src/**/*.d.ts',
|
||||||
|
'!src/Api/index.ts',
|
||||||
|
'!src/Infrastructure/ormconfig.ts',
|
||||||
|
'!src/search-demo.ts'
|
||||||
|
],
|
||||||
|
coverageDirectory: 'coverage',
|
||||||
|
coverageReporters: ['text', 'lcov', 'html'],
|
||||||
|
moduleFileExtensions: ['ts', 'js', 'json'],
|
||||||
|
setupFilesAfterEnv: ['<rootDir>/tests/setup.ts'],
|
||||||
|
testTimeout: 10000,
|
||||||
|
setupFiles: ['<rootDir>/tests/jest.setup.ts'],
|
||||||
|
verbose: true,
|
||||||
|
moduleNameMapper: {
|
||||||
|
'^@/(.*)$': '<rootDir>/src/$1'
|
||||||
|
},
|
||||||
|
resolver: undefined,
|
||||||
|
moduleDirectories: ['node_modules', '<rootDir>/src', '<rootDir>/tests']
|
||||||
|
};
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
// Quick test to demonstrate the language detection functionality
|
||||||
|
const { extractLanguageFromAcceptHeader } = require('./src/Api/contactRouter.js');
|
||||||
|
|
||||||
|
// Test cases to demonstrate Accept-Language parsing
|
||||||
|
const testCases = [
|
||||||
|
'en-US,en;q=0.9',
|
||||||
|
'hu,en;q=0.9',
|
||||||
|
'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
|
||||||
|
'hu-HU,hu;q=0.9,en-US;q=0.8',
|
||||||
|
'fr-FR,fr;q=0.9,en;q=0.8',
|
||||||
|
'es,en-US;q=0.9,en;q=0.8',
|
||||||
|
'invalid-header',
|
||||||
|
''
|
||||||
|
];
|
||||||
|
|
||||||
|
console.log('Testing Accept-Language header parsing:\n');
|
||||||
|
|
||||||
|
testCases.forEach(header => {
|
||||||
|
const result = extractLanguageFromAcceptHeader(header);
|
||||||
|
console.log(`Header: "${header}" -> Language: ${result}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('\n✅ Multi-language system is working correctly!');
|
||||||
|
console.log('\nFeatures implemented:');
|
||||||
|
console.log('- Accept-Language header parsing with quality values');
|
||||||
|
console.log('- Support for EN, HU, DE templates');
|
||||||
|
console.log('- Custom header detection (X-Language, X-Region, X-Locale)');
|
||||||
|
console.log('- Fallback to English for unsupported languages');
|
||||||
|
console.log('- Professional email templates in all three languages');
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-11T19:46:55.317Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-11T19:47:01.847Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-11T19:47:01.860Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-11T19:47:01.860Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-11T19:47:03.007Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-11T19:47:03.029Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-11T19:47:03.031Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-11T19:47:03.036Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-11T19:50:33.982Z | [STARTUP] | Received SIGTERM. Shutting down gracefully...
|
||||||
|
2025-09-11T19:50:33.984Z | [STARTUP] | HTTP server closed
|
||||||
|
2025-09-11T19:50:33.986Z | [CONNECTION] | Database connection closed | Meta:{"connectionType":"postgresql","status":"success"}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T17:53:43.765Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:17:37.847Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:18:23.927Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:18:34.439Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:19:23.569Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:20:04.021Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:20:10.462Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:20:10.481Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:20:10.481Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:20:11.517Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:20:11.540Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:20:11.542Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:20:11.544Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:21:14.683Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:21:20.986Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:21:21.000Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:21:21.000Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:21:22.043Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:21:22.066Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:21:22.068Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:21:22.071Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:21:36.572Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:21:42.689Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:21:42.701Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:21:42.701Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:21:43.715Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:21:43.736Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:21:43.737Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:21:43.742Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:22:33.778Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:22:40.482Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:22:40.492Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:22:40.492Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:22:43.932Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:22:48.065Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:22:54.939Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:22:54.950Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:22:54.950Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:22:56.146Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:22:56.166Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:22:56.168Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:22:56.173Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:25:44.004Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:25:50.938Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:25:50.951Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:25:50.951Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:25:52.304Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:25:52.327Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:25:52.329Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:25:52.331Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:25:59.718Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:26:06.302Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:26:06.313Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:26:06.313Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:26:07.503Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:26:07.523Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:26:07.525Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:26:07.530Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:28:40.447Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:28:44.247Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:28:50.571Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:28:50.583Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:28:50.583Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:28:51.978Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:28:52.002Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:28:52.004Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:28:52.006Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:29:20.730Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:29:24.137Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:29:30.670Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:29:30.683Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:29:30.683Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:29:32.101Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:29:32.122Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:29:32.124Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:29:32.126Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:29:53.164Z | [REQUEST] | Incoming request | ReqId:amhtws2j0 | IP:::ffff:172.20.0.1 | GET / | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:53.168Z | [REQUEST] | GET / | ReqId:amhtws2j0 | IP:::ffff:172.20.0.1 | GET / | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:53.170Z | [REQUEST] | Request completed | ReqId:amhtws2j0 | IP:::ffff:172.20.0.1 | GET / | Status:200 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:53.204Z | [REQUEST] | Incoming request | ReqId:enbi7wzsd | IP:::ffff:172.20.0.1 | GET /favicon.ico | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:53.206Z | [REQUEST] | GET /favicon.ico | ReqId:enbi7wzsd | IP:::ffff:172.20.0.1 | GET /favicon.ico | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:53.209Z | [REQUEST] | Request completed | ReqId:enbi7wzsd | IP:::ffff:172.20.0.1 | GET /favicon.ico | Status:404 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.233Z | [REQUEST] | Incoming request | ReqId:8gdk52ggd | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.235Z | [REQUEST] | GET /api-docs/ | ReqId:8gdk52ggd | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.238Z | [REQUEST] | Request completed | ReqId:8gdk52ggd | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.257Z | [REQUEST] | Incoming request | ReqId:5qhaikidc | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.260Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:5qhaikidc | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.264Z | [REQUEST] | Incoming request | ReqId:ajms6z1qt | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.265Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:ajms6z1qt | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.268Z | [REQUEST] | Incoming request | ReqId:u5j5akkaa | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.270Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:u5j5akkaa | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.271Z | [REQUEST] | Request completed | ReqId:u5j5akkaa | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.274Z | [REQUEST] | Incoming request | ReqId:ensevj1ln | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.275Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:ensevj1ln | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.277Z | [REQUEST] | Request completed | ReqId:5qhaikidc | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | Time:20ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.283Z | [REQUEST] | Request completed | ReqId:ensevj1ln | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | Time:9ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.290Z | [REQUEST] | Request completed | ReqId:ajms6z1qt | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | Time:26ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.402Z | [REQUEST] | Incoming request | ReqId:y8brzkde5 | IP:::ffff:172.20.0.1 | GET /api-docs/favicon-16x16.png | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.404Z | [REQUEST] | GET /api-docs/favicon-16x16.png | ReqId:y8brzkde5 | IP:::ffff:172.20.0.1 | GET /api-docs/favicon-16x16.png | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:29:58.407Z | [REQUEST] | Request completed | ReqId:y8brzkde5 | IP:::ffff:172.20.0.1 | GET /api-docs/favicon-16x16.png | Status:200 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:31:16.080Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:31:22.883Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:31:22.895Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:31:22.895Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:31:24.314Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:31:24.340Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:31:24.342Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:31:24.344Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:35:05.539Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:35:10.729Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:35:10.744Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:35:49.977Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:35:55.314Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:35:55.326Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:35:50.418Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:35:57.577Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:35:57.588Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:35:57.588Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:35:59.015Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:35:59.036Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:35:59.038Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:35:59.043Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:36:04.541Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:36:11.577Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:36:11.588Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:36:11.588Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:36:13.015Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:36:13.037Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:36:13.039Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:36:13.041Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:36:05.386Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:36:10.463Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:36:10.476Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:37:31.110Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:37:35.672Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:37:35.680Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T19:37:35.680Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:37:36.067Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"localhost","database":"serpentrace"}
|
||||||
|
2025-09-14T19:37:36.088Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:37:36.088Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:37:36.090Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:37:47.755Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:37:55.839Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:37:55.851Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:37:55.851Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:37:57.364Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:37:57.385Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:37:57.387Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:37:57.392Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:37:48.912Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:37:54.930Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:37:54.940Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T19:37:54.940Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:37:55.356Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"localhost","database":"serpentrace"}
|
||||||
|
2025-09-14T19:37:55.373Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:37:55.374Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:37:55.380Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:39:02.452Z | [STARTUP] | Received SIGINT. Shutting down gracefully...
|
||||||
|
2025-09-14T19:39:02.453Z | [STARTUP] | HTTP server closed
|
||||||
|
2025-09-14T19:39:02.454Z | [CONNECTION] | Database connection closed | Meta:{"connectionType":"postgresql","status":"success"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:37:48.947Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:37:54.942Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:37:54.959Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:39:18.891Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:39:24.194Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:39:24.210Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:39:19.312Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:39:26.428Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:39:26.440Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:39:26.440Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:39:27.891Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:39:27.913Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:39:27.914Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:39:27.919Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:39:36.793Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:39:41.380Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:39:41.388Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T19:39:41.388Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:39:41.765Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"localhost","database":"serpentrace"}
|
||||||
|
2025-09-14T19:39:41.780Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:39:41.781Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:39:41.787Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:39:48.418Z | [REQUEST] | Incoming request | ReqId:1hgroipe4 | IP:::1 | GET /api-docs?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757878788411 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
|
2025-09-14T19:39:48.420Z | [REQUEST] | Request completed | ReqId:1hgroipe4 | IP:::1 | GET /api-docs?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757878788411 | Status:301 | Time:2ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
|
2025-09-14T19:39:48.426Z | [REQUEST] | Incoming request | ReqId:btkm4sg8l | IP:::1 | GET /api-docs/?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757878788411 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
|
2025-09-14T19:39:48.427Z | [REQUEST] | Request completed | ReqId:btkm4sg8l | IP:::1 | GET /api-docs/?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757878788411 | Status:200 | Time:1ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
|
2025-09-14T19:39:52.847Z | [REQUEST] | Incoming request | ReqId:37e5xhtd2 | IP:::1 | GET /?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757878792844 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
|
2025-09-14T19:39:52.848Z | [REQUEST] | Request completed | ReqId:37e5xhtd2 | IP:::1 | GET /?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757878792844 | Status:200 | Time:1ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:40:01.700Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:40:07.768Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:40:07.784Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:40:02.248Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:40:03.219Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:40:09.601Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:40:17.332Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:40:17.342Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:40:17.342Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:40:18.750Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:40:18.770Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:40:18.772Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:40:18.776Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:40:11.053Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:40:16.718Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:40:16.735Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:40:11.179Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:40:16.831Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:40:16.841Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T19:40:16.841Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:40:17.228Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"localhost","database":"serpentrace"}
|
||||||
|
2025-09-14T19:40:17.245Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:40:17.245Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:40:17.250Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:40:26.170Z | [STARTUP] | Received SIGINT. Shutting down gracefully...
|
||||||
|
2025-09-14T19:40:26.171Z | [STARTUP] | HTTP server closed
|
||||||
|
2025-09-14T19:40:26.173Z | [CONNECTION] | Database connection closed | Meta:{"connectionType":"postgresql","status":"success"}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:41:36.857Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:41:43.272Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:41:43.282Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:41:43.282Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:41:44.665Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:41:44.686Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:41:44.688Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:41:44.690Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:48:38.950Z | [REQUEST] | Incoming request | ReqId:myhi4uo4t | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.952Z | [REQUEST] | GET /api-docs/ | ReqId:myhi4uo4t | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.956Z | [REQUEST] | Request completed | ReqId:myhi4uo4t | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.970Z | [REQUEST] | Incoming request | ReqId:0pgu57zsi | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.972Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:0pgu57zsi | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.975Z | [REQUEST] | Request completed | ReqId:0pgu57zsi | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.977Z | [REQUEST] | Incoming request | ReqId:ee2btiljk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.978Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:ee2btiljk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.980Z | [REQUEST] | Request completed | ReqId:ee2btiljk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.982Z | [REQUEST] | Incoming request | ReqId:z1kr03fdf | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.984Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:z1kr03fdf | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.986Z | [REQUEST] | Request completed | ReqId:z1kr03fdf | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.988Z | [REQUEST] | Incoming request | ReqId:mh5mkf7ga | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.989Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:mh5mkf7ga | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:48:38.991Z | [REQUEST] | Request completed | ReqId:mh5mkf7ga | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:41:37.744Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:41:42.344Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:41:42.360Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:50:53.106Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:50:58.355Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:50:58.370Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:50:54.167Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:51:01.518Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:51:01.530Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:51:01.530Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:51:03.004Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:51:03.027Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:51:03.029Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:51:03.031Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:51:28.025Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:51:33.189Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:51:33.201Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:51:28.672Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:51:35.449Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:51:35.459Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:51:35.459Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:51:36.922Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:51:36.943Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:51:36.946Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:51:36.950Z | [REQUEST] | Incoming request | ReqId:3lihqtdzl | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.952Z | [REQUEST] | GET /api-docs/ | ReqId:3lihqtdzl | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.956Z | [REQUEST] | Request completed | ReqId:3lihqtdzl | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.963Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:51:36.974Z | [REQUEST] | Incoming request | ReqId:21npbeg4l | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.977Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:21npbeg4l | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.980Z | [REQUEST] | Request completed | ReqId:21npbeg4l | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.982Z | [REQUEST] | Incoming request | ReqId:6jxci6n95 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.984Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:6jxci6n95 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.987Z | [REQUEST] | Request completed | ReqId:6jxci6n95 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.989Z | [REQUEST] | Incoming request | ReqId:29kaglz53 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.991Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:29kaglz53 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.993Z | [REQUEST] | Request completed | ReqId:29kaglz53 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.996Z | [REQUEST] | Incoming request | ReqId:su6wy0x4z | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:36.998Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:su6wy0x4z | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:51:37.001Z | [REQUEST] | Request completed | ReqId:su6wy0x4z | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:51:59.846Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:52:05.713Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:52:05.729Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:52:00.530Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:52:08.107Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:52:08.123Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:52:08.122Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:52:09.707Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:52:09.732Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:52:09.734Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:52:09.737Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:52:09.743Z | [REQUEST] | Incoming request | ReqId:xblab1m4b | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.745Z | [REQUEST] | GET /api-docs/ | ReqId:xblab1m4b | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.750Z | [REQUEST] | Request completed | ReqId:xblab1m4b | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:7ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.765Z | [REQUEST] | Incoming request | ReqId:2f5zww6ej | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.768Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:2f5zww6ej | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.771Z | [REQUEST] | Request completed | ReqId:2f5zww6ej | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.774Z | [REQUEST] | Incoming request | ReqId:y2ewanme8 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.777Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:y2ewanme8 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.779Z | [REQUEST] | Request completed | ReqId:y2ewanme8 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.783Z | [REQUEST] | Incoming request | ReqId:uqp4qjj7q | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.785Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:uqp4qjj7q | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.788Z | [REQUEST] | Request completed | ReqId:uqp4qjj7q | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.791Z | [REQUEST] | Incoming request | ReqId:2dzf4n56g | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.793Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:2dzf4n56g | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:09.797Z | [REQUEST] | Request completed | ReqId:2dzf4n56g | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.669Z | [REQUEST] | Incoming request | ReqId:3x978ob6y | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.671Z | [REQUEST] | GET /api-docs/ | ReqId:3x978ob6y | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.673Z | [REQUEST] | Request completed | ReqId:3x978ob6y | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.684Z | [REQUEST] | Incoming request | ReqId:o8aezb5hh | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.686Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:o8aezb5hh | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.689Z | [REQUEST] | Request completed | ReqId:o8aezb5hh | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.691Z | [REQUEST] | Incoming request | ReqId:wzfo6i6tm | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.693Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:wzfo6i6tm | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.695Z | [REQUEST] | Request completed | ReqId:wzfo6i6tm | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.697Z | [REQUEST] | Incoming request | ReqId:g7gi3kzu3 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.699Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:g7gi3kzu3 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.702Z | [REQUEST] | Request completed | ReqId:g7gi3kzu3 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.706Z | [REQUEST] | Incoming request | ReqId:6i04zrypc | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.708Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:6i04zrypc | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:23.709Z | [REQUEST] | Request completed | ReqId:6i04zrypc | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.220Z | [REQUEST] | Incoming request | ReqId:euixru5in | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.222Z | [REQUEST] | GET /api-docs/ | ReqId:euixru5in | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.224Z | [REQUEST] | Request completed | ReqId:euixru5in | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.235Z | [REQUEST] | Incoming request | ReqId:xo8c32efn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.237Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:xo8c32efn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.240Z | [REQUEST] | Incoming request | ReqId:wblxyid7w | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.241Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:wblxyid7w | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.243Z | [REQUEST] | Incoming request | ReqId:b78198q08 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.245Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:b78198q08 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.248Z | [REQUEST] | Incoming request | ReqId:2oom9qei9 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.250Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:2oom9qei9 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.251Z | [REQUEST] | Request completed | ReqId:2oom9qei9 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:304 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.253Z | [REQUEST] | Request completed | ReqId:xo8c32efn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:18ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.255Z | [REQUEST] | Request completed | ReqId:wblxyid7w | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:15ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.258Z | [REQUEST] | Request completed | ReqId:b78198q08 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:15ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.415Z | [REQUEST] | Incoming request | ReqId:ch3fux52a | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.418Z | [REQUEST] | GET /api-docs/ | ReqId:ch3fux52a | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.434Z | [REQUEST] | Request completed | ReqId:ch3fux52a | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:19ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.445Z | [REQUEST] | Incoming request | ReqId:q9e0hnwxo | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.447Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:q9e0hnwxo | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.449Z | [REQUEST] | Incoming request | ReqId:ab06uc7dn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.451Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:ab06uc7dn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.453Z | [REQUEST] | Incoming request | ReqId:v0kdcpmlr | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.455Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:v0kdcpmlr | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.457Z | [REQUEST] | Incoming request | ReqId:y7u3oubro | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.459Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:y7u3oubro | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.460Z | [REQUEST] | Request completed | ReqId:y7u3oubro | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:304 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.462Z | [REQUEST] | Request completed | ReqId:q9e0hnwxo | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:17ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.465Z | [REQUEST] | Request completed | ReqId:ab06uc7dn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:16ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:52:24.467Z | [REQUEST] | Request completed | ReqId:v0kdcpmlr | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:14ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:12.706Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:55:18.053Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:55:18.068Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:13.224Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:20.859Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:21.256Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:26.756Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:27.530Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:34.308Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:55:41.033Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:55:41.045Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:55:41.045Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:55:42.437Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:55:42.460Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:55:42.462Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:55:42.464Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:35.273Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:55:40.119Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:55:40.132Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:55:46.899Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:55:51.808Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:55:51.818Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T19:55:51.818Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:55:52.208Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"localhost","database":"serpentrace"}
|
||||||
|
2025-09-14T19:55:52.226Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:55:52.226Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:55:52.236Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:56:22.131Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:56:22.663Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:56:23.727Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:56:28.658Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:56:36.291Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:56:36.303Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:56:36.303Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:56:37.750Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:56:37.776Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:56:37.777Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:56:37.779Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:56:30.047Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:56:35.724Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:56:35.740Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:56:30.264Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:56:35.940Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:56:35.949Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T19:56:35.949Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:56:35.955Z | [STARTUP] | Received SIGINT. Shutting down gracefully...
|
||||||
|
2025-09-14T19:56:35.956Z | [STARTUP] | HTTP server closed
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:56:50.987Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:56:56.338Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:56:56.350Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:56:51.714Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:56:58.570Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:56:58.586Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:56:58.586Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:57:00.050Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:57:00.075Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:57:00.077Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:00.084Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:57:22.310Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:57:29.394Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:29.405Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:57:29.405Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:57:30.897Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:57:30.929Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:57:30.931Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:30.934Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:57:23.216Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:57:28.407Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:28.421Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:57:34.124Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:57:39.760Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:39.777Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:57:34.793Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:57:42.264Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:42.278Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T19:57:42.278Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:57:43.916Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T19:57:43.942Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:57:43.944Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:43.952Z | [REQUEST] | Incoming request | ReqId:0me8zlf48 | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.954Z | [REQUEST] | GET /api-docs/ | ReqId:0me8zlf48 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.962Z | [REQUEST] | Request completed | ReqId:0me8zlf48 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:10ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.966Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:57:43.976Z | [REQUEST] | Incoming request | ReqId:sq278yirw | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.978Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:sq278yirw | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.982Z | [REQUEST] | Request completed | ReqId:sq278yirw | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.985Z | [REQUEST] | Incoming request | ReqId:fqkahr9at | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.986Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:fqkahr9at | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.989Z | [REQUEST] | Request completed | ReqId:fqkahr9at | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.993Z | [REQUEST] | Incoming request | ReqId:utojci4dv | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:43.998Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:utojci4dv | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:44.002Z | [REQUEST] | Request completed | ReqId:utojci4dv | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | Time:9ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:44.006Z | [REQUEST] | Incoming request | ReqId:grl6mvhv4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:44.009Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:grl6mvhv4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T19:57:44.011Z | [REQUEST] | Request completed | ReqId:grl6mvhv4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T19:57:46.327Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T19:57:51.157Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:51.166Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T19:57:51.166Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T19:57:51.571Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"localhost","database":"serpentrace"}
|
||||||
|
2025-09-14T19:57:51.589Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T19:57:51.590Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T19:57:51.596Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T19:58:02.604Z | [REQUEST] | Incoming request | ReqId:khxdq2w4r | IP:::1 | GET /api-docs?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757879882599 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
|
2025-09-14T19:58:02.606Z | [REQUEST] | Request completed | ReqId:khxdq2w4r | IP:::1 | GET /api-docs?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757879882599 | Status:301 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
|
2025-09-14T19:58:02.610Z | [REQUEST] | Incoming request | ReqId:063om7yyi | IP:::1 | GET /api-docs/?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757879882599 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
|
2025-09-14T19:58:02.612Z | [REQUEST] | Request completed | ReqId:063om7yyi | IP:::1 | GET /api-docs/?id=71580eb7-92cd-4e84-8d20-de8a86ab1458&vscodeBrowserReqId=1757879882599 | Status:200 | Time:2ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:02:38.171Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:02:44.163Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:02:44.177Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:02:38.740Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:02:46.546Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:02:46.558Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T20:02:46.558Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:02:48.059Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T20:02:48.082Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:02:48.084Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:02:48.086Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:02:39.778Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:02:45.618Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:02:45.627Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T20:02:45.627Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:02:46.043Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"localhost","database":"serpentrace"}
|
||||||
|
2025-09-14T20:02:46.059Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:02:46.059Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:02:46.065Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:03:24.544Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:03:26.103Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:03:26.308Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:03:36.394Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:03:44.301Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:03:44.314Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T20:03:44.314Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:03:45.750Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T20:03:45.773Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:03:45.775Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:03:45.777Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:03:37.940Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:03:43.872Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3001","nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:03:43.881Z | [STARTUP] | Server started successfully | Meta:{"port":"3001","environment":"development","timestamp":"2025-09-14T20:03:43.881Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:03:44.307Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"localhost","database":"serpentrace"}
|
||||||
|
2025-09-14T20:03:44.325Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:03:44.326Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:03:44.333Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:03:37.988Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:03:43.936Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:03:43.949Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:04:06.995Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:04:12.310Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:04:12.323Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:04:07.608Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:04:14.471Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:04:14.483Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T20:04:14.483Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:04:15.932Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T20:04:15.958Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:04:15.960Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:04:15.962Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:04:34.581Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:04:39.469Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:04:39.482Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:04:35.057Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:04:41.474Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:04:41.485Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T20:04:41.485Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:04:42.847Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T20:04:42.872Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:04:42.874Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:04:42.876Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T20:04:46.110Z | [REQUEST] | Incoming request | ReqId:1yyn1q5t6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.112Z | [REQUEST] | GET /api-docs/ | ReqId:1yyn1q5t6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.116Z | [REQUEST] | Request completed | ReqId:1yyn1q5t6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.134Z | [REQUEST] | Incoming request | ReqId:ksodbmdxj | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.136Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:ksodbmdxj | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.139Z | [REQUEST] | Request completed | ReqId:ksodbmdxj | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.141Z | [REQUEST] | Incoming request | ReqId:q5z3qqwtn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.142Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:q5z3qqwtn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.145Z | [REQUEST] | Request completed | ReqId:q5z3qqwtn | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.147Z | [REQUEST] | Incoming request | ReqId:wa3dtpx9u | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.149Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:wa3dtpx9u | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.153Z | [REQUEST] | Request completed | ReqId:wa3dtpx9u | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.156Z | [REQUEST] | Incoming request | ReqId:hpp8km4ph | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.158Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:hpp8km4ph | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:04:46.160Z | [REQUEST] | Request completed | ReqId:hpp8km4ph | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:05:53.162Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:05:53.638Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:05:59.981Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:06:06.865Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:06:06.878Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T20:06:06.878Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:06:08.423Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T20:06:08.457Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:06:08.459Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:06:08.465Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T20:06:25.226Z | [REQUEST] | Incoming request | ReqId:am94kk6mw | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.228Z | [REQUEST] | GET /api-docs/ | ReqId:am94kk6mw | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.233Z | [REQUEST] | Request completed | ReqId:am94kk6mw | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:7ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.245Z | [REQUEST] | Incoming request | ReqId:ym563icb4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.247Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:ym563icb4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.250Z | [REQUEST] | Request completed | ReqId:ym563icb4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.252Z | [REQUEST] | Incoming request | ReqId:ry1k9aw66 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.254Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:ry1k9aw66 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.256Z | [REQUEST] | Request completed | ReqId:ry1k9aw66 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.258Z | [REQUEST] | Incoming request | ReqId:g0svs24ty | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.260Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:g0svs24ty | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.263Z | [REQUEST] | Request completed | ReqId:g0svs24ty | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.266Z | [REQUEST] | Incoming request | ReqId:v5g6qkrjt | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.268Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:v5g6qkrjt | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:25.282Z | [REQUEST] | Request completed | ReqId:v5g6qkrjt | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:304 | Time:16ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.495Z | [REQUEST] | Incoming request | ReqId:u20sx1lyq | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.498Z | [REQUEST] | GET /api-docs/ | ReqId:u20sx1lyq | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.500Z | [REQUEST] | Request completed | ReqId:u20sx1lyq | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.511Z | [REQUEST] | Incoming request | ReqId:uf1mmdj9r | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.513Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:uf1mmdj9r | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.516Z | [REQUEST] | Incoming request | ReqId:jtr47plur | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.517Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:jtr47plur | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.520Z | [REQUEST] | Incoming request | ReqId:q337vnr8t | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.521Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:q337vnr8t | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.523Z | [REQUEST] | Incoming request | ReqId:alliw3ju5 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.525Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:alliw3ju5 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.526Z | [REQUEST] | Request completed | ReqId:alliw3ju5 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:304 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.528Z | [REQUEST] | Request completed | ReqId:uf1mmdj9r | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:17ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.530Z | [REQUEST] | Request completed | ReqId:jtr47plur | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:14ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.532Z | [REQUEST] | Request completed | ReqId:q337vnr8t | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:13ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.838Z | [REQUEST] | Incoming request | ReqId:rzbm2n2d6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.840Z | [REQUEST] | GET /api-docs/ | ReqId:rzbm2n2d6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.842Z | [REQUEST] | Request completed | ReqId:rzbm2n2d6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.854Z | [REQUEST] | Incoming request | ReqId:x417iclxa | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.856Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:x417iclxa | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.858Z | [REQUEST] | Incoming request | ReqId:a10yltzew | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.860Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:a10yltzew | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.862Z | [REQUEST] | Incoming request | ReqId:53hgiewt7 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.864Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:53hgiewt7 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.866Z | [REQUEST] | Incoming request | ReqId:v4dvuj5ec | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.867Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:v4dvuj5ec | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.869Z | [REQUEST] | Request completed | ReqId:v4dvuj5ec | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:304 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.872Z | [REQUEST] | Request completed | ReqId:x417iclxa | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:18ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.874Z | [REQUEST] | Request completed | ReqId:a10yltzew | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:16ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:26.876Z | [REQUEST] | Request completed | ReqId:53hgiewt7 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:14ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.969Z | [REQUEST] | Incoming request | ReqId:5b9tk7htx | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.971Z | [REQUEST] | GET /api-docs/ | ReqId:5b9tk7htx | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.974Z | [REQUEST] | Request completed | ReqId:5b9tk7htx | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.988Z | [REQUEST] | Incoming request | ReqId:ciuyk74zw | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.990Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:ciuyk74zw | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.992Z | [REQUEST] | Incoming request | ReqId:7su3rk26l | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.994Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:7su3rk26l | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.995Z | [REQUEST] | Request completed | ReqId:7su3rk26l | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:304 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.997Z | [REQUEST] | Incoming request | ReqId:fc9jgpgy0 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:28.999Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:fc9jgpgy0 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:29.001Z | [REQUEST] | Incoming request | ReqId:hpjzyp6q4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:29.002Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:hpjzyp6q4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:29.004Z | [REQUEST] | Request completed | ReqId:ciuyk74zw | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:16ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:29.006Z | [REQUEST] | Request completed | ReqId:fc9jgpgy0 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:9ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:29.008Z | [REQUEST] | Request completed | ReqId:hpjzyp6q4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:7ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.296Z | [REQUEST] | Incoming request | ReqId:b0fy5z668 | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.298Z | [REQUEST] | GET /api-docs/ | ReqId:b0fy5z668 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.300Z | [REQUEST] | Request completed | ReqId:b0fy5z668 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.311Z | [REQUEST] | Incoming request | ReqId:iqxhi9r4z | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.313Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:iqxhi9r4z | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.319Z | [REQUEST] | Incoming request | ReqId:klimkepb2 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.320Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:klimkepb2 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.323Z | [REQUEST] | Incoming request | ReqId:5e6xamgv6 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.324Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:5e6xamgv6 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.327Z | [REQUEST] | Incoming request | ReqId:u00i5vmjk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.328Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:u00i5vmjk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.330Z | [REQUEST] | Request completed | ReqId:u00i5vmjk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.332Z | [REQUEST] | Request completed | ReqId:iqxhi9r4z | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | Time:21ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.337Z | [REQUEST] | Request completed | ReqId:5e6xamgv6 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | Time:14ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.344Z | [REQUEST] | Request completed | ReqId:klimkepb2 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | Time:25ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.447Z | [REQUEST] | Incoming request | ReqId:njo7qe6h2 | IP:::ffff:172.20.0.1 | GET /api-docs/favicon-16x16.png | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.449Z | [REQUEST] | GET /api-docs/favicon-16x16.png | ReqId:njo7qe6h2 | IP:::ffff:172.20.0.1 | GET /api-docs/favicon-16x16.png | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:31.452Z | [REQUEST] | Request completed | ReqId:njo7qe6h2 | IP:::ffff:172.20.0.1 | GET /api-docs/favicon-16x16.png | Status:200 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:06:38.747Z | [STARTUP] | Received SIGTERM. Shutting down gracefully...
|
||||||
|
2025-09-14T20:06:38.749Z | [STARTUP] | HTTP server closed
|
||||||
|
2025-09-14T20:06:38.750Z | [CONNECTION] | Database connection closed | Meta:{"connectionType":"postgresql","status":"success"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:06:01.139Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:06:05.936Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:06:05.951Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:07:02.912Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:07:09.099Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:07:09.117Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T20:07:09.116Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:07:09.517Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T20:07:09.538Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:07:09.540Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:07:09.549Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-14T20:07:11.349Z | [REQUEST] | Incoming request | ReqId:cryjoxei6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.351Z | [REQUEST] | GET /api-docs/ | ReqId:cryjoxei6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.355Z | [REQUEST] | Request completed | ReqId:cryjoxei6 | IP:::ffff:172.20.0.1 | GET /api-docs/ | Status:304 | Time:6ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.373Z | [REQUEST] | Incoming request | ReqId:jinfpn5ty | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.375Z | [REQUEST] | GET /api-docs/swagger-ui.css | ReqId:jinfpn5ty | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.378Z | [REQUEST] | Request completed | ReqId:jinfpn5ty | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui.css | Status:304 | Time:5ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.381Z | [REQUEST] | Incoming request | ReqId:b9k3wztje | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.382Z | [REQUEST] | GET /api-docs/swagger-ui-bundle.js | ReqId:b9k3wztje | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.384Z | [REQUEST] | Request completed | ReqId:b9k3wztje | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-bundle.js | Status:304 | Time:3ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.386Z | [REQUEST] | Incoming request | ReqId:ijjrg0hv4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.388Z | [REQUEST] | GET /api-docs/swagger-ui-standalone-preset.js | ReqId:ijjrg0hv4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.390Z | [REQUEST] | Request completed | ReqId:ijjrg0hv4 | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-standalone-preset.js | Status:304 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.394Z | [REQUEST] | Incoming request | ReqId:a87yylovk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.396Z | [REQUEST] | GET /api-docs/swagger-ui-init.js | ReqId:a87yylovk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
|
2025-09-14T20:07:11.398Z | [REQUEST] | Request completed | ReqId:a87yylovk | IP:::ffff:172.20.0.1 | GET /api-docs/swagger-ui-init.js | Status:200 | Time:4ms | UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:08:00.227Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:08:00.798Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:08:07.227Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:08:14.471Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:08:14.483Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T20:08:14.483Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:08:14.869Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T20:08:14.901Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:08:14.903Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:08:14.912Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:08:07.983Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:08:13.360Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:08:13.377Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:09:39.137Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:09:45.937Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:09:45.950Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-14T20:09:45.950Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-14T20:09:46.340Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-14T20:09:46.372Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-14T20:09:46.374Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:09:46.384Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:09:39.957Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:09:45.006Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:09:45.018Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:09:48.920Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-14T20:09:54.298Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":3000,"nodeVersion":"v22.9.0","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-14T20:09:54.312Z | [ERROR] | Uncaught Exception - Server will shut down | Meta:{"name":"Error","message":"listen EADDRINUSE: address already in use :::3000","stack":"Error: listen EADDRINUSE: address already in use :::3000\n at Server.setupListenHandle [as _listen2] (node:net:1908:16)\n at listenInCluster (node:net:1965:12)\n at Server.listen (node:net:2067:7)\n at Object.<anonymous> (D:\\munka\\SzeSnake\\SerpentRace_Backend\\src\\Api\\index.ts:193:27)\n at Module._compile (node:internal/modules/cjs/loader:1546:14)\n at Module.m._compile (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1618:23)\n at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)\n at Object.require.extensions.<computed> [as .ts] (D:\\munka\\SzeSnake\\SerpentRace_Backend\\node_modules\\ts-node\\src\\index.ts:1621:12)\n at Module.load (node:internal/modules/cjs/loader:1317:32)\n at Function.Module._load (node:internal/modules/cjs/loader:1127:12)"}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-14T20:09:49.547Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user