Select the types of activity you want to include in your feed.
v0.2.0
- modifying a levels metadata now also affects the level data
- if github auth is disabled, dont show a login prompt on the admin page
- fix incorrect plants map
- clean up decoder/encoder
···11# PVZM Backend
2233-> v0.1.1
33+> v0.2.0
44> A Deno-powered backend service for [Plants vs. Zombies: MODDED](https://github.com/roblnet13/pvz). This service provides APIs for uploading, downloading, listing, favoriting, and reporting user-created _I, Zombie_ levels.
5566## Features
+1-1
TODO.md
···2323 - Implement API key authentication for programmatic access
2424 - Add request size limits for file uploads
2525 - Consider adding CSRF protection for admin endpoints
2626- - _(Handled by Cloudflare)_ ~~Add rate limiting for API endpoints (especially `/api/levels` POST)~~
2626+ - Add rate limiting for API endpoints (especially `/api/levels` POST)
27272828- [ ] **Database Improvements**
2929 - Add database migrations system for schema changes
+12-12
main.ts
···11-import { createExpressApp, setupBodyParsers, setupCors } from "./modules/server/app_middleware.ts";
22-import { ensureAuthenticated, ensureAuthenticatedOrConsumeTokenForLevelParam, setupGithubAuth, setupSession } from "./modules/server/auth.ts";
33-import { loadConfig } from "./modules/server/config.ts";
44-import { createDiscordClients } from "./modules/server/discord.ts";
55-import { ensureDataFolder, initDatabase } from "./modules/server/db.ts";
66-import { initModeration } from "./modules/server/moderation.ts";
77-import { setupPublicFolder } from "./modules/server/public_folder.ts";
88-import { registerAdminRoutes } from "./modules/server/routes/admin.ts";
99-import { registerConfigRoute } from "./modules/server/routes/config.ts";
1010-import { registerLevelRoutes } from "./modules/server/routes/levels.ts";
1111-import { registerRootRoute } from "./modules/server/routes/root.ts";
1212-import { initTurnstile } from "./modules/server/turnstile.ts";
11+import { createExpressApp, setupBodyParsers, setupCors } from "./modules/app_middleware.ts";
22+import { ensureAuthenticated, ensureAuthenticatedOrConsumeTokenForLevelParam, setupGithubAuth, setupSession } from "./modules/auth.ts";
33+import { loadConfig } from "./modules/config.ts";
44+import { createDiscordClients } from "./modules/discord.ts";
55+import { ensureDataFolder, initDatabase } from "./modules/db.ts";
66+import { initModeration } from "./modules/moderation.ts";
77+import { setupPublicFolder } from "./modules/public_folder.ts";
88+import { registerAdminRoutes } from "./modules/routes/admin.ts";
99+import { registerConfigRoute } from "./modules/routes/config.ts";
1010+import { registerLevelRoutes } from "./modules/routes/levels.ts";
1111+import { registerRootRoute } from "./modules/routes/root.ts";
1212+import { initTurnstile } from "./modules/turnstile.ts";
13131414const config = loadConfig();
1515