Changelog
# 2.6.0
# Features
-
Introduced the ability to set a custom thumbnail for non-image assets
Added a new endpointPOST:/assets/{{assetId}}/thumbs
which allows to upload an image that would become a custom thumbnail of the asset. -
Introduced Private Categories
The feature will give administrators the ability to mark certain categories of assets as private, restricting access to its assets to selected users or groups, adding an additional layer of control over content sharing.
# Bug fixes
- Updated dependencies
# 2.5.0 (01.08.2024)
# Features
- Introduced Permissions feature:
Permissions enable fine-grained control over user access to specific features and actions. By assigning permissions, admins can regulate user interactions with assets, categories, and folders.
Permissions introduce control over:- Accessing a Category
- Creating an Asset
- Deleting an Asset
- Modifying an Asset
- Modifying Asset Metadata
- Creating a Folder
- Modifying a Folder Metadata
- Deleting a Folder
# Bug fixes
-
Improved the performance of Workspaces
Workspace information is fetched in a more optimized way. -
Fixed problem with “Forbidden Operation” notification for some pricing plans in admin panel
-
Updated dependencies
# 2.4.0 (29.02.2024)
# Features
-
Introduced Webhooks
By integrating webhooks, third-party apps will receive notifications for various events, including:asset-uploaded
when an asset would be uploaded,asset-modified
when an asset would be modified,asset-overwritten
when an asset would be overwritten,asset-copied
when an asset would be copied,asset-cache-invalidated
when an asset cache should be invalidated,folder-created
when a folder would be created,folder-modified
when a folder would be modified,folder-removed
when a folder would be removed.
-
Introduced the possibility to whitelist file types to interact with.
Introduced a new configuration optionchoosableFileExtensions
which will allow developers to define a list of permitted file extensions, allowing a more controlled environment. Whitelisted file types will be enabled for interaction and selection within the CKBox, customizing the behavior ofassets.onChoose
. -
Improved Image Editor
Image Editor will suggest a new filename when saving an image as a new file, enhancing user experience.
# Bug fixes
-
Improvement of the overall performance.
-
Enhancements to improve connection stability.
Addressed and resolved potential issues that may have led to connection disruptions.
# 2.3.1 (07.12.2023)
# Bug fixes
- Improved behavior of maximized mode
Fixed issue where it would be possible to scroll the content underneath the maximized window.
Fixed page elements sometimes being rendered on top of the maximized window.
# 2.3.0 (06.12.2023)
# Features
- Allow editing external images in the standalone image editor.
Recently introduced standalone image editor that is available as a separate component, mounted usingmountImageEditor
method via ckbox package can now handle external images. This expands the editor’s capabilities to edit images from external online sources. The image will be previously downloaded and uploaded to CKBox. After editing, the result will be available in CKBox storage.
Note: CORS restrictions apply. - Introduced a maximized mode.
CKBox’s user interface will be expandable to fullscreen mode using a dedicated Maximize/Minimize button on the top-bar. - Allow to easily open images/pdf files in a new tab.
Images and PDF files will be easily openable in a new tab using the dedicated “Open in a new tab” button on the asset preview.
# Bug fixes
- Improved error handling.
Improved displayingtraceId
details in public errors displayed in the case of potential problems with the application. - Improved JWT validation.
JWTauth.ckbox.workspaces
empty array validation was added.
# 2.2.0 (14.11.2023)
# Features
- Introduced a feature that enables to globally manage environment allowed extensions.
Users with thesuperadmin
role will now be allowed to control the allowed extensions globally in CKBox throughout all workspaces. SuperAdmins can restrict which files can be uploaded to the environment, and which cannot. If global limitation of extensions is enabled, administrators managing categories will be able to limit extensions in a category only to the selected set of file extensions. - Introduced the Workspace Templates feature.
Workspace Templates letsuperadmin
users streamline workspace initialization. With this feature,superadmin
users gain the ability to control the default set of categories for newly created workspaces. This feature empowers administrators with greater control and flexibility of workspace configuration. - Upgraded the
tokenUrl
configuration option.
ThetokenUrl
configuration option can, in addition to the standard approach with passing the URL to the token endpoint, also be a callback that provides a promisified token. - Introduced the standalone image editor.
CKBox package now exposes a standalone component for image editing only.
CKBox’s internal image editor can be started via themountImageEditor
method, allowing for the edition of a given image asset. - Introduced a basic mobile devices support.
CKBox is now adapted to lower screen resolution devices on some limited scope.
# Bug fixes
- Corrected an error related to loss of workspace access during CKBox runtime.
If a user lost access to the current workspace, CKBox will attempt to redirect them to a new initial workspace. User workspace access is determined based on the info from the token. - Fixed the cache invalidation problem during Workspace management.
Fixed refreshing issues of workspaces list whilesuperadmin
manages workspaces, e.g. deletes or adds workspace. - Resolved the drawer overflow issues.
Fixed the problem of unscrollable content if drawer content exceeds available viewport. - Disabled the auto-scrolling on focus.
Fixed the problem of CKBox autoscrolling issues while focusing on particular elements of CKBox interface.
# 2.1.0 (31.08.2023)
# Features
- Introduced UI for Workspaces feature.
Users with thesuperadmin
role can manage workspaces in a dedicated view within Settings. The UI allows to add, remove, and rename workspaces. - Improve UI for navigation through workspaces.
The active workspace is now displayed even if the navigation bar is collapsed. Each workspace is additionally represented by an avatar. - Save user preferences per workspace.
The following properties will be remembered per workspace: Last used view, last search query, and search history. - Introduced configuration options for minimizing upload dialog and hiding upload components.
Option upload.dialogMinimizeTimeout can be used to configure timeout for minimizing upload dialog after completed upload.
Option upload.componentsHideTimeout can be used to configure timeout for hiding all upload components after completed upload. - Remember the last used workspace.
The last used workspace is saved and CKBox will try to use it the next time it is initialized. If a workspace is removed by then, the first workspace defined in the token will be initialized instead. - Remember the opened / closed state of the properties drawer.
The opened / closed state of the properties drawer is saved and CKBox will use it the next time it is initialized. - Display the modification date in the properties drawer.
The properties drawer contains the modification date of the selected asset. Hovering over either a modification or upload date displays the exact modification / upload time. - Loader is displayed in image editing as long as the image is being fetched.
Until an image is fully loaded any interaction with the feature is disabled. - Focus CKBox dialog on mount.
CKBox dialog will receive focus once it is opened. This is a two-step process: First, the main dialogdiv
will receive focus followed by an active navigation item (if there is one). The mechanism will work only if CKBox is indialog
mode. - Introduced
lark
theme.
The new theme is styled after the default theme of CKEditor 5.
# Bug fixes
- Fixes issues related to copying / pasting assets with the clipboard.
Assets pasting from the clipboard did not work correctly in Safari. The issue has been fixed.
In Firefox the feature will not work at all unless the user enables thedom.events.asyncClipboard.clipboardItem
flag in theabout:config
settings in their browser. - Remove UTF-8 space separators from the stylesheet.
Until now CKBox used a few of such characters. They could be misinterpreted by the browser if the host application was not configured to use UTF-8. - Image resize fields are now part of the form in the save dialog.
Image editing changes can be now submitted with keyboard if one of the image resize fields is focused. - Validate image resize fields in the save dialog.
Image resize fields are now properly validated. The maximum allowed value for a single dimension is 16383 px. In addition, the new size cannot exceed the maximum image resolution for the used CKBox plan. - Ignore the
auth.ckbox.workspaces
field in the token if the user is a superadmin.
Since users with thesuperadmin
role have access to all workspaces, setting the field in the token won’t have any effect. - Add missing translations.
Several messages were missing proper translations, e.g. predefined dates in the search dialog.
# 2.0.0 (28.07.2023)
# Features
- Introduced the PDF preview feature.
PDF documents can be now opened directly in CKBox after clicking theView
button in the toolbar. - Added the
view.onChange
configuration option.
These options allow to define a callback triggered each time the user view changes, i.e. user changes the folder, moves to search results, or to recently used files. - Introduced the
url
andimageUrls
attributes in the asset model of the CKBox REST API.
The URLs to assets and to the responsive versions of images are now returned in the CKBox REST API responses.
# Bug fixes
- Fixed an issue related to applying crop, rotate, and flip to the edited image.
When a crop, rotate and flip operations were applied together on the edited image, after saving changes the server returned an error and the changes were not applied. The issue has been fixed and all the operations can be now applied at once. - Fixed editing BMP images.
After editing a BMP image and saving changes, the produced images were broken which made them unusable. The issue has been fixed and BPM images are now saved properly. - Improved the behavior of the image save modal on lower screen resolutions.
The modal displayed when saving the edited image was not responsive which made parts of its content not accessible. A scrollbar has been introduced to make it possible to navigate if the viewport height is limited. - Improved the validation of tags defined for assets.
If a long tag has been defined for an asset, it resulted in an error response returned from the server. From now on, the length of tags is validated on the frontend side. - Fixed asset selection issues on Safari.
When clicking and holding the left mouse button to select multiple files, the selection box acted unexpectedly at a certain point. - Fixed issues related to using multiple CKBox instances on one web page.
In some cases, multiple CKBox instances on a web page interfered with each other due to the CKBox internal cache not being properly separated. Additional cache separation has been introduced to ensure that instances with differentid
don’t affect each other. - Fixed text overflow issues in the filename conflict resolution modal displayed for copy or move operation.
- Fixed styling of the
dark
theme.
# Breaking changes
- Removed the
assetsOrigin
option.
Previously, CKBox used theassetOrigin
option to assemble the URLs to asset files served through the CDN. This configuration option became obsolete after introducing theurl
andimageUrls
attributes in the asset model of the CKBox REST API. From now all the required URLs can be obtained from the REST API responses. - Removed
navy
andaqua
themes.
The set of built-in themes has been reduced and CKBox currently provides only the default and thedark
themes. - Removed
getUrl()
andgetResponsiveImageUrl()
methods from the asset objects passed to theassets.onChoose
callback.
Both methods become obsolete after introducing theurl
andimageUrls
attributes in the asset model of the CKBox REST API. URLs to different image formats for the purpose of image conversion can be assembled manually using the CKBox REST API. - Simplified
language
configuration option.
Previously it was possible to enter debugging mode for translations by passing an undocumented object with following shape:{ ui: string; debug?: boolean }
. This possibility has been removed and from now on it’s only possible to pass a language code. - Deprecated top-level
openLastView
,startupCategoryId
, andstartupFolderId
configuration options.
From now on they are available onview
config option, e.g.view.openLastView
. Their top-level counterparts will continue to work until the next major version of CKBox.
# 1.6.0 (12.07.2023)
# Features
-
Introduced Image Editing feature.
A newly added image editing feature enables users to perform basic operations on the image files. These operations include:- Cropping: Users can select a specific portion of an image, helping them focus on a particular subject.
- Rotating: Users can rotate an image by 90 degrees clockwise or counterclockwise.
- Flipping: Users can mirror an image horizontally or vertically.
- Resizing: Users can change the dimensions of an image (width and height) by specifying custom dimensions.
After editing an image, users have the option to save it as a new asset or overwrite the edited image file.
-
Introduced Workspaces feature
Workspaces provide a convenient solution for achieving data isolation and user segregation within CKBox. They allow to easily separate storage and data spaces, giving a precise control over assigning specific users, user groups, or tenants to each workspace. This allows to maintain distinct data and storage spaces, ensuring data separation and seamless integration into multi-tenant applications. -
Introduced a mechanism allowing to quickly locate the uploaded file.
Implemented a mechanism to improve the process of finding newly uploaded files within the asset list. It was sometimes difficult to find the files after upload. A Go to file button has been added next to the uploaded file’s name in the upload modal. The button becomes visible when hovering over the file entry, allowing users to quickly locate the file within CKBox. By clicking the Go to file button, the corresponding file is highlighted and the focus automatically moves to it. -
Unified display of location identifiers.
Categories and folders identifiers visible to the administrators are now displayed in a more consistent way. The new identifier label now enables administrators to copy its value to the clipboard by simply clicking on it. -
Added text wrapping in file descriptions.
Previously, file descriptions were restricted to a single line, making it difficult to view the entire content when a long file description was defined for an asset. Now, file descriptions are presented in a multiline input that wraps the text, enabling the full description to be immediately visible.
# Bug fixes
- Improved loading of image thumbnails.
The frontend is now aware of the image processing state, enabling the automatic refreshing of thumbnails when necessary. This ensures that users always have up-to-date and accurate representations of their images. Additionally, thumbnails for broken images are not unnecessarily refetched. - UI improvements.
CKBox user interface is constantly improved, and this release brings some fixes to the UI, such as: removing unnecessary animations for slider component, improving the loading placeholders inside the admin section, and more.
# 1.5.1 (25.05.2023)
# Bug fixes
- Fixed behavior of asset properties drawer in
Recent
category.
In the previous version, when navigating between assets inRecent
category with open properties drawer, some asset properties were not being updated properly.
# 1.5.0 (09.05.2023)
# Features
- Introduced keyboard support for the Move and Copy operations.
It is now possible to use well-known keyboard shortcuts to copy and move files between locations:- To copy files, use Ctrl+C - Ctrl+V (or Cmd+C - Cmd+V on Mac).
- To move files, use Ctrl+X - Ctrl+V (or Cmd+X - Cmd+V on Mac).
- Introduced the
openLastView
option.
Added a configuration option that allows users to control whether the browser remembers the last opened folder and automatically reopens it after refreshing the page. This option is enabled by default so the last location is remembered. - Introduced the
startupCategoryId
andstartupFolderId
options.
Added two new options,startupCategoryId
andstartupFolderId
, allowing to control which location is opened immediately after CKBox starts. When used in combination with theopenLastView
option set tofalse
, so that the last user location is not remembered, CKBox can now always start in the predefined location. - The properties panel now shows the ID of the folder or category.
This allows admin users to conveniently check the ID of the folder or category, which is required by some CKBox configuration options passed through JavaScript. - Added a loader indicating the loading state in the conflict resolution dialog.
When a file with the same name exists in the target directory, a dialog appears, allowing the user to choose an operation: override, skip, or change the name of the copied or moved file. This operation may not be instanteous, so a loader is displayed in the modal to provide visual feedback to the user about the ongoing operation. - Improved the consistency of paddings in the gallery component.
- Updated third-party dependencies.
Upgraded the versions of the third-party libraries to ensure the security and stability of all the dependencies used by CKBox.
# Bug fixes
- File uploads no longer stop if the browser tab is moved to the background.
In the previous versions of CKBox, if a user started uploading a large number of files and moved the browser tab to the background the upload process unexpectedly stopped until the tab was active again at which point it resumed. This issue has been resolved and the upload queue is now processed without any delays even if the tab remains in the background. - Fixed category allowed extensions validation after changes to admin settings.
Previously, extensions validated at the frontend did not immediately recognize changes made in the administration panel. This sometimes caused file extensions to be falsely marked as disallowed during attempts to move or copy files.
# 1.4.0 (12.04.2023)
# Features
- Introduced ability to copy and move assets.
CKBox users can now copy and move assets between folders and asset categories. A new workflow improvement has been added for cases where a file with the same name already exists in the target location. Users will be prompted to choose between overriding, renaming, or skipping the file. - Added folder upload feature.
CKBox now allows users to upload folders with subfolders and files directly using the dedicated Folder upload button or by dragging and dropping the folder into the CKBox workspace area. Empty folders will be ignored during the upload process. - Introduced a new icon set.
CKBox has been updated with a new set of icons based on, or inspired by, the Material Icons set. - Introduced new modal dialogs.
A consistent visual style has been implemented for modal dialogs throughout the application. - Introduced loading state for opened folders.
Folders with expanding content now show a loader next to the folder name, indicating that the folder contents are loading, even on slower connections. A consistent skeleton loader has been added for folder content loading, providing a better user experience on slower connections. - Introduced transitions and animations of the user interface.
New animations and transitions have been added to various parts of the user interface, improving its fluidity and visual feedback. - User interface improvements.
- Popup menus will now close upon pressing the Esc key.
- Default focus outlines have been removed.
- Navigation buttons padding has been adjusted.
- The look of icons in file view mode for non-image files has been changed.
# Bug fixes
- Improved specificity of CKBox’s CSS rules.
The fixed style reset ensures that the internal CKBox styling is not unintentionally overridden by the styles of the embedding application. - Fixed issue with saving asset metadata in preview mode.
Previously, changes made to file metadata in preview mode were not saved if the properties panel had been opened in the main CKBox view. This issue has been resolved.
# 1.3.2 (21.02.2023)
# Bug fixes
- Changed breakpoint for fixed components.
Breakpoint for fixed components was adjusted to use a boundary value of900px
. That will allow some components to use overlay mode on lower CKBox window widths. That should improve the overall UX.
# 1.3.1 (15.02.2023)
# Bug fixes
- Fixed notifications on missing resources.
The notification system was improved to stop spawning notifications on a missing resource (category or folder). The notification did not provide any valuable information and only distracted the user.
# 1.3.0 (06.02.2023)
# Features
- Introduced folders feature.
It is now possible to organize assets into folders under each of the asset categories. All the existing user assets remained in the top-level categories. - Introduced new default light theme.
Light is the new default theme of CKBox. The previous theme is still available under the namenavy
. - Improvements in search.
Clicking on the recent search entry now immediately applies the search. Keyboard support in the search form has been improved too, so it is now possible to submit the search form using Enter. - Added file properties drawer in the asset preview mode.
File properties in the preview mode are currently displayed the same way as in the assets view, using the collapsible drawer on the right side of the screen. - Improvements to the properties drawer.
Properties drawer can now be closed using the Esc key. Additionally, the asset preview inside the drawer now respects the Keep aspect ratio option set in the Display options menu. - The user can now easily access the location of the asset from the search result view. Asset properties now display the location of the file as an active link directing to the folder or category to which the asset belongs.
- Added keyboard navigation support in the categories and folder tree.
- The asset preview mode can now be closed by clicking on the overlay.
- Added a default border around CKBox element.
When CKBox in the inline mode is embedded on a web page, it has a default border to make to component boundaries visible.
# Bug fixes
- Fixed issue that sometimes caused the asset disappear from the search results after its properties have been edited.
- Fixed focus issues in modals.
In some cases, after closing the modal, focus has been not returned properly to the required element. Now focus is properly returned to the element that invoked the action that displayed the modal.
# 1.2.1 (28.11.2022)
# Features
- Introduced keyboard support for the Search feature.
It is now possible to open the search window using standard keyboard shortcuts: Ctrl+F or Cmd+F. - Search results are now remembered between web page reloads until intentionally closed by the user.
- Introduced sorting of the assets in the search results view.
# Bug fixes
- Fixed an issue that caused duplicated upload file requests.
In some circumstances, CKBox sent double HTTP requests with uploaded files. Usually, these unnecessary requests were canceled, but sometimes it resulted in files being uploaded twice into CKBox. - Upload progress is no longer visible if the image resolution exceeds the limits.
The progress bar of the image was unnecessarily visible if the image resolution exceeded the allowed limits. - Fixed stacking of the file preview.
In some cases, file preview might have been overlapped by elements on the host application. CSS rules of the file preview container have been changed to minimize this possibility. - Fixed duplicated entries on the list of recent searches.
- Removed misleading placeholder in the
Tags
field in the advanced search mode.
The placeholder displayed in the tag input component is no longer visible if there are any elements present in the input. - Fixed issue with saving file properties when all tags were removed.
In case the file had any tags defined, it was impossible to remove all the tags and save the file properties. This action resulted in an unexpected server error. - The
Save
button in file properties section is no longer active if there are no changes to save. - Improved formatting of the tooltip displaying the details of search entries on the list of recent searches.
- Fixed styling of the slider in the images configuration inside the administration panel.
- Introduced ellipsis for long search queries that did not fit in the list element on the list of recent searches.
- Introduced ellipsis for long category names that did not fit inside the container on the list of categories in the administration panel.
# 1.2.0 (16.11.2022)
# Features
- Introduced the Search feature.
CKBox will now allow searching the assets by phrase, and / or by custom filters such as:tags
,categories
,extensions
,upload date
andlast modification date
- Introduced the assets tagging feature.
Assets can now be tagged for a better user-personalization. Tags can be used for searching the assets by tag name. - Introduced the assets preview feature.
CKBox introduces the full-screen preview of the asset image. This will allow for inspecting the asset in more detail. - Introduced the drawer component.
The drawer component will now display asset properties in a more contextual form. The drawer will expand from the right side of the interface giving the user quick insight into the asset’s metadata. - Introduced the checkbox assets selection mechanism.
The assets can now be selected using a checkbox button on the asset tile. - Added plan limits validation before uploading the file.
CKBox now validates the plan limits applied to a given subscription to prevent uploading too large files. The upload doesn’t start if the file exceeds the size, or megapixels limit. The user is notified with the right context message. - Added the loading state to the button component.
The button component now has a newloading
state. That is used in various interface places to give the best visual feedback for async actions. - Added the upload dialog animation on minimize / maximize.
The upload dialog is now animated while minimizing or maximizing. - Improved the accessibility of dialogs.
- Introduced active state to the buttons.
Buttons can now hold anactive
state that allows creating a toggle button. - Introduced the “Powered by CKBox” credit link.
The free plan subscription will now have a “Powered by CKBox” credit link visible at the bottom of the navigation panel. That is only a thing of the personal plan, and neither the Starter, Premium, or Pro plans have this link.
# Bug fixes
- Fixed bugs related to file selection.
Asset checkboxes now use different stacking contexts to prevent issues and conflicts with the mouse and keyboard selection. - Introduced minor fixes for navigation panel.
Some layout fixes regarding the navigation panel have been introduced. Those include preventing the resized handle from slipping and adjusting the styling. - Fixed the behaviour of the toolbar.
These fixes include adjusting the padding of the action items, disabling label wrapping for buttons, and fixing the behavior of the elements during navigation bar resize. - Fixed minor issues in the upload dialog.
Previous upload dialog size could cause problems in different language versions. The dimensions of the upload dialog are now larger, and the overall UX of that component has been improved. - Fixed issue related to thumbnails alignement.
- Improved asset selection mechanism using mouse area selection, and keyboard selection.
The mouse and keyboard events handling has been improved and integrated with the new checkbox selection feature. - Fixed stacking context of resize handles.
- Fixed rendering issues in React SSR sample.
The React SSR (Next.js) integration sample now uses different Webpack configuration to prevent the splitting of@ckbox
packages into separate cache groups. - Fixed broken links in end-user docs.
# 1.1.0 (13.07.2022)
# Features
-
Users of commercial plans now have access to the REST API.
-
CKBox now displays a more verbose error when the token validation fails on the backend side.
-
Assets can now be quickly chosen by double-clicking on the asset thumbnail.
-
CKBox now supports keyboard shortcut mapping for deleting assets compatible with macOS. It’s possible to delete assets using Delete or ⌘ + Backspace.
-
CKBox version is now available from the global
CKBox
object viaCKBox.version
. -
Added JWT token lifespan calculation based on the
exp
field.If the
exp
field is present in the JWT token obtained from thetokenUrl
, CKBox will refresh the token only if it’s about to expire. -
CKBox now validates application configuration and fails fast if
serviceOrigin
is provided in a wrong format.
# Bug fixes
-
Fixed style cascading from the host application.
The fixed style reset now prevents a situation when the host app may influence internal CKBox styling by unintentional CSS overrides.
-
Fixed limits in Personal plan.
After exceeding the storage limit of the Personal plan, it is no longer possible to upload any new files. After exceeding the bandwidth limit, files will no longer be served from the CDN.
-
Fixed counting the bandwidth.
The used service bandwidth was not counted properly and in some cases, it remained at 0.
-
Fixed initial dialog dimensions if they become invalid in the current viewport.
Previously, CKBox didn’t check if the dialog became unusable due to viewport changes. This could lead to situations when the lastly saved display settings (size, position) of the CKBox dialog become invalid due to incompatibility with the current viewport e.g. dialog outside the visible viewport.
-
Fixed the default navigation when opening the CKBox.
Previously when the CKBox was opened for the first time, the first category on top was the
Recent
category. Now CKBox is opened with the first user-defined category. -
Fixed dialog header styling issue.
Only the upload dialog uses a thicker header now.
-
Using icons instead of text in translation-sensitive UI parts.
In order to make the upload dialog look better in languages where “Abort upload” translates to a long string, we now use icon instead of text.
-
Fixed missing default categories in 30-day trials.
Website environments created for 30-day trials did not have the default categories (Files, Documents, Images) created at the start.
-
col-resize
cursor is displayed all the time while resizing the navigation bar. -
Fixed missing translation key warning for asset deletion dialog.