const express = require('express'); const { auth } = require('express-openid-connect'); const cors = require('cors'); const mongoose = require('mongoose'); require('dotenv').config(); const FRONTEND_URL = 'http://localhost:3000'; // Connect to MongoDB mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/container-mom', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('MongoDB connection error:', err)); const app = express(); app.use(cors({ origin: FRONTEND_URL, credentials: true })); const config = { authRequired: false, auth0Logout: true, secret: process.env.AUTH0_SECRET, baseURL: 'http://localhost:3001', clientID: 'H1FcujzHs76LB99W7KcKQOEO9ThtlyLh', clientSecret: process.env.AUTH0_CLIENT_SECRET, issuerBaseURL: 'https://dev-a3o2jif0.us.auth0.com', routes: { postLogoutRedirect: FRONTEND_URL }, authorizationParams: { response_type: 'code', scope: 'openid profile email', redirect_uri: FRONTEND_URL } }; // Auth router attaches /login, /logout, and /callback routes to the baseURL app.use(auth(config)); // Basic routes app.get('/', (req, res) => { if (req.oidc.isAuthenticated()) { res.redirect(FRONTEND_URL); } else { res.send('Logged out'); } }); // Protected API route app.get('/api/auth/user', (req, res) => { if (req.oidc.isAuthenticated()) { res.json(req.oidc.user); } else { res.json(null); } }); // Import routes const deploymentRoutes = require('./routes/deployments'); // Use routes app.use('/api/deployments', deploymentRoutes); const port = process.env.PORT || 3001; app.listen(port, () => { console.log(`Server running on port ${port}`); });