FolderShare REST Release Notes

8.x-1.0, 9/17/2019

Initial release.

Requires PHP 7.2+, Drupal 8.7+, and FolderShare 8.x-1.2+

Important changes:

Services:

Bugs fixed:

Move or copy of item into its own parent deletes it.
Fixed. Moving an item into its own parent is not a valid move or copy and it now reports an error.

New features:

REST web services moved to new "FolderShare REST" module.
Optional REST web services have been moved out of the FolderShare module and into this support module. This enables REST services to be updated on a schedule separate from that of the primary module.
REST web services command-line client moved into module.
The separately-distributed command-line client "foldershare" has been moved into the module release in the "client" directory. See the module's help page for examples of its use.
Module has a dedicated help page.
The module has its own REST-focused help page.

Removed features:

REST plugin reset to defaults button removed.
While REST features were in the FolderShare module, a "Restore" button on the administrator settings page would reset the REST plugin configuration to defaults. With the move to a new REST-focused module, there is no longer an administrator settings page. The REST plugin configuration is also so straight-forward that a "Restore" button seems superflous. Default REST plugin settings are discussed in the module's help page.

Client:

New features:

Client "ls -l" column width for permission too narrow.
Permission text is one of "public", "private", "personal", "shared with you", or "shared by you". The column width was 7 characters, and is now dynamic to accomodate the widest permission text.
Client "ls -l" column width for account name too narrow.
Account name text can be as little as one character, or as long as 60 characters. The column width was 8 characters, and is now dynamic to accomodate the widest account name.

Bugs fixed:

Client refers to undefined CURLE_REMOTE_ACCESS_DENIED.
The name is defined by libcurl, but not by the PHP CuRL package. Use of the name has been removed.
Client fails if server module does not have the same module version number.
A new protocol version number has been added that is separate from the module version number. The client checks that the server's protocol version is supported during client-server handshake.
Client does not print an account name in "ls -l" if an item is owned by anonymous.
Drupal's anonymous account is special and it actually has no account name. So, technically, printing an empty account name is correct. But not useful. The client now prints the anonymous user's display name (usually "Anonymous") when the account name is empty.
Client prints some error messages with HTML tags.
Error messages created on the server sometimes include HTML tags because the error messages are intended for display by a browser. For REST, these same messages are returned to the client. The client now strips HTML tags from error messages before printing them.