v1.1.2.0 2026-04-17
Changed
  • Email templates now use dynamic tenant company branding instead of hardcoded values admin_backend auth_microservice account_microservice finance_microservice profile_microservice helpcenter
  • Legacy templates: replaced config('app.name') and inline Setting::where() queries with $companyName passed from controller via Mailable
  • New (OKM) templates: replaced all hardcoded Oktrum branding — company name, logo, website, contact email, phone, addresses — with dynamic profile.company.* tenant settings
  • Added companyProfile() bulk-fetch method to EmailTemplateFlag on admin_backend
  • Each microservice Mailable now resolves the full company profile in one query
Added
  • New settings seeder CompanyProfileSettingSeeder with 5 keys: profile.company.logo_url, profile.company.website_url, profile.company.phone, profile.company.address_physical, profile.company.address_registered migration-service
  • Seeder rules in database-conventions.md SOP — use firstOrCreate for tenant-customisable settings, never modify existing seeders api_gateway
  • Updated versioning SOP to 4-segment format: MAJOR.FEATURE.IMPROVEMENT.FIX api_gateway
v1.1.1 2026-04-09
Changed
  • Hide manual "Add Payment Method" option and the model code field from the admin UI admin_ui
Fixed
  • Compliance redirect now sends users to the Upload Documents page when their profile is complete but documents were rejected, instead of always redirecting to Profile ui_gateway
v1.1.0 2026-04-08
Added
  • Permanent (hard) delete option for clients admin_ui api_gateway admin_backend
    • Toggle switch in soft-delete confirmation modal
    • "Permanently Delete" action for already soft-deleted clients
    • "Permanently Delete Selected" bulk action
    • Deletes all related data: profile, accounts, transactions, invoices, wallets, documents, bank accounts, tickets
  • Admin "Access Client" readonly impersonation migration-service auth_microservice api_gateway ui_gateway admin_ui finance_microservice account_microservice profile_microservice helpcenter
    • 15-minute Sanctum token with `readonly` ability
    • `RejectReadonlyToken` middleware on all microservices blocks writes from readonly tokens
    • `ReadonlyGuard` middleware on ui_gateway blocks non-GET requests in readonly session
    • Red readonly banner and global JS to hide submit buttons
    • `frontend_url` column on `tenants` table for multi-tenant dashboard URL resolution
  • New admin setting to restrict Live accounts for unapproved users: when enabled, users who have not completed compliance can still access the Accounts page but can only view and create Demo accounts. The Live account section is hidden until compliance is approved.
Fixed
  • API Gateway client delete proxy now forwards request body to downstream service api_gateway
  • Fixed deposit table detail popup not closing automatically after a successful action
v1.0.0 2026-03-25
Released
  • Initial production deployment — OKM tenant live on servers.com Bahrain
  • 11 microservices + 3 queue workers deployed via Docker Compose
  • MariaDB 10.6 on app server, host Redis, Nginx → Apache → Docker proxy chain
  • SSL via Let's Encrypt on all 3 public domains (my.oktrum.com, bo.oktrum.com, okm.api.ataria.pro)
  • Gateway DB (ataria_gateway) + tenant DB (okm) with unified APP_KEY
  • Shared documents volume, iptables firewall rules, localhost-only port bindings