Overview
This page lists the changes between the DIRECT 5 and DIRECT 6. For a general overview of DIRECT 6 features, please see DIRECT 6 Feature List (upcoming).
Certificate Store and Security Improvements
This update adds custom certificate stores and configuration via the app config and workflow. The documentation and examples should be complete on all the changes listed.
The non compatible changes should only affect users who are loading custom certificates and/or interop dlls which I believe is a small percentage of the users.
Host Changes (not backward compatible)
- Remove certificates directory
- Add thumbprintStore and certificateStore to app.json
Workflow Changes
- Add optional store argument to fileAuthentication (backward compatible, defaults to the app store)
- Add optional store argument to interopLoad (not backward compatible, defaults to the interop store, which in turn defaults to null)
- Add optional store argument to jsonRead (backward compatible defaults to the app store)
- Add optional store argument to aggregate (backward compatible defaults to the app store)
- Add optional store argument to macro (backward compatible, defaults to the app store)
- Add optional authenticate argument to macro (backward compatible, defaults to the https/jwt default behavior, will break in the case of unsecure workflows)
- Add optional store argument to workflowRun (backward compatible, defaults to the app store)
- Add optional store argument to repositoryCheck (backward compatible, defaults to the app store)
- Add optional store argument to repositorySync (backward compatible, defaults to the app store)
- Add certStoreLoad task (new feature) supports loading jwks files or a custom thumbprint format.
Javascript Changes (not backward compatible)
- Add store parameter to jwsVerifyX509
Supporting Documentation
Host
Improvements & Bug Fixes
- Added support for Chromium Embedded Framework 75.1.14 (3770)
- Added debug key press method. While starting the client, pressing and holding CTRL (or CMD on Mac) will produce a verbose debug log on the desktop. (Jira ID: SPTCH-2400)
- Added support for newer version of CEF 3729 (Jira ID: SPTCH-2394)
- Added support for WPAD evaluation on Linux (Jira ID: SPTCH-2401)
- Added ability for WPAD to return multiple proxy URLs. (Jira ID: SPTCH-2398)
- Send SkinWindow.Size and SkinWindow.Move notifications on delay so they don’t freeze up the UI while resizing.
Javascript API Changes
See this document for detailed information on each function.
https://support.solidstatenetworks.com/documentation/direct-6/d6-client-skin-system/host-javascript
Class | New Functions | Removed Functions |
extractFromSkinFile | ||
app | jwsVerifyKey, jwsVerifyX509 | setDebugLogging, setLogExpirationDays, getLogExpirationDays, getConfigJSON |
fileSystem | fileGetSize, directoryIsEmpty, pathResolve, pathFixSlash, pathParseDirectory, pathParseName, pathParseNameWithoutExtension, pathParseExtension, pathConvertToUrl, pathConvertFromUrl | |
httpRequest | getPartialFileName, getAllowProxy, setAllowProxy, getAllowAuthentication, setAllowAuthentication | |
platform | getName, getShortName, getUserName, getDataStore, getFileDataStore, getProcessPath | |
registry | getData, setData | |
skinWindow | getScreenWidth, getScreenHeight, maximize, isMinimized, isMaximized, getCanMaximize, setCanMaximize | |
webGet | authorize | |
workflow | addMacroJson |
Repository
- Optimizations for update paths
- Bake mask into piece queue so it doesn’t have to explicitly mask requests in StorageCopy.
- Only calculate piece padding after piece is required.
- Add FileErase and Erase to storage interfaces.
- Re-write storage cleanup to increase speed and decrease memory usage.
Workflow Engine
Private Keys
Workflow JSON can now have private/secure keys. If the key name begins with # it will not be sent to analytics. Additionally, it can also have private tasks, if the name begins with # it will not be sent to analytics either.
New Tasks
Name | Description |
notification | Emit events through the NotificationCenter |
jsonRead | Read JSON content locally or remotely |
directoryList | Enumerate the contents of a directory |
processList | Enumerate a list of processes |
Existing Task Changes
- xmlRead
- Added a url argument that can specify the url of the xml file to load
- download
- Removed the json and authenticateJson arguments – use jsonRead instead
- Added status variables responseCode, responseVersion, responseMessage and object responseHeaders, active, totalBytes, completeBytes, existingBytes
- Added allowGzip, skipTimestamp, overwriteIfNewer, overwriteIfOlder, maxRetries, and allowHeadRequest argument to task.
- unzip
- Added a password argument for encrypted archives
- Added supported for extracting AES encrypted archives
- programOpen -> processOpen
- Renamed to processOpen, old name should still work.
- programClose -> processClose
- Renamed to processClose, old name should still work.
- programIsOpen -> processIsOpen
- Renamed to processIsOpen, old name should still work.
- Renamed processId parameter to id, old name should still work too.
- queue & aggregate task
- Added totalActions, runningActions, completeActions, currentAction status variables.
- repositorySync
- Added ability to specify remoteId for repository tasks so aliases don’t need to be downloaded.
Improvements & Bug Fixes
- Fixed abort error when queuing up a task that hasn’t had a workflow task queued before.
- Fixed workflows tasks are queued in random order.
- Fixed bug with elevated workflows not properly being detected from unelevated process.
- Add xcache tracking.
Core
- Limit max number of analytics events to 100
- Added checking of code directory code page hashes to macho verification.
- Fixed web request redirection when location is a relative url.
- Don’t set web request no-cache by default.
- Fixed rare bug decoding chunked responses from server.
Skins
- All – Fixed progress value not ever getting to 100%.
- All – Added snxd certificate to thumbprint store.
- All – Added shutdown reason localization.
- Branch – Fixed taskbar progress not being updated.
- Branch – Changed default install directory to user’s downloads folder.
- Branch – Added missing suggestedInstallDirectory to README.md.
- Branch – When user cancels browse for folder prompt, go to shutdown state.
- Downloader/Multi – Added browse for folder screen.
- Downloader/Multi – Added suggestedAppendPath config option to always add the product name at the end when selecting download path.
- Installer – Fixed close/minimize buttons not showing due to rendering issue in WebKit
- Launcher – Rename webGetRedirect.REWRITE with webGetRedirect.RESOURCE to avoid confusion.
- Multi – Fixed items not sorting by priority.
- Store – Fixed pause/resume buttons flashing.