@@ -140,6 +140,7 @@ status tags are:
140
140
: <dfn>Transport Service User</dfn>
141
141
:: Refers to the party that purchases and or utilizes a transport service. It could be a [=shipper=] or a [=Transport Service Organizer=] . See [[!ISO14083]] , Section 3.1.33.
142
142
143
+
143
144
## Auxillary Definitions ## {#auxillary-definitions}
144
145
145
146
: <dfn>Access Token</dfn>
@@ -2501,108 +2502,6 @@ the links above for further details.
2501
2502
Any optional property that is not explicitly mentioned above MAY remain unset. All mandatory
2502
2503
properties that cannot be derived from `HOC` CAN be populated in a best-effort manner.
2503
2504
2504
- # Conformance # {#conformance}
2505
-
2506
- The iLEAP Technical Specifications are designed to be incrementally adopted and
2507
- realized in [=host systems=] for different stakeholder groups. Therefore,
2508
- there are 2 kinds of <dfn>iLEAP conformance</dfn> defined:
2509
-
2510
- 1. [=iLEAP Emissions Data Conformance=]
2511
- 1. [=iLEAP Activity Data Conformance=]
2512
-
2513
- For each kind of iLEAP Conformance, a host system achieves conformity by
2514
-
2515
- 1. realizing the normative statements and relevant test cases referenced
2516
- in [[#ileap-conformance-matrix]] below,
2517
- 2. successfully passing Bilateral Testing ([[#conformity-bilateral-testing]] )
2518
- 3. succesfully passing the [Automated Conformance Testing] (https://act.sine.dev)
2519
-
2520
- To achieve iLEAP Emissions Data Conformance, [=host systems=] are further REQUIRED to support the
2521
- following features:
2522
- 1. fetching <{TAD}> from another host system and
2523
- 2. using it to generate <{TOC}> , <{HOC}> , or <{ShipmentFootprint}> data.
2524
-
2525
- It is RECOMMENDED for host systems to conform to both kinds of [=iLEAP conformance=] .
2526
-
2527
- Sections marked as non-normative, all authoring guidelines, diagrams, examples,
2528
- and notes in this specification are non-normative. Everything else in this
2529
- specification is normative.
2530
-
2531
- The key words MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHOULD,
2532
- and SHOULD NOT in this document are to be interpreted as described in
2533
- [[!RFC2119]] [[!RFC8174]] when, and only when, they appear in all capitals,
2534
- as shown here.
2535
-
2536
- Advisement: Currently, iLEAP Conformance ensures interoperability and syntactic correctness. Future
2537
- updates will extend coverage to include semantic correctness, ensuring that emissions calculations
2538
- are performed accurately in end-to-end scenarios.
2539
-
2540
- ## Conformance Matrix ## {#ileap-conformance-matrix}
2541
-
2542
- <figure>
2543
- <table class="complex data">
2544
- <thead>
2545
- <tr>
2546
- <th style="text-align: left"> Test Case
2547
- <th style="text-align: left"> Conformance
2548
- <tbody >
2549
- <tr>
2550
- <td style="text-align: left"> All [PACT Required Test Cases] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#required-tests)
2551
- <td rowspan="4"> <dfn>iLEAP Emissions Data Conformance</dfn>
2552
-
2553
- <tr>
2554
- <td style="text-align: left"> [[#test-case-001]]
2555
-
2556
- <tr>
2557
- <td style="text-align: left"> [[#test-case-002]]
2558
-
2559
- <tr>
2560
- <td style="text-align: left"> [[#test-case-003]]
2561
-
2562
- <tr>
2563
- <td style="text-align: left"> [[#test-case-004]]
2564
- <td rowspan="5"> <dfn>iLEAP Activity Data Conformance</dfn>
2565
-
2566
- <tr>
2567
- <td style="text-align: left"> [[#test-case-005]]
2568
-
2569
- <tr>
2570
- <td style="text-align: left"> [[#test-case-006]]
2571
-
2572
- <tr>
2573
- <td style="text-align: left"> [[#test-case-007]]
2574
-
2575
- <tr>
2576
- <td style="text-align: left"> [[#test-case-008]]
2577
-
2578
- </table>
2579
- <figcaption> iLEAP Conformance Matrix</figcaption>
2580
- </figure>
2581
-
2582
-
2583
- ## Bilateral Testing ## {#conformity-bilateral-testing}
2584
-
2585
- A Bilateral Test is an interoperability test where two different [=host system=]
2586
- implementations participate to verify conformance ([[#conformance]] ) and their
2587
- ability to work together.
2588
-
2589
- One system acts as the [=data owner=] . It is called the <dfn>target host system</dfn> and is the system under test.
2590
- The second system acts as the testing party.
2591
-
2592
- Note:
2593
- The objective of Bilateral Testing is to ensure that systems can effectively
2594
- communicate despite having independent codebases.
2595
-
2596
-
2597
- ## Submission ## {#conformity-submission}
2598
-
2599
- Note: non-normative
2600
-
2601
- Once a [=host system=] achieved [=iLEAP conformance=] in 1 or all kinds of iLEAP conformance,
2602
- the implementer is requested to reach out to the authors of this Technical Specifications to
2603
- apply for additional support, materials, and marketing opportunities.
2604
-
2605
-
2606
2505
# Appendix A: Changelog # {#changelog}
2607
2506
2608
2507
## Version 0.2.1-20250129 (2025-01-29) ## {#version-20250129}
@@ -2964,17 +2863,17 @@ In order to test the conformance of an iLEAP implementation, the following tests
2964
2863
## PACT Conformance Tests ## {#pact-conformance-tests}
2965
2864
2966
2865
Since the iLEAP Technical Specifications were conceived as an extension to the PACT Data Model and
2967
- Data Exchange Protocol, any iLEAP conformant implementation must also implement [[!PACTDX]] v2.1.0 or above . For that
2968
- reason, the required tests in the [PACT Conformance Testing
2969
- Checklist](https://wbcsd.github.io/pact-conformance-testing/checklist.html#required-tests) should also be performed.
2866
+ Data Exchange Protocol, any iLEAP conformant implementation must also be PACT Conformant . For that
2867
+ reason, the tests in the [PACT Conformance Testing
2868
+ Checklist](https://wbcsd.github.io/pact-conformance-testing/checklist.html) must be performed.
2970
2869
2971
2870
## iLEAP Specific Conformance Tests ## {#ileap-specific-conformance-tests}
2972
2871
2973
2872
The following tests are specific to the iLEAP Technical Specifications:
2974
2873
2975
2874
### Test Case 001: Get ProductFootprint with ShipmentFootprint ### {#test-case-001}
2976
2875
2977
- Tests the [= target host system=] 's ability to return `ProductFootprints` with `ShipmentFootprint`s as
2876
+ Tests the target host system's ability to return `ProductFootprints` with `ShipmentFootprint`s as
2978
2877
extensions.
2979
2878
2980
2879
#### Request #### {#test-case-001-request}
@@ -2985,7 +2884,7 @@ system with a valid access token and the syntax specified in [PACT Tech Specs V2
2985
2884
2986
2885
#### Expected Response #### {#test-case-001-response}
2987
2886
2988
- The test [= target host system=] must respond with 200 OK with a JSON body containing a list of
2887
+ The test target host system must respond with 200 OK with a JSON body containing a list of
2989
2888
`ProductFootprints` (as per the [PACT Tech Specs V2.2
2990
2889
§api-action-list-response](https://wbcsd.github.io/data-exchange-protocol/v2/#api-action-list-response)).
2991
2890
Those which include `productIds` with [the format specified for ShipmentFootprints] (#pcf-mapping-sf)
@@ -2994,18 +2893,15 @@ must be conformant with the Data Model specified in [[#dt-sf]]. The relevant pro
2994
2893
2995
2894
### Test Case 002: Get ProductFootprint with TOC ### {#test-case-002}
2996
2895
2997
- Tests the [=target host system=] 's ability to return `ProductFootprints` with `TOC`s as
2998
- extensions.
2999
-
3000
2896
#### Request #### {#test-case-002-request}
3001
2897
3002
- A `ListFootprints` GET request must be sent to the `/2/footprints` endpoint of the test [= target host
3003
- system=] with a valid access token and the syntax specified in [PACT Tech Specs V2.2
2898
+ A `ListFootprints` GET request must be sent to the `/2/footprints` endpoint of the test target host
2899
+ system with a valid access token and the syntax specified in [PACT Tech Specs V2.2
3004
2900
§api-action-list-request](https://wbcsd.github.io/data-exchange-protocol/v2/#api-action-list-request).
3005
2901
3006
2902
#### Expected Response #### {#test-case-002-response}
3007
2903
3008
- The test [= target host system=] must respond with 200 OK with a JSON body containing a list of
2904
+ The test target host system must respond with 200 OK with a JSON body containing a list of
3009
2905
`ProductFootprints` (as per the [PACT Tech Specs V2.2
3010
2906
§api-action-list-response](https://wbcsd.github.io/data-exchange-protocol/v2/#api-action-list-response)).
3011
2907
@@ -3019,17 +2915,15 @@ relevant properties of the `ProductFootprint` must also be confomant with the gu
3019
2915
3020
2916
### Test Case 003: Get ProductFootprint with HOC ### {#test-case-003}
3021
2917
3022
- Tests the [=target host system=] 's ability to return `ProductFootprints` with `HOC`s as extensions.
3023
-
3024
2918
#### Request #### {#test-case-003-request}
3025
2919
3026
- A `ListFootprints` GET request must be sent to the `/2/footprints` endpoint of the test [= target host
3027
- system=] with a valid access token and the syntax specified in [PACT Tech Specs V2.2
2920
+ A `ListFootprints` GET request must be sent to the `/2/footprints` endpoint of the test target host
2921
+ system with a valid access token and the syntax specified in [PACT Tech Specs V2.2
3028
2922
§api-action-list-request](https://wbcsd.github.io/data-exchange-protocol/v2/#api-action-list-request).
3029
2923
3030
2924
#### Expected Response #### {#test-case-003-response}
3031
2925
3032
- The test [= target host system=] must respond with 200 OK with a JSON body containing a list of
2926
+ The test target host system must respond with 200 OK with a JSON body containing a list of
3033
2927
`ProductFootprints` (as per the [PACT Tech Specs V2.2
3034
2928
§api-action-list-response](https://wbcsd.github.io/data-exchange-protocol/v2/#api-action-list-response)).
3035
2929
@@ -3043,102 +2937,33 @@ relevant properties of the `ProductFootprint` must also be confomant with the gu
3043
2937
3044
2938
### Test Case 004: Get All TransportActivityData ### {#test-case-004}
3045
2939
3046
- Tests the [=target host system=] 's ability to return all `TransportActivityData`.
3047
-
3048
2940
#### Request #### {#test-case-004-request}
3049
2941
3050
- A `TransportActivityData` GET request must be sent to the `/2/ileap/tad` endpoint of the test [=target
3051
- host system=] with a valid [=access token=] and the syntax specified in [[#action-tad-request]] .
3052
-
3053
- The access token must be obtained through the [PACT's Authentication Flow] (https://wbcsd.github.io/tr/2023/data-exchange-protocol-20231207/#api-auth). This can be tested through PACT's Test Cases [001] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#tc001) and [002] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#tc002).
2942
+ A `TransportActivityData` GET request must be sent to the `/2/ileap/tad` endpoint of the test target
2943
+ host system with a valid access token and the syntax specified in [[#action-tad-request]] .
3054
2944
3055
2945
#### Expected Response #### {#test-case-004-response}
3056
2946
3057
- The test [= target host system=] must respond with 200 OK and a JSON body containing a list of
2947
+ The test target host system must respond with 200 OK and a JSON body containing a list of
3058
2948
`TransportActivityData`, in conformance with [[#action-tad-response]] and following the data model
3059
2949
specified at [[#dt-tad]] .
3060
2950
3061
2951
### Test Case 005: Get Filtered List of TransportActivityData ### {#test-case-005}
3062
2952
3063
- Tests the [=target host system=] 's ability to return a filtered list of `TransportActivityData`.
3064
-
3065
- #### Request #### {#test-case-005-request}
3066
-
3067
- A `TransportActivityData` GET request must be sent to the `/2/ileap/tad` endpoint of the test [=target
3068
- host system=] with a valid [=access token=] and the syntax specified in [[#action-tad-request]] .
3069
-
3070
- The request must include a query parameter [=Filter=] . Any property can be used as a filter, but we
3071
- recomen using {{TransportMode}} , iterating over all possible values:
3072
-
3073
- - `GET /2/ileap/tad?mode=Road HTTP/1.1`
3074
- - `GET /2/ileap/tad?mode=Rail HTTP/1.1`
3075
- - `GET /2/ileap/tad?mode=Air HTTP/1.1`
3076
- - `GET /2/ileap/tad?mode=Sea HTTP/1.1`
3077
- - `GET /2/ileap/tad?mode=InlandWaterway HTTP/1.1`
3078
-
3079
- The access token must be obtained through the [PACT's Authentication Flow] (https://wbcsd.github.io/tr/2023/data-exchange-protocol-20231207/#api-auth). This can be tested through PACT's Test Cases [001] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#tc001) and [002] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#tc002).
3080
-
3081
- #### Expected Response #### {#test-case-005-response}
3082
-
3083
- For at least one filter, the test [=target host system=] must respond with 200 OK and a JSON body
3084
- containing a list of `TransportActivityData` matching the filter, in conformance with
3085
- [[#action-tad-response]] and following the data model specified at [[#dt-tad]] .
2953
+ Issue: TBD
3086
2954
3087
2955
### Test Case 006: Get Limited List of TransportActivityData ### {#test-case-006}
3088
2956
3089
- Tests the [=target host system=] 's ability to return a limited list of `TransportActivityData`.
3090
-
3091
- #### Request #### {#test-case-006-request}
3092
-
3093
- A `TransportActivityData` GET request must be sent to the `/2/ileap/tad` endpoint of the test
3094
- [=target host system=] with a valid [=access token=] and the syntax specified in
3095
- [[#action-tad-request]] . The request must include a query parameter [=Limit=] with value `1`.
3096
-
3097
- The access token must be obtained through the [PACT's Authentication
3098
- Flow](https://wbcsd.github.io/tr/2023/data-exchange-protocol-20231207/#api-auth). This can be tested
3099
- through PACT's Test Cases
3100
- [001] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#tc001) and
3101
- [002] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#tc002).
3102
-
3103
- #### Expected Response #### {#test-case-006-response}
3104
-
3105
- The test [=target host system=] must respond with 200 OK and a JSON body containing one or less
3106
- `TransportActivityData`, in conformance with [[#action-tad-response]] and following the data model
3107
- specified at [[#dt-tad]] .
2957
+ Issue: TBD
3108
2958
3109
2959
### Test Case 007: Attempt TransportActivityData with Invalid Token ### {#test-case-007}
3110
2960
3111
- Tests the [=target host system=] 's ability to handle a `TransportActivityData` request with an invalid
3112
- access token.
3113
-
3114
- #### Request #### {#test-case-007-request}
3115
-
3116
- A `TransportActivityData` GET request must be sent to the `/2/ileap/tad` endpoint of the test [=target
3117
- host system=] with an invalid access token and the syntax specified in [[#action-tad-request]] .
3118
-
3119
- #### Expected Response #### {#test-case-007-response}
3120
-
3121
- The test [=target host system=] must respond with a 401 Unauthorized status code.
2961
+ Issue: TBD
3122
2962
3123
2963
### Test Case 008: Attempt TransportActivityData with Expired Token ### {#test-case-008}
3124
2964
3125
- Tests the [=target host system=] 's ability to handle a `TransportActivityData` request with an expired
3126
- access token.
3127
-
3128
- #### Request #### {#test-case-008-request}
3129
-
3130
- A `TransportActivityData` GET request must be sent to the `/2/ileap/tad` endpoint of the test [=target
3131
- host system=] with an expired access token and the syntax specified in [[#action-tad-request]] .
3132
-
3133
- The access token must have been obtained through the [PACT's Authentication
3134
- Flow](https://wbcsd.github.io/tr/2023/data-exchange-protocol-20231207/#api-auth). This can be tested
3135
- through PACT's Test Cases
3136
- [001] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#tc001) and
3137
- [002] (https://wbcsd.github.io/pact-conformance-testing/checklist.html#tc002).
3138
-
3139
- #### Expected Response #### {#test-case-008-response}
2965
+ Issue: TBD
3140
2966
3141
- The test [=target host system=] must respond with a 401 Unauthorized status code.
3142
2967
3143
2968
<pre class=biblio>
3144
2969
{
0 commit comments