Skip to content

v3.0.0

Choose a tag to compare

@szll szll released this 23 Sep 14:28
· 11 commits to master since this release

3.0.0

  • Fixed high CPU usage of the frontend process caused by the extension config watcher
  • Fixed high CPU usage of the backend process by only watching the steps of attached extensions
  • Updated to chokidar 5, which no longer needs the native fsevents module on macOS
  • Fixed backend start failing when a previous session ended unexpectedly — leftover hooks are now cleaned up automatically before connecting and on shutdown
  • Added context.encrypt for backend extension steps, encrypting payloads locally with the application's public keys so plaintext never leaves the development machine
  • Encryption keys are loaded once during backend start; the available key aliases are listed in the start log
  • backend start keeps working when the application's backend does not support encryption keys yet — context.encrypt then reports why no key is available instead of blaming the key alias
  • Errors returned by extension steps (callback error or rejected promise) are now logged as a warning in the SDK console, including the error's stack trace (or message as fallback); previously they were only visible in the pipeline response
  • Added context.user.login(userId) and context.user.logout() for backend extension steps — they behave exactly like the platform's auth step: the user is logged in or out on the current pipeline request, and steps running afterwards see the new session (e.g. context.storage.user becomes available after a login). login only works in trusted pipelines and rejects elsewhere; logout is always available
  • context.user.login()/logout() return a promise and reject with a clear error when the login/logout fails or the application's backend does not support it yet
  • Failing calls of context.app.getInfo, context.device.getInfo and context.user.* now report the actual error to the step; previously the step silently hung until it ran into the step timeout
  • Added extension version [extension] [tag] command: sets the version in extension-config.json, commits it and creates a git tag with a v prefix (e.g. v1.2.3) — like npm version. Without arguments it asks for the extension and the new version interactively. If the extension is not a git repository, the version is still written to extension-config.json and the git step is skipped with a warning; a dirty working tree, an existing tag or a version lower than the current one aborts the command

Breaking Change

  • Node 20.19 or newer, or 22.12 or newer, is now required