EkanntoBangladesh Business OS

Admin sign in

Sign in with the Ekannto account that has a Founder, Owner, or Admin role.

Database URL and public anon key must be configured in config.js. Never place service-role or R2 secret keys in browser code.

EKANNTO CONTROL CENTRE

Admin dashboard

Checking permissions…

Checking account permissions…

System overview

Registered users—
Products—
Orders—
Premium orders—

Counts are read from Supabase. Data remains in the configured database; images are stored in Cloudflare R2.

Revenue trend৳0
Live database snapshot
Order volume0
Recent order activity
Product activity0
Published and listed products
Premium order value৳0
Premium order snapshot

User control

Role updates are checked by a PostgreSQL security-definer function. Public users cannot promote themselves.

User IDNamePhoneRoleStatusSave role
Loading user records…

Product management

Published product metadata is stored in Supabase; image objects are stored in R2.

ProductCategoryPrice (BDT)StatusSeller
Loading products…
Open product uploader

Orders

Order IDStatusTotal (BDT)Created
Loading orders…

Homepage and welcome settings

Edit the JSON values below. They are saved in Supabase and loaded by the storefront; do not paste script or HTML code.

Hero item example: {"title":"Make room for better things","subtitle":"A smarter way to shop","cta":"Explore the collection","link":"market","tone":["#f4eee7","#e2c8ac"]}. Welcome keys: title, text, code, visibility.

Security and storage

  • Supabase Row Level Security must remain enabled.
  • Only the public anon/publishable key belongs in the browser.
  • R2 media is stored through the Cloudflare Pages R2_BUCKET binding; server-side Supabase service-role credentials stay in Cloudflare Pages Secrets.
  • Never expose the service-role key or any R2 API credentials in frontend code. This binding-based upload does not need R2 API keys in the website.
  • Apply supabase/schema.sql in the Supabase SQL editor before using role controls.
Read full admin guide

Ekannto — Zero To One, One To Infinity. Admin actions require a signed-in, active privileged profile.

try{init();gate().catch(e=>{$('#loginStatus').textContent=e.message||'Could not verify admin account.';status(e.message||'Could not verify admin account.',true);$('#adminLogin').classList.remove('hidden');$('#adminApp').classList.add('hidden')})}catch(e){$('#loginStatus').textContent=e.message}})();