TACTIC 4.5.v01



Client API Changes
get_paths() API method is now passing through the process kwarg properly

Bug Fixes

double quoted table name in Sqlite implementation calling of PRAGMA table_info()
fixed MySQL working only with the default 3306 port, and ignored port set in tactic-conf.xml
fixed a typo in workflow WorkflowDependencyNodeHandler
made Linux service stopping take water_folder and job_queue service into account if applicable
only clean up watch folder if it exists
added upn to Login.create()
skipped sthpw project when initializing the scheduler trigger that runs on a user-defined interval
updated monitor_dev.py to run in init mode followed by monitor mode so it runs more reliably in Windows
fixed workflow test by disabling revise test on progress in the meantime
added a new Collection and updated File Browser (RepoBrowserWdg) Layout
added check for parent collection keywords existence first
fixed stacktrace by declaring the child_codes variable on delete if collection has no keywords
added handling of non-ASCII chars in collection user_keywords entry
added handling of None or some invalid json string in keywords data for child_keywords_data
made the Behave as Pending works with the builtin trigger that sets a task to Pending when previous task is Complete
added try/except to TaskElementCbk for jsonloads which tends to error out with subsequent run after a trigger error
added proper feature disabled message when saving a site wide workflow
updated the pipeline with name (code) in PipelineEditWdg
fixed the bug so that when saving a pipeline in Configuration page, it should retain the process type and x,y pos instead of turning every process back to manual type
made TaskElementWdg work with displaying sobjects with no task but the pipeline has misc processes like Progress, hierarchy and dependency
prevented internal signal from TaskStatusChangeTrigger from setting the current task status again
added handling of filename rename in the repo, and then update path keywords
added condition to handle spoofed upload where field_storage is just a string in HTML5 Upload
renamed single mode as search_key mode
changed FileCheckin() call to server.simple_checkin(mode=move) so they can create icons by default if applicable
only show manual and approval node for Add Initial Task creation UI
ensured JSLocker() is only run if the system has PyV8
let ProcessListenTrigger run even after a progress node has reached complete before
GlobalSearchTrigger: Added asset name in extraction of path keywords.
fixed keyword extraction to handle pure capital letters
added condition to detect if 1 day overdue so it displays the correct message
added guest access for API.
fixed the typo in variable output in TriggerCreateCbk
modified TaskDaysDueElementWdg so that it properly reflects the correct number of days until due and when due and overdue
removed the outdated link between mode and simple_search_mode in ViewPanelWdg
change the displayed name beside the checkbox as the actual Display Name of the groups... if no groups are found, it will display the login_group to prevent displaying a blank space.

New Features

new image for sobject chart doc
updated job_queue service so that if enabled,  it would start and end with the main tactic service
added get_temp_dir() to new installation for __init__.py in tacticenv
if a test request is non-responsive, kill the TACTIC thread and let it respawn
improved login_user_without_password by adding search for existing ticket
improved Windows Service reliability
updated IngestUploadWdg by adding project filter to process list.
In Manage Plugin, extended replace_variable feature for config/process used for pipelines
added in defaults to set login group column if name is set
modified insert and edit views for Login Group so that both refer to name column
set the pipeline name of task status pipeline using code on creation
added pipeline name in the task status pipeline select in Project Workflow task status property window
moved RadialProgressWdg to nearby TaskElementWdg since it is being used by it.
improved Trigger to run Python script on task status change 
updated RepoBrowser to maintain view_state on refresh
updated RepoBrowser with improved UI for renaming files and folders
slight improvement to Project Workflow UI to handle if process_obj does not exist due to imported pipeline
slight improvement to workflow engine in various triggers when pipeline is None
added ingest_custom_view kwarg to ViewPanelWdg
added a ignore_path_keywords kwarg for ingest_wdg to allow users hiding some path keywords , ie. project_code, "ingest", "asset" since ALL assets will have these keywords
added a global trigger that detects change on "relative_dir" and updates searchable keywords
improved custom script path behavior for ThumbWdg
added in a kwarg "update_process" for IngestUploadWdg to allow changing the process of snapshot. update_process is used for when update_mode = true and there's exactly one sobject found
changed show_scale for Collection layout to True by default
improved Ingest UI and command like detection of existing file with the same base name

Database Schema Changes

added name,  is_default to login_group table
added timestamp to change_timestamp
added index to change_timestamp's timestamp column
added parent_type, parent_code, action to sobject_log
added index to sobject_log's timestamp column