Test Credentials

July 27, 2026 ยท View on GitHub

Accounts created by the database migrator (src/Presentation/Logistics.DbMigrator). Every password is Test12345#.

Live Demo

A live demo is available at https://tms.logisticsx.app

Warning: The demo uses test Stripe keys. Do not enter real payment information.

Super Admin

Runs the Admin Portal and is not attached to any tenant. Its credentials come from the SuperAdmin section of the migrator's appsettings.json (override with SuperAdmin__Email / SuperAdmin__Password), so a deployment can seed a different one.

EmailPasswordApplication
admin@test.comTest12345#Admin Portal

Demo Tenants

Three tenants are seeded. The tenant slug is what the client sends in the X-Tenant header, and it is also the {tenant} in the {tenant}_logisticsx database name.

SlugCompanyRegionDatabaseOperating modeShape
usHeartland Logistics LLCUSus_logisticsxFleet10 employees, 5 trucks, 5 customers, 100 loads
euEuroFreight GmbHEUeu_logisticsxFleet10 employees, 5 trucks, 5 customers, 100 loads
soloRodriguez Trucking LLCUSsolo_logisticsxOwner-operator1 employee, 1 truck, 2 customers, 12 loads

The EU tenant bills in EUR, uses metric units and the Europe/Berlin timezone. The solo tenant runs in owner-operator mode, so the TMS portal hides employees, payroll, timesheets and messaging for it.

US tenant (us)

RoleEmailApplication
Ownerowner@test.comTMS Portal
Managermanager1@test.comTMS Portal
Dispatcherdispatcher1@test.comTMS Portal
Dispatcherdispatcher2@test.comTMS Portal
Dispatcherdispatcher3@test.comTMS Portal
Driverdriver1@test.comDriver Mobile App
Driverdriver2@test.comDriver Mobile App
Driverdriver3@test.comDriver Mobile App
Driverdriver4@test.comDriver Mobile App
Driverdriver5@test.comDriver Mobile App
Customercustomer1@test.comCustomer Portal
Customercustomer2@test.comCustomer Portal

EU tenant (eu)

Same shape, eu_ prefixed. Note the manager has no number - it is eu_manager@test.com, not eu_manager1@test.com.

RoleEmailApplication
Ownereu_owner@test.comTMS Portal
Managereu_manager@test.comTMS Portal
Dispatchereu_dispatcher1@test.comTMS Portal
Dispatchereu_dispatcher2@test.comTMS Portal
Dispatchereu_dispatcher3@test.comTMS Portal
Drivereu_driver1@test.comDriver Mobile App
Drivereu_driver2@test.comDriver Mobile App
Drivereu_driver3@test.comDriver Mobile App
Drivereu_driver4@test.comDriver Mobile App
Drivereu_driver5@test.comDriver Mobile App
Customereu_customer1@test.comCustomer Portal
Customereu_customer2@test.comCustomer Portal

Solo tenant (solo)

RoleEmailApplication
Ownersolo@test.comTMS Portal + Driver Mobile App
Customersolo_customer1@test.comCustomer Portal

solo@test.com is the tenant's only employee. They hold the Owner role and are the main driver of the tenant's single truck, so the same login works in both the TMS portal and the driver app. Owner carries Permission.Driver.*, which is what makes the driver app usable here.

The Owner-to-driver-app path depends on TenantRoleClaim rows in each tenant database, not on the C# permission list. If a driver-app call 403s after a permission change, re-run the migrator so TenantRoleSeeder re-syncs them.

Role Permissions

Super Admin (Admin Portal only)

  • Manage all tenants (companies)
  • View system-wide statistics
  • Manage subscriptions and billing
  • Create and manage app admins

Owner (TMS Portal, and the driver app when assigned to a truck)

  • Full access to company data and company settings
  • Manage employees, roles, and invitations
  • Financials: invoices, payments, payroll, expenses, tax, accounting sync
  • Everything Manager and Dispatcher can do

Manager (TMS Portal)

  • Loads, trips, trucks, customers, containers, terminals
  • Invoices, payments, payroll, expenses
  • ELD/HOS, DVIR review, safety, maintenance
  • Manage employees and send invitations, but not company settings or roles

Dispatcher (TMS Portal)

  • Create and manage loads, assign drivers, manage trips
  • Customers, containers, terminals, load board search/book/post
  • View invoices, payments, trucks, ELD/HOS
  • AI dispatch sessions and decisions

Driver (Driver Mobile App)

  • View assigned loads and trips, update load status
  • Upload documents (POD, BOL) and share GPS location
  • File and submit DVIRs (review/sign-off stays with Owner and Manager)
  • Message dispatch

Customer (Customer Portal)

  • Track their own shipments, download documents, pay invoices

Application Access Matrix

AreaSuper AdminOwnerManagerDispatcherDriver
Tenant management (all companies)X
Company settingsX
Employees & rolesXManage
Loads & tripsXXXView
CustomersXXX
Invoices & paymentsXXView
PayrollXX
ExpensesXXX
Load boardXXX
ELD / HOSXXView
DVIRXXSubmit
Safety & maintenanceXX
AI dispatchXXX
Analytics dashboardXXViewViewView
MessagingXXXX

Source of truth: src/Shared/Logistics.Shared.Identity/Policies/TenantRolePermissions.cs.

Creating Additional Test Users

Via the Admin Portal (super admin) or the TMS Portal (owner or manager):

  1. Navigate to the Employees section
  2. Invite a user by email and assign a role
  3. The invitee receives an email with a link to set their password

Password Requirements

  • Minimum 8 characters
  • At least one uppercase letter
  • At least one lowercase letter
  • At least one number
  • At least one special character

Resetting Test Data

To reset to initial test data:

# Drop and recreate databases
psql -U postgres -c "DROP DATABASE IF EXISTS master_logisticsx;"
psql -U postgres -c "DROP DATABASE IF EXISTS us_logisticsx;"
psql -U postgres -c "DROP DATABASE IF EXISTS eu_logisticsx;"
psql -U postgres -c "DROP DATABASE IF EXISTS solo_logisticsx;"
psql -U postgres -c "CREATE DATABASE master_logisticsx;"

# Re-run migrations and seeding (the migrator creates the tenant databases itself)
dotnet run --project src/Presentation/Logistics.DbMigrator

Or with Docker:

docker compose -f deploy/docker-compose.dev.yml down -v
docker compose -f deploy/docker-compose.dev.yml up -d