Skip to content
This repository was archived by the owner on May 9, 2026. It is now read-only.
Kerminasourial edited this page Mar 27, 2026 · 4 revisions

EULA Acceptance Feature Documentation

Research & Requirements

In order to comply with flight claim processing standards, we have introduced an End User License Agreement (EULA) that is mandatory. The agreement includes the following:

  • Accuracy of Information: Users need to provide accurate flight details.
  • Privacy: Users give consent for Aero to handle their flight data in order to verify delays.
  • Limitation of Liability: Aero will not be held accountable for claims that airlines deny.
  • License to Use: Users receive a personal, non-exclusive license to create claims.
  • AI Accuracy & Legal Disclaimer: Users acknowledge that AI generated content may be inaccurate.

Technical Architecture

A Middleware Gatekeeper pattern was implemented to guarantee that no user can skip the agreement.

1. Database Layer

  • Table: eula_acceptances
  • Service: userService.ts manages the database through Drizzle ORM.

2. Middleware Layer (auth-middleware.ts)

  • requireEula: This function looks for a record in the database before giving permission for sensitive POST requests. If the record is found to be missing, it sends a 403 Forbidden response along with the code EULA_REQUIRED.

3. API Endpoints

  • POST /api/user/accept-eula: Triggered when the user presses "Enter" on the EULA interface.
  • POST /api/claims/submitClaim: Currently, it's protected by both requireAuth and requireEula.

Implementation Flow

  1. The user signs in.
  2. The user tries to submit a claim.
  3. The middleware stops the request and sends the user to the EULA page.
  4. The user agrees, and an entry is made in eula_acceptances.
  5. Now the user is able to submit claims successfully.

4. AI Accuracy & Legal Disclaimer

To ensure the responsible use of AI within the AERO platform, the following terms are included in the EULA:

  • Accuracy Disclaimer: Users acknowledge that the AI Enabled Resolution Officer (AERO) uses Large Language Models which may occasionally produce inaccurate information regarding flight status or compensation.

  • Informational Purposes Only: All compensation estimates provided by the platform are for informational purposes only. These estimates do not constitute formal legal advice.

  • No Guarantee of Success: Aero does not guarantee that following AI-generated advice will result in successful compensation from an airline.

Clone this wiki locally