EnfinitOSEnfinitOS
DevelopersTransit & broadcast
Production-ready scaffold

Aviation SDK

IFE adapters — Panasonic eX3, Thales AVANT, Anuvu Open Sky. ARINC 763 / 836 vocabulary translated for the EnfinitOS plane.

@enfinitos/sdk-aviationSubstrate AviationTypeScript
Install

Get the SDK

npm install @enfinitos/sdk-aviation

About this status badge

Typed, tested, documented, and wired to the EnfinitOS platform endpoints that exist today. Vendor-side SDK integrations (Broadsign / VIOOH / DJI / Tizen / Alexa / Twilio / Stripe / etc.) land per-customer at pilot integration time — those bring the renderer/transport/exchange-specific code; the EnfinitOS half is ready.

README

The developer-facing documentation in full

The same README the SDK package ships with — rendered here at build time so what you read matches exactly what you install.

@enfinitos/sdk-aviation

EnfinitOS reference SDK for the AVIATION substrate.

This is an adapter-mostly SDK: a thin operator-side wrapper that sits between an IFE vendor's runtime (Panasonic eX3 / Thales AVANT / Anuvu Open Sky) and the EnfinitOS platform's substrate- agnostic resolve, proof-of-play, and health pipelines.

Architecture

       ┌──────────────────────────────────────────┐
       │      EnfinitOSAviationClient             │
       │   (ts-core/src/aviationClient.ts)        │
       │                                          │
       │   ┌────────────────────────────────────┐ │
       │   │   EnfinitOSRendererClient          │ │
       │   │   (resolve, event-ingest, health)  │ │
       │   └────────────────────────────────────┘ │
       │   ┌────────────────────────────────────┐ │
       │   │   CabinSessionManager              │ │
       │   │   (per-seat IFE state, ARINC 763)  │ │
       │   └────────────────────────────────────┘ │
       │   ┌────────────────────────────────────┐ │
       │   │   WirelessPortal (PED Wi-Fi sess)  │ │
       │   └────────────────────────────────────┘ │
       │   ┌────────────────────────────────────┐ │
       │   │   AviationProofReporter            │ │
       │   │   (flight-context envelope on      │ │
       │   │    every PlayEvent)                │ │
       │   └────────────────────────────────────┘ │
       └────────────────┬─────────────────────────┘
                        │ attach(adapter)
       ┌────────────────▼─────────────────────────┐
       │       IfeAdapter (interface)             │
       └─┬─────────────┬─────────────┬────────────┘
         │             │             │
    ┌────▼────┐   ┌────▼─────┐  ┌────▼─────┐
    │Panasonic│   │ Thales   │  │  Anuvu   │
    │  eX3 /  │   │ AVANT /  │  │ Open Sky │
    │  eXW    │   │ Optiq /  │  │  (PED)   │
    │NEXT-CONN│   │InFlyt360 │  │          │
    └─────────┘   └──────────┘  └──────────┘

2026 platform reality

IFE platforms

  • Panasonic Avionics eX3 (current seatback) + eXW / NEXT-CONNECT (wireless-IFE portal). Both Linux + HTML5/CSS3. eX2 is end-of-life for new builds — still flying on legacy fleets (777-300ER classic, A330ceo) but not targeted by this SDK.
  • Thales AVANT (current seatback) + Optiq (next-generation hardware on the same software stack) + InFlyt360 (PED Wi-Fi).
  • Anuvu Open Sky (formerly Global Eagle; rebranded 2022). Connectivity-first; lighter on seatback hardware; PED-strong.

Runtime stack

  • Seatback HTML5/CSS3. All three vendors migrated to a Linux-based HTML5/CSS3 app stack. Native iOS-style seatback apps are deprecated on new airframes.
  • ARINC 763 is the cabin Ethernet LAN. The SDK exposes the message-type vocabulary in arinc/src/arinc763.ts but does not speak the wire protocol (the IFE vendor's runtime owns it).
  • ARINC 836 is the signed content-distribution standard. The SDK provides manifest validation + canonicalisation in arinc/src/arinc836.ts; the cabin server runs the signature check with its HSM.

Wireless IFE

  • Panasonic NEXT-CONNECT, Thales InFlyt360, Anuvu Open Sky are the three PED Wi-Fi portals. Passengers join the cabin Wi-Fi, hit a captive portal, and stream content to their device. The SDK abstracts these behind the WirelessPortal registry.

Commerce

  • IATA NDC is the airline content-commerce standard. The SDK surfaces reportInteraction events that downstream pipelines can funnel into NDC purchase flows; the SDK itself does not implement NDC.

Platform-side endpoints

  • POST /runtime/resolveexisting. Carries the flight context + cabin section + seat coordinates into the platform's targeting engine.
  • POST /runtime/event-ingestexisting. Per-seat impression + interaction events ride this with the flight envelope in meta.
  • POST /runtime/health-ingestexisting. Cabin health heartbeats roll up.

Getting started

import {
  EnfinitOSAviationClient,
  type FlightContext,
  type SeatRef,
} from "@enfinitos/sdk-aviation";
import { PanasonicAdapter } from "@enfinitos/sdk-aviation-panasonic-ex3";

const flight: FlightContext = {
  tailNumber: "G-XWBL",
  icaoOperatorCode: "BAW",
  flightNumber: "BA117",
  departureIata: "LHR",
  destinationIata: "JFK",
  departureUtc: "2026-05-14T10:00:00Z",
  aircraftType: "B789",
};

const client = new EnfinitOSAviationClient({
  apiBaseUrl: "https://api.enfinitos.com",
  operatorRef: "BAW",
  flightContext: flight,
  authToken: process.env.ENFINITOS_TOKEN!,
});

await client.start();

// Hand the client an IFE adapter
const panasonic = new PanasonicAdapter({
  cabinServerUrl: "https://cabin-svr.local:8443",
  cabinServerId: "cabin-001",
  auth: {
    clientId: process.env.EX3_CLIENT_ID!,
    clientSecret: process.env.EX3_CLIENT_SECRET!,
  },
});
await client.attach(panasonic);

// Manual resolve + report (for vendors that don't auto-stream)
const seat: SeatRef = { row: "23", letter: "F", cabinSection: "Y" };
const asset = await client.fetchAdSlot({
  seatRow: seat.row,
  seatLetter: seat.letter,
  cabinSection: seat.cabinSection,
});
if (asset) {
  await client.reportImpression(seat, asset);
}

Honest scope

The SDK is intentionally narrow:

Does translate vendor IFE state into EnfinitOS proof events with a flight-context envelope; aggregate cabin-health heartbeats; register wireless-IFE sessions; validate ARINC 836 manifest structure.

Does NOT manage IFE content libraries, schedule maintenance windows, push firmware, render HTML5/CSS3 (the vendor's seatback runtime owns that), or speak ARINC 763 / 836 wire protocols.

API reference

Hit the HTTP surface directly

The Aviation SDK is a thin client over the same governed HTTP API every other SDK calls. The full OpenAPI 3.1 reference lives on the docs site, published alongside the April 2027 platform launch.

Sandbox

Run this SDK against a real tenant

The browser demo at enfinitos.com/sandbox runs today against a shared synthetic tenant. The dedicated developer sandbox — your own persistent tenant, API keys, full HTTP-contract coverage — opens ahead of the April 2027 platform launch.