# Changelog

## 0.1.9.dev2 (2026-06-26)
* Add json logs conforming to aind log schema 

## 0.1.9.dev1 (2026-06-04)
* Fix datetime timezone comparison bug

## 0.1.9.dev0 (2026-06-03)
* fix `scheduled_time` field to support ISO format

## 0.1.8 (2026-06-02)
* Also data-transfer-service user_email field to SubmitJobRequestV2 because *that's* where it's required

## 0.1.7 (2026-04-03)
* Add upload_notification_email to watchdog manifest to pass to data-transfer-service

## 0.1.6 (2026-01-21)
* Update aind-data-transfer-service post to "v2" endpoints
* Fix data_size_mb: None bug
* Make checksum configurable to {'no_check', 'file_size', 'crc32'}
* Add optional checksum_mode_override manifest key
* Add optional transfer_service_job_type manifest key
* Move CI build to github
* Catch and reload in-place modified manifest files
* Remove old, unused manifest keys
* Make platform field optional
* Make subject_id field either int | str (previously was just int)
* Add linting

## 0.1.6.dev9 (2026-01-06)
* Fix dependencies so pyinstaller build works

## 0.1.6.dev8 (2025-11-24)
* Fix dependencies so pyinstaller build works

## 0.1.6.dev6 (2025-11-24)
* Make `platform` field optional

## 0.1.6.dev5 (2025-11-17)
* Move CI build to github
* Catch and reload in-place modified manifest files
* Remove old, unused manifest keys

## 0.1.6.dev2 (2025-08-13)
* Add transfer_service_job_type manifest argument

## 0.1.6.dev1 (2025-08-13)
* Hotfix to allow checksum_mode_override to be None

## 0.1.6.dev0 (2025-08-13)
* Update aind-data-transfer-service post to "v2" endpoints
* Fix data_size_mb: None bug
* Make checksum configurable to {'no_check', 'file_size', 'crc32'}

## 0.1.5 (2025-04-25)
* Add "extra_identifying_info" manifest key
* Add checksum verification after file transfer
* Change executable name to use underscores
* Increase data-transfer-service timeout to 30s
* Add warning not to set manifest name manually - prefer autogenerated
* Clarify modality_configs in make_standard_transfer_args
* Add optional source delete after successful transfer
* Add truststore to fix ssl errors

## 0.1.5.dev8 (2025-04-14)
* Add "extra_identifying_info" manifest key

## 0.1.5.dev7 (2025-04-14)
* Log deletion success to log server

## 0.1.5.dev6 (2025-04-14)
* Fix directory data deletion bug, update integration test

## 0.1.5.dev5 (2025-04-11)
* Fix data deletion bug

## 0.1.5.dev4 (2025-04-10)
* Add exception info into "could not delete" log

## 0.1.5.dev3 (2025-04-07)
* Fix bad config defaults

## 0.1.5.dev2 (2025-04-07)
* Add checksum verification after file transfer

## 0.1.5.dev1 (2025-03-25)
* Change executable name to use underscores

## 0.1.5.dev0 (2025-03-24)
* Increase data-transfer-service timeout to 30s
* Add warning not to set manifest name manually - prefer autogenerated
* Clarify modality_configs in make_standard_transfer_args
* Add optional source delete after successful transfer
* Add truststore to fix ssl errors

## 0.1.4 (2025-03-06)
* Add transfer_service_args to manifest, to pass to data-transfer-service
* Add IngestedManifest subclass with different type hints for watchdog service
* Make importable library dependencies different than built service
* Don't fail manifest if files are missing, but do send warning
* Add write_standard_file and make_standard_transfer_args methods
* Generate manifest name to match CO asset if not provided

## 0.1.4.dev0 (2025-02-26)
* Add transfer_service_args to manifest, to pass to data-transfer-service
* Add IngestedManifest subclass with different type hints for watchdog service
* Make importable library dependencies different than built service
* Don't fail manifest if files are missing, but do send warning
* Add write_standard_file and make_standard_transfer_args methods
* Generate manifest name to match CO asset if not provided

## 0.1.3 (2025-02-10)
* Process one manifest at a time instead of in parallel
* Add manifest path and traceback to "error loading manifest" log
*  Add configurable robocopy_args, defaults to [ "/e", "/z", "/j", "/r:5", "/np", "/log+:C:\ProgramData\AIBS_MPE\aind_watchdog_service\logs\robocopy.log", ]

    * The "/log+:path\to\file" argument writes the robocopy log
* Add new config "windows_copy_utility" = "shutil" or "robocopy", default "robocopy"
* Catch manifests with empty "modalities" argument and log as error
* Make endpoint post for data-upload-service optional. Set to "null" in a manifest to skip.
* Add "Source file does not exist" error message instead of "could not copy"
* Add robocopy log parsing for detailed error reporting
* Add data_size_mb to logs
* Publish python package to devpi
* Add nonspecific try/catch for run_job so unexpected errors get logged
* Check for file existence on manifest validation
* Disregard files in manifest folder that aren't .yml or .yaml

## 0.1.3.dev7 (2025-02-06)
* Fix bug where data_size was included in manifest dump

## 0.1.3.dev6 (2025-02-06)
* Check for file existence on manifest validation
* Disregard files in manifest folder that aren't .yml or .yaml

## 0.1.3.dev5 (2025-02-05)
* Add big try/except for run_job 

## 0.1.3.dev4 (2025-01-31)
* Add `data_size_mb` computed field to mainfest log tags
* Publish python package to devpi

## 0.1.3.dev3 (2025-01-29)
* Add robocopy log parsing for detailed error reporting

## 0.1.3.dev2 (2025-01-15)
* Add "Source file does not exist" error message instead of "could not copy"

## 0.1.3.dev1 (2025-01-15)
* Process one manifest at a time instead of in parallel
* Add manifest path and traceback to "error loading manifest" log
* Add configurable robocopy_args, defaults to 
    [
        "/e", "/z", "/j", "/r:5", "/np",
        "/log+:C:\\ProgramData\\AIBS_MPE\\aind_watchdog_service\\logs\\robocopy.log",
    ]
    * The "/log+:path\\to\\file" argument writes the robocopy log
* Add new config "windows_copy_utility" = "shutil" or "robocopy", default "robocopy"
* Catch manifests with empty "modalities" argument and log as error
* Make endpoint post for data-upload-service optional. Set to "null" in a manifest to skip.


## 0.1.2 (2024-11-15)
* Production release
* Move into SIPE's infrastructure and ownership
* Add mpetk - configuration with zookeeper and logging to server
* Add more informative logs to improve transfer process tracking
* Remove "script" argument of manifest allowing arbitrary code execution
* Create manifest directory on app startup
* Add function to test a deployed instance with `aind_watchdog_service.exe --test`

## 0.1.2.dev6 (2024-11-15)
* Add more info in logging
* Add fn to drop test manifest with `aind_watchdog_service.exe --test`

## 0.1.2.dev5 (2024-11-06)
* Tweak logging

## 0.1.2.dev4 (2024-11-06)
* Remove teams alert
* Remove script running
* Fix log_tags bug

## 0.1.2.dev3 (2024-11-05)
* Update log messages

## 0.1.2.dev1 (2024-11-04)
* Add an error log if vast transfer fails
* create manifest directory if it doesn't exist

## 0.1.2.dev0 (2024-11-04)
* Move to gitlab