# Integration readiness report: fulfilment-api.json Coverage: complete Profile default v1 · engine 0.1.0 · sealed `22aca6e881d8` ## Summary 127 findings across 968 fragments. They come down to 16 causes: findings of one rule with the same problem at different places count as one cause. | Severity | Findings | | --- | ---: | | High | 2 | | Medium | 102 | | Low | 23 | | Family | Sub-score | Findings | Rules applied | | --- | ---: | ---: | ---: | | contract | 34 | 116 | 13 | | pagination | 85 | 5 | 1 | | onboarding | 98 | 2 | 2 | | data | 99 | 1 | 1 | | examples | 99 | 1 | 2 | | limits | 99 | 1 | 1 | | reliability | 99 | 1 | 1 | | documentation | not assessed | 0 | 0 | | errors | not assessed | 0 | 0 | | lifecycle | not assessed | 0 | 0 | | links | not assessed | 0 | 0 | | webhooks | not assessed | 0 | 0 | | workflow | not assessed | 0 | 0 | Rules: 21 applied, 14 not applicable, 4 could not be assessed, 2 disabled, 0 failed. Sources read: | Source | Provides | Coverage | Read | Not read | Failed | | --- | --- | --- | ---: | ---: | ---: | | `fulfilment-api.json` | an API description | complete | 1 | 0 | 0 | Checks that could not be made (not a pass, and no points taken off): - 4 rules, needs guide pages; none was supplied: CC-CONFLICT-01, LINK-01, ON-ENV-01, DOC-CODE-01 1 rules found nothing, but an input they need was read only in part, so that is not a clean result: - 1 example was not checked against its schema: the example is too long to keep ## Findings ### contract (sub-score 34) #### High ##### CC-SCHEMA-01 · GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime}: response declares application/json but no schema - **Operation:** `GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime}` - **State:** not in the specification - **Evidence:** not found: a schema for application/json; inspected `fulfilment-api.json#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames~1{windowDay}F{windowStartTime}T{windowEndTime}/get/responses/200` - **Impact:** Developers cannot know the fields, types or required properties, and generated clients fall back to untyped data. - **Recommendation:** Add a schema to each structured media type, or remove the media type if no body is exchanged. - **Confidence:** 1.00 · fingerprint `3793ec222369` ##### CC-SCHEMA-01 · GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames: response declares application/json but no schema - **Operation:** `GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames` - **State:** not in the specification - **Evidence:** not found: a schema for application/json; inspected `fulfilment-api.json#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames/get/responses/200` - **Impact:** Developers cannot know the fields, types or required properties, and generated clients fall back to untyped data. - **Recommendation:** Add a schema to each structured media type, or remove the media type if no body is exchanged. - **Confidence:** 1.00 · fingerprint `3be1333302eb` #### Medium ##### CC-CONSIST-01 · Property `absoluteMoneyCost` has different types across variants of `freight-values`: number in `ListFreightValues`, string in `CreateUpdateFreightValuesRequest` - **State:** present but contradictory - **Evidence:** `absoluteMoneyCost` at `fulfilment-api.json#/components/schemas/ListFreightValues/properties` - **Evidence:** `absoluteMoneyCost` at `fulfilment-api.json#/components/schemas/CreateUpdateFreightValuesRequest/properties` - **Impact:** A client that models the property once breaks on the other schema, and readers cannot tell which type is meant. - **Recommendation:** Use one type for a property name across schemas, or rename one of them to say it is a different thing. - **Confidence:** 0.60 · fingerprint `c3524fe903d4` ##### CC-ERR-01 · GET /api/fulfilment/v1/configuration/warehouses/{warehouseId} documents no error responses - **Operation:** `GET /api/fulfilment/v1/configuration/warehouses/{warehouseId}` - **State:** not in the specification - **Evidence:** not found: an error response (4xx, 5xx or default); inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/get`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/get/responses/200` - **Impact:** Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production. - **Recommendation:** Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs. - **Confidence:** 0.90 · fingerprint `007572904bd4` ##### CC-ERR-01 · GET /api/fulfilment/v1/configuration/warehouses documents no error responses - **Operation:** `GET /api/fulfilment/v1/configuration/warehouses` - **State:** not in the specification - **Evidence:** not found: an error response (4xx, 5xx or default); inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/get`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/get/responses/200` - **Impact:** Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production. - **Recommendation:** Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs. - **Confidence:** 0.90 · fingerprint `026e9969da35` ##### CC-ERR-01 · POST /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}/transfer documents no error responses - **Operation:** `POST /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}/transfer` - **State:** not in the specification - **Evidence:** not found: an error response (4xx, 5xx or default); inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}~1transfer/post`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}~1transfer/post/responses/200` - **Impact:** Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production. - **Recommendation:** Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs. - **Confidence:** 0.90 · fingerprint `05f0b820b2ae` 50 more CC-ERR-01 findings, same impact and recommendation as above: - `POST /api/fulfilment/v1/configuration/docks/{dockId}/activation` (fingerprint `0c118ddce9a1`) - `DELETE /api/fulfilment/v1/configuration/warehouses/{warehouseId}` (fingerprint `0c46bb1f4536`) - `GET /api/fulfilment/v1/inventory/skus/{skuId}` (fingerprint `0c4da5d1241c`) - `GET /api/fulfilment/v1/configuration/geoshape` (fingerprint `16b51192faff`) - `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm` (fingerprint `21db7482ca22`) - `PUT /api/fulfilment/v1/configuration/geoshape` (fingerprint `24bc3220f44b`) - `PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId}` (fingerprint `2533a8b3a5cb`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}` (fingerprint `28d92f743e90`) - `GET /api/fulfilment/v1/inventory/reservations/{reservationId}` (fingerprint `2a471f6b0238`) - `PUT /api/fulfilment/v1/configuration/holidays/{holidayId}` (fingerprint `3428fca2d060`) - `GET /api/fulfilment/v1/configuration/docks` (fingerprint `36d565a9e44f`) - `POST /api/fulfilment/v1/configuration/freights/{carrierId}/values/update` (fingerprint `3de17423d792`) - `POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation` (fingerprint `3e2f4b202c83`) - `POST /api/fulfilment/v1/shipping/calculate` (fingerprint `416ed696462e`) - `DELETE /api/fulfilment/v1/configuration/geoshape/{polygonName}` (fingerprint `41fd01cb884c`) - `GET /api/fulfilment/v1/configuration/geoshape/{polygonName}` (fingerprint `4aa17e0ba0fc`) - `POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/deactivation` (fingerprint `53987ac913e1`) - `POST /api/fulfilment/v1/shipping-policies` (fingerprint `5a52d17aee75`) - `GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched` (fingerprint `5b1bc27a5633`) - `GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values` (fingerprint `5bec5219343f`) - `GET /api/fulfilment/v1/shipping-policies` (fingerprint `5f010ff633fc`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}` (fingerprint `63717576d756`) - `GET /api/fulfilment/v1/configuration/carriers/{carrierId}/getdayofweekblocked` (fingerprint `88857508cce2`) - `POST /api/fulfilment/v1/configuration/carriers/{carrierId}/adddayofweekblocked` (fingerprint `893d393681fc`) - `GET /api/fulfilment/v1/inventory/reservations/{warehouseId}/{skuId}` (fingerprint `8a4e6410e886`) - `DELETE /api/fulfilment/v1/shipping-policies/{id}` (fingerprint `8f928c13b05a`) - `POST /api/fulfilment/v1/configuration/carriers/{carrierId}/removedayofweekblocked` (fingerprint `8f9ad145fb43`) - `POST /api/fulfilment/v1/configuration/docks` (fingerprint `8fb0e67e3738`) - `POST /api/fulfilment/v1/configuration/warehouses` (fingerprint `95af5d1a259a`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}` (fingerprint `a116d36feab3`) - `GET /api/fulfilment/v1/configuration/holidays` (fingerprint `b0321c70a091`) - `DELETE /api/fulfilment/v1/configuration/holidays/{holidayId}` (fingerprint `b53ed68360fe`) - `POST /api/fulfilment/v1/inventory/reservations` (fingerprint `bbb0a1cb85d4`) - `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/cancel` (fingerprint `bc6c61ed35a5`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots` (fingerprint `c19b3a28e6ba`) - `POST /api/fulfilment/v1/configuration/docks/{dockId}/deactivation` (fingerprint `c45c362328c7`) - `DELETE /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}` (fingerprint `cb6fb45af112`) - `GET /api/fulfilment/v1/shipping-policies/{id}` (fingerprint `d6071277cecd`) - `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/acknowledge` (fingerprint `d92cb104d559`) - `GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime}` (fingerprint `d9c19252e179`) - `PUT /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}` (fingerprint `d9e3ad40391f`) - `GET /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}` (fingerprint `da3f41a5ec6f`) - `PUT /api/fulfilment/v1/shipping-policies/{id}` (fingerprint `e125ff3491d1`) - `GET /api/fulfilment/v1/configuration/pickuppoints/_search` (fingerprint `e268298c0149`) - `GET /api/fulfilment/v1/configuration/pickuppoints` (fingerprint `ec9137cb0c71`) - `PUT /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}` (fingerprint `f0c867d875df`) - `GET /api/fulfilment/v1/configuration/holidays/{holidayId}` (fingerprint `f70a4c54bc23`) - `GET /api/fulfilment/v1/configuration/docks/{dockId}` (fingerprint `fbaf8282a94f`) - `DELETE /api/fulfilment/v1/configuration/docks/{dockId}` (fingerprint `fbd17d8d762a`) - `GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames` (fingerprint `fce73999683d`) ##### CC-PARAM-01 · Required path parameter `warehouseId` has no description - **Operation:** `GET /api/fulfilment/v1/configuration/warehouses/{warehouseId}` - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/get/parameters/2` - **Impact:** Developers must guess the meaning, format and valid values of a parameter they are required to send. - **Recommendation:** Describe what the parameter means, its format and valid values. - **Confidence:** 1.00 · fingerprint `039fe5e246dc` ##### CC-PARAM-01 · Required path parameter `pickupPointId` has no description - **Operation:** `DELETE /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}` - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/delete/parameters/2` - **Impact:** Developers must guess the meaning, format and valid values of a parameter they are required to send. - **Recommendation:** Describe what the parameter means, its format and valid values. - **Confidence:** 1.00 · fingerprint `13371dfff356` ##### CC-PARAM-01 · Required path parameter `holidayId` has no description - **Operation:** `DELETE /api/fulfilment/v1/configuration/holidays/{holidayId}` - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/delete/parameters/2` - **Impact:** Developers must guess the meaning, format and valid values of a parameter they are required to send. - **Recommendation:** Describe what the parameter means, its format and valid values. - **Confidence:** 1.00 · fingerprint `16375bd73cc8` 40 more CC-PARAM-01 findings, same impact and recommendation as above: - `GET /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}` (fingerprint `2216249ec45a`) - `POST /api/fulfilment/v1/shipping-policies` (fingerprint `2324c6a04f49`) - `GET /api/fulfilment/v1/configuration/pickuppoints/_search` (fingerprint `24af8b0d2d46`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}` (fingerprint `2cb72dce8474`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}` (fingerprint `31c25f57b223`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}` (fingerprint `36117b7ea44f`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}` (fingerprint `3b87824eecf8`) - `POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation` (fingerprint `3fa1bda06357`) - `DELETE /api/fulfilment/v1/configuration/warehouses/{warehouseId}` (fingerprint `411484bd3d0b`) - `POST /api/fulfilment/v1/configuration/docks/{dockId}/deactivation` (fingerprint `425c72c9eb34`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}` (fingerprint `426a811d1fd2`) - `PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId}` (fingerprint `427ea496e42a`) - `POST /api/fulfilment/v1/configuration/carriers/{carrierId}/adddayofweekblocked` (fingerprint `4e2ee7615c29`) - `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/cancel` (fingerprint `4fe60abe89f4`) - `POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/deactivation` (fingerprint `550789988db9`) - `PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId}` (fingerprint `5c91353f0a71`) - `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/acknowledge` (fingerprint `5e91f93bb422`) - `GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched` (fingerprint `69b68afb8202`) - `GET /api/fulfilment/v1/inventory/skus/{skuId}` (fingerprint `69de451d1f6f`) - `GET /api/fulfilment/v1/inventory/reservations/{reservationId}` (fingerprint `6d0a7aad4710`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}` (fingerprint `78dba06f6fcd`) - `GET /api/fulfilment/v1/configuration/geoshape/{polygonName}` (fingerprint `8173235e2ae3`) - `GET /api/fulfilment/v1/configuration/holidays/{holidayId}` (fingerprint `8a1fa70ee24b`) - `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm` (fingerprint `a471b422e160`) - `GET /api/fulfilment/v1/configuration/pickuppoints/_search` (fingerprint `ac5f58ea550e`) - `GET /api/fulfilment/v1/configuration/carriers/{carrierId}/getdayofweekblocked` (fingerprint `b47992d281af`) - `GET /api/fulfilment/v1/configuration/pickuppoints/_search` (fingerprint `b53da0df132d`) - `GET /api/fulfilment/v1/configuration/docks/{dockId}` (fingerprint `b717371444de`) - `GET /api/fulfilment/v1/configuration/geoshape` (fingerprint `bfd8ff47506b`) - `PUT /api/fulfilment/v1/configuration/holidays/{holidayId}` (fingerprint `c559cd70febf`) - `POST /api/fulfilment/v1/configuration/freights/{carrierId}/values/update` (fingerprint `c73e13f5323d`) - `GET /api/fulfilment/v1/inventory/reservations/{warehouseId}/{skuId}` (fingerprint `c85ca3048a64`) - `GET /api/fulfilment/v1/inventory/reservations/{warehouseId}/{skuId}` (fingerprint `ce184a2beed2`) - `DELETE /api/fulfilment/v1/configuration/geoshape/{polygonName}` (fingerprint `ce18c374b6a8`) - `GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched` (fingerprint `dfa10d8816b6`) - `POST /api/fulfilment/v1/configuration/docks/{dockId}/activation` (fingerprint `e2051b5414f5`) - `GET /api/fulfilment/v1/configuration/geoshape` (fingerprint `ed39215974cc`) - `GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}` (fingerprint `ed823e534b8c`) - `DELETE /api/fulfilment/v1/configuration/docks/{dockId}` (fingerprint `ee5c7bad355f`) - `POST /api/fulfilment/v1/configuration/carriers/{carrierId}/removedayofweekblocked` (fingerprint `fda03ede32b0`) #### Low ##### CC-DESC-02 · The description of parameter `postalCode` is weak (too short) - **Operation:** `GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values` - **State:** present but ambiguous - **Evidence:** `Postal code.` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get/parameters/3` - **Impact:** A description that says nothing beyond the name gives a developer no more than the name already did. - **Recommendation:** Say what it does, what it returns or accepts, and anything the name does not show. - **Confidence:** 0.70 · fingerprint `066f22907222` ##### CC-DESC-02 · The description of POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm is weak (restates its name) - **Operation:** `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm` - **State:** present but ambiguous - **Evidence:** `Confirms reservation by reservation ID.` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1confirm/post` - **Impact:** A description that says nothing beyond the name gives a developer no more than the name already did. - **Recommendation:** Say what it does, what it returns or accepts, and anything the name does not show. - **Confidence:** 0.70 · fingerprint `06abada4c17a` ##### CC-DESC-02 · The description of POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation is weak (restates its name) - **Operation:** `POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation` - **State:** present but ambiguous - **Evidence:** `Activates a given warehouse, by warehouse ID.` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1activation/post` - **Impact:** A description that says nothing beyond the name gives a developer no more than the name already did. - **Recommendation:** Say what it does, what it returns or accepts, and anything the name does not show. - **Confidence:** 0.70 · fingerprint `143066492c43` 8 more CC-DESC-02 findings, same impact and recommendation as above: - `PUT /api/fulfilment/v1/configuration/holidays/{holidayId}` (fingerprint `4c220183f42b`) - `POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/deactivation` (fingerprint `4d7893a3d2ae`) - `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/acknowledge` (fingerprint `6a18f373b504`) - `POST /api/fulfilment/v1/inventory/reservations/{reservationId}/cancel` (fingerprint `6df3161ba76c`) - `GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values` (fingerprint `6fd6515a7aed`) - `POST /api/fulfilment/v1/configuration/docks/{dockId}/deactivation` (fingerprint `9a649c5e36c2`) - `PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId}` (fingerprint `d04b10a8229c`) - `POST /api/fulfilment/v1/configuration/docks/{dockId}/activation` (fingerprint `e83615748966`) ##### CC-RESP-01 · Response has no description - **Operation:** `PUT /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}` - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/put/responses/200` - **Impact:** Developers do not learn what the response means or when it occurs. - **Recommendation:** Describe when this response is returned and what it contains. - **Confidence:** 1.00 · fingerprint `110941b701bc` ##### CC-RESP-01 · Response has no description - **Operation:** `GET /api/fulfilment/v1/inventory/skus/{skuId}` - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}/get/responses/200` - **Impact:** Developers do not learn what the response means or when it occurs. - **Recommendation:** Describe when this response is returned and what it contains. - **Confidence:** 1.00 · fingerprint `1486583de5b8` ##### CC-RESP-01 · Response has no description - **Operation:** `GET /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}` - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/get/responses/200` - **Impact:** Developers do not learn what the response means or when it occurs. - **Recommendation:** Describe when this response is returned and what it contains. - **Confidence:** 1.00 · fingerprint `67aaa40d55a6` ##### CC-RESP-01 · Response has no description - **Operation:** `POST /api/fulfilment/v1/shipping/calculate` - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1shipping~1calculate/post/responses/200` - **Impact:** Developers do not learn what the response means or when it occurs. - **Recommendation:** Describe when this response is returned and what it contains. - **Confidence:** 1.00 · fingerprint `ed175b5ef366` ##### NAME-01 · paths mix kebab-case, snake_case, camelCase with no dominant convention - **State:** present but ambiguous - **Evidence:** `/api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames` at `fulfilment-api.json#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames/get` - **Evidence:** `/api/fulfilment/v1/configuration/pickuppoints/_search` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1_search/get` - **Evidence:** `/api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots/get` - **Evidence:** `/api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime}` at `fulfilment-api.json#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames~1{windowDay}F{windowStartTime}T{windowEndTime}/get` - **Evidence:** `/api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}/put` - **Evidence:** `/api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}/transfer` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}~1transfer/post` - **Evidence:** `/api/fulfilment/v1/shipping-policies` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1shipping-policies/get` - **Evidence:** `/api/fulfilment/v1/shipping-policies/{id}` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1shipping-policies~1{id}/get` - **Impact:** Inconsistent naming makes the API harder to learn and guess; developers cannot predict names from the ones they have seen. - **Recommendation:** Choose one naming convention and apply it everywhere; keep old names only as documented deprecated aliases. - **Confidence:** 0.80 · fingerprint `2584f4b51597` ##### NAME-01 · 1 of 40 paths put an action verb in the path while the rest do not - **State:** present but ambiguous - **Evidence:** `/api/fulfilment/v1/configuration/freights/{carrierId}/values/update` at `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1values~1update/post` - **Impact:** Action verbs in some resource paths duplicate what the HTTP method already says and break the pattern of the other paths. - **Recommendation:** Name paths after resources and express the action with the HTTP method. - **Confidence:** 0.70 · fingerprint `fe865ec8543e` ### pagination (sub-score 85) #### Medium ##### PAG-01 · GET /api/fulfilment/v1/configuration/warehouses returns a collection with no documented pagination - **Operation:** `GET /api/fulfilment/v1/configuration/warehouses` - **State:** not in the specification - **Evidence:** not found: pagination parameters, next-page field or Link header; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/get`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/get/responses/200` - **Impact:** Clients cannot retrieve more than the first batch reliably, or must guess how paging works. - **Recommendation:** Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position). - **Confidence:** 0.80 · fingerprint `3097cc4277a2` ##### PAG-01 · GET /api/fulfilment/v1/configuration/docks returns a collection with no documented pagination - **Operation:** `GET /api/fulfilment/v1/configuration/docks` - **State:** not in the specification - **Evidence:** not found: pagination parameters, next-page field or Link header; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1docks/get`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1docks/get/responses/200` - **Impact:** Clients cannot retrieve more than the first batch reliably, or must guess how paging works. - **Recommendation:** Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position). - **Confidence:** 0.80 · fingerprint `3920be6d6071` ##### PAG-01 · GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values returns a collection with no documented pagination - **Operation:** `GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values` - **State:** not in the specification - **Evidence:** not found: pagination parameters, next-page field or Link header; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get/responses/200` - **Impact:** Clients cannot retrieve more than the first batch reliably, or must guess how paging works. - **Recommendation:** Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position). - **Confidence:** 0.80 · fingerprint `ad90fb6c0ea2` ##### PAG-01 · GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched returns a collection with no documented pagination - **Operation:** `GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched` - **State:** not in the specification - **Evidence:** not found: pagination parameters, next-page field or Link header; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{itemId}~1warehouses~1{warehouseId}~1dispatched/get`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{itemId}~1warehouses~1{warehouseId}~1dispatched/get/responses/200` - **Impact:** Clients cannot retrieve more than the first batch reliably, or must guess how paging works. - **Recommendation:** Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position). - **Confidence:** 0.80 · fingerprint `d381d16a8ea5` ##### PAG-01 · GET /api/fulfilment/v1/configuration/pickuppoints returns a collection with no documented pagination - **Operation:** `GET /api/fulfilment/v1/configuration/pickuppoints` - **State:** not in the specification - **Evidence:** not found: pagination parameters, next-page field or Link header; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints/get`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints/get/responses/200` - **Impact:** Clients cannot retrieve more than the first batch reliably, or must guess how paging works. - **Recommendation:** Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position). - **Confidence:** 0.80 · fingerprint `dd2ef861be37` ### onboarding (sub-score 98) #### Low ##### AUTH-02 · Security scheme `appToken` has no description - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/components/securitySchemes/appToken` - **Impact:** Developers are not told how to obtain or send credentials for this scheme. - **Recommendation:** Describe how to obtain credentials and how to send them. - **Confidence:** 1.00 · fingerprint `8378e896fb51` ##### AUTH-02 · Security scheme `appKey` has no description - **State:** not in the specification - **Evidence:** not found: description; inspected `fulfilment-api.json#/components/securitySchemes/appKey` - **Impact:** Developers are not told how to obtain or send credentials for this scheme. - **Recommendation:** Describe how to obtain credentials and how to send them. - **Confidence:** 1.00 · fingerprint `9fb455134636` ### data (sub-score 99) #### Low ##### DATA-02 · 25 date/time-named string properties declare no format or timezone - **State:** not in the specification - **Evidence:** `closingTime` at `fulfilment-api.json#/components/schemas/BusinessHour/properties` - **Evidence:** `openingTime` at `fulfilment-api.json#/components/schemas/BusinessHour/properties` - **Evidence:** `startDate` at `fulfilment-api.json#/components/schemas/CreateUpdateHolidayRequest/properties` - **Evidence:** `dockTime` at `fulfilment-api.json#/components/schemas/DeliveryItemOption/properties` - **Evidence:** `timeToDockPlusDockTime` at `fulfilment-api.json#/components/schemas/DeliveryItemOption/properties` - **Evidence:** `totalTime` at `fulfilment-api.json#/components/schemas/DeliveryItemOption/properties` - **Evidence:** `transitTime` at `fulfilment-api.json#/components/schemas/DeliveryItemOption/properties` - **Evidence:** `endTime` at `fulfilment-api.json#/components/schemas/DeliveryRange/properties` - **Evidence:** `startTime` at `fulfilment-api.json#/components/schemas/DeliveryRange/properties` - **Evidence:** `endTime` at `fulfilment-api.json#/components/schemas/DeliveryRange1/properties` - **Impact:** Clients cannot tell whether values are ISO 8601, epoch text or local time, so parsing and timezone handling are guesses. - **Recommendation:** Set `format: date-time` or `date`, or describe the format and timezone (for example ISO 8601 in UTC). - **Confidence:** 0.60 · fingerprint `08a0d7169e2b` ### examples (sub-score 99) #### Low ##### CC-EX-01 · PUT /api/fulfilment/v1/configuration/geoshape has no example request or response - **Operation:** `PUT /api/fulfilment/v1/configuration/geoshape` - **State:** not in the specification - **Evidence:** not found: an example request or response body; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/put`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/put/responses/200` - **Impact:** Developers have to infer payload shape from the schema alone, which slows a first successful call. - **Recommendation:** Add a realistic example for the request body and the success response. - **Confidence:** 0.90 · fingerprint `cc6169f384f9` ### limits (sub-score 99) #### Low ##### RATE-01 · No rate limiting is documented - **State:** not in the specification - **Evidence:** not found: a 429 response, rate-limit headers, or a description of rate limits; inspected `fulfilment-api.json#`, `fulfilment-api.json#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames/get`, `fulfilment-api.json#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames~1{windowDay}F{windowStartTime}T{windowEndTime}/get` and 3 more - **Impact:** Integrators cannot size their clients or plan back-off, and learn the limits from production errors. - **Recommendation:** Document the limits, a 429 response and the headers that report remaining quota and when to retry. - **Confidence:** 0.70 · fingerprint `652e9d0aafb7` ### reliability (sub-score 99) #### Low ##### IDEM-01 · None of the 4 resource-creating POST operations documents an idempotency key - **State:** not in the specification - **Evidence:** not found: an Idempotency-Key header parameter; inspected `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1docks/post`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/post`, `fulfilment-api.json#/paths/~1api~1fulfilment~1v1~1inventory~1reservations/post` and 1 more - **Impact:** A retry after a timeout can create the resource twice, so clients cannot retry safely. - **Recommendation:** Accept an Idempotency-Key header on creating operations and document how long keys are remembered. - **Confidence:** 0.70 · fingerprint `bae9f63f9d9c` ## Rules | Rule | Version | Status | Findings | | --- | --- | --- | ---: | | CC-REF-01 | 1 | not applicable | 0 | | CC-DESC-01 | 1 | applied | 0 | | CC-PARAM-01 | 1 | applied | 43 | | CC-RESP-01 | 1 | applied | 4 | | CC-ERR-01 | 1 | applied | 53 | | CC-EX-01 | 1 | applied | 1 | | CC-EX-02 | 1 | applied | 0 | | ERR-05 | 1 | not applicable | 0 | | CC-CONFLICT-01 | 1 | could not be assessed (needs guide pages; none was supplied) | 0 | | CC-PATH-01 | 1 | applied | 0 | | CC-SCHEMA-01 | 1 | applied | 2 | | CC-TYPE-01 | 1 | applied | 0 | | CC-CONSIST-01 | 1 | applied | 1 | | RATE-02 | 1 | not applicable | 0 | | WH-01 | 1 | not applicable | 0 | | WH-02 | 1 | not applicable | 0 | | WH-03 | 1 | not applicable | 0 | | AUTH-03 | 1 | not applicable | 0 | | IDEM-02 | 1 | not applicable | 0 | | ERR-04 | 1 | not applicable | 0 | | WF-04 | 1 | not applicable | 0 | | DATA-02 | 1 | applied | 1 | | DATA-03 | 1 | not applicable | 0 | | CC-ENV-01 | 1 | applied | 0 | | AUTH-04 | 1 | not applicable | 0 | | AUTH-01 | 1 | applied | 0 | | AUTH-02 | 1 | applied | 2 | | CC-SEC-01 | 1 | applied | 0 | | NAME-01 | 1 | applied | 2 | | PAG-01 | 1 | applied | 5 | | PAG-02 | 1 | disabled | 0 | | RATE-01 | 1 | applied | 1 | | ERR-02 | 1 | not applicable | 0 | | IDEM-01 | 1 | applied | 1 | | CC-DEP-01 | 1 | not applicable | 0 | | CC-DESC-02 | 1 | applied | 11 | | CC-DESC-03 | 1 | disabled | 0 | | CC-DESC-04 | 1 | applied | 0 | | LINK-01 | 1 | could not be assessed (needs guide pages; none was supplied) | 0 | | ON-ENV-01 | 1 | could not be assessed (needs guide pages; none was supplied) | 0 | | DOC-CODE-01 | 1 | could not be assessed (needs guide pages; none was supplied) | 0 | ## Score trace | Rule | Severity | Points | Withheld by cap | Fingerprint | | --- | --- | ---: | ---: | --- | | CC-SCHEMA-01 | High | 10 | 0 | `3793ec222369` | | CC-SCHEMA-01 | High | 5 | 5 | `3be1333302eb` | | CC-ERR-01 | Medium | 4 | 0 | `007572904bd4` | | CC-ERR-01 | Medium | 4 | 0 | `026e9969da35` | | CC-PARAM-01 | Medium | 4 | 0 | `039fe5e246dc` | | CC-ERR-01 | Medium | 4 | 0 | `05f0b820b2ae` | | CC-ERR-01 | Medium | 3 | 1 | `0c118ddce9a1` | | CC-ERR-01 | Medium | 0 | 4 | `0c46bb1f4536` | | CC-ERR-01 | Medium | 0 | 4 | `0c4da5d1241c` | | CC-PARAM-01 | Medium | 4 | 0 | `13371dfff356` | | CC-PARAM-01 | Medium | 4 | 0 | `16375bd73cc8` | | CC-ERR-01 | Medium | 0 | 4 | `16b51192faff` | | CC-ERR-01 | Medium | 0 | 4 | `21db7482ca22` | | CC-PARAM-01 | Medium | 3 | 1 | `2216249ec45a` | | CC-PARAM-01 | Medium | 0 | 4 | `2324c6a04f49` | | CC-PARAM-01 | Medium | 0 | 4 | `24af8b0d2d46` | | CC-ERR-01 | Medium | 0 | 4 | `24bc3220f44b` | | CC-ERR-01 | Medium | 0 | 4 | `2533a8b3a5cb` | | CC-ERR-01 | Medium | 0 | 4 | `28d92f743e90` | | CC-ERR-01 | Medium | 0 | 4 | `2a471f6b0238` | | CC-PARAM-01 | Medium | 0 | 4 | `2cb72dce8474` | | PAG-01 | Medium | 4 | 0 | `3097cc4277a2` | | CC-PARAM-01 | Medium | 0 | 4 | `31c25f57b223` | | CC-ERR-01 | Medium | 0 | 4 | `3428fca2d060` | | CC-PARAM-01 | Medium | 0 | 4 | `36117b7ea44f` | | CC-ERR-01 | Medium | 0 | 4 | `36d565a9e44f` | | PAG-01 | Medium | 4 | 0 | `3920be6d6071` | | CC-PARAM-01 | Medium | 0 | 4 | `3b87824eecf8` | | CC-ERR-01 | Medium | 0 | 4 | `3de17423d792` | | CC-ERR-01 | Medium | 0 | 4 | `3e2f4b202c83` | | CC-PARAM-01 | Medium | 0 | 4 | `3fa1bda06357` | | CC-PARAM-01 | Medium | 0 | 4 | `411484bd3d0b` | | CC-ERR-01 | Medium | 0 | 4 | `416ed696462e` | | CC-ERR-01 | Medium | 0 | 4 | `41fd01cb884c` | | CC-PARAM-01 | Medium | 0 | 4 | `425c72c9eb34` | | CC-PARAM-01 | Medium | 0 | 4 | `426a811d1fd2` | | CC-PARAM-01 | Medium | 0 | 4 | `427ea496e42a` | | CC-ERR-01 | Medium | 0 | 4 | `4aa17e0ba0fc` | | CC-PARAM-01 | Medium | 0 | 4 | `4e2ee7615c29` | | CC-PARAM-01 | Medium | 0 | 4 | `4fe60abe89f4` | | CC-ERR-01 | Medium | 0 | 4 | `53987ac913e1` | | CC-PARAM-01 | Medium | 0 | 4 | `550789988db9` | | CC-ERR-01 | Medium | 0 | 4 | `5a52d17aee75` | | CC-ERR-01 | Medium | 0 | 4 | `5b1bc27a5633` | | CC-ERR-01 | Medium | 0 | 4 | `5bec5219343f` | | CC-PARAM-01 | Medium | 0 | 4 | `5c91353f0a71` | | CC-PARAM-01 | Medium | 0 | 4 | `5e91f93bb422` | | CC-ERR-01 | Medium | 0 | 4 | `5f010ff633fc` | | CC-ERR-01 | Medium | 0 | 4 | `63717576d756` | | CC-PARAM-01 | Medium | 0 | 4 | `69b68afb8202` | | CC-PARAM-01 | Medium | 0 | 4 | `69de451d1f6f` | | CC-PARAM-01 | Medium | 0 | 4 | `6d0a7aad4710` | | CC-PARAM-01 | Medium | 0 | 4 | `78dba06f6fcd` | | CC-PARAM-01 | Medium | 0 | 4 | `8173235e2ae3` | | CC-ERR-01 | Medium | 0 | 4 | `88857508cce2` | | CC-ERR-01 | Medium | 0 | 4 | `893d393681fc` | | CC-PARAM-01 | Medium | 0 | 4 | `8a1fa70ee24b` | | CC-ERR-01 | Medium | 0 | 4 | `8a4e6410e886` | | CC-ERR-01 | Medium | 0 | 4 | `8f928c13b05a` | | CC-ERR-01 | Medium | 0 | 4 | `8f9ad145fb43` | | CC-ERR-01 | Medium | 0 | 4 | `8fb0e67e3738` | | CC-ERR-01 | Medium | 0 | 4 | `95af5d1a259a` | | CC-ERR-01 | Medium | 0 | 4 | `a116d36feab3` | | CC-PARAM-01 | Medium | 0 | 4 | `a471b422e160` | | CC-PARAM-01 | Medium | 0 | 4 | `ac5f58ea550e` | | PAG-01 | Medium | 4 | 0 | `ad90fb6c0ea2` | | CC-ERR-01 | Medium | 0 | 4 | `b0321c70a091` | | CC-PARAM-01 | Medium | 0 | 4 | `b47992d281af` | | CC-PARAM-01 | Medium | 0 | 4 | `b53da0df132d` | | CC-ERR-01 | Medium | 0 | 4 | `b53ed68360fe` | | CC-PARAM-01 | Medium | 0 | 4 | `b717371444de` | | CC-ERR-01 | Medium | 0 | 4 | `bbb0a1cb85d4` | | CC-ERR-01 | Medium | 0 | 4 | `bc6c61ed35a5` | | CC-PARAM-01 | Medium | 0 | 4 | `bfd8ff47506b` | | CC-ERR-01 | Medium | 0 | 4 | `c19b3a28e6ba` | | CC-CONSIST-01 | Medium | 4 | 0 | `c3524fe903d4` | | CC-ERR-01 | Medium | 0 | 4 | `c45c362328c7` | | CC-PARAM-01 | Medium | 0 | 4 | `c559cd70febf` | | CC-PARAM-01 | Medium | 0 | 4 | `c73e13f5323d` | | CC-PARAM-01 | Medium | 0 | 4 | `c85ca3048a64` | | CC-ERR-01 | Medium | 0 | 4 | `cb6fb45af112` | | CC-PARAM-01 | Medium | 0 | 4 | `ce184a2beed2` | | CC-PARAM-01 | Medium | 0 | 4 | `ce18c374b6a8` | | PAG-01 | Medium | 3 | 1 | `d381d16a8ea5` | | CC-ERR-01 | Medium | 0 | 4 | `d6071277cecd` | | CC-ERR-01 | Medium | 0 | 4 | `d92cb104d559` | | CC-ERR-01 | Medium | 0 | 4 | `d9c19252e179` | | CC-ERR-01 | Medium | 0 | 4 | `d9e3ad40391f` | | CC-ERR-01 | Medium | 0 | 4 | `da3f41a5ec6f` | | PAG-01 | Medium | 0 | 4 | `dd2ef861be37` | | CC-PARAM-01 | Medium | 0 | 4 | `dfa10d8816b6` | | CC-ERR-01 | Medium | 0 | 4 | `e125ff3491d1` | | CC-PARAM-01 | Medium | 0 | 4 | `e2051b5414f5` | | CC-ERR-01 | Medium | 0 | 4 | `e268298c0149` | | CC-ERR-01 | Medium | 0 | 4 | `ec9137cb0c71` | | CC-PARAM-01 | Medium | 0 | 4 | `ed39215974cc` | | CC-PARAM-01 | Medium | 0 | 4 | `ed823e534b8c` | | CC-PARAM-01 | Medium | 0 | 4 | `ee5c7bad355f` | | CC-ERR-01 | Medium | 0 | 4 | `f0c867d875df` | | CC-ERR-01 | Medium | 0 | 4 | `f70a4c54bc23` | | CC-ERR-01 | Medium | 0 | 4 | `fbaf8282a94f` | | CC-ERR-01 | Medium | 0 | 4 | `fbd17d8d762a` | | CC-ERR-01 | Medium | 0 | 4 | `fce73999683d` | | CC-PARAM-01 | Medium | 0 | 4 | `fda03ede32b0` | | CC-DESC-02 | Low | 1 | 0 | `066f22907222` | | CC-DESC-02 | Low | 1 | 0 | `06abada4c17a` | | DATA-02 | Low | 1 | 0 | `08a0d7169e2b` | | CC-RESP-01 | Low | 1 | 0 | `110941b701bc` | | CC-DESC-02 | Low | 1 | 0 | `143066492c43` | | CC-RESP-01 | Low | 1 | 0 | `1486583de5b8` | | NAME-01 | Low | 1 | 0 | `2584f4b51597` | | CC-DESC-02 | Low | 1 | 0 | `4c220183f42b` | | CC-DESC-02 | Low | 1 | 0 | `4d7893a3d2ae` | | RATE-01 | Low | 1 | 0 | `652e9d0aafb7` | | CC-RESP-01 | Low | 1 | 0 | `67aaa40d55a6` | | CC-DESC-02 | Low | 1 | 0 | `6a18f373b504` | | CC-DESC-02 | Low | 1 | 0 | `6df3161ba76c` | | CC-DESC-02 | Low | 1 | 0 | `6fd6515a7aed` | | AUTH-02 | Low | 1 | 0 | `8378e896fb51` | | CC-DESC-02 | Low | 1 | 0 | `9a649c5e36c2` | | AUTH-02 | Low | 1 | 0 | `9fb455134636` | | IDEM-01 | Low | 1 | 0 | `bae9f63f9d9c` | | CC-EX-01 | Low | 1 | 0 | `cc6169f384f9` | | CC-DESC-02 | Low | 1 | 0 | `d04b10a8229c` | | CC-DESC-02 | Low | 1 | 0 | `e83615748966` | | CC-RESP-01 | Low | 1 | 0 | `ed175b5ef366` | | NAME-01 | Low | 1 | 0 | `fe865ec8543e` |