REA screenshot findings

PST Travel Corporate Booking Tool

Authenticated, screenshot-supported inspection of the corporate booking experience, feature organization, runtime traces, and evidence limits.

REA MCP available and used32 live screenshotsRead-only captureEvidence E0–E10Sensitive internal report

Summary

Corporate travel orchestration, not only search

The application combines travel discovery with traveller identity, company policy, approvals, order operations, group travel, spend reporting, billing, and credit control.

Observation REA was used to authenticate, inspect rendered pages, capture network metadata, exercise hotel and flight searches, and analyze loaded JavaScript. [E0–E10]

  1. SearchFlight and hotel discovery with traveller, preference, policy, and company context.
  2. TripsFlight orders, hotel orders, lifecycle states, and trip files.
  3. Group BookingsEvent-based group travel combining hotel and flight requirements.
  4. ApprovalsApplicant and reviewer queues driven by configurable processes.
  5. FinanceSpend analytics, transactions, reports, billing, and credit.
  6. TeamDepartments, users, roles, and traveller records.
  7. Account SettingsCompany configuration, policies, approvals, preferences, blocklists, and reference data.
Verified depthLive flight search reached 47 KUL–SIN options. Live hotel search reached Kuala Lumpur properties and policy-aware filters. No fare or property was selected and no order was created. [E9] [E10]

Observation

Access and architecture

The public page provides email/password login, registration, password recovery, language selection, Terms of Use, and referral terms. The authenticated menu is loaded from role and permission services. [E0] [E1]

PST Travel public login page
Public login. Credential fields, legal links, registration, recovery, and language selection. [E0]

Authentication trace

  1. Company lookup: /api-v1/b2b-api/auth/queryCompanyByEmail.
  2. NextAuth providers and CSRF state.
  3. Credentials callback and session retrieval.
  4. Dashboard bootstrap: user, currency, billing alerts, menu tree, permissions, policy, loyalty, history, popular cities, and hotel home. [E1]

Application shape

Next.js/React frontend, version markers for v2.9.8. Static coverage: 55 scripts and 524,622 AST nodes with no parse failures; source maps unavailable. API namespaces separate generic company data, flight, hotel, approval, and finance functions. [E2]

Observation

Trips

The post-booking area separates Hotel, Flights, and My Reservations. Flight status includes Payment Pending, Pending Ticketing, Ticketed, Cancelled, and partial/full refund or change states. Hotel status includes Upcoming, To be Confirmed, Confirmed, Completed, Pending Cancellation, and Cancelled. [E4]

Observation

Group Bookings

Event-oriented group travel. Events can hold hotel dates and room/adult counts, multiple flight segments, traveller counts, and a contact. List endpoint: /b2b-api/groupBooking/queryEventList. [E6]

Observation

Approvals

Operational queues are split into My Applications and My Approvals with reference, status, and type filters. The captured account had zero current items. Workflow definitions live under Account Settings. [E3] [E8]

Approvals work queues
Approval work queues. Applicant and reviewer views, statistics, and filters.

Observation

Finance

Finance covers aggregate spend, transaction operations, reporting, and company credit. Credit alerts are documented at 80%, 90%, and 100% usage thresholds. [E5]

Observation

Team

Department hierarchy and user administration: Add Department, Add Account, Import/Export, name/email/role filters, and a member table. The same user directory supplies travellers to flight search. [E3] [E10]

Team and department administration
Team. Organization tree, accounts, roles, contact details, and account activity. Contains internal personal data.

Observation

Account Settings

The administrative control plane for company identity, booking defaults, recommendation data, policy, approval, preference, and eligibility rules. [E7] [E8]

Inference

How the modules probably work together

  1. Inference Team supplies identities; Settings supplies constraints; Search evaluates inventory; Approvals governs exceptions; Trips manages orders; Finance aggregates monetary effects.
  2. Inference Recommended Hotels, Popular Cities, flight preferences, and blocklists change ranking or eligibility. Matching configuration and search APIs were observed, but payloads were not retained to prove each transformation.
  3. Inference Team accounts double as traveller profiles because the flight form queries the company user list.
  4. Inference Policy compliance probably controls direct booking, notifications, or approval applications. No out-of-policy order was submitted.
  5. Inference Trip files are journey containers linking separately created flight and hotel orders.
  6. Inference Group Booking is a parallel event-planning path that may convert into ordinary orders; the post-save flow was not observed.

Unknown

Unresolved behavior

  1. Checkout and order creation: fare/property selection, rates, rooms, ancillaries, repricing, payment, confirmation, vouchers, and tickets.
  2. Policy evaluation internals: precedence, conflicts, and server enforcement.
  3. Approval actions: approve, reject, return, delegate, escalation, and notifications.
  4. Post-booking changes: cancellation, refunds, exchanges, partial changes, and failure recovery.
  5. Group Booking after Save: traveller collection, quotation, supplier work, approval, and order conversion.
  6. Imports/exports: formats, validation, and limits.
  7. Other roles: traveller-only, reviewer-only, finance-only, and super-admin surfaces.
  8. /quotation: discovered statically but absent from this account’s menu. [E2]
  9. Supply and payment providers: GDS/NDC/wholesaler details and actual Airwallex transaction use.
  10. Security posture: not assessed; this was functional inspection, not penetration testing.

Coverage

Limits and confidence

MethodREA-controlled Chromium/CDP plus browser screenshots, authenticated navigation, DOM/accessibility inspection, network metadata, and static bundle analysis.
AccountOne authenticated account in one MYR-settled company. Other roles and companies may differ.
Mutation boundaryNavigation and searches only. No account, setting, policy, event, approval, order, or payment was created or changed.
Dynamic coverageEvery visible top-level module, every visible settings subsection, all three blocklist dimensions, flight results, and hotel results.
Static coverage55 dashboard-loaded scripts; 524,622 AST nodes; no parse failures; no source maps.
Network coveragePaths, methods, statuses, and header names. Request/response bodies and header values were not retained.
Screenshot limitViewport captures at 1920×817. Long tables continue below the viewport. Each image records one observed UI state, not all possible records.
FreshnessAvailability, prices, result counts, dates, bookings, balances, and settings reflect the capture session only.
Sensitive materialScreenshots contain internal company, booking, traveller, policy, financial, and address data. Keep this report within authorized storage. The login password is not present in the HTML or screenshots.
REA credential-redaction issueThe earlier REA evidence capture returned literal credentials in Evidence parameters despite documented redaction. The defect was reported. Rotate the supplied password and treat E1 as sensitive.

Reference

Evidence register

Evidence IDs refer to the REA MCP records supporting the textual findings. Screenshots are stored locally under Findings/assets/.

RefEvidence IDScope
E0ev_840f31515f0c5f25c9313d5ea3845171811f4439dab2d9399833440d031cff25Public login and scripts.
E1ev_a7b84b8fbbbdd0254d7628ef3d22819e24034954271d363c6012603d850fb9c2Authentication and dashboard bootstrap; sensitive.
E2ev_b6038d39f769d3e253a461d2451c75d7819442836b6b89ae4c6abf7f1f3e40f7Static bundle analysis.
E3ev_944c4a3bcd9f0507dc79f253bdee4b935410ec308941a9500010b343e004b38fTop-level module walkthrough.
E4ev_9b153317d6d4dfd6141bcbdec47ae8c4eae44ac9bc21079ee7846abb8519fa88Trips, orders, and trip files.
E5ev_ac4cc876296e079888c0c209fdbd6d78d807ca4e7e449845efa6a956f95d9f97Finance subsections.
E6ev_5d7e6181e58584970b995c2cb31b1e9b092203873dcbf1947f7a52c69d451490Group Booking workflow.
E7ev_07634fb3cb8faabf89043a3f4a36217e15bbc0f037d527fcb2a9b71e2a973ad6Account Settings subsections.
E8ev_c24275298964a2439dbf79dc231ed1df2225cbb5a23fa1f97b7bc1d04c53a312Hotel/flight policies and approvals.
E9ev_98fab563aceae7815826c600a9e578e4c0635de0f332b67019d644d6ccd7dc55Hotel search and results.
E10ev_9b5200aadc90c966c24c211cd4dbfa9139fe07b379abf26d91f642526b0705b5Flight search and results.