XYZ Aquarium Cleaning Services
Credentials & Resources
Live URLs, Cloudflare resources, login info
🔒 This page contains operational credentials. Do not share outside the SONAN DIGITAL team.

Live URLs

ResourceURL
Public Site + Admin Portalxyzaquarium.sonandigital.com
API (Cloudflare Worker)xyzaquarium-api.sonandigital.com
Cloudflare Pages Dashboarddash.cloudflare.com → Pages → aquarium-portal
Cloudflare Workers Dashboarddash.cloudflare.com → Workers → aquarium-api
GitHub Repositorygithub.com/sonantechai/aquarium-portal

Cloudflare Resources

ResourceName / ID
Cloudflare Accountsonantechai@gmail.com
Pages Projectaquarium-portal
Worker Nameaquarium-api
D1 Database Nameaquarium_db
D1 Database IDbddd9b39-a9f2-4356-9244-81aae07a79d0
Custom Domain (Pages)xyzaquarium.sonandigital.com
Custom Domain (Worker)xyzaquarium-api.sonandigital.com

Local Development

ItemValue
Local project pathE:\Claude_Projects\sonan-trackersquarium-portal\
Frontend entrysrc/main.tsx (Vite 5 + React 18)
API Worker entryworker/index.ts
Wrangler configwrangler.toml (root of repo)
Dev servernpm run dev (Vite, port 5173)
API local devnpx wrangler dev worker/index.ts (port 8787)

Environment Variables

Set as Cloudflare Worker secrets and wrangler.toml vars. No .env file used for production — all secrets live in Cloudflare dashboard.

VariablePurpose
ENVIRONMENT"production" or "development" — controls CORS and error verbosity
Admin passwordStored hashed in D1 settings table, not as an env var

wrangler.toml Key Config

name = "aquarium-api"
main = "worker/index.ts"
compatibility_date = "2024-01-01"
compatibility_flags = ["nodejs_compat"]

[[d1_databases]]
binding = "DB"
database_name = "aquarium_db"
database_id = "bddd9b39-a9f2-4356-9244-81aae07a79d0"

[vars]
ENVIRONMENT = "production"
ALLOWED_ORIGIN = "https://xyzaquarium.sonandigital.com"
💡 To query D1 from the CLI: npx wrangler d1 execute aquarium_db --command "SELECT * FROM settings"