Loading...
Loading...
iLEAP technical specs for exchanging logistics emissions data (ISO 14083 / GLEC Framework) via the PACT protocol. Use when implementing iLEAP APIs, data models (ShipmentFootprint, TCE, TOC, HOC, TAD), PACT DataModelExtensions, or conformance testing. Language-agnostic.
npx skill4agent add way-platform/skills ileapGET /2/footprintsGET /2/footprints/{id}POST /2/eventsreferences/pact-implementation-guide.mdDataModelExtensionGET /2/ileap/tad| Role | Description |
|---|---|
| Transport Service User | Purchases transport (e.g., shipper) |
| Transport Service Organizer | Provides transport, subcontracts operations (e.g., LSP) |
| Transport Operator | Carries out transport (e.g., carrier) |
Decimal^-?\d+(\.\d+)?$| DT | Data type | Provider | Consumer | Endpoint |
|---|---|---|---|---|
| DT#1 | ShipmentFootprint (TCEs) | Operator/Organizer | Service User | |
| DT#2 | TOC or HOC | Operator/Organizer | Organizer/User | |
| DT#3 | TAD | Operator | Organizer/User | |
| Property | Type | Req | Description |
|---|---|---|---|
| Decimal | M | Freight mass in kg |
| Decimal | O | Freight volume in CBM |
| String | M | Shipment identifier |
| TCE[] | M | Non-empty array of TCEs |
| Property | Type | Req | Description |
|---|---|---|---|
| String | M | Unique TCE id |
| String[] | O | IDs of preceding TCEs (ordering) |
| String | M* | TOC id (*one of tocId/hocId required) |
| String | M* | HOC id (*one of tocId/hocId required) |
| String | M | Shipment id |
| Decimal | M | Freight mass in kg |
| GLECDistance | M | Origin-destination distance |
| Decimal | M | Transport activity in tkm |
| Decimal | M | WTW GHG emissions in kgCO2e |
| Decimal | M | TTW GHG emissions in kgCO2e |
| Property | Type | Req | Description |
|---|---|---|---|
| String | M | Unique TOC id |
| TransportMode | M | Transport mode |
| EnergyCarrier[] | M | Energy carriers (shares must sum to 1) |
| Decimal | M | WTW intensity per transportActivityUnit |
| Decimal | M | TTW intensity per transportActivityUnit |
| String | M | |
| Property | Type | Req | Description |
|---|---|---|---|
| String | M | Unique HOC id |
| HubType | M | Hub type |
| EnergyCarrier[] | M | Energy carriers (shares must sum to 1) |
| Decimal | M | WTW intensity per hubActivityUnit |
| Decimal | M | TTW intensity per hubActivityUnit |
| String | M | |
| Property | Type | Req | Description |
|---|---|---|---|
| String | M | Unique activity id |
| String[] | M | Consignment identifiers |
| GLECDistance | M | Origin-destination distance |
| Location | M | Origin location |
| Location | M | Destination location |
| DateTime | M | ISO 8601 UTC departure |
| DateTime | M | ISO 8601 UTC arrival |
| TransportMode | M | Transport mode |
RoadRailAirSeaInlandWaterwayTransshipmentStorageAndTransshipmentWarehouseLiquidBulkTerminalMaritimeContainerTerminalDieselHVOPetrolCNGLNGLPGHFOMGOAviation fuelHydrogenMethanolElectricBoxPalletContainer-TEUContainer-FEUContainerFossilNatural gasGridRenewable electricityCooking oilreferences/ileap-data-model/schemas/shipment-footprint.jsontoc.jsonhoc.jsontad.jsonpcf-shipment-footprint.jsonpcf-toc.jsonpcf-hoc.jsonpcf-tad.jsonproductCategoryCpc"83117"packagingEmissionsIncludedfalsebiogenicCarbonContent"0"extensions[].specVersion"2.0.0"| Field | ShipmentFootprint | TOC | HOC |
|---|---|---|---|
| | | |
| | | |
| | | |
| | | |
| | | |
urn:pathfinder:product:customcode:vendor-assigned:{type}:{id}
urn:pathfinder:product:customcode:buyer-assigned:{type}:{id}{type}shipmenttochoc| Type | URL |
|---|---|
| ShipmentFootprint | |
| TOC | |
| HOC | |
references/pact-integration-examples.mdGET /.well-known/openid-configurationPOST /auth/tokengrant_type=client_credentialsAuthorization: Bearer {token}references/pact-implementation-guide.md| Method | Path | Description |
|---|---|---|
| | List ProductFootprints (with iLEAP extensions) |
| | Get single ProductFootprint |
| | Async event notifications |
$filterlimitLinkGET /2/ileap/tad?[filter params]&limit={n}?mode=RoadlimitLink: <url>; rel="next"{ "data": [TAD, ...] }| Code | HTTP Status | Description |
|---|---|---|
| 403 | Invalid or missing token |
| 401 | Expired access token |
| 400 | Malformed request |
| 404 | Footprint ID not found |
| 400 | Unsupported filter or feature |
references/known-issues.mdNotImplemented/2/footprints/2/ileap/tad| TC | Description | Endpoint | Expected |
|---|---|---|---|
| TC001 | Get ProductFootprint with ShipmentFootprint | | 200 + valid SF extension |
| TC002 | Get ProductFootprint with TOC | | 200 + valid TOC extension |
| TC003 | Get ProductFootprint with HOC | | 200 + valid HOC extension |
| TC004 | Get all TransportActivityData | | 200 + valid TAD list |
| TC005 | Get filtered TAD | | 200 + filtered results |
| TC006 | Get limited TAD | | 200 + max 1 result |
| TC007 | TAD with invalid token | | 403 AccessDenied |
| TC008 | TAD with expired token | | 401 TokenExpired |
TC008 note: TC008 requires the server to issue short-lived tokens so ACT can wait for expiry. Most test servers skip this by issuing long-lived tokens — TC008 will then time out or fail.
references/act/act.sh# Run against demo API
curl -sSf https://raw.githubusercontent.com/sine-fdn/act/main/act.sh |\
bash -s -- test -b "https://api.ileap.sine.dev" -u "hello" -p "pathfinder"# Run against your own API
curl -sSf https://raw.githubusercontent.com/sine-fdn/act/main/act.sh |\
bash -s -- test -b "<your-url>" -u "<user>" -p "<password>"act_test:
name: ACT Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run ACT
run: |
set -o pipefail
curl -sSf https://raw.githubusercontent.com/sine-fdn/act/main/act.sh |\
bash -s -- test \
-b "${{ secrets.API_URL }}" \
-u "${{ secrets.ACT_USER }}" \
-p "${{ secrets.ACT_PASSWORD }}"api.ileap.sine.devreferences/act/README.mdreferences/pilot-certification.md| client_id | client_secret | Scope |
|---|---|---|
| | Global access to all data |
| | ShipmentFootprints + TAD |
| | TOCs + HOCs + TAD |
# 1. Discover OpenID configuration
curl -s https://api.ileap.sine.dev/.well-known/openid-configuration | jq .
# 2. Obtain access token
TOKEN=$(curl -s -X POST https://api.ileap.sine.dev/auth/token \
-u "hello:pathfinder" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" | jq -r .access_token)
# 3. List all footprints
curl -s https://api.ileap.sine.dev/2/footprints \
-H "Authorization: Bearer $TOKEN" | jq .
# 4. Get a specific footprint by ID
curl -s https://api.ileap.sine.dev/2/footprints/91715e5e-fd0b-4d1c-8fab-76290c46e6ed \
-H "Authorization: Bearer $TOKEN" | jq .
# 5. List transport activity data
curl -s https://api.ileap.sine.dev/2/ileap/tad \
-H "Authorization: Bearer $TOKEN" | jq .
# 6. Filter TAD by transport mode
curl -s "https://api.ileap.sine.dev/2/ileap/tad?mode=Road" \
-H "Authorization: Bearer $TOKEN" | jq .references/ileap-extension/specs/index.bs| Section | Topic | Lines |
|---|---|---|
| Overview, PACT interop | 23-120 |
| ISO14083 and auxiliary terms | 125-237 |
| Business cases 1-3 | 239-312 |
| Data transactions DT#1-DT#3 | 315-387 |
| Data types (SF, TCE, TOC, HOC, TAD) | 624-1507 |
| GLECDistance, Location, enums | 1510-1897 |
| TAD endpoint, filtering, pagination | 1899-2050 |
| PACT integration rules | 2052-2597 |
| Conformance levels | 2600-2730 |
| Example JSON (SF, TOC, HOC) | 2807-3049 |
| Conformance test cases TC001-TC008 | 3050-3244 |
references/pact-spec-v2/index.bs| Section | Topic | Lines |
|---|---|---|
| Introduction, scope | 16-70 |
| Term definitions | 73-121 |
| Data model overview | 138-161 |
| ProductFootprint properties | 163-334 |
| CarbonFootprint properties | 337-646 |
| DataModelExtension | 827-852 |
| DeclaredUnit enum | 1089-1121 |
| Authentication flow | 1539-1564 |
| Action Authenticate | 1591-1703 |
| Action ListFootprints | 1706-1861 |
| Action GetFootprint | 1863-1922 |
| Action Events | 1925-2134 |
| Error codes table | 2135-2277 |
# iLEAP: find a data type definition
grep -n '<dfn element>' references/ileap-extension/specs/index.bs
# iLEAP: find all required properties for a type
grep -n -A2 '<td>M$' references/ileap-extension/specs/index.bs
# iLEAP: find PACT mapping rules
grep -n 'MUST be set to\|MUST equal\|MUST contain' references/ileap-extension/specs/index.bs
# PACT: find property definitions
grep -n '<dfn>' references/pact-spec-v2/index.bs | head -40
# PACT: find all mandatory properties
grep -n '<td>M$' references/pact-spec-v2/index.bs
# PACT: find error codes
grep -n 'dfn>.*Denied\|dfn>.*Request\|dfn>.*Expired' references/pact-spec-v2/index.bs| File | Purpose |
|---|---|
| Normative iLEAP spec (Bikeshed source) |
| PACT v2.1.0 spec (Bikeshed source) |
| PACT implementation steps (auth, endpoints, data model) |
| Implementation gotchas and workarounds |
| iLEAP server implementation patterns |
| OpenAPI contract (non-normative) |
| JSON schemas for all iLEAP data types |
| PACT base data model schema |
| Annotated PACT integration JSON examples |
| SINE Foundation demo server source (Rust/Rocket) |
| ACT CLI usage, test coverage |
| ACT runner script (detects arch, downloads binary) |
| SFC certification process for iLEAP |
| Strategic context only (not useful for implementation) |