v0.14.0

netbirdio/netbirdv0.14.0Nov 18, 2024by farukaydin

AI Summary

A comprehensive release introducing new integrations (MailerLite, Mailchimp, JotForm, ClickUp), REST API endpoints for flows, users, and roles, and a JavaScript code execution feature with Monaco editor.

Key Highlights

  • New integrations: MailerLite, Mailchimp, JotForm, and ClickUp with multiple triggers and actions
  • REST API endpoints for flows, users, roles, and app configurations
  • JavaScript code execution feature with Monaco editor support
  • Parameter computation improvements with valueType support
  • HTTP request enhancements exposing response headers and status

New Features

  • MailerLite integration with spam complaint, subscriber creation, and unsubscribes triggers
  • Mailchimp integration
  • JotForm integration
  • ClickUp integration with create task action
  • JavaScript code execution in flows
  • Redis Sentinel support
  • PowerInput supporting whole objects as variables
  • Compute parameters with valueType and parse option
  • Dockerfile environment syntax updates

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