v0.14.0

pathwaycom/pathwayv0.14.0Nov 18, 2024by farukaydin

AI Summary

This release introduces JavaScript code execution with a Monaco editor, adds new integrations like MailerLite and Mailchimp, and exposes HTTP response headers. It also includes significant refactoring of compute parameters and the implementation of comprehensive REST API endpoints for managing apps and flows.

Key Highlights

  • Introduction of JavaScript code execution environment with Monaco editor support
  • New integrations: MailerLite, Mailchimp, Jotform, and ClickUp
  • Exposure of HTTP response headers and status in custom requests
  • Comprehensive refactoring and implementation of REST API endpoints for app and flow management

New Features

  • JavaScript execution environment
  • Redis Sentinel support
  • PowerInput support for whole objects
  • MailerLite, Mailchimp, Jotform, ClickUp integrations
  • REST API endpoints for connections, flows, apps, and users

Full Release Notes

## What's Changed
* fix: Adjust dockerfile env syntax to new dsl by @farukaydin in https://github.com/automatisch/automatisch/pull/2004
* fix: in FlowStep wrap in Form component only controlled inputs by @kattoczko in https://github.com/automatisch/automatisch/pull/2005
* feat(code/run-javascript): run JS code and introduce monaco editor by @barinali in https://github.com/automatisch/automatisch/pull/1998
* fix(github/create-issue): mark repo field as required by @barinali in https://github.com/automatisch/automatisch/pull/2013
* feat(http-request/custom-request): expose response headers and status by @barinali in https://github.com/automatisch/automatisch/pull/2012
* feat: support redis sentinel by @barinali in https://github.com/automatisch/automatisch/pull/1999
* fix: mark steps incomplete when their parameters change by @barinali in https://github.com/automatisch/automatisch/pull/2010
* test(compute-parameters): write tests for different type of values by @barinali in https://github.com/automatisch/automatisch/pull/2009
* chore(deps): bump msgpackr from 1.5.6 to 1.11.0 by @dependabot in https://github.com/automatisch/automatisch/pull/2015
* feat(mailerlite): add mailerlite integration by @ridvanakca in https://github.com/automatisch/automatisch/pull/1561
* feat(mailerlite): add spam complaint trigger by @ridvanakca in https://github.com/automatisch/automatisch/pull/1562
* feat(mailerlite): add subscriber created trigger by @ridvanakca in https://github.com/automatisch/automatisch/pull/1563
* feat(mailerlite): add subscriber unsubscribed trigger by @ridvanakca in https://github.com/automatisch/automatisch/pull/1564
* feat(mailerlite): add campaign sent trigger by @ridvanakca in https://github.com/automatisch/automatisch/pull/1565
* feat(google-sheets): add find worksheet action by @ridvanakca in https://github.com/automatisch/automatisch/pull/1461
* fix: improve paths for windows os by @kuba618 in https://github.com/automatisch/automatisch/pull/1990
* feat: make role input required in CreateUser by @kattoczko in https://github.com/automatisch/automatisch/pull/2014
* chore(deps): bump braces from 3.0.2 to 3.0.3 by @dependabot in https://github.com/automatisch/automatisch/pull/1937
* chore(deps): bump ws from 7.5.6 to 7.5.10 by @dependabot in https://github.com/automatisch/automatisch/pull/1938
* chore(deps): bump fast-xml-parser from 4.2.5 to 4.4.1 by @dependabot in https://github.com/automatisch/automatisch/pull/2016
* chore(deps): Bump ip from 1.1.5 to 1.1.9 by @dependabot in https://github.com/automatisch/automatisch/pull/1627
* fix(update-flow-status): throw at incomplete trigger step by @barinali in https://github.com/automatisch/automatisch/pull/2017
* fix(carbone/add-template): correct typo in template by @barinali in https://github.com/automatisch/automatisch/pull/2018
* fix(duplicate-flow): let users duplicate flows they have access to by @barinali in https://github.com/automatisch/automatisch/pull/2019
* feat(mailchimp): add mailchimp integration by @ridvanakca in https://github.com/automatisch/automatisch/pull/1571
* feat(jotform): add jotform integration by @ridvanakca in https://github.com/automatisch/automatisch/pull/1577
* feat(clickup): add clickup integration by @ridvanakca in https://github.com/automatisch/automatisch/pull/1594
* feat(clickup): add create task action by @ridvanakca in https://github.com/automatisch/automatisch/pull/1615
* feat(PowerInput): support whole objects as variables by @barinali in https://github.com/automatisch/automatisch/pull/2022
* refactor(compute-parameters): rewrite logic by @barinali in https://github.com/automatisch/automatisch/pull/2026
* test: add simple webhook flow test by @kuba618 in https://github.com/automatisch/automatisch/pull/2024
* test: harden webhook tests by @kuba618 in https://github.com/automatisch/automatisch/pull/2027
* feat(compute-parameters): add valueType with parse option and string by default by @barinali in https://github.com/automatisch/automatisch/pull/2025
* feat: update step only when data changes by @kattoczko in https://github.com/automatisch/automatisch/pull/2028
* feat: Implement delete step rest API endpoint by @farukaydin in https://github.com/automatisch/automatisch/pull/2032
* fix: prevent resetting test data until data is loaded by @kattoczko in https://github.com/automatisch/automatisch/pull/2030
* Refactor test connection action by @farukaydin in https://github.com/automatisch/automatisch/pull/2033
* feat: Implement rest API endpoint to verify connection by @farukaydin in https://github.com/automatisch/automatisch/pull/2034
* refactor: rewrite create-app-auth-client mutation as REST endpoint by @barinali in https://github.com/automatisch/automatisch/pull/2031
* refactor: rewrite create-app-config mutation as REST endpoint  by @barinali in https://github.com/automatisch/automatisch/pull/2035
* refactor: Use express-async-errors instead of express-async-handler by @farukaydin in https://github.com/automatisch/automatisch/pull/2037
* feat: write PATCH /v1/admin/apps/:appKey/auth-clients/:appAuthClientId by @barinali in https://github.com/automatisch/automatisch/pull/2036
* fix: remove redundant asyncHandler wrapper by @barinali in https://github.com/automatisch/automatisch/pull/2041
* feat: Implement update user rest API endpoint by @farukaydin in https://github.com/automatisch/automatisch/pull/2044
* feat: Implement rest API endpoint to update users for admin by @farukaydin in https://github.com/automatisch/automatisch/pull/2045
* feat: write PATCH /v1/admin/apps/:appKey/config by @barinali in https://github.com/automatisch/automatisch/pull/2042
* feat: write DELETE /v1/connections/:connectionId by @barinali in https://github.com/automatisch/automatisch/pull/2043
* fix(FlowAppIcons): fix crash when no steps exist by @barinali in https://github.com/automatisch/automatisch/pull/2047
* feat: write POST /v1/connections/:connectionId/reset by @barinali in https://github.com/automatisch/automatisch/pull/2046
* chore: remove redundant update-app-config mutation by @barinali in https://github.com/automatisch/automatisch/pull/2049
* feat: incorporate NotAuthorized error in error handler by @barinali in https://github.com/automatisch/automatisch/pull/2051
* feat: write PATCH /v1/admin/config by @barinali in https://github.com/automatisch/automatisch/pull/2048
* feat: write PATCH /v1/flows/:flowId by @barinali in https://github.com/automatisch/automatisch/pull/2050
* test: add wait for response on update flow by @kuba618 in https://github.com/automatisch/automatisch/pull/2053
* feat: Implement create flow rest API endpoint by @farukaydin in https://github.com/automatisch/automatisch/pull/2056
* feat: Implement rest api endpoint to test step by @farukaydin in https://github.com/automatisch/automatisch/pull/2055
* Split UpsertSamlAuthProvider mutation into two endpoints by @barinali in https://github.com/automatisch/automatisch/pull/2054
* feat: Implement rest API endpoint to remove current user by @farukaydin in https://github.com/automatisch/automatisch/pull/2058
* fix: Throw error if trigger doesn't have a type by @farukaydin in https://github.com/automatisch/automatisch/pull/2062
* feat: write and implement REST API endpoint to create role by @barinali in https://github.com/automatisch/automatisch/pull/2059
* feat: write and implement REST API endpoint to update role by @barinali in https://github.com/automatisch/automatisch/pull/2060
* feat: write endpoint to update SamlAuthProvidersRoleMappings by @barinali in https://github.com/automatisch/automatisch/pull/2057
* feat: write and implement REST API endpoint to create step by @barinali in https://github.com/automatisch/automatisch/pull/2066
* feat: write and implement REST API endpoint to delete role by @barinali in https://github.com/automatisch/automatisch/pull/2064
* feat(AddAppConnection): show pop-up reminder hint by @barinali in https://github.com/automatisch/automatisch/pull/2063
* feat: Implement rest API endpoint to update current user password by @farukaydin in https://github.com/automatisch/automatisch/pull/2069
* feat: write and implement REST API endpoint to register user by @barinali in https://github.com/automatisch/automatisch/pull/2072
* feat: write REST API endpoint to create connection by @barinali in https://github.com/automatisch/automatisch/pull/2068
* feat: write REST API endpoint to generate auth url by @barinali in https://github.com/automatisch/automatisch/pull/2073
* chore: Mark create connection as converted mutation by @farukaydin in https://github.com/automatisch/automatisch/pull/2075
* feat: Implement rest API endpoint to delete flow by @farukaydin in https://github.com/automatisch/automatisch/pull/2076
* refactor: Move reset logic to connection model by @farukaydin in https://github.com/automatisch/automatisch/pull/2077
* feat: Implement rest API endpoint to update connection by @farukaydin in https://github.com/automatisch/automatisch/pull/2080
* feat: Implement rest API endpoint for admins to create user by @farukaydin in https://github.com/automatisch/automatisch/pull/2081
* feat: write and implement REST API endpoint to duplicate flow by @barinali in https://github.com/automatisch/automatisch/pull/2070
* feat: use REST API endpoint to create flow by @barinali in https://github.com/automatisch/automatisch/pull/2084
* feat: use REST API endpoint to delete current user by @barinali in https://github.com/automatisch/automatisch/pull/2086
* feat: use REST API endpoint to delete flow by @barinali in https://github.com/automatisch/automatisch/pull/2087
* feat: use REST API endpoint to delete step by @barinali in https://github.com/automatisch/automatisch/pull/2088
* feat: write and implement REST API endpoint to update step by @barinali in https://github.com/automatisch/automatisch/pull/2083
* feat: use REST API endpoint to create user by @barinali in https://github.com/automatisch/automatisch/pull/2085
* feat: use REST API endpoint to update flow status by @barinali in https://github.com/automatisch/automatisch/pull/2089
* feat: use REST API endpoint to update user by @barinali in https://github.com/automatisch/automatisch/pull/2091
* test: add applications settings tests by @kuba618 in https://github.com/automatisch/automatisch/pull/2052
* feat: Introduce toRequireProperty custom assertion by @farukaydin in https://github.com/automatisch/automatisch/pull/2097
* feat: use REST API endpoint to test step by @barinali in https://github.com/automatisch/automatisch/pull/2090
* test: add change own user data test by @kuba618 in https://github.com/automatisch/automatisch/pull/2103
* feat(useAuthenticateApp): use REST API endpoint to create connection by @barinali in https://github.com/automatisch/automatisch/pull/2098
* feat: refactor update-current-user mutation with the REST API endpoint by @kattoczko in https://github.com/automatisch/automatisch/pull/2106
* feat: use REST API endpoints to create and reconnect connections by @barinali in https://github.com/automatisch/automatisch/pull/2099
* refactor: remove whole graphql implementation by @barinali in https://github.com/automatisch/automatisch/pull/2104
* feat: Implement datastore model tests by @farukaydin in https://github.com/automatisch/automatisch/pull/2095
* test(SamlAuthProvidersRoleMapping): assert model properties by @barinali in https://github.com/automatisch/automatisch/pull/2096
* test: Implement execution model tests by @farukaydin in https://github.com/automatisch/automatisch/pull/2107
* test(access-token): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2108
* test: Implement subscription model tests by @farukaydin in https://github.com/automatisch/automatisch/pull/2112
* test(app-auth-client): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2109
* feat(config): make data structure horizontal by @barinali in https://github.com/automatisch/automatisch/pull/2093
* fix: bring back missing custom logo by @kuba618 in https://github.com/automatisch/automatisch/pull/2117
* feat: fix primary app color value and how it is displayed in the app by @kattoczko in https://github.com/automatisch/automatisch/pull/2114
* fix: limit resetting form on defaultValues change by @kattoczko in https://github.com/automatisch/automatisch/pull/2029
* fix: use env var for authDocUrl by @kuba618 in https://github.com/automatisch/automatisch/pull/2113
* tests: Implement tests for ExecutionStep model by @farukaydin in https://github.com/automatisch/automatisch/pull/2119
* test: Implement UsageData model tests by @farukaydin in https://github.com/automatisch/automatisch/pull/2121
* test(config): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2123
* test(app): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2111
* test(connection): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2125
* Permission tests by @farukaydin in https://github.com/automatisch/automatisch/pull/2134
* test(connection): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2130
* test(connection): cover model lifecycle hooks by @barinali in https://github.com/automatisch/automatisch/pull/2135
* feat: add error snackbar for errors originating from registerUser function by @kattoczko in https://github.com/automatisch/automatisch/pull/2129
* feat: allow both number and string values as sampleValue by @kattoczko in https://github.com/automatisch/automatisch/pull/2120
* feat: add error snackbar for updating role mappings by @kattoczko in https://github.com/automatisch/automatisch/pull/2122
* test(connection): write remaining model tests by @barinali in https://github.com/automatisch/automatisch/pull/2136
* feat: add error snackbar when creating or updating saml auth provider by @kattoczko in https://github.com/automatisch/automatisch/pull/2127
* test(app-config): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2110
* refactor: Use toStrictEqual instead of toEqual for tests by @farukaydin in https://github.com/automatisch/automatisch/pull/2142
* test(role): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2145
* test(role): write remaining model tests by @barinali in https://github.com/automatisch/automatisch/pull/2146
* test(flow): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2139
* chore(saml-auth-providers-role-mapping): remove unused test snapshot by @barinali in https://github.com/automatisch/automatisch/pull/2154
* test(flow): write model tests by @barinali in https://github.com/automatisch/automatisch/pull/2148
* test(flow): write tests for model lifecycle hooks by @barinali in https://github.com/automatisch/automatisch/pull/2149
* refactor(flow): restructure afterFind hook in model by @barinali in https://github.com/automatisch/automatisch/pull/2150
* refactor(flow): distribute createActionStep logic to different methods in model by @barinali in https://github.com/automatisch/automatisch/pull/2153
* refactor(flow): split delete method and write test by @barinali in https://github.com/automatisch/automatisch/pull/2156
* test(flow): write test cases for isPaused method by @barinali in https://github.com/automatisch/automatisch/pull/2158
* test(step): cover tableName, jsonSchema, virtualAttributes, relationMappings in model by @barinali in https://github.com/automatisch/automatisch/pull/2159
* test(step): write tests for webhookUrl and iconUrl by @barinali in https://github.com/automatisch/automatisch/pull/2160
* test(step): write tests for isTrigger, isAction, getWebhookUrl by @barinali in https://github.com/automatisch/automatisch/pull/2161
* test(step): write tests for getApp, test, getLastExecutionStep and getNextStep by @barinali in https://github.com/automatisch/automatisch/pull/2162
* test(step): write tests for getTriggerCommand and getActionCommand by @barinali in https://github.com/automatisch/automatisch/pull/2163
* test(step): write tests for lifecycle hooks in model by @barinali in https://github.com/automatisch/automatisch/pull/2165
* test(step): write tests for getSetupFields and delete by @barinali in https://github.com/automatisch/automatisch/pull/2164
* feat: introduce fallback for title value in the BillingCard by @kattoczko in https://github.com/automatisch/automatisch/pull/2152
* feat: check if cancellationEffectiveDateObject is a valid date by @kattoczko in https://github.com/automatisch/automatisch/pull/2151
* fix: use correct default values when editing a role by @kattoczko in https://github.com/automatisch/automatisch/pull/2124
* test(step): write test for updateFor method in model by @barinali in https://github.com/automatisch/automatisch/pull/2166
* test(user): write tests for tableName, jsonSchema, relationMappings by @barinali in https://github.com/automatisch/automatisch/pull/2168
* test: Implement initial tests for SamlAuthProvider model by @farukaydin in https://github.com/automatisch/automatisch/pull/2169
* test(user): write test for acceptInvitationUrl by @barinali in https://github.com/automatisch/automatisch/pull/2176
* test(user): write tests for authenticate by @barinali in https://github.com/automatisch/automatisch/pull/2177
* test(user): write tests for authorizedFlows by @barinali in https://github.com/automatisch/automatisch/pull/2170
* test(user): write tests for login by @barinali in https://github.com/automatisch/automatisch/pull/2178
* test(user): write test for generateResetPasswordToken by @barinali in https://github.com/automatisch/automatisch/pull/2179
* test(user): write test for generateInvitationToken by @barinali in https://github.com/automatisch/automatisch/pull/2180
* test(user): write test for resetPassword by @barinali in https://github.com/automatisch/automatisch/pull/2181
* test(user): write test for acceptInvitation by @barinali in https://github.com/automatisch/automatisch/pull/2182
* feat: introduce uniqueness validation for remote role name by @kattoczko in https://github.com/automatisch/automatisch/pull/2143
* fix: variable chip label disappearing by @kattoczko in https://github.com/automatisch/automatisch/pull/2167
* test(user): write tests for updatePassword by @barinali in https://github.com/automatisch/automatisch/pull/2183
* feat: make Wordpress instanceUrl field required by @kattoczko in https://github.com/automatisch/automatisch/pull/2191
* test: Implement tests for saml auth provider url methods by @farukaydin in https://github.com/automatisch/automatisch/pull/2186
* feat: persist pagination and search value on flows page by @kattoczko in https://github.com/automatisch/automatisch/pull/2190
* feat: inline login form error and unify Alert font weight by @kattoczko in https://github.com/automatisch/automatisch/pull/2196
* chore(deps): upgrade lerna with version 8 by @barinali in https://github.com/automatisch/automatisch/pull/2211
* Update version to 0.14.0 by @farukaydin in https://github.com/automatisch/automatisch/pull/2210


**Full Changelog**: https://github.com/automatisch/automatisch/compare/v0.13.1...v0.14.0