Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
637b0dc
refactor: implement production guards and log level enforcement in se…
dinesh-git17 Jul 28, 2025
eec77da
Missing authEvent Method Added
dinesh-git17 Jul 28, 2025
baaba35
refactor: implement production guards and log level enforcement in se…
dinesh-git17 Jul 28, 2025
4f4656c
feat: implement production-ready logging controls and clean browser c…
dinesh-git17 Jul 28, 2025
22a9f86
feat: implement request logging middleware and route guards
dinesh-git17 Jul 28, 2025
c7ac8b4
feat: implement core sampling engine with probabilistic sampling and …
dinesh-git17 Jul 28, 2025
28b3473
feat: integrate log sampling system into request logging middleware
dinesh-git17 Jul 28, 2025
c51d731
feat: add intelligent log sampling with 90% volume reduction and burs…
dinesh-git17 Jul 29, 2025
832ba1c
Added authEvent back for backwards compatibility
dinesh-git17 Jul 29, 2025
e37e45a
feat: implement intelligent log sampling system with 90% volume reduc…
dinesh-git17 Jul 29, 2025
38b240e
feat(config): implement dynamic sampling configuration system
dinesh-git17 Jul 29, 2025
5680c44
feat(api): implement admin sampling configuration endpoints
dinesh-git17 Jul 29, 2025
5be6871
feat(logging): integrate dynamic configuration with sampling engine
dinesh-git17 Jul 29, 2025
f2666b7
feat(logging): complete dynamic sampling configuration with comprehen…
dinesh-git17 Jul 29, 2025
d68d6d3
feat(ci): add console log validation to build pipeline while preservi…
dinesh-git17 Jul 30, 2025
38247d6
feat(ci): integrate console log validation into GitHub Actions pipeline
dinesh-git17 Jul 30, 2025
16738d3
feat(git): implement pre-commit hooks for console log validation and …
dinesh-git17 Jul 30, 2025
3550a86
fix(git): exclude workflow and development files from security scan i…
dinesh-git17 Jul 30, 2025
7241dc8
feat(validation): implement comprehensive console log validation conf…
dinesh-git17 Jul 30, 2025
2958767
fix(ci): remove production build from GitHub Actions to avoid environ…
dinesh-git17 Jul 30, 2025
66dfa10
feat(hooks): integrate consoleValidationConfig with pre-commit valida…
dinesh-git17 Jul 30, 2025
9e3944c
feat(scripts): integrate consoleValidationConfig with console log sca…
dinesh-git17 Jul 30, 2025
362189d
feat(scripts): enhance component scanner with React-aware console val…
dinesh-git17 Jul 30, 2025
058a8f0
feat(package.json): add environment-aware console validation scripts
dinesh-git17 Jul 30, 2025
83d8996
feat(analytics): implement comprehensive sampling analytics engine
dinesh-git17 Jul 30, 2025
e189d6f
feat(api): implement comprehensive analytics API endpoints for sampli…
dinesh-git17 Jul 30, 2025
b236ded
test
dinesh-git17 Jul 30, 2025
3b774c3
testing precommit
dinesh-git17 Jul 30, 2025
d59e896
test analytics
dinesh-git17 Jul 30, 2025
cf08249
removed console.log statement
dinesh-git17 Jul 30, 2025
c4d4342
feat(analytics): implement serverless-compatible analytics engine wit…
dinesh-git17 Jul 30, 2025
f8460da
🔧 Phase 3: API Enhancement ✅ COMPLETED
dinesh-git17 Jul 30, 2025
aa0b031
feat(analytics): implement production-ready background job processor …
dinesh-git17 Jul 30, 2025
79b4d57
feat(cache): implement production-ready caching infrastructure with R…
dinesh-git17 Jul 30, 2025
c376b93
feat(cache): implement production Redis provider with connection mana…
dinesh-git17 Jul 30, 2025
7355b0c
feat(testing): implement comprehensive Redis connection test suite
dinesh-git17 Jul 31, 2025
8a4b997
feat(monitoring): implement comprehensive Redis monitoring and analyt…
dinesh-git17 Jul 31, 2025
ddb0896
feat(cache): implement Redis-first CacheManager with intelligent fall…
dinesh-git17 Jul 31, 2025
14322b7
feat(cache): implement multi-layered Redis caching for /api/meals/lis…
dinesh-git17 Jul 31, 2025
3640258
resolved the Next.js build error by removing the invalid route export…
dinesh-git17 Jul 31, 2025
59e4596
feat(api): implement multi-tiered Redis caching for admin analytics e…
dinesh-git17 Aug 1, 2025
5b4e81d
feat(api): implement multi-tiered Redis caching for meal chat convers…
dinesh-git17 Aug 1, 2025
afecea1
fix(api): resolve Node.js module compatibility in Edge Runtime enviro…
dinesh-git17 Aug 1, 2025
b878def
feat(caching): implement Redis caching for streak endpoint with backg…
dinesh-git17 Aug 1, 2025
2ff2164
feat(api): implement Redis caching for /api/meals/dates with sorted sets
dinesh-git17 Aug 1, 2025
6884961
Removed the export keyword from the class declaration, making it a lo…
dinesh-git17 Aug 1, 2025
7ec8f27
feat: implement Redis caching for /api/friends/list with metadata opt…
dinesh-git17 Aug 1, 2025
e4aa0b2
feat(cache): implement Redis caching for /api/user/name route
dinesh-git17 Aug 1, 2025
2a76c35
feat(api): implement Redis caching for meals/check endpoint with 4h TTL
dinesh-git17 Aug 1, 2025
b44b5da
feat(api): implement Redis cache invalidation for meal upsert endpoint
dinesh-git17 Aug 1, 2025
ef1dd40
feat(api): implement Redis-cached friends notes endpoint with append-…
dinesh-git17 Aug 1, 2025
9c92edf
feat(api): implement Redis-cached friend code endpoint with 7-day TTL…
dinesh-git17 Aug 1, 2025
4b45350
feat(api): implement comprehensive Redis caching for push subscriptio…
dinesh-git17 Aug 1, 2025
0886591
feat(cache): implement comprehensive cache analytics dashboard with r…
dinesh-git17 Aug 1, 2025
69be83d
feat(cache): implement hierarchical key structure optimization system
dinesh-git17 Aug 1, 2025
8933b78
feat(cache): implement intelligent cache preloading system with smart…
dinesh-git17 Aug 1, 2025
f4222f5
feat(performance): implement comprehensive cache performance metrics …
dinesh-git17 Aug 1, 2025
50d11ef
fix(api/friends): add comprehensive cache invalidation to friends add…
dinesh-git17 Aug 2, 2025
d9a8115
fixed cache key issue
dinesh-git17 Aug 2, 2025
c2ec9dd
fix: resolve user name save hang by bypassing complex cache operations
dinesh-git17 Aug 2, 2025
f1c4822
fix(friends): resolve cache invalidation race condition preventing no…
dinesh-git17 Aug 2, 2025
295049a
fix(analytics): resolve sampling integration causing empty admin dash…
dinesh-git17 Aug 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
288 changes: 288 additions & 0 deletions .github/workflows/production-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,288 @@
# .github/workflows/production-checks.yml - Production safety validation pipeline
name: Production Safety Checks

on:
push:
branches: [ main, develop, 'feature/*', 'hotfix/*' ]
pull_request:
branches: [ main, develop ]
workflow_dispatch:
inputs:
skip_console_validation:
description: 'Skip console validation (emergency bypass)'
required: false
default: false
type: boolean

jobs:
console-validation:
name: Console Log Validation
runs-on: ubuntu-latest
if: ${{ !inputs.skip_console_validation }}
outputs:
validation_failed: ${{ steps.check-validation-result.outputs.validation_failed }}
total_issues: ${{ steps.check-validation-result.outputs.total_issues }}

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Initialize validation environment
run: |
echo "VALIDATION_START_TIME=$(date +%s)" >> $GITHUB_ENV
echo "🔍 Starting console log validation for production safety..."

- name: Validate console statements in pages
id: validate-pages
run: |
echo "🔍 Scanning page.tsx files for console statements..."
if npm run scan:console:pages; then
echo "✅ Pages validation passed - no console statements found"
echo "pages_status=passed" >> $GITHUB_OUTPUT
echo "pages_issues=0" >> $GITHUB_OUTPUT
else
echo "❌ Pages validation failed - console statements detected"
echo "pages_status=failed" >> $GITHUB_OUTPUT
echo "pages_issues=1" >> $GITHUB_OUTPUT
fi

- name: Validate console statements in components
id: validate-components
run: |
echo "🔍 Scanning component files for console statements..."
if npm run scan:console:components; then
echo "✅ Components validation passed - no console statements found"
echo "components_status=passed" >> $GITHUB_OUTPUT
echo "components_issues=0" >> $GITHUB_OUTPUT
else
echo "❌ Components validation failed - console statements detected"
echo "components_status=failed" >> $GITHUB_OUTPUT
echo "components_issues=1" >> $GITHUB_OUTPUT
fi

- name: Upload console validation reports
if: always()
uses: actions/upload-artifact@v4
with:
name: console-validation-reports
path: |
console-log-report.md
console-log-report-components.md
retention-days: 30

- name: Generate validation summary
if: always()
run: |
# Calculate total issues from step outputs
PAGES_ISSUES=${{ steps.validate-pages.outputs.pages_issues || 0 }}
COMPONENTS_ISSUES=${{ steps.validate-components.outputs.components_issues || 0 }}
TOTAL_ISSUES=$((PAGES_ISSUES + COMPONENTS_ISSUES))

echo "📊 Console Validation Summary" >> console-validation-summary.md
echo "==============================" >> console-validation-summary.md
echo "" >> console-validation-summary.md
echo "**Validation Date:** $(date)" >> console-validation-summary.md
echo "**Branch:** ${{ github.ref_name }}" >> console-validation-summary.md
echo "**Commit:** ${{ github.sha }}" >> console-validation-summary.md
echo "**Workflow:** ${{ github.workflow }}" >> console-validation-summary.md
echo "**Total Issues:** ${TOTAL_ISSUES}" >> console-validation-summary.md
echo "" >> console-validation-summary.md

echo "### Validation Results:" >> console-validation-summary.md
if [ "${{ steps.validate-pages.outputs.pages_status }}" = "passed" ]; then
echo "- ✅ **Pages**: No console statements detected" >> console-validation-summary.md
else
echo "- ❌ **Pages**: Console statements found (see report)" >> console-validation-summary.md
fi

if [ "${{ steps.validate-components.outputs.components_status }}" = "passed" ]; then
echo "- ✅ **Components**: No console statements detected" >> console-validation-summary.md
else
echo "- ❌ **Components**: Console statements found (see report)" >> console-validation-summary.md
fi

echo "" >> console-validation-summary.md

if [ "${TOTAL_ISSUES}" -gt 0 ]; then
echo "### 🚨 Action Required:" >> console-validation-summary.md
echo "Console statements were detected in your code. These must be removed before production deployment." >> console-validation-summary.md
echo "" >> console-validation-summary.md
echo "**Next Steps:**" >> console-validation-summary.md
echo "1. Download the validation reports from the artifacts section" >> console-validation-summary.md
echo "2. Review the specific files and line numbers listed" >> console-validation-summary.md
echo "3. Replace console statements with \`secureLogger\` imports" >> console-validation-summary.md
echo "4. Re-run the validation locally: \`npm run validate:console\`" >> console-validation-summary.md
echo "5. Commit and push your changes" >> console-validation-summary.md
echo "" >> console-validation-summary.md
echo "**Emergency Bypass (if needed):**" >> console-validation-summary.md
echo "- Re-run this workflow with 'Skip console validation' checked" >> console-validation-summary.md
echo "- Use \`npm run build:unsafe\` for local emergency builds" >> console-validation-summary.md
else
echo "### ✅ Validation Successful!" >> console-validation-summary.md
echo "No console statements detected. Your code is production-ready!" >> console-validation-summary.md
fi

echo "" >> console-validation-summary.md
echo "### Validation Performance:" >> console-validation-summary.md
validation_duration=$(($(date +%s) - ${VALIDATION_START_TIME}))
echo "- **Duration:** ${validation_duration} seconds" >> console-validation-summary.md
echo "- **Files Scanned:** $(find src/app src/components -name '*.tsx' -o -name '*.ts' | wc -l)" >> console-validation-summary.md

# Save total issues for later steps
echo "TOTAL_CONSOLE_ISSUES=${TOTAL_ISSUES}" >> $GITHUB_ENV

- name: Check validation result
id: check-validation-result
run: |
# Calculate total issues from step outputs
PAGES_ISSUES=${{ steps.validate-pages.outputs.pages_issues || 0 }}
COMPONENTS_ISSUES=${{ steps.validate-components.outputs.components_issues || 0 }}
TOTAL_ISSUES=$((PAGES_ISSUES + COMPONENTS_ISSUES))

echo "total_issues=${TOTAL_ISSUES}" >> $GITHUB_OUTPUT

if [ "${TOTAL_ISSUES}" -gt 0 ]; then
echo "validation_failed=true" >> $GITHUB_OUTPUT
echo "❌ Console validation failed with ${TOTAL_ISSUES} issues"
else
echo "validation_failed=false" >> $GITHUB_OUTPUT
echo "✅ Console validation passed - no issues found"
fi

- name: Upload validation summary
if: always()
uses: actions/upload-artifact@v4
with:
name: console-validation-summary
path: console-validation-summary.md
retention-days: 30

- name: Fail build if console statements detected
if: steps.check-validation-result.outputs.validation_failed == 'true'
run: |
TOTAL_ISSUES=${{ steps.check-validation-result.outputs.total_issues }}
echo "💥 Build failed due to console validation errors"
echo "Found ${TOTAL_ISSUES} console statement violations"
echo ""
echo "🔧 To fix this issue:"
echo "1. Run 'npm run scan:console:report' locally to see detailed reports"
echo "2. Replace console statements with secureLogger"
echo "3. Re-run validation with 'npm run validate:console'"
echo ""
echo "🚨 Emergency bypass available via workflow dispatch if needed"
exit 1

- name: Success notification
if: steps.check-validation-result.outputs.validation_failed == 'false'
run: |
echo "🎉 Console validation passed successfully!"
echo "Your code is ready for production deployment."

build-validation:
name: Code Quality Validation
runs-on: ubuntu-latest
needs: console-validation
if: ${{ !cancelled() && needs.console-validation.outputs.validation_failed != 'true' }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: TypeScript type checking
run: |
echo "🔍 Running TypeScript type checking..."
npm run typecheck

- name: ESLint validation
run: |
echo "🔍 Running ESLint for code quality..."
npm run lint

- name: Code quality summary
run: |
echo "📊 Code Quality Validation Complete"
echo "==================================="
echo "✅ TypeScript compilation successful"
echo "✅ ESLint validation passed"
echo "✅ Console validation passed (from previous job)"
echo ""
echo "ℹ️ Build step skipped in CI/CD to avoid environment variable issues"
echo "ℹ️ Actual builds happen during deployment with real environment variables"

emergency-bypass:
name: Emergency Build (Console Validation Bypassed)
runs-on: ubuntu-latest
if: ${{ inputs.skip_console_validation }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Emergency bypass notification
run: |
echo "🚨 EMERGENCY BYPASS ACTIVATED"
echo "Console validation has been skipped for this build"
echo "⚠️ This should only be used for critical hotfixes"
echo "📋 Post-deployment actions required:"
echo "1. Schedule immediate console cleanup"
echo "2. Document bypass reason for audit"
echo "3. Run full validation on next deployment"

- name: Emergency build
run: |
echo "🏗️ Running emergency build without console validation..."
npm run build:unsafe
echo "✅ Emergency build completed"

- name: Log emergency bypass
run: |
echo "📋 Emergency Bypass Report" >> emergency-bypass-log.md
echo "=========================" >> emergency-bypass-log.md
echo "" >> emergency-bypass-log.md
echo "**Date:** $(date)" >> emergency-bypass-log.md
echo "**Triggered by:** ${{ github.actor }}" >> emergency-bypass-log.md
echo "**Branch:** ${{ github.ref_name }}" >> emergency-bypass-log.md
echo "**Commit:** ${{ github.sha }}" >> emergency-bypass-log.md
echo "**Reason:** Manual bypass via workflow dispatch" >> emergency-bypass-log.md
echo "" >> emergency-bypass-log.md
echo "**⚠️ Required Follow-up Actions:**" >> emergency-bypass-log.md
echo "- [ ] Run console validation: \`npm run validate:console\`" >> emergency-bypass-log.md
echo "- [ ] Clean up any console statements found" >> emergency-bypass-log.md
echo "- [ ] Re-enable validation for future builds" >> emergency-bypass-log.md
echo "- [ ] Update team on bypass usage" >> emergency-bypass-log.md

- name: Upload emergency bypass log
uses: actions/upload-artifact@v4
with:
name: emergency-bypass-log
path: emergency-bypass-log.md
retention-days: 90
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,15 @@ yarn-error.log*
*.tsbuildinfo
next-env.d.ts
rate-limit-test-results.txt

# Husky Git hooks
.husky/_


# Console validation reports
console-log-report.md
console-log-report-components.md
console-validation-report-*.md

# backup files
*.bak
Loading
Loading