Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ff58356
Fix UI issues: Remove blinking animations and improve navigation
Patel230 Nov 8, 2025
532a67b
Modernize authentication UI with professional 2024-2025 design
Patel230 Nov 8, 2025
33b60b4
Add consistency improvements to auth pages
Patel230 Nov 8, 2025
77ef8e5
Add OAuth social login support for Google, LinkedIn, and GitHub
Patel230 Nov 8, 2025
739b2fe
Complete OAuth integration with callback routes and frontend handling
Patel230 Nov 8, 2025
5977948
Add complete OAuth social login implementation
Patel230 Nov 8, 2025
568f66a
Add SQLite authentication database for OAuth social login
Patel230 Nov 8, 2025
3658fc9
Add passwordless magic link authentication
Patel230 Nov 9, 2025
6c5d746
Improve login form UI: Remember me functionality and simplified socia…
Patel230 Nov 9, 2025
86ddc89
Modernize login and signup pages with teal theme and enhanced UI
Patel230 Nov 9, 2025
9c24f63
Implement forgot password functionality with teal-themed email
Patel230 Nov 9, 2025
41a45ac
Enhance password reset flow with user validation and dedicated reset …
Patel230 Nov 9, 2025
486e996
Add social OAuth buttons with hover tooltips to signup page
Patel230 Nov 9, 2025
de097f0
Add social OAuth buttons with context-aware tooltips to all auth pages
Patel230 Nov 9, 2025
43ebd96
Add real-time email validation with visual indicators to all auth pages
Patel230 Nov 9, 2025
e562d38
Enhance authentication pages with security and UX improvements
Patel230 Nov 9, 2025
1911fc1
Implement email verification flow for authentication
Patel230 Nov 9, 2025
1dbd98e
Rename LoginForm to Signin for consistency
Patel230 Nov 9, 2025
ce31587
feat: comprehensive authentication improvements
Patel230 Nov 9, 2025
848023e
Add interactive password requirements popup for Signup and Reset Pass…
Patel230 Nov 9, 2025
dd88c50
feat: add rate limiting for authentication endpoints
Patel230 Nov 9, 2025
3e94214
feat: add signup rate limiting and fix TypeScript errors
Patel230 Nov 9, 2025
23bcf0b
feat: update authentication rate limiting to 15-minute windows
Patel230 Nov 9, 2025
43e437a
fix: ESM import and improve signup page UX
Patel230 Nov 10, 2025
824193b
feat: add comprehensive CAPTCHA protection to all authentication endp…
Patel230 Nov 10, 2025
9b563e7
fix: update docker-compose.yml for broad compatibility
mvalancy Nov 11, 2025
79e39a2
feat: add interactive OAuth setup wizard
mvalancy Nov 11, 2025
83f18be
feat: add OAuth button disabled state with helpful tooltips
mvalancy Nov 11, 2025
7545b5e
refactor: move CAPTCHA to bot-prevention-only flows
mvalancy Nov 12, 2025
48792d5
feat: add difficulty levels to CAPTCHA component
mvalancy Nov 12, 2025
db58dfb
feat: add OAuth status indicators to Signup page
mvalancy Nov 12, 2025
1ee3cff
feat: add simple math CAPTCHA style as default for better accessibility
mvalancy Nov 12, 2025
710743c
feat: add CAPTCHA style randomization on reload button
mvalancy Nov 12, 2025
97bb86e
feat: add comprehensive Docker error handling
mvalancy Nov 12, 2025
6a9bd87
fix: allow single-digit answers for math CAPTCHA
mvalancy Nov 12, 2025
e18ac8a
debug: add logging to diagnose math CAPTCHA button issue
mvalancy Nov 12, 2025
3567754
feat: add comprehensive OAuth testing infrastructure and compliance docs
mvalancy Nov 12, 2025
8aa84ea
docs: add OAuth testing quick start guide
mvalancy Nov 12, 2025
f2b28bd
feat: add unified PR test suite for critical validation
mvalancy Nov 12, 2025
0b66021
fix: make installation test script POSIX sh compatible for broader pl…
mvalancy Nov 12, 2025
801ee54
fix: make certificate generation script more resilient
mvalancy Nov 12, 2025
9ca6eea
fix: replace bash string substitution with POSIX tr command
mvalancy Nov 12, 2025
2b516c6
fix: make E2E tests environment-aware for HTTPS deployment
mvalancy Nov 12, 2025
2feb68f
feat: add OAuth provider configuration UI to admin panel
mvalancy Nov 12, 2025
3a8af45
feat: add backend OAuth provider configuration API
mvalancy Nov 12, 2025
adee529
feat: wire frontend OAuth config UI to backend GraphQL API
mvalancy Nov 12, 2025
c8e0275
fix: resolve React hooks and error handling bugs in OAuth config UI
mvalancy Nov 12, 2025
7ac1e38
test: expand PR test suite from 6 to 19 suites with OAuth admin UI tests
mvalancy Nov 12, 2025
c6044b3
fix: replace all hardcoded GraphQL endpoints with nginx proxy path
mvalancy Nov 12, 2025
788d79e
fix: configure Chromium-only testing until Firefox/WebKit deps installed
mvalancy Nov 13, 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
90 changes: 81 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,81 @@ jobs:
echo "ℹ️ Build and tests temporarily disabled due to CI Rollup dependency issue"
echo "ℹ️ Full functionality tested locally and works correctly"

# PR validation with critical E2E tests
pr-validation:
name: PR Critical Tests
runs-on: ubuntu-latest
needs: [lint-and-typecheck, test-core, test-server, test-web]
services:
neo4j:
image: neo4j:5.15-community
env:
NEO4J_AUTH: neo4j/graphdone_password
NEO4J_PLUGINS: '["graph-data-science", "apoc"]'
NEO4J_dbms_security_procedures_unrestricted: "gds.*,apoc.*"
NEO4J_dbms_security_procedures_allowlist: "gds.*,apoc.*"
options: >-
--health-cmd "cypher-shell -u neo4j -p graphdone_password 'RETURN 1'"
--health-interval 10s
--health-timeout 5s
--health-retries 10
ports:
- 7474:7474
- 7687:7687
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'

- name: Install dependencies
run: npm ci --legacy-peer-deps

- name: Install Playwright browsers
run: npx playwright install --with-deps chromium

- name: Generate development certificates
run: ./scripts/generate-dev-certs.sh

- name: Start GraphDone services
run: |
npm run docker:prod &
sleep 30
echo "Waiting for services to be healthy..."
timeout 90 bash -c 'until curl -k https://localhost:4128/health 2>/dev/null; do sleep 2; done'

- name: Run PR critical tests
run: npm run test:pr
env:
TEST_URL: https://localhost:3128
TEST_ENV: production
CI: true

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: pr-test-results-${{ github.sha }}
path: test-results/
retention-days: 7

- name: Upload test report
if: always()
uses: actions/upload-artifact@v4
with:
name: pr-test-report-${{ github.sha }}
path: test-results/reports/pr-report.html
retention-days: 7

# Build job - validation only (skip actual build due to Rollup CI issue)
build:
name: Deployment Validation
runs-on: ubuntu-latest
needs: [lint-and-typecheck, security-scan, test-core, test-server, test-web, test-mcp-server]
needs: [lint-and-typecheck, security-scan, test-core, test-server, test-web, test-mcp-server, pr-validation]
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
steps:
- name: Checkout code
Expand Down Expand Up @@ -266,31 +336,33 @@ jobs:
ci-success:
name: CI Success
runs-on: ubuntu-latest
needs: [lint-and-typecheck, security-scan, test-core, test-server, test-web, test-mcp-server]
needs: [lint-and-typecheck, security-scan, test-core, test-server, test-web, test-mcp-server, pr-validation]
if: always()
steps:
- name: Check overall status
run: |
# Check if all required jobs passed
LINT_STATUS="${{ needs.lint-and-typecheck.result }}"
SECURITY_STATUS="${{ needs.security-scan.result }}"
CORE_STATUS="${{ needs.test-core.result }}"
SERVER_STATUS="${{ needs.test-server.result }}"
WEB_STATUS="${{ needs.test-web.result }}"
MCP_STATUS="${{ needs.test-mcp-server.result }}"

PR_VALIDATION_STATUS="${{ needs.pr-validation.result }}"

echo "📊 CI Pipeline Results:"
echo "- Lint & TypeCheck: $LINT_STATUS"
echo "- Security Scan: $SECURITY_STATUS"
echo "- Security Scan: $SECURITY_STATUS"
echo "- Core Tests: $CORE_STATUS"
echo "- Server Tests: $SERVER_STATUS"
echo "- Web Build: $WEB_STATUS"
echo "- MCP Tests: $MCP_STATUS"

if [[ ("$LINT_STATUS" == "success" || "$LINT_STATUS" == "failure") && "$CORE_STATUS" == "success" &&
"$SERVER_STATUS" == "success" && "$WEB_STATUS" == "success" &&
"$MCP_STATUS" == "success" ]]; then
echo "- PR Validation (E2E): $PR_VALIDATION_STATUS"

if [[ ("$LINT_STATUS" == "success" || "$LINT_STATUS" == "failure") && "$CORE_STATUS" == "success" &&
"$SERVER_STATUS" == "success" && "$WEB_STATUS" == "success" &&
"$MCP_STATUS" == "success" && "$PR_VALIDATION_STATUS" == "success" ]]; then
echo "✅ All essential CI jobs completed successfully!"
echo "✅ PR validation tests passed - critical functionality verified"
echo "Note: Lint warnings and security scan failures don't block CI"
else
echo "❌ CI pipeline failed - check individual job results above"
Expand Down
2 changes: 1 addition & 1 deletion deployment/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: graphdone
version: '3.8'

services:
graphdone-neo4j:
Expand Down
Loading
Loading