Release Notes
These are our internal release notes, but why wouldn't we share something this important
- Use Go template in SFTP step's filename
- Fix local environment config
- Dashboard: run CI on go 1.19
- App: introduce mutex lock as pointer to avoid data races in all modules
- App: data sending internal refactor for "Button" type
- App: HTTP client has default timeout
- App: new way of Javascript timeout handling (hoping for fewer leaking objects)
- App: message queue refactoring q.Delete() calls
- App: on error the queue item was stuck in certain cases
- Dashboard: using our fork of otto javascript engine
- App: Javascript step has includes(), startsWith() endsWith()
- App: SFTP step creates the path if not exists
- App: MySQL connections are kept per step and not per step running, resulting less connections open/close when running
- App: Stop module: fix locking up
- Dashboard: update branch to what's already on live dashboard server
- Dashboard: compiler to always trim (+ trim project path from binary)
- Dashboard: ES search improvements and code cleanup
- Dashboard: faster dashboard stats query
- Dashboard: Javascript tester will not crash the server (runs as separate process)
- Dashboard: eventlog detail view search field
- Dashboard: show running apps as LEDs on main dashboard page
- Dashboard: fix multi-tab login handling (sessionStorage became single tab)
- fix SFTP input unconnected ids
- Add regexp replace template function for templating
- Hotfix HTTP step not crashing on output
- App: don't fill disk with logs if can't send stats
- Dash: removed unnnecessary log entry
- App: Go template string functions: contains, hasPrefix, hasSuffix
- App: Add HTTP step: result body to error message
- App: Fix queue not copying array payloads
- App: Fix concurrent writing of map
- Dash: Eventlog pagination will provide data ignoring timestamps
- App: Don't send payload with every event
- Dash: Add eventlog verbose errors
- App: Fix FTPs checking if archive folder exists
- App: FTP to not delete main folder if glob is empty
- App: HTTP step was breaking event flow
- Dashboard : Audit log was not showing what app OTA-ed
- Dashboard: Build screen now shows accurate active/inactive toggles
- Dashboard: Drag and drop fixed for Firefox and Safari
- Dashboard: Editor will resize to full width
- Dashboard: Fix environment editor back button
- Dashboard: Fix several functionalities showing 404
- Dashboard: Fixed copying interfaces to empty groups
- Dashboard: Group deletion
- Dashboard: Loader instead of showing old data
- Dashboard: New app button now resets app filtering
- Dashboard: Remember selected app on refresh
- Dashboard: Reordering interfaces in group now possible
- Dashboard: inviting users to your organisation
- App: slack attachments
- Dashboard: hints will show only once
- Dashboard: dashboard cache expiry in 3 months
- Dashboard: more user onboarding banners
- App: HTTP step fix for accepted status codes
- Dashboard: Fix OTA process intermittently failing
- App: Fix FTPS file not deleting if duplicated
- App: new module: Slack
- App: new module: User Reference
- Dashboard: invite user basic functionality
- Dashboard: websocket + cookies fix
- App: fix data race in sync chan
- App: queue naming include step names
- Dashboard: , nicer registration page
- Dashboard: Log in with Google on mobile
- Dashboard: fix countries list
- Dashboard: new , better handling no orgs/apps
- Dashboard: welcome hints popup
- App: removed step sending
- App: queue system fix - copy payloads
- Dashboard: backend tweaks
- App: Memory based queue system
- App: Refactored dashboard communication
- App: FTP Input: handle 0 size files, don't crash on connection issues
- App: HTTP Step: fixed body readying
- App: faster json processing
- Dashboard: new frontend architecture
- Dashboard: build screen new group management UI
- Dashboard: eventlog will search in sql as well
- Dashboard: refactored cashing of dashboard graphs
- Dashboard: user list to display all users
- Dashboard: alert to reload on new frontend versions
- Dashboard: only save interface declaration on actual change
- Dashboard: better editor hints on startup, input dropdown module descriptions
- Dashboard: cron input explainer
- Dashboard: show running apps LED on organisation dashboard
- Dashboard: fix disappearing input frequency inputs
- Dashboard: fix back button size (not full width anymore)
- Dashboard: Login with Google
- Dashboard: check if S3 bucket already exists (reliability)
- Dashboard: elasticsearch code optimisation (reliability)
- App: send alert when any step has error (if on)
- App: send alert if input is "down" (folder inaccessible, http poll error...)
- Dashboard: Editor has all versions, can click through them
- Dashboard: Fix vault saving versions twice
- Dashboard: display expired cached diagrams empty
- Dashboard: show banner on organisation dashboard when no apps defined
- Dashboard: build list (i) icon with last modifier and date info
- Dashboard: Dashboard page is faster, thanks to indexing and caching
- Editor: text editors are resizable
- Codebase: Vault tool to run batch jobs on every client/app/interface
- App: HTTP step: fix on stuck after 204 status result
- App: HTTP Listen input sync handling fix
- App: FTP connection handling errors, retry on failure
- App: Removed unnecessary template field from Parser
- App: SQL step data sending fix when not array result
- Editor: tempate tester =<.config>= tag support
- Editor: autofocus on search field when adding step
- Editor: search based on title not module internal name
- Editor: new step name based on title not internal name
- Build: Fix added interface not showing in group without refresh
- Dashboard: App and interface counts: do not count deleted ones
- Dashboard: Fix login redirect to first organisation
- App: Event log: S3 Data to be retreived from the indicated bucket
- App: Refactor FTP / FTPs Input to handle Archive and Errors folders
- Dashboard: Use AWS S3 buckets to save payload data
- App: Fix FTP input not renaming files
- App: HTTP steps to return status of last request
- App: FTP(S) input handling Response step's codes (errors folder)
- Dashboard: UI: Editors replaced by Monaco
- Dashboard: Event log details render text better
- Dashboard: Billing frontend for organisation dashboard
- App: Alert (slack or/and email) on interface errors when configured
- Dashboard: Build list: app interface groups
- Dashboard: Event list selection showing current/last detail
- Codebase: fix frontend linting (internal, for CI to kick in)
- Dashboard: Billing backend
- Dashboard: Registrations will expire
- App: SQL module locking fix
- App: on one interface locking
- Dashboard: Event log live mode turned off on filter change
- Dashboard: Users list correctly showing on org dashboard
- Dashboard: Editors changed from
- Dashboard: App groups backend
- App: interface alerting fixed
- Dashboard:
- Dashboard: Javascript and template tester fixes
- Dashboard: Switched to Elasticsearch: in payloads
- Dashboard: Event log
- Dashboard: Event log detail view scroll behaviour fix
- Dashboard: on event log detail view
- Dashboard: Event log detail view now displays steps with
- Dashboard: Event log detail and full height
- App: FTP poll input to read file correctly
- Dashboard: Fixed version fetching for dirty builds
- Dashboard: Invoicing preparations
- Dashboard: New status page with real live info
- Dashboard: Fix back arrows behaviour
- App: Enforcing by adding dots dynamically
- App: JSON sending NaN issue fixed by using different JSON encoder
- Dashboard: Show real IP in logs, switch to JSON logging for Kibana
- Dashboard: Show selected row in eventlog by clipping the status icon
- Dashboard: Fix dashboard timestamp issues for more accurate graphs
- Dashboard: Fix event graph view
- App: Loop and Jump steps fixes
- App: SQL step: return last insert id and affected rows, report failed sql
- Dashboard: Editor node is restarted when using too much memory
- Dashboard: Ingest node a bit more silent into logs
- App: SQL escaping {{sql .tag}} will encode null to NULL
- App: fix FTP client step error handling
- Dashboard: template tester copies template to test to editor
- Dashboard: eventlog error messages are well formatted
- App: fix FTP client step error handling
- Dashboard: show html docs links on steps as well
- App: remove Parsing XML: from slog
- App: remove slog from m2 stock module
- App: try to limit number of open files a bit
- App: http listen input sends data in correct format to dashboard
- Dashboard: fix event_id paginated parts in mongodb
- App: new logic for generating IDs
- App: New module: SQLite
- Dashboard: Changed name of Sync Out to Response
- Dashboard: More lightweight javascript tester
- App: Fix crash on queue item save erroring
- App: Fix sql module output issue
- Dashboard: fix indexer - app hash bug
- Dashboard: introduced Javascript tester (JS Tester link above javascript code)
- Dashboard: correct size calculation based on mongodb overhead
- App: new module: Status
- Dashboard: event log records errors correctly
- App: app messaging cleanup
- App: fix file input module: check for new files
- App: fix file input module not picking up file content
- App: error sending and displaying fixes for eventlog
- App: javascript step: handling errors
- Dashboard: minor tweak for font size in eventlog detail header
- Dashboard: data microservice is more flexible with sent data
- App: http step: fix messaging of errors
- Dashboard: eventlog will display errors and warnings consistently
- App: paginate: fix interface not done
- Dashboard: show all pages in data detail view
- App: send data only if we have something to send
- App: csv reader parser handling EOF gracefully
- Dashboard: File module to check for empty files and warn about them
- Dashboard: data node to find paginated content for detail view
- Dashboard: visibility improvements: reworked event details and data sending
- App: stability improvements: less ways to crash an app
- App: more accurate step counting
- Dashboard: handling user permissions on dashboard
- Dashboard: publish and download binary buttons will be able to report compilation problems
- App: handle tick input code error without crashing / send error to server
- Dashboard: event log: error message has a copy to clipboard button
- App: simulator queue items can be edited
- App: Parser handling EOF better
- App: SQL poll step simulator output fix
- App: Email step: Mailgun support (EU domain)
- App: App reconnects a bit more gracefully
- Dashboard: Ingest node doesn't crash on non paginated package ids
- Dashboard: MySQL server reconnect handling is more resilient and doesn't flood server
- App: File input module can handle empty error and archive folders
- Dashboard: Live mode now uses ids instead of timestamp
- Dashboard: Ability to see payloads from eventlog screen
- App: Fix several ways to crash apps
- Dashboard: Help button
- Dashboard: Registration screen T&C
- Dashboard: UI: switches are turning green when on
- Dashboard: Fix newsletter table declaration
- Dashboard: Fix live mode in eventlog
- App: Fix data sending settings
- Dashboard: Adapt pagination so it will send done to ingest node
- Dashboard: Newsletter subscribers will be tracked
- Dashboard: Help button goes to Slite
- Dashboard: UI Background behaves better
- Dashboard: Fix build for indexer change
- Dashboard: Fix indexer not starting
- Dashboard: Report admin/build flags on log in
- Dashboard: Fix
/user/client/usage/{clienthash}
endpoint declaration - Dashboard: Add admin permission to session on organisation creation
- Codebade: Gitignore generated version.json file
- Dashboard: New UI design (Vuetify!)
- App: Data sending refactored
- Dashboard: Billing info based on steps and sizes (WIP)
- Dashboard: New dashboard
- Dashboard: Registration and user permissions control
- Dashboard: Loop and If steps
- Dashboard: Alerting via email or slack
- App: M2 Product: website ids are inserted and updated now
- App: M2 Product: Added flag to only insert name if new product created
- App: M2 Product: Changed PID to RID to fix attribute wrong insert query
- App: FTPS Input: updated sync handling, refactor
- App: Fix OTA and killing app (^C)
- Dashboard: MongoDB / AWS DocumentDB support
- App: FTPS Input: Fix module settings
- App: SQL step: fix losing data when multiple results and multiple waiting input packets
- App: M2 Product: make product node compatible with M2 EE (CE will need work on)
- App: M2 Price: fix several minor issues and if no website given use default store
- App: M2 stock: update only warehouse manage_stock
- App: FTP(s) input module sync in handling, error folder
- App: M2 stock: update only warehouse manage_stock
- App: M2 price: index prices after setting
- App: avoid stuck upgrades by lightweight stop
- App: DataMapper: fix crashing datamapper on invalid payload
- App: M2 stock added set manage_stock functionality
- Dashboard: Fixed Formatting Error and Fixed Failing Test
- App: M2 stock module fixed functionality
- Dashboard: add updated_at to build list
- Dashboard: update db on interface save
- App: M2 stock: fix SQL (removed ;)
- App: M2 Stock: adding product to website if stock is present
- App: M2 Price: fix price updates
- App: FTP poll: use remote FS commands instead of local ones
- App: M2 Price module: price update SQLs, fixed tests
- App: M2 Product module: product updates using on duplicate SQLs
- FTP only mode in FTP poll input
- FTP poll input fixes
- App: FTP poll input icon
- App: M2 Stock fix selecting old quantity
- App: M2 Stock new switch for incremental stock changes
- App: M2 Stock another small SQL fix
- App: M2 Stock simple SQL query fix for updates
- App: M2 Stock SQL query fixes
- Dashboard: fix editor missing update (run editor go generate an protoc)
- Codebase: fix release (last one was on the wrong branch)
- App: M2 stock module Advanced Inventory support
- App: added FTP(s) input step
- App: fix SQL error handling
- App: fix jump step's locking behaviour
- App: fix stopping with ^C and with OTA
- App: add TLS option to FTPS step
- Dashboard: fix deletion-related SQL issues
- Dashboard: fix editor and env editor vuex issues
- Dashboard: fix z-index of editor add step drawer
- Dashboard: Rework app and interface deletions
- Dashboard: Add indexer delete app and intf from vault + fix db funcs
- Dashboard: clean up frontend pages folder a bit
- Dashboard: refactor editor and move components around a bit
- App: fix force refresh, add auto-save callbacks
- App: ftp step using content with templates
- Dashboard: change condition: or to and to fix empty ok check
- Dashboard: fixed status node for app deletion
- Dashboard: fixed status node behaviour, status list updates on the fly
- App: sql module: fix empty ok when is array set
- App: send data module: add send all data option
- App: really fix stop debug command
- Dashboard: removed stripe js from frontend until we need it
- App: fix stop debug command
- App: error handling in movepacket
- Dashboard: deleting items from simulator
- App: forward http status from sync out to http listen
- App: sync out uses condition from now on
- Dashboard: data node not to return with 401
- Dashboard: help bubbles with helpcenter snippets
- Dashboard: build list: fix copying environments and interfaces
- Dashboard: fixed debugging apps:v finding app and sending data back
- Dashboard: status list fixed
- Dashboard: multi-line input in environment variables
- Dashboard: fix deleting/renaming apps
- App: debug enabled only when available, fix arguments
- Dashboard: fix create app button
- App: make send input switch work in input modules
- App: sql input module in simulator from pasted tab separated data
- Dashboard: show empty apps in build list
- App: HTTP step: set ID for new packets
- Dashboard: app node WIP
- App: log read IDs from queue correctly
- App: fix app crash at NewQueue
- Dashboard: fix build list getting first interface hash
- Dashboard: fix simulator deleting packet from modules
- App: debug senddata and payload registry
- Dashboard: Editor Build List: fix app and interface renaming, interface ordering
- Dashboard: vault uses hashes
- App: queue naming fix: name queue after app binary to avoid clashing
- Codebase: fix last release
- Dashboard: fix mail sending database access
- App: add template processing to M2 Product config
- Dashboard: new registration page and email activation
- Dashboard: add editor steps with drag and drop
- App: fixes for M2 Stock and M2 Product module
- App: use persistent queue in apps
- App: silent mode inputs (cron and http poll auth shouldn't spam ingest node)
- App: M2 Stock and M2 Product modules
- Dashboard: fix for / in names (not breaking vault anymore)
- App: simulator payloads can be deleted one by one
- App: send disk space stats to ingest node (WIP, needs processing on server side)
- Dashboard: OTA visual feedback and error reporting
- App: fix http step again, deleting queue item after processing
- App: silent mode in inputs: not sending events if true
- App: clearer app debug messages for several modules
- App: check if queue list is empty before accessing the first for pushing
- App: fix http step fix
- App: M2 product module
- App: critical fix for http step moving packet too late
- Codebase: fix CI name for staging
- App: fix condition for saving into queue
- App: fix config values
- Dashboard: add toast for simulator errors
- Dashboard: new build method for build node
- Dashboard: fix header editor in http
- Dashboard: fix simulator steps using environment variables
- Dashboard: hotfix for app deployment
- Dashboard: fix app input step's output queue
- Dashboard: fixed and simplified editor styling
- Dashboard: fix simulator
- Dashboard: UI refinements in editor
- Dashboard: status node
- Dashboard: fixed interface creation and deletion
- Dashboard: fixed recipe selector
- Dashboard: fixed status node
- Dashboard: recipe selector WIP
- Dashboard: refined UI for editor
- Dashboard: refactor editor handlers
- Dashboard: fixed client creation
- Dashboard: small developer environment sql fix
- build list UI tweaks
- Dashboard: experimental Recipe UI
- Dashboard: rename app (don't use on all builds)
- App: started "send input/output" (WIP, needs module specific code)
- Dashboard: fix password saving from user admin
- Dashboard: status node fixes WIP
- Dashboard: minor frontend packages cleanup
- Dashboard: backend for data search
- App: try panic recover techniques in apps
- Dashboard: simulator fixes
- App: send data step with data mapper
- Dashboard: release before send output (reverted to 7/10/20 state)
- Dashboard: Fixed most build list functionality, using hashes
- Dashboard: Log in with email
- App: HTTP step using Parser
- App: SQL step simplified and tested
- App: various small fixes
- Dashboard: Data mapper in use
- Dashboard: Vuetify based frontend
- Dashboard: login with email, no more usernames
- Dashboard: fixed OTA workflow
- App: queue system fixes
- Dashboard: mongodb fixes
- Dashboard: fix in user saving
- Dashboard: fix build system again
- App: memory allocation reporting
- App: M2Stock module using datamapper
- App: TLS option for http_listen input
- App: fixed xml parsing
- App: fixed template parser
- Dashboard: Fix ingest node, if mongodb is not defined don't panic
- Dashboard: Added audit log to build endpoint
- App: new modules: m2stock, data sending (WIP)
- Codebase: CI deploying master
- Dashboard: data mapper concept
- App: fixed javascript array
- Dashboard: frontend refactored CoreUI
- Dashboard: registration process (WIP)
- Dashboard: mongodb data storage
- App: events sending implemented
- Dashboard: events dashboard
- Dashboard: organisations list
- Dashboard: editor node works, static (generated) jsons
- Dashboard: deleted user in backend
- Dashboard: Editor started working
- Dashboard: Build node works
- Dashboard: New frontend architecture with axios and vuex
- Dashboard: Reimplemented on CoreUI WIP (editor broken yet)
- Dashboard: new logo
- Dashboard: server architecture documentation
- Dashboard: reflect branding changes
- App: refactoring modules to use readers
- Dashboard: logging changes to reflect refactoring
- Dashboard: indexing payloads for search
- App: file (leveldb) based queue is back
- App: redirect back to page after session timeout login
- App: save editor into browser local storage before redirecting to login
- App: warn about user creation missing setup steps (WIP)
- App: Fix SQL module Fetch All (one payload as array) not to send many bundles
- App: revert to underscore.js
- App: Javascript to use lodash.js instead of underscore.js
- UI for resetting password WIP
- Javascript module
- Dashboard: new editor, WIP
- App: HTTP GET request, return is from out_sync
- Dashboard: removed CoreUI, native dashboard
- Dashboard: click through charts to events
- Dashboard: session stays active
- Dashboard: chart tooltips
- Dashboard: new navbar theme
- Dashboard: data and errors barchart
- Dashboard: date filter on dashboard for charts and counts
- Dashboard: microservice architecture
- Dashboard: store certain data in mysql instead of mongodb
- Dashboard: server environment: grafana, prometheus
- Dashboard: redis session handling
- Dashboard: show weekly numbers in dashboard (7 days rolling)
- App: removed bogus sync limit
- App: M2 helper: set product status
- App: Add option value into
eav_attribute_option_swatch
table - fixing swatch - App: better error messages in modules
- App: fix SQL counter
- App: sftp client error handling
- App: Implement memory based queue system
- App: Add template and rename template file to sftp_client step
- Dashboard: Traefik based server setup
- Dashboard: New editor in dashboard
- Dashboard: Vault based authentication
- Dashboard: Storing all client configuration in vault
- App: "Switch" step instead of condition
- App: Lock queue to avoid write issues
- App: Error handling in combine items step
- Dashboard: slack/email warning on broken LIM websocket
- App: handle empty dashboard templates better
- App: pagination step based on reflect
- Dashboard: Logout functionality
- Dashboard: New dashboard design
- App: Real-Time queue sizes of new LIM processes
- Networking: Websocket+websocket communication (LIM->Dash->Browser)
- Dashboard: Dark theme
- Event log: Pagination even in search results
- New flow logic - experiments with flow based programming
- Basic step modules (all output modules from POC)
- Change log for this POC (codebase will survive!)
- Module structure
- Experimental transformation module