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.
- Added
predicate=
option totransfer.download_item_assets
, allowing a function to determine which assets to download (#55)
- boto3utils minimum version 0.3.3
- statedb bug for paged queries using secondary index (#58)
v0.8.0 - 2022-09-12
- Ability to filter statedb job queries using a specific beginswith string (#49)
- Add
start_datetime
andend_datetime
message attributes for messages toCIRRUS_PUBLISH_SNS
(#53)
ProcessPayload.process['output_options']
has been deprecated in favor of'upload_options'
(#51)
- Missing
datetime
will not fail message publishing (#53)
v0.7.0 - 2022-02-17
- Support for an
ABORTED
workflow state (#44)
v0.6.2 - 2022-02-07
- Issues when payloads are duplicated (#41)
v0.6.1 - 2022-01-13
- support for item filtering when chainging workflows (#37)
- official support for python 3.9 and 3.10 (#38)
v0.6.0 - 2022-01-06
- Package now installed in
cirrus
namespace ascirrus.lib
. Change all imports fromcirruslib
tocirrus.lib
Catalog
andCatalogs
nowProcessPayload
andProcessPayloads
catalog.py
module renamedprocess_payload.py
ProcessPayload.process()
converted to__call__()
methodProcessPayload.process
is now a property that will return the current process definition in the case of a chained process arrayProcessPayload.from_payload()
renamedfrom_event()
ProcessPayload.publish_to_s3()
renamedpublish_items_to_s3()
ProcessPayload.publish_to_sns()
renamedpublish_items_to_sns()
- Note that
ProcessPayload.publish_to_sns()
still exists but now publishes whole payload to an SNS topic, not each item
- Note that
- All instances of the term
catalog
replaced bypayload
- All instances of the abbreviation
cat
replaced bypayload
- All instances of
catid
replaced bypayload_id
ProcessPayload.get_catalog()
renamedget_payload()
ProcessPayloads.catids
renamedpayload_ids
ProcessPayloads.from_catids()
renamedfrom_payload_ids()
StateBD.catid_to_key()
renamedpayload_id_to_key()
StateBD.key_to_catid()
renamedkey_to_payload_id()
StateBD.get_input_catalog_url()
renamedget_input_payload_url()
- env var
CIRRUS_CATALOG_BUCKET
renamedCIRRUS_PAYLOAD_BUCKET
- env var
BASE_WORKFLOW_ARN
renamedCIRRUS_BASE_WORKFLOW_ARN
- move code under
/src
and change tocirrus
namespace package by @jkeifer (#31]) Catalog
renamed toProcessPayload
and all references tocatalog
changed topayload
by @jkeifer (#34])- tests default to
us-west-2
region if not otherwise set in env vars by @jkeifer (c919fad)
- exception traceback logging now shows stacktrace @jkeifer (#30])
- codecov reporting now works by @jkeifer (#33])
ProcessPayloads.process()
now returns list of processedpayload_id
s by @jkeifer (02ff5e3)
- version now tracked through git tags not
version.py
by @jkeifer (#31])
v0.5.1 - 2021-10-01
- The
outputs
parameter tostateddb.set_completed()
is no longer required, but now optional - Added `statedb.set_outputs() to set outputs indepentent of execution state
v0.5.0 - 2021-08-20
stac
module and global PySTAC dependency
v0.4.6 - 2021-07-15
- Update boto3-utils minimum version
get_s3_session
now only handles error from missing secrets when trying to get bucket credentials
v0.4.5 - 2021-07-12
- Don't log S3 credentials
v0.4.4 - 2021-04-23
- Ability to query catalog for item(s) based on property values, use either
get_items_by_properties
orget_item_by_properties
methods
v0.4.3 - 2021-03-30
- Race condition when setting processing of new catalogs
- Pagination of items in Cirrus API
v0.4.2 - 2021-01-12
- Add support for sorting of queries based on updated column
v0.4.1 - 2020-11-16
- Bug preventing rerun of inputs
v0.4.0 - 2020-11-13
- Expanded unit tests
status
attribute to published SNS attributes, eithercreated
orupdated
- DynamoDB state database schema changed:
input_collections
->collections_workflow
, combines collections string and workflow nameid
->itemids
, IDs of all input STAC Items, no longer prefaced with workflow (moved tocollections_workflow
)output_collections
field removedcurrent_state
->state_updated
, same contentsupdated
field added containing just the updated datetimecreated_at
->created
output_urls
->outputs
, still a List of canonical STAC Item URLserror_message
->last_error
, contains the last execution error if input has ever failedexecution
->executions
, now a list of all executions for this input catalog.
- Cirrus State Item changed:
input_collections
->collections
created_at
->created
input_catalog
->catalog
output_urls
->outputs
error_message
->last_error
, now stores last execution errorexecution
->executions
, now a list of all executions for this input catalogoutput_collections
removedupdated
added
v0.3.3 - 2020-10-27
- Catalog logging when updating
v0.3.2 - 2020-10-25
cirruslib.logging
module configuring structured (JSON) logging and get_task_logger for logging from taskscirruslib.stac
module for working with the Cirrus static STAC catalog on s3, uses PySTACutils.dict_merged
function for doing recursive merges
- Parsing payload for a task should now use
Catalog.from_payload
instead ofCatalogs.from_payload
, which returns aCatalog
instead of an array ofCatalog
objects that always had a length of one - Claned up logging across all modules
Catalogs.from_payload
, replaced byCatalog.from_payload
QUEUED
as potential processing state
v0.3.1 - 2020-09-27
- output_options->collections is now optional, if not provided than item collections are not updated
process
function will reraise any error occuring while setting up processing so can be retried with redrivepolicy
v0.3.0 - 2020-09-02
- Catalog.from_payload will get output payload from Batch via a separate file "_out.json" rather than the original, as of Cirrus 0.2.0 Batch processes will write output to this new file rather than overwriting the input file
v0.2.1 - 2020-09-02
- Canonical link replaces previous canonical link
v0.2.0 - 2020-08-25
- Statedb.add_item function adds Item to DB with state=PROCESSING, must pass in Execution ARN
- Statedb.add_failed_item function adds Item to DB with state=FAILED, must pass in error message
process
Lambda added to consume from Cirrus Queue and start workflow (combines previousvalidation
andstart-workflow
Lambdas)
- Catalog no longer automatically adds fields as needed (e.g., a default process block, id), unless
update=True
is passed
v0.1.3 - 2020-08-13
- Catalog() now sets the collection IDs of all Items based on the contents of
process->output_options->collections
. This ensures any uploaded items in any task have the correct collection
- Validate for collections in process['output_options'] rather than top level which always failed
v0.1.2 - 2020-08-10
- No longer overwrite catalog ID if already provided
v0.1.1 - 2020-08-08
- boto3-utils updated to 0.3.1
v0.1.0 - 2020-08-07
Initial Release