name = "warden-worker" main = "src/rate-limit-wrapper.js" compatibility_date = "2025-09-19" keep_vars = true [build] command = "cargo install -q worker-build && worker-build --release" # Rate limiting configuration for protecting sensitive endpoints # See: https://developers.cloudflare.com/workers/runtime-apis/bindings/rate-limit/ [[ratelimits]] name = "LOGIN_RATE_LIMITER" # A unique identifier for this rate limiter within your Cloudflare account # You can use any positive integer namespace_id = "1001" # Allow 5 requests per 60 seconds per key (email or IP) # This prevents brute force attacks while allowing legitimate login attempts simple = { limit = 5, period = 60 } # Static assets configuration for serving frontend # Frontend files should be placed in ./public directory before deployment [assets] directory = "./public" not_found_handling = "404-page" html_handling = "auto-trailing-slash" # Only invoke Worker for API and Identity routes, serve static files directly for other routes run_worker_first = ["/api/*", "/identity/*"] [vars] # Optional: Set the batch size for imports. Defaults to 30 if not set. # Set to 0 means no batching (all records imported in a single batch). # IMPORT_BATCH_SIZE = "30" # Number of days to keep soft-deleted items before auto-purging. # Defaults to 30 days if not set. Set to 0 to disable auto-purge. # TRASH_AUTO_DELETE_DAYS = "30" # Cron triggers for scheduled tasks # Runs daily at 03:00 UTC to purge soft-deleted ciphers [triggers] crons = ["0 3 * * *"] [[d1_databases]] binding = "vault1" database_name = "vault1" database_id = "${D1_DATABASE_ID}" migrations_dir = "migrations" [env.dev] name = "warden-worker-dev" keep_vars = true # Dev environment also needs cron triggers [env.dev.triggers] crons = ["0 3 * * *"] # Rate limiting for dev environment (same settings as production) [[env.dev.ratelimits]] name = "LOGIN_RATE_LIMITER" namespace_id = "1002" simple = { limit = 5, period = 60 } [[env.dev.d1_databases]] binding = "vault1" database_name = "vault1-dev" database_id = "${D1_DATABASE_ID_DEV}" migrations_dir = "migrations"