All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Add parameter method as "POST" to create-order link
- Add constants for route names to be used in link href generation
v0.6.0 - 2025-02-11
- Added token-based pagination to
GET /orders,GET /products,GET /orders/{order_id}/statuses, andPOST /products/{product_id}/opportunities. - Optional and Extension STAPI Status Codes "scheduled", "held", "processing", "reserved", "tasked", and "user_canceled"
- Asynchronous opportunity search. If the root router supports asynchronous opportunity
search, all products must support it. If asynchronous opportunity search is
supported,
POSTrequests to the/products/{productId}/opportunitiesendpoint will default to asynchronous opportunity search unless synchronous search is also supported by theproductand aPreferheader in thePOSTrequest is set towait. - Added the
/products/{productId}/opportunities/and/searches/opportunitiesendpoints to support asynchronous opportunity search.
- Replaced the root and product backend Protocol classes with Callable type aliases to enable future changes to make product opportunity searching, product ordering, and/or asynchronous (stateful) product opportunity searching optional.
- Backend methods that support pagination now return tuples to include the pagination token.
- Moved
OrderCollectionconstruction from the root backend to theRootRouterget_ordersmethod. - Renamed
OpportunityRequesttoOpportunityPayloadso that would not be confused as being a subclass of the Starlette/FastAPI Request class.
- Opportunities Search result now has the search body in the
create-orderlink.
v0.5.0 - 2025-01-08
- Endpoint
/orders/{order_id}/statusessupportingGETfor retrieving statuses. The entity returned by this conforms to the change proposed in stapi-spec#239. - RootBackend has new method
get_order_statuses *args/**kwargssupport in RootRouter'sadd_productallows to configure underlyinging ProductRouter
- OrderRequest renamed to OrderPayload
none
- Endpoint
/orders/{order_id}/statusessupportingPOSTfor updating current status was added and then removed prior to release - RootBackend method
set_order_statuswas added and then removed
- Exception logging
none
v0.4.0 - 2024-12-11
none
- The concepts of Opportunity search Constraint and Opportunity search result Opportunity Properties are now separate, recognizing that they have related attributes, but not neither the same attributes or the same values for those attributes.
none
none
none
none
v0.3.0 - 2024-12-6
none
- OrderStatusCode and ProviderRole are now StrEnum instead of (str, Enum)
- All types using
Result[A, Exception]have been replace with the equivalent typeResultE[A] - Order and OrderCollection extend _GeoJsonBase instead of Feature and FeatureCollection, to allow for tighter constraints on fields
none
none
none
none
v0.2.0 - 2024-11-23
none
- RootBackend and ProductBackend protocols use
returnslibrary types Result and Maybe instead of raising exceptions. - Create Order endpoint from
.../orderto.../orders - Order field
idmust be a string, instead of previously allowing int. This is because while an order ID may an integral numeric value, it is not a "number" in the sense that math will be performed order ID values, so string represents this better.
none
none
none
none
v0.1.0 - 2024-11-15
Initial release
- Conformance endpoint
/conformanceand root bodyconformsToattribute. - Field
product_idto Opportunity and Order Properties - Endpoint /product/{productId}/order-parameters.
- Links in Product entity to order-parameters and constraints endpoints for that product.
- Add links
opportunitiesandcreate-orderto Product - Add link
create-orderto OpportunityCollection