Connections
The outside systems each area connects to, who can connect them, and how they are mocked in this build.
All mocked in this build
Portline doesn't call any outside service. Every connector below is simulated, and each one needs a vendor decision and a check before launch.
Where connectors live
- Each area has an Integrations page listing the connectors that area uses, with the data each one brings in and its status. Some connectors appear in more than one area; Samsara, for example, feeds Fleet, Overview and Docks.
- Settings → Connections lists every connector in one place.
- Only owners and admins connect or disconnect. Dispatchers and viewers see the same pages read-only.
- Your plan decides which connectors are available. A connector is available when the plan opens at least one area that uses it. A few also need an extra feature: reefer sensor readings need reefer telemetry (Growth and up). Connectors outside your plan are listed but can't be connected.
Status and sync
In demo mode every status (connected, degraded, error, waiting for first sync) is generated with the rest of the demo data. Nothing is actually syncing.
In local database mode, clicking Connect records a pending request. The health fields (status, last sync, last error and events in the last 24 hours) are written only by the sync worker, which runs with the service role. A signed-in user can request a connection or disconnect one, and nothing else. Postgres enforces this with the pl_connections guard trigger: it refuses any other status change from a client and stamps who made the request and when. Disconnecting keeps the row so you can still see who connected it.
All connectors
Logos come from simple-icons (CC0). Brands that aren't in simple-icons get a plain monogram. Brand names and logos belong to their owners and are shown only to identify the connector.
| Connector | Category | Used by | Auth | From plan | In this build |
|---|---|---|---|---|---|
| p44project44 | Ocean visibility | Shipments,Containers,Overview | API key | Starter | Mock in this build · verify before launch |
| VZVizion | Ocean visibility | Containers,Shipments | API key | Starter | Mock in this build · verify before launch |
| MTMarineTraffic | Vessel positions | Overview,Fleet | API key | Starter | Mock in this build · verify before launch |
| DHL Express | Parcel carriers | Shipments | API key | Starter | Mock in this build · verify before launch |
| FedEx | Parcel carriers | Shipments | OAuth | Starter | Mock in this build · verify before launch |
| UPS | Parcel carriers | Shipments | OAuth | Starter | Mock in this build · verify before launch |
| SSamsara | Truck telematics | Fleet,Overview,Docks | OAuth | Starter | Mock in this build · verify before launch |
| GGeotab | Truck telematics | Fleet | OAuth | Drayage & trucking | Mock in this build · verify before launch |
| TomTom Traffic | Traffic and ETAs | Docks,Fleet | API key | Drayage & trucking | Mock in this build · verify before launch |
| OCORBCOMM | Reefer sensors | Containers,Shipments | Signed webhook | Cold chain | Mock in this build · verify before launch |
| OpenStreetMap | Maps | Overview | No credentials | Starter | Mock in this build · verify before launch |
| SAP S/4HANA | ERP and orders | Warehouses,Shipments | OAuth | Starter | Mock in this build · verify before launch |
| NSNetSuite | ERP and orders | Warehouses | OAuth | Cold chain | Mock in this build · verify before launch |
| Shopify | ERP and orders | Warehouses | OAuth | Cold chain | Mock in this build · verify before launch |
| Zebra scanners | Scanning | Warehouses,Docks | Signed webhook | Drayage & trucking | Mock in this build · verify before launch |
| Google Calendar | Calendars | Docks | OAuth | Drayage & trucking | Mock in this build · verify before launch |
| TwTwilio | Messaging | Messages,Docks | API key | Starter | Mock in this build · verify before launch |
| WhatsApp Business | Messaging | Messages | API key | Starter | Mock in this build · verify before launch |
| Resend | Messaging | Messages | API key | Starter | Mock in this build · verify before launch |
| SlSlack | Alerts | Overview,Messages | OAuth | Starter | Mock in this build · verify before launch |
| Okta | Sign-in | Team | SAML / OIDC | Starter | Mock in this build · verify before launch |
| Google Workspace | Sign-in | Team | OAuth | Starter | Mock in this build · verify before launch |
| MEMicrosoft Entra ID | Sign-in | Team | SAML / OIDC | Starter | Mock in this build · verify before launch |
Webhook URLs
Wherever a user could enter an outbound URL (a webhook target, a carrier endpoint), it goes through a guard first. The guard only accepts https on the default port, and refuses credentials in the URL, IP literals, numeric hosts, and internal names such as localhost or *.internal. A real HTTP client would also need to check DNS at request time and refuse redirects; that comes with the first real connection.