| Id. | Priority | Author | Section/Page number | Title | Status (Open/Fixed/Closed) | Initial Comment | Discussion |
|---|---|---|---|---|---|---|---|
| 1 | DLR | 1.2 | Relation of "Product" to STAC concepts | Fixed | The definition of the term "Product" should be extended to put it in relation to the STAC concepts catalog, collection, item and asset. | Definition extended | |
| 2 | DLR | 3.1 | Distinguish AIP and LTA | Fixed | The AIP consists of all (cloud-based) LTA service elements which are necessary to implement the LTA ICD. Behind this, the LTA may consist of other elements taking care of safe preservation. Since these are not relevant for the ICD, and not depicted/described here, this architecture should only refer to the AIP, not the full LTA. (see also Jolyons comment) This applies also to many requirement definitions in section 3, "LTA instance" → "AIP instance" | Diagram updated. Do we change "LTA client" to "AIP client" too ? | |
| 3 | DLR | 3.2 / p.17 | Zarr content | Open | The .zmetadata file is a non-standard extension to the Zarr v2 specification made by EOPF and might by subject to change when EOPF adopts Zarr v3. Whats the relevance of mentioning it in this ICD anyway? | It's the same in PRIP ICD. I propose to keep it like this to ensure consistency | |
| 4 | DLR | 3.2 / p.17 | Download Zarr content | Open | Since a EOPF Zarr store can contain thousands of files this would be very inefficient. Instead, an on-the-fly zipper approach should be considered. | JM: This will change with Zarr V3 and the sharding opportunities. I would tend to resist the on-the-fly zipper approach as an un-necessary complication (but still for discussion) | |
| 5 | DLR | 3.2.1 | Table is incomplete | Open | The table does not contain all entities of the LTA Data Model, and some are named differently. | can you precise : missing entities : order, JobStatus ? | |
| 6 | DLR | 3.2.1 / p.18 | LTA Data Model figure | Open | This diagram is misleading. The data model of the LTA service is defined by the STAC Core model and the STAC extensions listed as applicable at the | The diagram at the begining of the document is a general STAC diagram (with both parts API and Core). The Data model in page 17 details the structure of a AIP/LTA product in the meaning of STAC. It's the same as for PRIP ICS | |
| 7 | DLR | 3.2.1 / p.18 | LTA Data Model | What is meant with "production additional data"? Maybe provide an example here. | |||
| 8 | DLR | 3.2.4 | STAC-LTA-ITEM-REQ-0065 multiple simultaneous orders | The API seems not able to prevent simultaneous orders on the same product in the status "orderable". Which client would get notified on oder completion (see Fig. 2). | |||
| 9 | DLR | 3.2.4 | order status versus product status | The Order STAC extension seems not adequate to describe the product online/offline status in the AIP. The "order:status" represents the status of an order linked to a product. There could also be multiple orders in parallel for the same product. Instead, consider
| |||
| 10 | DLR | 3.2.3 / p.21 | Missing required attributes in the example | The “items” and “queryables” attributes required in the STAC- LTA-COL-REQ-0030 requirement are not included in the example. | |||
| 11 | DLR | 3.2.4 / p.28 STAC-LTA-ITEM-REQ-0065 | Differing meaning of $.properties.order:date | Meaning of $.properties.order:date differs from what´s defined in the table on page 24. Also, is $.properties.order:date relevant information for a user interested in a product or is it sufficient for a user to know if a product is online or offline? Note that the time when an offline item has been ordered is already part of the order itself. |
| ||
| 12 | DLR | 3.2.4 | Uniqueness of $.id | The STAC specification states: "The ID should be unique within the Collection that contains the Items". It follows that even if uniqueness within a collection is enforced (which is strongly recommended), it is not guaranteed across collections, which poses a problem when an order references a product, see comment to OGC-AIP-PRO-REQ-030. It should thus explicitly be stated in the LTA ICD that $.id MUST be unique across all collections and implementations MUST prevent the creation of STAC items with the same ID in mutliple collections. | |||
| 13 | DLR | 3.2.4 | Clarification of timestamps | Please clarify the difference between $.properties.eopf:origin_datetime and $.properties.created from STAC Common Metadata. If there is no difference, should "created" be used instead of "eopf:origin_datetime"? The timestamps extension specifies "published", "expires" and "unpublished" properties. Please clarify the exact semantics of this properties in the context of the LTA service e.g.
In general, please define which and how timestamps should be set/updated when
| |||
| 14 | DLR | 3.2.4 | Clarification of $.properties.platform | Please clarify how $.properties.platform relates to platformShortName and platformSerialIdentifier defined in the OData interface. This will have an impact on e.g. metrics. | |||
| 15 | DLR | 3.2.4 | STAC- LTA-ITEM-REQ-0070 STAC- LTA-ITEM-REQ-0087 | Should all assets be included in the STAC item or only the "product" asset (i.e. link to Zarr product, because all other assets can be determined by harnessing the Zarr layout)? What's the use case behind an archive service to provide individual or group of bands of the product as assets? Since the EOPF format specifies no assets at all, the assets to expose should be driven by the use case of the LTA clients. | |||
| 16 | DLR | 3.2.4 | Some fields may be missing in STAC-LTA-ITEM-REQ-0090 | Have the fields $.assets.<asset_name>.file:size and $.assets.<asset_name>.file:checksum been omitted deliberately? | |||
| 17 | DLR | 3.2.4 | Mission in bucket naming convention, see STAC-LTA-ITEM-REQ-0101 | The requirement states that "mission" should be part of the bucket name. Where does the mission come from? It is not part of the required properties of an item as listed in STAC-LTA-ITEM-REQ-0050. Maybe use the collection id in the bucket name instead or include mission in the item from STAC Common Metadata. | |||
| 18 | DLR | 3.2.4 / p.30 | STAC- LTA-ITEM-REQ-0085 – Thumbnail asset | Are there any plans to include a thumbnail in the EOPF product? | |||
| 19 | DLR | 3.2.4 | Lifecycle as described in STAC-LTA-ITEM-REQ-0060 and STAC-LTA-ITEM-REQ-0065 | Some remarks: 1. Setting "order:status" to "succeeded" seems incorrect if no order has been processed yet. 2. Shouldn't it be possible to create orders even in "shipping" and "succeeded" status? More generally, shouldn't it be allowed that different users create orders for the same product? This approach provides several benefits, e.g. users can cancel their orders without affecting other users, $.properties.expires may be updated if a new order is created to reflect the new user's expiration requirements, users may get individually notified upon order completion etc. Also see comment "order status versus product status". | |||
| 20 | DLR | 3.2.4 | Lifecycle as described in STAC-LTA-ITEM-REQ-0060 and STAC-LTA-ITEM-REQ-0065 | Please specify, how the assets href should be set for an Offline product. We see two possibilities:
| |||
| 21 | DLR | 3.3.1.2 | STAC-AIP-API-REQ-0220 – Global access control semantics | Is it really required for a client to be authenticated for the discovery operations (search and browse)? Usually, only retrieval and ordering are subject to authentication/authorization. | |||
| 22 | DLR | 3.3.1.3 | Quota Management | Where are these quotas defined? Since the IAM is going to be centralized, are they also going to be defined there e.g. with OPA? | |||
| 23 | DLR | 3.3.1.3 | Exceeded quotas | It is not defined how a quota exceedance is communicated to the client. Information about when the quota is reset would be helpful for the client. In a HTTP based service, usually 429 Too Many Requests is used. We could propose it here. | |||
| 24 | DLR | 3.3.1.3 | Please clarify checksum feature in STAC-LTA-API-REQ-0305 | 1. It is unclear what kind of checksum feature of the S3 infrastructure shall be leveraged. There are several options: | |||
| 25 | DLR | 3.3.2 LTA Client requirements | Order completion notification missing | In Fig. 2 the client is supposed to offer a callback for order completion notifications, but there is no requirement defined for this. Should maybe be added in a separate LTA client requirements section within 3.5 "Product Retrieval". | |||
| 26 | DLR | 3.3.3.3 | stac_extensions in STAC item | Does "stac_extensions" contain the same values for all STAC items? This may be important for implementations in order to prevent storing redundant information. | |||
| 27 | DLR | 3.3.3.3 | numberMatched in FeatureCollection | A FeatureCollections contains "numberMatched". We propose to state in the ICD that this may be an approximation and does not need to reflect the exact number of matched STAC items. Otherwise, query performance may be negatively affected. | |||
| 28 | DLR | 3.4 | OGC-AIP-API-REQ-030 / OGC-AIP-PRO-REQ-010 | IDs are not named consistently, e.g. "productOrder" and "BulkCreate" and in OGC-AIP-PRO-REQ-060, it says "bulkCreate". We recommend consistent naming, e.g. "ProductOrder", "BulkOrder" and "BatchOrder". | |||
| 29 | DLR | 3.4 | Canceled status missing in OGC-AIP-API-REQ-060 and inconsistent status names | Note that even if not allowed for a user to cancel an order, it should at least be allowed for an operator. Furthermore, can the status names of the OData interface be retained? Also note that the status names differ from the ones in OData and also $.properties.order:status, e.g. we have "completed" (OData), "succeeded" (STAC item), "successful" (OGC) or "in_progress" (OData), "shipping" (STAC item), "running" (OGC). This only contributes to confusion so we strongly advise to harmonize and abandon the STAC order extension. Why is the OGC Processing API used in the first place? What are the limitations of the currently used Order API? | |||
| 30 | DLR | 3.4 | OGC-AIP-PRO-REQ-030 | See also comment to $.id, otherwise "productId" is not guaranteed to be unique. Of course, a collection could be stored alongside "productId", but this is discouraged. | |||
| 31 | DLR | 3.4 | OGC-AIP-PRO-REQ-040 | In the example in section 3.5.1.3 (Example of process description) the spelling does neither reflect the spelling in this requirement nor is it consistent (e.g. "productLink" vs "EvictionDate"). It is strongly advised to be consistent in attribute naming. | |||
| 32 | DLR | 3.4 | OGC-AIP-PRO-REQ-120 | Please clarify what happens if some products could be ordered successfully and some products failed. | |||
| 33 | DLR | 3.5 Figures | AIP and LTA namings | In order to make clear that AIP is part of the LTA, the LTA on the right could be named "LTA backend". | |||
| 34 | DLR | 3.5.1 (and similar in 3.5.3) | Product access after order inconsistent | The access to a product after successful order differs from the specification in section 3.3.1. It is especially unclear to which assets/files the "productLink" in the job result output would point to, since the orderable unit is always the full product. The "productLink" could better point to a STAC item to which the access can occur as defined in section 3.3.1. The "evictionDate" seems semantically the same as $.properties.expires of the corresponding STAC item. Please specify that after a successful order the expires attribute of the item must be updated accordingly. In this case it should also be considered to remove the "evictionDate" from the process output to avoid duplication of information. | |||
| 35 | DLR | 3.5.2.2 / p.55 | OGC-AIP-PRO-REQ-070 – Process inputs | Suggest to also add collections and datetime as explicit parameters, like in STAC item search with simple filtering (https://api.stacspec.org/v1.0.0/item-search/#tag/Item-Search/operation/getItemSearch) | |||
| 36 | DLR | 3.6.1.2 / p.67 | OGC-AIP-PRO-REQ-150 – Process inputs | Align process inputs with OGC-AIP-PRO-REQ-070 |