All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
4.13.1 (2024-11-29)
4.13.0 (2024-11-21)
- Enforce exact byte reading from
Content-Length
header forBoxFile
representation (#1274) (0b45cdb) - Expose
getVersionByID
method onBoxFile
(#1268) (6ea70f7) - make
tryRestoreUsingAccessTokenCache
in Box API connection public (#1272) (50f5a61)
4.12.0 (2024-10-17)
4.11.1 (2024-07-16)
4.11.0 (2024-07-15)
- Add missing fields when update classification template (#1255) (f17f817)
- Fix deserializing permissions for
BoxFile
andBoxFolder
(#1256) (f088448)
4.10.0 (2024-06-06)
- Overload the
getRepresentationContent
method with amaxRetries
parameter (#1251) (d26bd4f) - Support
login_required
,password
,suppress_nofitications
,verification_phone_number
andadditional_info
fields in sign request (#1250) (3ee55b3)
4.9.1 (2024-05-20)
- Bumped
org.bouncycastle:bcprov-jdk18on:1.78.1
andorg.bouncycastle:bcpkix-jdk18on:1.78.1
(#1246) (0557bed)
4.9.0 (2024-05-06)
- Support create empty shared link (#1241) (0c86487)
- Update exception message for get representation content (#1239) (a608f9a)
4.8.0 (2024-02-27)
- allow modifying
BoxAPIRequest
URL (#1236) (eaea019) - Bumped
org.bouncycastle:bcprov-jdk18on:1.77
andorg.bouncycastle:bcpkix-jdk18on:1.77
(#1237) (6c7fe7b), closes #1235
- fix download for empty files (#1231) (0e2230b)
- stop using
SharedLinkAPIConnection
ingetSharedItem()
(#1234) (9f9af8e)
4.7.0 (2024-01-16)
- Add
signer_group_id
for signer in sign request (#1220) (f560db8) - Introduce
IPrivateKeyDecryptor
to allow using custom cryptography provider (#1226) (727e6d7)
4.6.1 (2023-11-02)
4.6.0 (2023-09-28)
- Added protected accessors for trust manager and hostname verifier. (#1206) (0c79d17)
- fix not closing response body (#1208) (ab5e170)
4.5.0 (2023-09-13)
SharedLinkAPIConnection
uses request interceptor (#1203) (b2b6a1d), closes #1200- Update sign template missing enum (#1201) (fcb6657)
4.4.0 (2023-08-29)
4.3.0 (2023-08-11)
4.2.1 (2023-08-03)
4.2.0 (2023-06-21)
4.1.2 (2023-06-14)
- Class cast exception when uploading large file (#1174) (e7d28bd), closes #1173
- Make
SharedLinkAPIConnection
constructors public (#1172) (4d1616d) - Remove invalid Group membership role (#1171) (a5915f9)
4.1.1 (2023-05-16)
- Allow users to disable adding authentication header. (#1167) (3433e5a)
- Logging headers when retrying request (#1164) (e0c3d8e)
4.1.0 (2023-04-24)
- Allow registering custom logger handlers (#1156) (7373d5c)
- Fallback to default value of
maxRetryAttempts
when restoringBoxAPIConnection
(#1161) (2a10e5d), closes #1160
4.0.1 (2023-03-06)
OAUTH_SUFFIX
gets appended twice tobaseAuthorizationURL
(#1148) (3164770), closes #1147- Wrong progress reported to
ProgressListener
byAbstractBoxMultipartRequest
(#1151) (947ded3), closes #1149
4.0.0 (2023-01-17)
The most important change this release includes is the replacement of the HTTP library from a native one to OkHttp which allows SDK to
- Support the HTTP2 version of the HTTP protocol.
- Support proxies that do not use only basic authentication method. For details on creating custom proxy authenticators and an example of NTLM proxy authentication.
BatchAPIRequest
– is no longer supported by the SDKBoxAPIConnection#DEFAULT_MAX_ATTEMPTS
is replaced withBoxAPIConnection#DEFAULT_MAX_RETRIES
BoxRedirectResponse
– was removed and will not be replacedBoxEvent.Type
is replaced withEventType
- Removing deprecated methods from
BoxFile
,BoxFileVersionRetention
,BoxFolder
,BoxGroup
,BoxGroupMembership
,BoxItem
,BoxRetentionPolicy
,BoxTask
,BoxUser
,BoxWebLink
,EventLog
,Metadata
andMetadataTemplate
.
Migration details can be found here.
3.8.2 (2023-01-04)
3.8.1 (2022-12-19)
3.8.0 (2022-11-15)
NullPointerException
when usingBoxSignRequestPrefillTag
(#1121) (73fd5b6), closes #1120- Regenerate JWT ID and retry auth request when JTI claim is rejected (#1110) (420da0f)
3.7.1 (2022-09-29)
3.7.0 (2022-09-20)
BoxCollaboration.getItem()
returnsBoxItem.Info
notBoxFolder.Info
(#1102) (135850d), closes #1101 #1100.BoxCollaboration.getItem()
used to returnBoxFolder.Info
. However, if collaboration was added on a file it would still returnBoxFolder.Info
which will end with throwingBoxAPIException
when doing any API call. If you are getting collaboration item it is best to store it asBoxItem.Info
or check its type and store it asBoxFile.Info
orBoxFolder.Info
.- Add missing constructor to
BoxNotificationEmail
class (#1098) (2534f34)
3.6.0 (2022-09-07)
- Add support for modifiable retention policies & enable deleting retention policy assignment (#1093) (30e2fcb)
3.5.0 (2022-08-26)
- Add
content-type
sign request and response (#1087) (49411aa) - Add
notification_email
toBoxUser
(#1088) (5477223) - Add
redirect_url
anddeclined_redirect_url
to sign request response (#1089) (3921fe1)
3.4.0 (2022-08-10)
3.3.0 (2022-07-01)
3.2.1 (2022-06-10)
3.2.0 (2022-05-23)
3.1.2 (2022-03-22)
- Allow using
As-User
header with CCG Authentication (#1031) (b0c2389) - Fix retry logic when
Retry-After
header is present (#1033) (05224c4)
3.1.1 (2022-02-28)
3.1.0 (2022-02-17)
- Added support for Client Credentials Grant authentication method (#1002) (9cfcaff)
- API to extend disposition date on a file (#1001) (f3f6b60)
- Deprecating
indexName
when executing metadata query (#1000) (c20dbbf)
3.0.0 (2022-01-17)
- Changed
BoxFileVersion
class and removedfileVersion
field (#978) - Removed deprecated API
BoxCollaborationWhitelist
replaced withBoxCollaborationAllowlist
,BoxCollaborationWhitelistExemptTarget
replaced withBoxCollaborationAllowlistExemptTarget
(#969) - Dropping Java 7 support (#962)
- Downgrading
bouncycastle
libraries to 1.57 (#942)
- Add
typeName
toBoxEvent
that contains name of the event, even if it is not mapped toBoxEvent.EventType
(#979) (b30f61f), closes #968 - Add new optional
description
parameter to theretention_policies
endpoint andstart_date_field
to theretention_policy_assignments endpoint
. (#967) (0aa4ff4) - Adding
BoxFile#getVersions(String... fields)
to allow users to specify what information they want to extract. Fixes #946. (#947) (a2eb638) - Missing
eventTypes
fromBoxAPI
Documents. Fixes #974 (#975) (2c69360) - Removed deprecated API
BoxCollaborationWhitelist
replaced withBoxCollaborationAllowlist
,BoxCollaborationWhitelistExemptTarget
replaced withBoxCollaborationAllowlistExemptTarget
(#969) (2fd4d6f)
- Changed
BoxFileVersion
class and removedfileVersion
field (#978) (8c39451) - Changed SDK loggers name to
"com.box.sdk"
, fixes #638 (#950) (443c230) - Date parsing error when
BoxSignRequestPrefillTag
created with date value. (#970) (cc2c8da) - Fix sending limit param in
EventLog
(#977) (96bdccc) - Fixed
NullPointerException
when empty metadata used on BoxFile orBoxFolder
(#918) (#945) (68bc3c5) - Fixes issue (#951) error when deserialising sign request (#952) (070bdc5)
- Dropping Java 7 support (#962) (953ad78)
- Downgrading
bouncycastle
libraries to 1.57 (#942) (26aaed5)
- SDK support for new GET /events stream_type: admin_logs_streaming (#938)
- Adding BoxDeveloperEditionAPIConnection#getUserConnection to indicate that we can use this connection for managed users or app users (#940)
- Fix for deprecated enums still being used (#931)
- Add support for marker-based paging in BoxFolder.getChildren (#927)
- Upgraded minimal-json to v0.9.5
- Upgraded jose4j to v0.7.9
- Adding Gradle wrapper in version 4.0.1 (#928)
- Fix for infinite recursion (#924)
- Fix unable to set Vanity URL on
BoxSharedLink
for BoxFile and BoxFolder (#925)
- Replace
submaster
GroupMembershipRole withcoadmin
. ReplaceMASTER_INVITE_ACCEPT
andMASTER_INVITE_REJECT
withADMIN_INVITE_ACCEPT
andADMIN_INVITE_REJECT
. (#907) - Add
tracking_codes
to create User API call (#910)
- Fix
url
forBoxFileRequest.Info
object (#906) - Attempt to fix thread locking issue on refresh of access token (#912)
- Restore methods for Execute Metadata Query, which were removed in (#890), and mark them as deprecated (#905)
NOTE: Due to the benign nature of the "breaking change" below, we decided NOT to increment the major version for this release. There should be no customer impact due to this change.
- Update execute metadata query to match API response (#890)
- NOTE: This change removes a method without deprecating it. It was not possible to use the method correctly at all, because the underlying service no longer supported it.
- Remove or deprecate insensitive language ([#889])(#889)
- Add support for
is_external_collab_restricted
parameter for User (#896) - Add configurable permissions support for
GroupMembership
(#897) - Add
SHIELD_JUSTIFICATION_APPROVAL
event type (#898) - Add ability to get files under retention for assignment and file versions under retention for assignment (#899)
- Add
TASK_UPDATE
,FILE_VERSION_RESTORE
andADVANCED_FOLDER_SETTINGS_UPDATE
event types (#902) - Add SignAPI support (#904)
- Add setters for
BoxLegalHoldPolicy
(#885) - Add setters for
BoxTaskAssignment
(#886) - Add setters for Group Membership and Web Links (#887)
- Add setters for Webhooks (#888)
- Deprecate
BoxFile.getThumbnail
in favor ofBoxFile.getRepresentationContent
(#891)
- Add file request support (#869)
- Fix
BoxWeblink
deserialization (#881)
- Add offset and limit parameters to
BoxFolder.getChildren
(#861)
- Fix bug with updating tracking codes (#857)
- Fix for cross-enterprise collaborator calls to updateMetadata on files
- Add support for
copyInstanceOnItemCopy
field for metadata templates (#850) - Add support for more fields in
BoxCollaborator.Info
(#843)
- Update
getAllGroupsByName()
to use documented parameter (#851)
- Fix bug that occurred when downscoping a token for a Box folder (#832)
- API request creation errors are now retried with the same automatic retry logic as 429 and 5XX response errors (#828)
- Fix bug with setting the unshared at date for a shared link (#819)
- Add zip functionality (#825)
- Add
fields
parameter for metadata query (#826)
- Add ability to get groups by name with fields option (#789)
- Add shared link downscoping (#785)
- Deprecate the use of float for Metadata values, in preference of the underlying value (double) (#811)
- Add iterator support for group collaborations (#813)
- Add ability to set the filename when uploading a new version of a file (#810)
- Add support for the classification field for Files and Folders (#809)
- Add support for setting Tracking Codes (#766)
- Fix issue for
getIsExternallyOwned()
for Files and Folders (#808)
- Add support for the uploader display name field for Files and File Versions (#791)
- Fix path parameter sanitization (#797)
- Fix retry logic (#787)
- Retry for 400
invalid_grant
error in authentication requests (Clock Skew) - Honor Retry-After header, if present, by waiting for the time specified in the header before retrying
- The concept of setting / getting "Maximum API Requests" has been deprecated in favor of "Maximum API Retries" to more clearly show the number of times a request will be retried after an error response is received.
- Retry for 400
- Add ability to set expiration date for a collaboration (#788)
- Add path parameter sanitization (#790)
- Add preflight check before chunked uploads (#782)
- Check that part was successfully uploaded for large file uploads before retrying for 500 errors (#781)
- Fix bug with premature disconnect when renaming files and weblinks (#779)
- Add metadata to each item returned by a metadata query (#778)
- Fix formatting bug for Java Logger
- Improve date / time parsing for responses
- Fix Authentication Request Retries
- Throw exceptions for setMetadata on Files and Folders for non-409 errors
- Added Metadata Query support
- Added marker based pagination for get users methods
- Added enum action option for completed in Box Task class.
- General doc changes.
- Deprecated Batch API functionality.
- Added support for Task completion_rule
- Added missing fields for File Version: trashed_by, restored_at, purged_at, purged_by.
- Added support for chunked uploads with file attributes.
- Added support for replace in multi-select metadata for files and for folders
- Improved getting started with JWT authentication docs that can be found here
- Added support for removing shared link and fixed an issue with setting null for shared link field on BoxItem.
- Added support for additional fields for Box files, folders, and web links.
- Added support for retrieving is_external_only field for Box Files and Folders.
- Added support for retrieving a string type action for tasks. Please use getActionType() going forward instead of the deprecated getAction().
- Added support for setting can_owners_invite field Thank you @Band-Aid for you pull request! Greatly Appreciated.
- Fixed a bug where chunked upload was not populating the correct part size for upload part.
- Added support setting metadata.
- Added support for sorting folder items retrieved from a folder by ascending or descending order.
- Fixed a bug where the SDK could throw when parsing JSON containing dates using the Zulu timezone format
- Added
action_by
field to enterprise events stream.
- Added support for sorting results returned from Box Search
- Added ability to attach a file description upon file upload
- Fixed a bug where BoxMetadataCascadePolicy.forceApply() would not return correctly.
- Added ability for user to retrieve an avatar) for a specified user.
- Added invite_email field to collaboration object.
- Added is_collaboration_restricted_to_enterprise field to folder object.
- Added status field to task assignment object.
- Added ability to retrieve fields for
BoxFile#getTasks()
- Fixed bug where offset based paging would not return correctly.
- Upgraded dependencies: jose4j to v0.5.5, and bouncycastle to v1.60
- Added functionality to allow content streaming to Box through outputstream. Thank you @gajarajkalburgi for the pr!
- Added
getOptionsObjects()
onMetadataTemplate.Field
which returns both key and type. - Added functionality for
BoxItem#getType()
for BoxItem. - Added functionality for
BoxAPIConnection#BoxGlobalSettings()
andBoxAPIConnection#BoxGlobalSettings()
as well as getting and reading the timeout for the connection. - Added functionality for
BoxGlobalSettings#getMaxRequestAttempts()
andBoxGlobalSettings#setMaxRquestAttempts()
- Fixed a bug where
BoxLegalHoldPolicy#create()
was not setting the correct legal hold policy duration.
- Fixed a bug where the specified headers for batch requests were not being sent.
- Fixed a bug where too many TCP connections were being opened. Thank you @pmatte1 for implementing this fix!
- Added support for Metadata Cascade Policy
- Deprecated the moveFolderToUser() for Box Users. We encourage users to use transferContent going forward because idiomatically it is more correct.
- Added functionality to allow users to set passwords on shared links for Box files, folders, and web links.
- Fixed wrong redirect for two links in the
Getting Started
andQuick Test
section of the README.
- Fixed a bug where customers had issues with large file uploads because they fail to parse the Retry-After header from the commit response. Reason being headers storage/lookup was case sensitive.
- Added better exception handling for JSON parse in response exception.
- Fixed a bug where uploadNewVersion() was returning an empty object.
- Fixed a bug where multiple As-User headers could be set.
- Added support to test update for multiselect field on metadata
- Added support for enterprise admins with Box Zones purchased to have support for Box Storage Policies and Box Storage Policy Assignments
- Added support to allow users to work with multiselect metadata
- Added
getLogin()
method for the "login" field on the "accessible by" for BoxCollaboration.Info class.
- Fixed a bug where the the private key password should be passed into
setPrivateKetPassword()
instead of the private key. A big thank you to breach10ck for their pull request! - Added an additional check to ensure that the request properties on the request object is not null in the
toString()
method - Added support to fetch the content of the generated representation after it has been generated
- Improved error messages for API response errors to allow for better debugging.
- Added support for assigning Retention Policies to Metadata Templates
- Added
CONTENT_ACCESS
to event type enum
- Added support for user tracking codes on the user object.
- Fixed a bug where JWT authentication would fail due to improper date parsing.
- Added support for setting custom headers on API connection. This allow for setting As-User support and suppressing notifications support.
- Changed default JWT expiration window to reduce chances of error.
- Added support for retrieving a metadata template by ID
- Added support for allowing the user to retrieve specific Collaboration fields on a Collaboration object
- Reduced the number of API calls that the
EventStream
makes to fetch new events, which should help users who are running into rate limit issues. - Force support for TLSv1.1 or higher when available to improve the security of connections to the Box API
- Add randomized jitter to the exponential backoff algorithm used by the SDK to improve the success rate of retried requests.
- Added support for getting and setting the
can_view_path
field on a collaboration object. - Added support for getting and setting the
tags
field on files and folders.
- Fixed an issue where all types of metadata values were being coerced to Strings. This change deprecates
Metadata#get()
in favor of type-specific methods likeMetadata#getFloat()
or a genericMetadata#getValue()
, which returns aJsonValue
object that represents any JSON type. See the file metadata or folder metadata documentation for more information.
- Fixed ability to notify users or groups regarding file collaboration or folder collaboration
- Added OAuth2 token creation event types
- Added support for inviting a user to another Box Enterprise
- Fixed an OutOfMemory error in large file upload by capping the maximum number of parts that are uploaded concurrently
- uploadLargeFile now returns a BoxFile object
- Fixed chunked upload for Box Files greater than 2GB
- Perform modified retry on JWT auth for when the local clock and the Box Server clock are not aligned as well as if the JWT ID has already been consumed
- BoxFolder.search has been deprecated in favor of BoxSearch.searchRange
- Add optional is_confirmed paramater for adding user email alias
- Added support for Metadata Template Delete
- Added option to pass file SHA-1 hash for upload integrity
- Added support for Terms of Service endpoint
- Fixed missing webhook triggers
- Fixed missing event types for events enum
- Added modified_at timestamp to BoxComment.Info
- Added support for Collaboration Whitelists endpoint
- Added additional check for
PrivateKeyInfo
inBoxDeveloperEditionApiConnection
- Added ability to set connect and read timeout globally
- Added method for getting file representations
- Changes to Representation object
- Added support for Representations endpoint
- Added support for Batch
- Added support for Unified Metadata
- Added support for Recent Items endpoint
- Added support Get All Groups By Name endpoint
- Added support for Token Exchange
- Support for multiput upload. New methods in BoxFolder and BoxFile support multiput upload for better performance and reliability for large files.
- Single file collaborations. The BoxFile class now supports sharing individual files.
- Automatic configuration for JWT auth. The Box Developer console now lets you download a JSON file of your JWT app configuration settings. You can import this file into the Java SDK to easily configure your app.
New API Endpoints:
Legal Holds Retention Policies Create Metadata Template Get All Metadata on File Get All Metadata on Folder Get Enterprise Metadata Templates Update Group Watermarking Webhooks V2 WebLinks Collections BoxGroupMembership with for Paging Enterprise Device Pins
New Features:
Transactional Authentication. Support for Box's new Transactional Auth APIs. Upload file versions with SHA1. A file's SHA1 can be passed in to BoxFile.uploadVersion(...) when uploading new versions. Get effective_access for shared links. The effective_access field is accessible through BoxSharedLink. getEffectiveAccess(). Added additional Event Types. The TASK_ASSIGNMENT_COMPLETE, TASK_ASSIGNMENT_UPDATE, TASK_CREATE, COMMENT_DELETE types are now included in the BoxEvent class.
This release includes improvements to token caching for App Users and support for additional API endpoints.
New Features:
- App Users token caching. A token cache can now be specified in BoxDeveloperEditionAPIConnection. This allows for improved performance when using App Users authentication.
- Support for retrieving download URLs. The BoxFile.getDownloadURL() method allows for retrieving a direct download URL to a file.
- File thumbnails. The BoxFile.getThumbnail() method allows for downloading the [Thumbnail](https://github.com/box/box-java-sdk/blob/main/doc/files.md#get-thumbnail) for a file.
Bug Fixes:
- Getting info for a file could crash when there's no preview. Previously, an exception would be thrown if BoxFile.getInfo (BoxFile.ALL_FIELDS) was called and the file didn't have a preview available.