pos-cli deploy --dry-runis now enabled for all users. Validates the release on the server and reports which files would be upserted or deleted without applying any changes.pos-cli check run -c, --check <name>— filter linter output to a specific check by name (repeatable flag; validates names and lists available checks on mismatch)
pos-cli deploynow displays warnings returned by the server alongside deploy resultspos-cli deploy --dry-runnow supports assets: generates an asset manifest and reports which assets would be added/removed without uploading thempos-cli deployreports asset changes (added/removed) in the deploy summary
- Fixed
pos-cli env refresh— refactored token refresh intolib/envs/refreshToken.jswith correct error handling - Fixed
pos-cli constantscommands (list,set,unset) broken by ESM named-export migration - Fixed
pos-cli archivebroken by ESM named-export migration
- Node.js 22+ required (up from Node.js 18)
pos-cli modules downloadremoved — usepos-cli modules installinstead. The--force-dependenciesflag is not carried over; install/update always downloads all dependencies.- CommonJS to ESM migration — entire codebase migrated from
require/module.exportstoimport/export - Test framework migration — migrated from Jest to Vitest
- Yeoman generators: If you have custom generators using
yeoman-generator, they need to be rewritten for the v7.x update:- No kebab-case in option names (e.g.,
skip-install→skipInstall) composeWith()is now async (useawait)- The
install()action has been removed; useaddDependencies()instead
- No kebab-case in option names (e.g.,
- Express v5 route syntax: Routes using wildcards have changed from
/*to/*splatformat. This is handled automatically, but if you have custom Express middleware in your project, you may need to update route patterns.
pos-cli mcp— MCP (Model Context Protocol) server exposing 30+ platformOS tools over stdio and HTTP/SSE transports. Enables AI clients (Claude, Cursor, etc.) to interact with platformOS instances directly.pos-cli mcp-config— display and inspect the MCP server tool configuration (which tools are enabled/disabled). Supports--jsonfor raw output. Configurable viaMCP_TOOLS_CONFIGenv var.pos-cli lsp— start the platformOS Language Server Protocol server for Liquid, GraphQL, and JSON files. Provides autocompletion, diagnostics, hover docs, and go-to-definition in LSP-compatible editors.pos-cli check init [path]— generate a.platformos-check.ymlconfiguration file for the Liquid code quality checker.pos-cli check run [path]— run the platformos-check Node.js linter on Liquid/JSON files. Supports-a(auto-fix),-c, --check <name>(filter by check name, repeatable),-f json(JSON output),-s(silent). No Ruby required.pos-cli check update-docs— download the latest platformOS Liquid documentation used by the linter, keeping checks likeUndefinedObjectandUndefinedFilterup to date.pos-cli fetch-logs [environment]— fetch recent logs as NDJSON (newline-delimited JSON), designed for machine consumption and used internally by the MCP server. Supports--last-log-idfor incremental polling.pos-cli exec liquid— execute Liquid code directly on an instance (supports-fflag to load from file, requires confirmation on production)pos-cli exec graphql— execute GraphQL queries directly on an instance (supports-fflag to load from file, requires confirmation on production)pos-cli test run— run tests using the tests modulepos-cli sync -f <file-path>— sync a single file and exit (useful for CI/CD workflows)
pos-cli modules installnow always downloads module files and all dependencies after updating the lock file, ensuring source code is always in sync with the manifest.pos-cli modules updatenow always downloads updated module files and all dependencies after updating the lock file.- Enhanced error handling for
pos-cli env addwith clearer messages when instance is not registered in Partner Portal - Better error messages for sync validation errors (422 responses) with detailed error descriptions
- Added graceful shutdown handling for sync mode to properly cleanup watchers and LiveReload servers
- Improved browser opening error handling with better error messages for failed attempts
- Enhanced refresh token error handling during authentication flows
- Added test coverage measurement capability
- Replaced
archiverwithyazlfor zip archive creation - Upgraded
commanderto v14 - Updated ESLint configuration and fixed linting errors across the codebase
- All deprecation warnings across dependencies resolved
- All major dependencies updated to latest stable versions: chalk v5.6, chokidar v5.0, express v5.2, ora v9.0, open v11.0, inquirer v13.2, mime v4.1, multer v2.0, yeoman-environment v5.1, yeoman-generator v7.5, and many more
pos-cli deploy --dry-runasset report is not yet active while the feature is being propagated to all servers. The dry-run command is available and reports code changes; asset reporting will be enabled once the rollout is complete.
- Feature: (GUI) Ability to add, edit and remove users
- Improvement:
pos-cli modules download <module>removes the modules/ before unpacking the new version to automatically handle scenario when a file is being removed from the module in a new version
- Improvement:
pos-cli modules download <module>will by default download version defined in app/pos-modules.lock.json file - Improvement:
pos-cli modules download <module>will automatically download all dependencies defined in module's template-values.json file if they do not exist yet - Improvement: Add
--force-dependenciesflag topos-cli modules download <module>command to force re-downloading dependencies
- Feature:
pos-cli modules overwritesutility commands - Feature:
pos-cli clone initto initiatie InstanceCopy, works across stacks - Bug: Updated
unzipperto newest version to fix occassional issue with pos-cli modules download
- Feature: (GUI) Show custom properties in user details panel
- Improvement: Better handling of template-values.json during pos-cli modules push
- Improvement: Always store generated
asset_manifest.jsonin tmp/ for debugging purposes - Chore: Removed unused
readdirpnode package - Chore: Removed
valid-urlnode package and replaced it with native Node validation
- Chore: Remove
pluralizenode package - Chore: Replaced
uuidnode package with native Node UUID generator - Chore: Disable gzip compression for Express server and remove the
compressionpackage - Chore: Remove unused
js-yamldependency
- Improvement: Force more engaging test on data clean
- Chore: Removed unused
asyncnode package - Chore: Remove
extract-zipdependency - Bug: Fixed generators not generating
- Chore: Updated
commanderto newest version - Chore: Updated
opento newest version
- Feature: (GUI) Added pagination to Logs v2
- Improvement: Ingore .DS_Store files on macOS while syncing not to spam the terminal with messages of it being unrecognized
- Chore: Support for Node < 18 dropped
- Bug: (GUI) Fixed update message not being visible in dark mode
- Improvement: Better error handling for pos-cli modules pull
- Improvement: Allow to install a module if
appdirectory is missing - Bug: Fixed installing
pos-clionnpmversions > 10.3.0
- Chore: Updated dependencies
- Chore: Updated dependencies
- Feature: (GUI) Show information when new
pos-cliversion is available
- Bug: (GUI) Remved hover state on Safari for Logs v2 and Network Logs tables cause of Safari rendering bug
- Feature: (GUI) Added Logs v2 and Network Logs to home screen
- Feature: (GUI) Using median to show the average request processing time and showing min/max in the tooltip
- Feature: (GUI) Ability to use predefined filters presets in
/network - Feature: (GUI) Ability to save custom filters presets in
/network
- Bug: Fixed deploy not showing an error message when the release package is too large
- Bug: (GUI) Fixed parsing non-existent properties when displaying records
- Feature: (GUI) Ability to sort Network Logs
- Chore: (GUI) Updated build files
- Feature: (GUI) Added ability to aggregate Network Logs by request URL
- Feature: (GUI) Added ability to show currently running background jobs
- Feature: Added
modules updatecommand - Improvement: (GUI) Made browsing logs detail faster in Logs V2
- Feature: (GUI) Added ability to filter Network Logs by Status Code
- Feature: (GUI) Extended information available in Netwok Log detail with 'execution duration' and 'response size'
- Bug: Fixed
pos-cli logs --filterto consider logtype
- Bug: (GUI) Fixed adding and editing records with
datetimefield - Chore: Set minimal node version to 16
- Improvement: (GUI) Show currently running jobs in Background Jobs
- Feature: (GUI) Basic network log under
/network - Improvement: add new command
modules download, bring back old syntax tomodules pull
- Feature: (GUI) Ability to filter logs by string
- Bug: Fixed updating module version in
pos-cli modules install <module_name>command
- Bug: Fix packing module files for
pos-cli modules pushcommand
- Feature: (LogsV2 Reports) Added a few built-in reports based on requests #572
- Bug: (GUI) Fixed parsing
nullvalues on the database table view forbooleantype - Improvement: (GUI) Editing
booleanvalues not uses<select>instead oftextarea - Bug: Fixed exporting as zip instead of JSON
- Bug: Generate uniq filenames when deploying assets zip to s3
- Bug: (GUI) Fixed clearing
booleanvalue saved as 'null' (string) - Bug: (GUI) Fixed adding and editing JSONs with special characters, especially brackets
- Bug: (GUI)
0(int) no longer outputsnullin the database browser - Improvement: (GUI) Make the record context menu stay open untill user clicks outside it
- Bug: Fix passing arguments to generator
- Chore: (GUI) Updated to SvelteKit 2 and Vite 5
- Chore: (GUI) Updated naming in GraphQL requests
- Feature: List and pass additional options to generators
- Feature: add
pos-cli generate listcommand - Improvement: allow to pull public modules files without env
- Improvement: modules push will pack all files
- Feature: (GUI) Added filtering by date to Logs v2
- Feature: (GUI) Added hover and active states to the table in Logs v2
- Feature: (GUI) Ability to reset sidebar width by double clicking the resize handle
- Feature: (GUI) Don't fetch logs for connection indicator and just use /info
- Feature: (GUI) Show instance link in the header and in the page title
- Feature: allow to pull public module files via
modules pull
- Bug: Fixed running the GUI in custom port number
- Bug: Fix downloading module source with
modules pull
- Chore: Updated Svelte dependencies
- Bug: Hardcoded links to GraphiQL and Liquid Evaluator in old GUI
- Feature: Ability to list and restore deleted records through the UI
- Feature: (PoC) Ability to search for given log timestamp and showing logs before and after it
- Improvement: allow to push modules with new directory structure
modules/<module_name>/public - Bug: Properly parse boolean values in GUI
- Bug: Fix adding env with
urlonly
- Chore: New package build
- Bug: Fixed new logs response structure so /logsv2 would work for selected instances
- Bug: Fixed old GUI not being able to connect to the API
- Feature: Updated pos-cli gui interface with the 'Next' version, hidden the old pos-cli gui under localhost:3334
- Bug: Cleaned up Python and build tools dependencies that were blocking install on some configurations
- Chore: Recreated package-lock
- Bug: Fix
data importrequest - Bug: Fix
modules pushcommand
- Feature: Initial alpha implementation of new logs API
- Bug: fix adding env with
--emailoption
- Bug: Fixed success message for
env addcommand - Bug: fix storing env in file
- Authorize adding new env with portal website when passing only
--url
- Improvement: Improved UX of pagination in Next GUI
- Feature: add command
pos-cli modules install
- Bug: graphql - fix error on deprecated types
- Improvement: graphql - update default query and mutation
- Bug: fix graphiql build
- Improvement: filter out deprecated queries and mutations in Graphiql
- Bug: Unhardcoded the API URL in new pos-cli GUI to enable using it on different ports
- Bring back schema explorer to the graphiql
- Added command for running generators from modules
pos-cli generate - Update graphiql
- Improvement: Accessibility improvements in pos-cli GUI
- Bug: Fixed pos-cli GUI crashing for fresh instances without logs
- Bug: Unhardcoded the API URL in new pos-cli GUI to enable using it on different ports
- Feature: Ability to sort the records
- Improvement: Pin icon on homescreen is now filled when the tool has been pinned for better UX
- Improvement: Added
argumentssection in the background job details panel - Bug: Fixed showing
run_atanddead_atdates in Background Jobs Manager - Bug: Fixed not showing
undefinedwhen there is no URL for a background job - Bug: Fixed app failure when using new background job syntax
- Bug: Fixed a problem with text overflow on Users details panel
- Added new tool - Background jobs manager
- Added ability to resize sidepanels
- New home screen design to fit more tools
- Ability to customize the header navigation by adding and removing the tool shortcuts
- Fixed hardcoded server port so multiple
pos-cli gui servecan be run at once - Users can now be filtered by uncomplete email string
- Fixed clearing filters and submitting form using keyboard when filtering Users
- Logs are now updated every 3 seconds
- The license changed to CC BY 3.0
- Reloading subpaths does not return 404 anymore
- More contrast on string-json toggle
- Inline validation when editing JSON type
- Enabled keyboard navigation for toggle switch in record edit form
- Fixes showing 'false' value for bool attributes
- Not clearing the filters after editing a record anymore
- Showing full values in parsed JSON logs
- Scrolling to bottom when new log appears and the page was scrolled to bottom before
- Add new
pos-cli gui servebeta version atlocalhost:3334
- Fix
pos-cli syncto not stop working when there were syntax in synced files
- use Liquid Evaluator as a title
- Fix fsevent os error
- Add
pos-cli modules initcommand (initialize a module with the structure) - Add
pos-cli modules versioncommand to create new version of the module - Add
pos-cli modules pushcommand to publish new version fo the module
- Fix package-lock for graphql
- Fix error reporting in
pos-cli data import pos-cli data cleanruns async and waits for finish
- Fix
--portargument inpos-cli gui serve - Add asset file size to manifest
- Add
--synctopos-cli gui serve. It will run gui and sync files in background. - Fix deploy with custom
.posfile location.
- Fix logs
- Add
pos-cli constants - Escape HTML in
pos-cli guilogs
Add constant named API_KEY with value abc123 on dev environment:
pos-cli constants set --name API_KEY --value abc123 dev
Remove constant API_KEY on staging environment:
pos-cli constants unset --name API_KEY staging
List defined constants without exposing their values on production environment:
pos-cli constants list production
SECRETTOKEN "XX..."
TEMP_TOKEN "XX..."
USE_SEARCH_INDEX "tr..."
List defined constants showing their values on production environment:
SAFE=1 pos-cli constants list production
SECRETTOKEN "XXXXXXX"
TEMP_TOKEN "XXXXXXXXXXXXXX"
USE_SEARCH_INDEX "true"
- Downgrade ora package
- Replace reporting tool
- Upgrade some npm dependencies
- Display more 99 constants in constants editor, instead of only 20
- Add
.brand.gzextensions to synced files.
- Add
pos-cli archivecommand (creates a release archive without deployment)
- Do not include zip files in resources zip file (ie.
app/views/partials/Test.zip). Zip files in assets remain intact
- Do not throw javascript error if internal waiting function rejects
- Add
.mapand.pptxextensions topos-cli sync
- Make filtering more prononunced
- Highlight filter phrase
- Make Prettified JSON full height so it is less scrolling confusion
- Add "Clear screen" button which clears all visible logs
- Add filtering of logs in
pos-cli gui serve - Add constants editor to
pos-cli gui serveathttp://localhost:3333/Constants
- Improve
pos-cli gui servelogs behavior, layout, add pretty print
- Add logs to
pos-cli gui serveat http://localhost:3333/Logs
- Add AVIF format to watch list
- Improve environment reporting
- Added new command
pos-cli uploads pushfor uploading files for property of typeupload
- Improve error message on wrong password when using
pos-cli env add - Fix
pos-cli syncissue withwebpackfile generation, it will wait untill file is completly written.
- Deprecate
headersinapi_callsfiles in favour ofrequest_headers - Improve displaying errors on
importanddeploy - Support
{% liquid %}tag inauditcommand - Add usage statistics
- Added list of users to admin (phase 1)
- Redesign of admin models list
- Added
--wizard(-w) topos-cli initwith choice between different templates
- Correctly display arrays in fields
- Show
textfields as textarea - Fix updating
textfields - Add string filters to text fields
- Correctly display values in quotes, square brackets, etc. in edit view
- Improve example hints for filtering
- Improve placeholders for new records
- Improve placeholder for editing records
- Improve displaying of text, array and upload fields
- Update GraphiQL to 1.x
- Added platformOS Admin reached on localhost:3333 after running
pos-cli gui serve - Changed
-oinpos-cli gui serveto open Admin instead of GraphiQL
- Added liquid evaluator page in
pos-cli gui serve
- Fixed node.js v14 warnings
- Added
'and&as valid filename characters - Added
-calias for--concurrencyinpos-cli sync
pos-cli deploywill directly upload assets to S3 by default
- Improved error message environment URL is not recognized, or there is no internet connection
- Added
--include-schema(-i) topos-cli data clean. It will additionally remove all admin resources pages, schemas, graphql queries, notifications. It will not clear instance constants or anything set up in Partner Portal
- Fixed
pos-cli audit- now auditing files only inappandmodulesdirectories - Added
@and%to validpos-cli synccharacters
- Fixed
pos-cli deploy -dassets manifest creation on Windows pos-cli initis now using--forceby default- Fixed
pos-cli auditfor graphql audit when checking multiline tag
pos-cli auditwill not report filenames with characters+ ( )as invalid
- Fixed regression in
syncnot syncing anymore after couple files synced
- Fixed regression when no
--livereloadwas used insync
- Added
--livereload(-o) flag topos-cli syncwhich starts livereload server to refresh browsers automatically on file change. Requires installed livereload browser extension to work
- Added
--open(-o) flag topos-cli gui serveandpos-cli sync. It opens respectively GraphiQL and instance in default browser when ready - Fixed windows audit for invalid file paths
- Added
pos-cli modules pull <environment> <module name>command. It works similar topos-cli pull, but pulls only given module files. Usepos-cli modules pull --helpto read help - Improve messaging of wrong file types
- Added
pos-cli auditwarnings for files with invalid characters in their name - Added
pos-cli synccheck for invalid characters in file path - invalid files will not be synced
pos-cli pullcommand has been added. It pulls compressed resources (pages, notifications, forms, graphql files etc.) from given environment. It pulls only files fromapp/directory. Usepos-cli pull --helpto read helppos-cli syncis now deleting files, if file was removed while sync runningpos-cli auditis now warning about wrong file types in some directories
- Added
mp3,mp4,webmandogg, extensions topos-cli syncwatch list - Added
--direct-assets-upload(-d) option topos-cli synccommand for faster assets syncing
pos-cli logsnow prints info about request path and partial when availablepos-cli migrations listlist migrations in order of execution- Fixed
pos-cli deploycommand with-doption for direct assets upload
pos-cli gui servenow remembers last used query between page reloadspos-cli gui serveGraphiQL explorer will not show deprecated queries/mutations
- Fix prettify and history features in
pos-cli gui serve
- Add filter to
pos-cli logsthat allows to display only given log type - Fixed git submodules in modules/
- Add graphiql explorer to
pos-cli gui serve
- .zip files are now correctly synced
- Upgrade GraphiQL to 0.17.0
- Add support for
.posignorefile which works the same way as.gitignorefor git - Do not include modules assets using
pos-cli deploywith--direct-assets-uploadflag - Fix packing and uploading assets when using
pos-cli deploywith--direct-assets-uploadflag
- Fix error when there is no environments to list using
pos-cli env list - Fix spelling issue in
pos-cli data cleanmessage
- Use
bundledDependenciesto prevent conflicts with globally installed npm packages
- Send false in
partialDeploywhen deploying module
- Fix rare case when dependency conflict between local and global packages
- Revert commander.js version to ^2
- Improved error handling when migration doesn't exist on the server
- Added support for Windows
- Fixed paths to all binaries required in
pos-cli deploywin32 + PowerShell
- Fixed spawning audit command in
pos-cli deploywin32 + PowerShell - Handle deploy errors better
- Fix syncing module files on win32 + PowerShell
- Do not use colors or notifier when
CI=true - Added 413
Entity too largeserver error support - Added MIT License
- Improved displaying errors
- Added
--forceoption topos-cli init
- Fixed some server errors not showing up in
pos-cli deploy - Fixed
--direct-assets-uploadmodules assets deploy
- Fixed cut off messages in notifier
- Improved performance of repetitive http requests (sync, logs, deploy status etc.) by using
keepAlive - Fixed CI environment variable support in audit
- Censored token in
DEBUG=truemode to prevent accidental leaks - Improved error message when there is syntax error in config file
- Improved server error handling and messages
- Switched from
globtotiny-glob - Switched from
node-watchtochokidar pos-cli syncis syncing newly created filespos-cli syncis syncingtemplate-values.jsonfiles inside module directory
- Added audit rule for unnecessary brackets after field name
- Fixed audit bug where files deeply nested were not checked
- Added more useful information when JSON file is invalid (ie. your main config)
pos-cli syncwill not stop iftemplate-values.jsonis invalid JSON- Improved error handling for templates exception
- Improved error messages returned by the server
- Init is now not overriding files in current directory. Added
--forceflag to override - Added sentry for error reporting
- Improved displaying server errors
- Added platformOS logo to sync/logs errors notifications on OS other than macOS
- Hotfixed deploy with modules
- Updated all npm dependencies
- Fixed partial deploy (
-p) and tightened checks for app and module directories - Fixed deploy on windows
- Fixed E2BIG error when server error/log is very big
- 💥 BREAKING 💥 Removed
--config-fileoption from all commands.CONFIG_FILE_PATHenvironment variable is working as previously - Renamed
.marketplace-kitfile to.pos. To not break existing processes,pos-cliis looking for.marketplace-kitas well. This fallback will be removed in the next major version release - Improved audit performance (by ~55x)
- Improved messaging when using
--direct-assets-uploadinpos-cli deploy - Improved help message when command is not found or argument is missing
- Fixed
--direct-assets-uploadinpos-cli deploy - Added
--concurrency(-c) option topos-cli sync
- Migrated
pos-cli initimplementation to usedegit
- Improve error message when
pos-cli gui servecannot start server on a given port
- Fixed
pos-cli gui serve
- Renamed
-Vflag to-vfor version check - Deprecated
-fflag onpos-cli deploy - Added support for
CIenvironment variable. If set totrue,auditwill be skipped during deploy - Added running
pos-cli auditon deploy - Upgraded minium supported version of node.js to 10