Beta and env changes

This commit is contained in:
jackiettran
2025-07-31 22:06:03 -04:00
parent 7c6c120969
commit 8a02304da8
6 changed files with 215 additions and 39 deletions

View File

@@ -0,0 +1,21 @@
const verifyBetaPassword = (req, res, next) => {
const betaPassword = req.headers['x-beta-password'];
const configuredPassword = process.env.BETA_PASSWORD;
if (!configuredPassword) {
console.error('BETA_PASSWORD environment variable is not set');
return res.status(500).json({ error: 'Beta password not configured on server' });
}
if (!betaPassword) {
return res.status(401).json({ error: 'Beta password required' });
}
if (betaPassword !== configuredPassword) {
return res.status(403).json({ error: 'Invalid beta password' });
}
next();
};
module.exports = { verifyBetaPassword };

10
backend/routes/beta.js Normal file
View File

@@ -0,0 +1,10 @@
const express = require('express');
const router = express.Router();
const { verifyBetaPassword } = require('../middleware/betaAuth');
// Beta verification endpoint
router.get('/verify', verifyBetaPassword, (req, res) => {
res.json({ success: true, message: 'Beta access granted' });
});
module.exports = router;

View File

@@ -1,50 +1,57 @@
// Load environment-specific config
const env = process.env.NODE_ENV;
const env = process.env.NODE_ENV || "dev";
const envFile = `.env.${env}`;
require('dotenv').config({
path: process.env.DOTENV_CONFIG_PATH
require("dotenv").config({
path: envFile,
});
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const path = require('path');
const { sequelize } = require('./models'); // Import from models/index.js to ensure associations are loaded
const express = require("express");
const cors = require("cors");
const bodyParser = require("body-parser");
const path = require("path");
const { sequelize } = require("./models"); // Import from models/index.js to ensure associations are loaded
const authRoutes = require('./routes/auth');
const phoneAuthRoutes = require('./routes/phone-auth');
const userRoutes = require('./routes/users');
const itemRoutes = require('./routes/items');
const rentalRoutes = require('./routes/rentals');
const messageRoutes = require('./routes/messages');
const authRoutes = require("./routes/auth");
const phoneAuthRoutes = require("./routes/phone-auth");
const userRoutes = require("./routes/users");
const itemRoutes = require("./routes/items");
const rentalRoutes = require("./routes/rentals");
const messageRoutes = require("./routes/messages");
const betaRoutes = require("./routes/beta");
const app = express();
app.use(cors());
app.use(bodyParser.json({ limit: '5mb' }));
app.use(bodyParser.urlencoded({ extended: true, limit: '5mb' }));
app.use(bodyParser.json({ limit: "5mb" }));
app.use(bodyParser.urlencoded({ extended: true, limit: "5mb" }));
// Serve static files from uploads directory
app.use('/uploads', express.static(path.join(__dirname, 'uploads')));
app.use("/uploads", express.static(path.join(__dirname, "uploads")));
app.use('/api/auth', authRoutes);
app.use('/api/auth/phone', phoneAuthRoutes);
app.use('/api/users', userRoutes);
app.use('/api/items', itemRoutes);
app.use('/api/rentals', rentalRoutes);
app.use('/api/messages', messageRoutes);
// Beta verification route (doesn't require auth)
app.use("/api/beta", betaRoutes);
app.get('/', (req, res) => {
res.json({ message: 'CommunityRentals.App API is running!' });
app.use("/api/auth", authRoutes);
app.use("/api/auth/phone", phoneAuthRoutes);
app.use("/api/users", userRoutes);
app.use("/api/items", itemRoutes);
app.use("/api/rentals", rentalRoutes);
app.use("/api/messages", messageRoutes);
app.get("/", (req, res) => {
res.json({ message: "CommunityRentals.App API is running!" });
});
const PORT = process.env.PORT || 5000;
sequelize.sync({ alter: true }).then(() => {
console.log('Database synced');
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
sequelize
.sync({ alter: true })
.then(() => {
console.log("Database synced");
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
})
.catch((err) => {
console.error("Unable to sync database:", err);
});
}).catch(err => {
console.error('Unable to sync database:', err);
});