v0.3.20
- A derived data point value, or a value filled from machine data, that breaks
the validation rules of its config is stored with
error: validation_issuewhile its object is a draft.POST /material-batchesandPATCH /material-batches/{id}answer201and200for it in place of400. Treat such a value as missing. A submitted value that breaks a rule is still refused with a400. - The finish and the lock of a material batch refuse such a value with a
400: a create that finishes at once (material sourcings, conversions and utilizations, and deliveries that are not drafts), aPATCHthat finishes a delivery, and aPATCHthat locks a material batch. The message names each value with its reason, e.g.the computed value(s) of data point(s) <id> (<reason>) violate their validation rules, in place ofComputed value(s) for data point config(s) violate their validation rules: <id>. - Data point objects carry
error:null, one of the machine data outcomesno_machine_data,machine_data_gapandmachine_data_fetch_failed(novalue),invalid_computationfor a computed result that is not a value of the data point’s type (novalue), orvalidation_issue. - A
400for invalid data point values names every invalid value of the same step execution, container, batch, delivery or delivery leg, not only the first. A request that fills several of them at once (a sourcing or conversion with its output containers, a delivery with its legs or payload containers) reports the first one that carries an invalid value. - An empty string as the
valueof ashort_textorlong_textdata point, and an empty list as thevalueof amulti_textone, clear the data point likenull, also where the rules of its config (a URL,options, a minimum number of items) answered400for it. - A finished create that leaves a mandatory data point unfilled answers in the
wording of the finish:
mandatory data point(s) <id> must be filledin place ofMandatory data point config(s) are missing a value: <id>. Derived data points and data points the API cannot provide keep their own parts,could not be computed from the submitted valuesandcannot be provided via the API.
v0.3.19
- The
400response for an invalid data point value now lists every reason the value is invalid, not only the first, and names the bound or unit it breaks, e.g.it must be at most 1000 kginstead ofit is higher than the allowed maximum.
v0.3.19
- Creating a material utilization from a config with no
input_configsnow accepts existing containers byidoninput_containers, and consumes them. An empty list orconfig_iditems are rejected. This request no longer returns501 Not Implemented.
v0.3.18
- Added
POSTandDELETE/material-sourcings/{id}/files/{file_id},/material-conversions/{id}/files/{file_id}and/material-utilizations/{id}/files/{file_id}to attach and detach files of a material sourcing, conversion or utilization. - Material sourcing, conversion and utilization get and create responses now
expose their attached
files. - Requests over the limit of your API client are now refused with a
429response and aRetry-Afterheader. See the new Rate Limits guide. - The API Reference documents the
429response for every endpoint.
v0.3.17
- Machines are now machine data sources: one connection machine data is read from. Machines
that were read through several connections were split into one machine data source per
connection, and the variables read through those connections moved with them.
GET /machineslists the new entries too, andmachine_idchanges for the moved variables. - Added
GET /machine-data-sourcesandGET /machine-data-sources/{id}. Machine data sources havemds_IDs and expose theirtransportandprotocol. - Deprecated
GET /machinesandGET /machines/{id}; they keep returningmch_IDs. Anmch_ID becomes themds_ID of the same source by swapping the prefix. - Machine variables now expose
machine_data_source_idand accept amachine_data_source_idfilter. Themachine_idfield and filter are deprecated and keep usingmch_IDs.
v0.3.16
- A create or finish that is refused because a mandatory machine-fed data
point has no machine data at
occurred_atnow says so, instead of asking for the data point to be filled; the API accepts no value for it. POST /material-batchesandPATCH /material-batches/{id}no longer document a503response: material batches read no machine data.
v0.3.15
- Responses carry the
RateLimit-PolicyandRateLimitheaders with the request limit of your API client. Requests over the limit will get a429response with aRetry-Afterheader.
v0.3.14
- Deprecated the
validationfield ofTimestampDataPointConfigVersionobjects; it is now alwaysnull. Values of timestamp data points are no longer checked against min/max or must-be-in-the-past/future rules. - Added
POST /deliveries/{id}/files/{file_id}andDELETE /deliveries/{id}/files/{file_id}to attach and detach files of a delivery. - Deliveries now expose their attached
filesin the get, create and update responses.
v0.3.12
- Config version objects of Deliveries, Material Sourcings, Material Conversions and Material Utilizations
now always specify
payload_configs,input_configsand/oroutput_configs. When creating or updating these objects, one can provide one or more containers per config inpayload_containers,input_containersand/oroutput_containers. - The
unifiedfield on the corresponding config version objects has been deprecated. - Fix: A create that cannot finish a draft delivery returns a 400 error instead of a 500 error.
v0.3.11
- Data point values can now be unset: pass
value: nullin adata_pointsentry to clear the stored value. Applies wherever data point inputs are accepted (deliveries, delivery payload containers and material batches); values derived from a cleared data point re-compute. - Delivery leg
sender_site/receiver_siteaccept an explicitnullto unset a side while the delivery is a draft.
v0.3.10
- Deliveries now expose their lifecycle
status(draftorfinished). Draft deliveries may omit mandatory data point values or leg sites. - Allow
POST /deliveriesto create draft deliveries by specifying thestatus. GET /deliverieskeeps returning finished deliveries unless filtered via the newstatusquery parameter to maintain backwards compatibility. Expect this to change in the next breaking release.- Added
PATCH /deliveries/{id}to allow updating draft deliveries. - Added
DELETE /deliveries/{id}to delete draft deliveries. - Delivery leg sites can now be referenced by their
external_idas an alternative to their ID. - Fix:
occurred_aton delivery creation was interpreted in server timezone and now requires an ISO 8601 date-time with an explicit UTC offset (Zor±hh:mm)
v0.3.9
- Added new
/material-utilization-configsendpoints to list and retrieve the configs that material utilizations are created from. - Added new
/material-utilizationsendpoints to create, list and retrieve material utilizations.
v0.3.8
- Added new
/material-containersendpoints to list and retrieve material containers. - Added new
/material-sourcing-configsand/material-conversion-configsendpoints to list and retrieve the configs that material sourcings and conversions are created from. - Added new
/material-sourcingsand/material-conversionsendpoints to create, list and retrieve material sourcings and conversions. - Delivery config versions now expose whether their data points form one
unifiedflow. Delivery creates accept production step values in the flatdata_pointsarray and describe their new payload container viapayload_containers; responses expose the created containers under the same field. Deprecated thepayload,payload_typeandpayload_configfields. - Added the
material_pooldata point type for data points referencing material pools. - Fix: data points filled from machine data no longer accept submitted values and
are exposed with
accepts_input: false. - Fix: Document
data_pointsarray size limit of 100 entries.
v0.3.7
- Added new
/material-batchesendpoints to create, list, retrieve, update and delete material batches and to attach and detach their files. - Added new
/material-batch-configsendpoints to list and retrieve the material batch configs that batches are created from. - Added the
material_batchdata point type for data points referencing material batches.
v0.3.6
- Creating a delivery from a configuration whose selected transport emissions
configuration contains data points now returns
501 Not Implemented.
v0.3.5
- Added new
/material-poolsendpoints to create, list, retrieve, update and delete material pools.
v0.3.4
- Omitting the
Cula-Organisation-Idheader where it is required now returns400instead of401. - Setting the
Cula-Organisation-Idheader on endpoints that do not accept it (e.g./webhooks) now returns400instead of401.
v0.3.3
- Added new
/machinesand/machine-variablesendpoints to list and retrieve machines and their variables. - Added new
/machine-data-importsendpoints to ingest time-series values for machine variables and to list and retrieve past imports.
v0.3.2
- Added new
/filesendpoints to create, list, retrieve, and download files, replacing the existing/documentsendpoints. - Deprecated the
/documentsendpoints in favor of/files. The old endpoints continue to work for now and will be removed in a future release. - Changed the ID prefix of files (formerly “documents”) from
doc_tofle_. This only affects the type prefix, not the ID itself. The deprecated/documentsendpoints continue to returndoc_-prefixed IDs; the new/filesendpoints only return and acceptfle_-prefixed IDs. Thedoc_prefix will be removed in a future release.
v0.3.1
- Added support for authenticating with OAuth 2.0 client credentials.
- Added
Cula-Organisation-Idheader that should be specified for all endpoints except/webhooks. - Added new endpoints to create organisations and sites.
- Added new endpoints to query delivery configs.
- Added new delivery endpoints to query and create deliveries.
- Corrected the documented type of the sink fields
tracked_gross_co2e_removal_in_kg,tracked_net_co2e_removal_in_kg, andverified_net_co2e_removal_in_kgfromintegertonumber. - Added nullable
verified_atfield to sink responses, containing the day the removal was verified by the registry. - Added a
coordinatesandaddressfield on site responses, deprecated the previouslocationfield. - Added an
organisationfield on site responses, deprecated the previousorganisation_idfield.
v0.3.0
-
Breaking
Return only verified sinks from the
/sinksendpoints. -
Breaking
Removed the
sink.createdevent. -
Breaking
Moved from asymmetric to symmetric signatures for webhook deliveries (see
Receiving Event Updates): - The webhook
secret was renamed from
public_keytosecret. - The signature format changed fromed25519/v1atoHMAC-SHA256/v1. -
Breaking
Moved the
confirmation_document_idfield from the material application tracking step to the sink, since the document is sink-specific.
v0.2.0
-
Breaking
Removed tracking step information from the
/sinksendpoint (only the/sinks/{id}endpoint includes them). -
Breaking
Replaced the
application_matrixfield in thematerial_applicationtracking step type with anapplication_descriptionfield. -
Breaking
Marked
idofregistry_referenceas nullable. - Added
rainbowas a possible registry type. -
Breaking
Removed the
pyrolysistracking step type in favor of the more generalmaterial_processingstep type. -
Breaking
Marked
confirmation_document_idof thematerial_applicationtracking step type as nullable. -
Breaking
Removed the
transport_modefield of thedeliverytracking step type. -
Breaking
Marked
verified_net_co2e_removal_in_kgas nullable. -
Breaking
Renamed the
/document/{id}endpoint to/documents/{id}to conform with the naming scheme. -
Breaking
Removed the
legal_addressfield on the response organisation in favor of a nullablefull_address. -
Breaking
Renamed
legal_nameon the response organisation tonameand marked it nullable. -
Breaking
Removed the
contact_infofield from the response organisation and site. -
Breaking
Marked
nameof the response site as nullable.
v0.1.2
- Removed
nullableflags of the response array fieldsprevious_step_idsanddocument_idsof sinks.
v0.1.1
- Marked all response fields as required; optional fields return explicitly
null. -
Breaking
Added
maxLengthconstraints to the webhook endpoint fieldsurlanddescription.