CHANGES
=======

2.20.22
-------

* Saimon/improved file browsing exception handling (#324)

2.20.21
-------

* Changelog update (#323)
* Fix whitespace in SNMP docstring (#322)
* Fix SNMPv3 configuration on Edge Filers (#319)

2.20.20
-------

* Saimon/direct io streamer max workers (#318)
* raise session expired exception instead of not logged in (#316)
* Saimon/add user agent header (#317)
* Add PR Agent workflow
* Update Changelog.rst

2.20.19
-------

* Saimon/ctera direct refactor (#315)

2.20.18
-------

* Saimon/edge alert settings (#314)

2.20.17
-------

* add support to check if dedup is enabled (#313)

2.20.16
-------

* Saimon/copy move many to many (#312)
* Ronerez/edge mapping (#311)
* Ronerez/buckets directupload (#310)
* Update changelog

2.20.15
-------

* Saimon/ransom malware protection (#309)
* error printing edge filer throttling policy rule set to every day, up… (#308)
* Saimon/edge hosts file entries (#307)
* update docs (#306)

2.20.14
-------

* Saimon/support copy move with special characters (#305)

2.20.13
-------

* update changelog (#304)
* when checking for changes, ensure request timeout is higher than the … (#303)

2.20.12
-------

* Saimon/override timeout tcp connect (#302)

2.20.11
-------

* Saimon/discalimer change log (#301)

2.20.10
-------

* Saimon/improve exception mechanism (#300)

2.20.9
------

* Saimon/support webdav listdir exists walk (#299)

2.20.8
------

* update max workers settings for streamer
* Saimon/direct io v83 portal (#298)

2.20.7
------

* Make common Object iterable, add WebDAV propfind  (#297)

2.20.6
------

* support deleting multiple files in one call on the edge filer (#296)

2.20.5
------

* await when browsing global admin

2.20.4
------

* do not instantiate tcp connector before creating an asynchronous loop (#295)

2.20.3
------

* remove logging by default
* Saimon/edge asyncio extensions (#294)

2.20.2
------

* Saimon/refactor filesystem api (#293)

2.20.1
------

* Saimon/ut file browser (#292)

2.19.59
-------

* support user-defined methods executed through an async iterator (#291)

2.19.58
-------

* Sudo Role Fix (#290)

2.19.57
-------

* update task manager for edge and core (#289)

2.19.56
-------

* Saimon/refactor ut (#288)
* Update Portal file browser docs

2.19.55
-------

* Saimon/core search and permalink (#287)

2.19.54
-------

* Saimon/add docs file access (#285)

2.19.53
-------

* Saimon/include postman when enabled (#284)

2.19.52
-------

* Saimon/export postman collection (#283)

2.19.51
-------

* fix docs
* update bulleted list
* update docs
* update master docs

2.19.50
-------

* update docs (#281)

2.19.49
-------

* Saimon/ctera direct docs (#280)

2.19.48
-------

* Saimon/catch-stream-errors-update-notification-service-docs (#279)

2.19.47
-------

* Saimon/raise on session expiration (#278)

2.19.46
-------

* Saimon/update aiohttp to latest (#277)

2.19.45
-------

* Saimon/gzip support (#276)
* change from location to url, catch client payload error on block download (#275)
* Saimon/update previous versions code (#274)

2.19.44
-------

* Ronerez/snapshots support (#273)

2.19.43
-------

* Update types.py (#272)

2.19.42
-------

* update log severity from error to warning (#271)

2.19.41
-------

* configure default byte order to big endian to support earlier py versions (#270)

2.19.40
-------

* remove CBC padding (#269)

2.19.39
-------

* add support for decompressing blocks without the snappy magic header (#268)

2.19.38
-------

* no message
* support listing directories on the edge filer (#267)

2.19.37
-------

* resolve exceptions for chunks with no file identifier

2.19.36
-------

* fixed NoACLs (#266)

2.19.35
-------

* Ronerez/sdk 283 unpin pin recursive (#265)

2.19.34
-------

* move certificate upload after enabling configuration (#264)

2.19.33
-------

* reopen session if closed (#261)

2.19.32
-------

* Saimon/support thread execution (#260)

2.19.31
-------

* Saimon/syslog certificate (#259)
* remove init replication code from setup, unit-tests and docs (#258)

2.19.29
-------

* raise exeption on notifications error (#256)

2.19.28
-------

* startup error check (#255)

2.19.27
-------

* increase the timeout of the management session (#254)

2.19.26
-------

* Saimon/support xattrs cloudfolders (#253)

2.19.25
-------

* Saimon/ctera direct io metadata api (#252)

2.19.24
-------

* allow passing max\_results when getting notifications (#251)

2.19.23
-------

* support obtaining changes using folder ids (#250)
* Saimon/ctera direct improvements (#248)

2.19.22
-------

* support predefined and custom inclusion criteria (#247)
* support adding an S3 bucket using IAM Role Policy (#246)
* Saimon/ctera direct file like api (#245)
* Saimon/add stream support (#244)
* Saimon/build doc error (#243)
* Saimon/ctera direct infra (#242)
* Saimon/ctera direct (#241)
* Saimon/increase ut coverage (#240)

2.19.21
-------

* fix import certificate (#239)

2.19.20
-------

* Saimon/format null values as str (#238)

2.19.19
-------

* Saimon/core smtp (#237)

2.19.18
-------

* Saimon/core ssl export (#236)

2.19.17
-------

* Saimon/use async admin services modules (#235)

2.19.16
-------

* join shared code (#234)

2.19.15
-------

* Saimon/support 78 certificate apis (#233)

2.19.14
-------

* Saimon/add unittests (#232)

2.19.13
-------

* Saimon/portal settings (#231)
* Saimon/add unittests tenant context (#230)
* fix group ut (#229)

2.19.12
-------

* Saimon/add unittests (#228)
* Saimon/logging infra (#226)

2.19.11
-------

* Saimon/bugfix fetch users groups (#227)

2.19.10
-------

* Saimon/generate reports (#225)

2.19.9
------

* Saimon/support permanent delete of deleted folders (#224)

2.19.8
------

* Saimon/connector docs (#223)

2.19.7
------

* Resolve typo

2.19.6
------

* Update docs and event type (#222)

2.19.5
------

* Add remaining docs (#221)

2.19.4
------

* Saimon/async change notifications (#220)
* Remove unnecessary doc lines

2.19.3
------

* Saimon/support delete permanently (#219)

2.19.2
------

* Update ci.yml (#218)

2.19.1
------

* resolve README.rst file error
* update doc requirements and readme to pass doc build

2.19
----

* Saimon/asyncio foundation (#217)

2.18.55
-------

* Ronerez/edge proxy support (#216)

2.18.54
-------

* Ronerez/sdk 219 ransomware protect (#215)

2.18.53
-------

* Saimon/resolve ctera migrate changes (#214)

2.18.52
-------

* Saimon/ctera migrate remote access (#213)

2.18.51
-------

* ronerez/add update schedule to templates (#211)

2.18.50
-------

* Saimon/support collaboration on user behalf (#210)

2.18.49
-------

* Saimon/update docs for s3 (#209)
* Saimon/add ut backups (#208)

2.18.48
-------

* Saimon/add backups (#207)

2.18.47
-------

* Ronerez/s3bucket (#206)
* add readthedocs yaml file (#204)

2.18.46
-------

* support admin path access (#203)

2.18.45
-------

* Saimon/support portal licenses (#202)

2.18.44
-------

* Saimon/pin failure on integer dir (#201)

2.18.43
-------

* Update ci.yml
* add doc dependencies to pass build and update theme
* remove trailing whitespace
* resolve issue with list formatting
* fix docs
* Update ci.yml

2.18.42
-------

* revert to sphinx rtd theme

2.18.41
-------

* Saimon/fix docs (#199)

2.18.40
-------

* Ronerez/key management service (#198)
* fix edge delete (#197)
* Saimon/add directory services unittests (#196)
* Saimon/add unittests (#195)
* Saimon/role based access control (#194)

2.18.39
-------

* Saimon/update base object ref function (#193)
* Saimon/add version to session object (#192)
* Revert "add version to edge session object"
* add version to edge session object
* added devices to reports.py and added testing to test\_core\_reports.py (#183)

2.18.38
-------

* Saimon/immutable objects (#191)
* Update ci.yml
* Update ci.yml
* updates to accommodate py39 and py311
* update patch command for edge users
* Update ci.yml
* Update ci.yml
* Update ci.yml
* Saimon/updates to core cloudfs (#190)
* smich/add ut for core local groups (#189)

2.18.37
-------

* Saimon/add core local group (#187)

2.18.36
-------

* Support setting cloud drive folder quota on creation (#186)

2.18.35
-------

* rename ctera\_migrate to mtool (#185)

2.18.34
-------

* add dedup and ctera\_migrate to omit fields (#184)

2.18.33
-------

* add deduplication object (#180)

2.8.32
------

* Saimon/local dedup (#179)

2.8.31
------

* Saimon/storage classes and evict (#178)

2.18.30
-------

* Saimon/migration tool updates (#177)

2.18.29
-------

* Saimon/sdk enhancements (#176)
* Saimon/migration tool (#175)

2.18.28
-------

* Saimon/migration tool (#174)

2.18.27
-------

* Saimon/server tasks (#172)

2.18.26
-------

* fix for allowing unicode characters in request and response (#170)

2.18.25
-------

* set folder/owner acl (#159)
* CTERA Messaging service (#169)

2.18.24
-------

* cterasdk/core/types.py GenericS3 (#167)

2.18.23
-------

* fix documentation (#166)

2.18.22
-------

* enum.BucketType.GenericS3 (#165)

2.18.21
-------

* Server timeout exception fix (#164)

2.18.20
-------

* Saimon/remove prints (#163)

2.18.19
-------

* Saimon/list search zones (#162)

2.18.18
-------

* update xml parser - deprecated method (#161)

2.18.17
-------

* Update SNMP v3 extensions to support authentication and privacy passw… (#160)
* added support for core/admins.Administrators (#155)

2.18.16
-------

* Saimon/log based alerts (#157)
* Edge-Network-StaticRoutes-get/set/del/clean + UnitTests (#156)

2.18.15
-------

* Saimon/configure advanced mapping (#154)

2.18.14
-------

* Ignore protected-access warning in tests
* Do not deploy to PyPi Test

2.18.13
-------

* Add support for configuring insecure NFS connections
* Allow the caller to limit NFS to specific host

2.18.12
-------

* added FixedBlockSize support param to mkfg() added enum obj

2.18.11
-------

* Support modifying all the NFS configuration values

2.18.10
-------

* Edge Shares - allow the user to pass the UUID when creating the share

2.18.9
------

* Add Edge Sync API to get and set LinuxAvoidUsingFAnotify

2.18.8
------

* Use f-Strings instead of formatting
* Ignore coverage report file

2.18.7
------

* Add LVM array type option (#145)

2.18.6
------

* update find\_attr (#144)
* Saimon/import filer config (#140)
* Saimon/smb protocol version (#141)
* Saimon/backups file browser (#139)
* Saimon/minor infra improvement (#142)
* Saimon/templates scripts cli (#138)
* Saimon/fix pylint (#143)

2.18.5
------

* Saimon/improve ntp config (#137)

2.18.4
------

* Change proto to protocol to resolve Ansible play (#136)

2.18.3
------

* Support modifying syslog server config (#135)

2.18.2
------

* SDK Improvements for Ansible Plays (#134)

2.18.1
------

* Add a method for obtaining the connected domain (#133)

2.18.0
------

* Support Portal Active Directory conn. mgmt. (#132)
* Saimon/update servers (#131)
* Enhancements: (#130)

2.17.3
------

* Change hex computation to be backward compatible with Python 3.6 (#129)

2.17.2
------

* Catch OS errors when loading private key and certificate files. (e.g.… (#128)

2.17.1
------

* Improve SSL mangement: (#127)
* Resolve documentation issues (#126)

2.17.0
------

* Saimon/create array with all drives (#124)
* Address PyLint issues

2.16.3
------

* Edge Share - complete CRUD

2.16.2
------

* Gateway Share - Add APIs for directly managing NFS Trusted Clients

2.16.1
------

* Change replicate\_from to an optional value (#120)

2.16.0
------

* Add NetApp StorageGRID storage type (#119)
* Update GlobalAdmin.rst

2.15.0
------

* Support managing local licenses on an edge filer (#117)
* Saimon/expand template support (#118)
* Saimon/logout if session active (#116)

2.14.1
------

* Agent - Omit internal fields from string output
* Update FileBrowser.rst
* fix: test-requirements.txt to reduce vulnerabilities
* Doc badge should point to latest
* Docs - Add cryptography to the docs requirements file

2.14.0
------

* Add partial support for Portal configuration templates: (#113)

2.13.3
------

* Crypto - Restrict private key permissions

2.13.2
------

* Support enabling SSH daemon (#110)

2.12.0
------

* Support iperf (#108)

2.11.5
------

* Saimon/support blocking sync suspend (#107)
* fix: test-requirements.txt to reduce vulnerabilities

2.11.4
------

* Filer Share - Add get ACL
* Use freeze\_time instead of mocking datetime

2.11.3
------

* Auto include name, group and owner in find method (#103)

2.11.2
------

* Support locating a cloud drive folder owned by a domain user (#102)

2.11.1
------

* Load relevant modules for Agent to allow execution from remote access (#101)

2.11.0
------

* Support sync exclusion rules, update docs (#99)
* Update doc strings (#100)

2.10.0
------

* Add support for storage buckets (#98)

2.9.0
-----

* Add support for Portal antivirus APIs (#97)
* Fix typo (#96)

2.8.0
-----

* Saimon/increase ut coverage (#95)
* Saimon/bug fixes and improvements (#94)

2.7.2
-----

* Saimon/ad connect share csc add ut (#93)

2.7.1
-----

* Fix wrong intialization check (#92)
* Object UID may be single digit

2.7.0
-----

* SDK Improvements (#90)

2.6.0
-----

* Support multi-tier bandwidth throttling (#89)

2.5.0
-----

* SSL Management (#88)
* add description to cloud drive folders (#87)

2.4.0
-----

* Support a reference filter types (#86)

2.3.0
-----

* Saimon/wait for Portal connection (#85)
* Support plan auto assignment rules (#84)
* Replace the github action for getting release tag

2.2.2
-----

* Add support for setting storage quotas
* Update Gateway.rst

2.2.1
-----

* Add support to trust an expired certificate

2.2.0
-----

* Saimon/add copy move functions (#81)

2.1.0
-----

* Saimon/set domain controller (#80)
* Support remote access to devices from Administration context (#78)
* Set Sphinx minimal version to 3.0.4

2.0.0
-----

* Support local authentication using authorization keys (#77)
* Pylint - Disable raise-missing-from warning

1.9.1
-----

* Fix walk, fix docs (#76)
* Update GlobalAdmin.rst

1.9.0
-----

* Allow listing deleted files and folders (#75)

1.8.0
-----

* Apply Provisioning Changes (#74)
* Bug Fixes and UT (#73)

1.7.1
-----

* Hide secret fields (#71)

1.7.0
-----

* Add Folder Group Get

1.6.1
-----

* Portal User Modify - fix name keys

1.6.0
-----

* core/plans - rename 'get' to \_get\_entire\_object, check if retention and quotas is not None instead of verifying instance type core/portals - revert code to rely on plans.get core/users - support modify, add \_get\_entire\_object method update UT update docs
* Remove defaults and incorporate default\_class to CTERAHost Change \_current\_stage() to \_get\_current\_stage()
* Resolve minor Gateway documentation errors
* Support Portal setup and a startup monitor
* Support adding, retrieving and modifying a subscription plan's retention and quotas
* Extract multipart as an HTTP function
* If not passed, get port from scheme

1.5.1
-----

* Adjust transcribe to requests classes

1.5.0
-----

* Support downloading (exporting) the device configuration (#67)
* Support generating an activation code as an end user (#66)

1.4.0
-----

* Hide secrets from logs (#65)
* Support listing tenants (#64)
* Bugfix: allow retrieving public info when not authenticated (#63)
* Support filtering folder groups, cloud drive folders and devices by user (#62)
* core/users (#61)

1.3.1
-----

* CI - Use PyPi-Publish action instead of Deploy-PyPi
* Gateway - Automatically use port 443 for HTTPS

1.3.0
-----

* Saimon/add collaboration (#58)
* fix: test-requirements.txt to reduce vulnerabilities

1.2.1
-----

* Core Users - Allow the caller to set password expiration on user creation
* Fix Teams card text

1.2.0
-----

* Remove build notification
* Add notification to Teams upon release
* Fix Pylint Error
* Saimon/upload filer certificate (#55)
* Add a plan module and support subscribing team portals to plans (#56)
* Allow passing session id instead of logging in
* Add UT for Core File CP
* Add UT for Core File Browser - file access and walk still missing
* Add UT for common/object

1.1.1
-----

* Gateway - Add firmware to omitted list
* Fix typo in object hidden values

1.1.0
-----

* Move deployment into CI
* Create a workflow for publishing on pypi test
* Create GitHub workflow for CI
* File Access - Add optional destination to download APIs
* Add button to trigger action for test
* Increase unit test coverage (backup, volumes and smb modules) (#48)
* Filer - Add firmware upgrade API
* Add edge/cache/is\_enabled unit-test
* Edge Cache - Add is\_enabled method
* Increase unit test coverage (#42)
* File Syslog - method was renamed to get\_configuration
* Add PyPi based badges
* Update Development Status classifier to Production/Stable
* Update Travis file to use project specific token

1.0.0
-----

* Fix travis file

0.9.10
------

* Travis - deploy to PyPi from stable branch

0.9.9
-----

* List the requirements also in docs

0.9.8
-----

* Docs - Fix access to file\_access\_base

0.9.7
-----

* Prevent printing of password
* Groups - Change API to use a type instead of a tuple
* Complete  Gateway and Portal File Access implementation
* Portal - Add base\_portal\_url property
* Update README.rst
* remove m2r since not needed
* HTTP - Use requests instead of urllib
* Portal - fix class type of the files variable
* Shares.set\_acl - fixed docstring to include warning
* Documentation fixes

0.9.6
-----

* Docs - Fix edge cache pin APIs
* Edge Shares - Changes for Ansible
* Portal - Use file url when needed
* Run coveralls only on travis
* Add support for pinning folders (#32)
* Samples - Services Portal Create Directories
* Restore apidoc.template
* Bugfix: re-enable support remote access to Agent devices (#30)

0.9.5
-----

* Use PBR instead of setuptools\_scm

0.9.2
-----

* Fix topic classifier

0.9.0
-----

* Get version using setuptools\_scm
* Expose SDK types to the user
* Remove PYC files that were added by mistake
* Gateway Sample - fix user add call
* Complete directory service module test coverage (#27)
* Setup - update version to release to staging
* Travis - deploy to test from staging branch

3.1.3
-----

* SDK-38 Add APIs in edge modules for Ansible modules
* Update links to new organization name
* Support assigning domain users as owners of folders (#22)
* Add the ability to set existing shares to use win-acls, block file types and disable the first time wizard (#25)
* Resolve attribute doesn;t exist error for named tuple. Instead, read folder name and owner from tuple (#24)
* Add unit tests for edge modules. Add RAID level enumerator (#23)
* Add edge unit tests for modules (#20)
* Add unit tests for converting objects from and to XML and JSON (#19)
* SDK-37 Edge Users - Add modify API
* Update README.rst
* Add badge from snyk.io to README file
* Unit Tests - Environment definition and initial tests
* Travis - Build only master and version tags
* Saimon/add retrieval functions (#16)
* toxml - Treat bool type differently
* Create new Samples

3.1.2
-----

* Fix PyPi Test URL
* Travis deploy only from master
* Travis - allow building on all branches
* Prepare SDK for python packaging
* Doc - fix typo in Gateway.rst
* Add build dir to gitignore list
* Remove dist files from repo
* Allow the user to redirect the logs to a file using environment variables
* Docs - additional fixes
* Edge Services - keep track of trusted connections
* Provide the SDK user access to the Enums
* Gateway - Create first user fails
* Travis - Add notification to Teams channel
* Could not create first admin account. Should not enforce type of HTTP request
* CloudFS - portal.files is already an object
* Update README to reflect Travis Status
* Intgrate with Travis
* Move build environment to use tox
* Documentation - base the documentation on python documentation strings
* Add named tuples for adding and remove access control entries. Added protection against None values. Added documentation for all class methods
* [SDK-32] add shares.set\_acl() function documentation
* [SDK-32] - added shares.py/set\_acl() , Shares.\_invalid\_ace() to raise input errors in ACE format
* Move login/logout to CTERAHost
* mklink - print the file's relative path
* Portal - Update current tenant in session upon user changes
* Fix remote access url resolution
* Change main classes to hold module instances instead of implementing wrapper methods
* Provide information on building the package using skipper
* Run Flake8 static analysis tool
* cteraclient use default return function and override only when needed
* cteraclient uses http client, it does not extend it
* Run PyLint static analysis
* Create a docker based build environment
* Initial Commit
