Compare commits

...

2215 Commits

Author SHA1 Message Date
Rıdvan Akca
db084d12e4 feat(firefly-iii): add transaction updated trigger 2024-05-21 15:05:59 +02:00
Rıdvan Akca
1c76b02c78 feat(firefly-iii): add transaction created trigger 2024-05-21 15:04:32 +02:00
Rıdvan Akca
bc67e9c4c4 feat(firefly-iii): add firefly iii integration 2024-05-21 11:29:57 +02:00
Ali BARIN
5b7b8c934f Merge pull request #1890 from automatisch/unix-to-date-format
feat(formatter/format-date-time): add unix to datetime support
2024-05-17 15:15:06 +02:00
Rıdvan Akca
b70223e824 feat(formatter/format-date-time): add unix to datetime support 2024-05-17 15:02:22 +02:00
Ali BARIN
9900bbbc8d Merge pull request #1889 from automatisch/fix-attribute-typo 2024-05-17 14:09:01 +02:00
Rıdvan Akca
fc7f1ddd69 fix(appwrite): fix attribute typo 2024-05-17 13:47:16 +02:00
Ali BARIN
991b2f4bf7 Merge pull request #1887 from automatisch/AUT-982
feat: implement propTypes for FlowSubstep and FlowSubstepTitle
2024-05-17 13:13:03 +02:00
Ali BARIN
bb251b16a9 Merge pull request #1556 from automatisch/AUT-610
feat(appwrite): add appwrite integration
2024-05-15 21:49:23 +02:00
Ali BARIN
1b34a48a61 refactor(appwrite/dynamic-data): use native API ordering 2024-05-15 17:59:56 +00:00
Ali BARIN
8c83b715fe fix(appwrite/new-documents): add native order and pagination support 2024-05-15 17:59:56 +00:00
Ali BARIN
c122708b0b fix(appwrite): utilize DOCS_URL 2024-05-15 17:59:56 +00:00
Ali BARIN
258d920ff2 docs(appwrite): describe project settings and hostname 2024-05-15 17:59:56 +00:00
Rıdvan Akca
6e5c0cc0c7 feat(appwrite): add new documents trigger 2024-05-15 17:59:54 +00:00
Rıdvan Akca
9dc82290b5 feat(appwrite): add appwrite integration 2024-05-15 17:59:39 +00:00
Ali BARIN
bb73f90374 Merge pull request #1888 from automatisch/fix-e2e-tests
test: update first app path
2024-05-15 17:59:59 +02:00
Ali BARIN
8a0720b0e3 test: update first app path 2024-05-15 15:52:02 +00:00
Ali BARIN
88468c4f89 Merge pull request #1551 from automatisch/AUT-599
feat(airtable): add airtable integration
2024-05-15 17:35:55 +02:00
Ali BARIN
d19a45592f docs(airtable): link to airtable for apps 2024-05-15 15:30:48 +00:00
Ali BARIN
21a921d25d fix(airtable): remove user ID out of screen name 2024-05-15 15:30:36 +00:00
Ali BARIN
3b2946aac5 fix(airtable/find-record): make limitToView optional field 2024-05-15 15:30:23 +00:00
Ali BARIN
196d555e8c fix(airtable): utilize DOCS_URL 2024-05-15 15:29:31 +00:00
Ali BARIN
28f39b5c7e Merge pull request #1555 from automatisch/AUT-604
feat(airtable): add find record action
2024-05-15 17:28:38 +02:00
Rıdvan Akca
ec8ac17f4a feat(airtable): add find record action 2024-05-15 15:25:55 +00:00
Ali BARIN
c45573349a Merge pull request #1554 from automatisch/AUT-602
feat(airtable): add create record action
2024-05-15 17:24:58 +02:00
Rıdvan Akca
d36c9d43f6 feat(airtable): add create record action 2024-05-15 17:20:47 +02:00
Rıdvan Akca
b06c744392 feat: implement propTypes for FlowSubstep and FlowSubstepTitle 2024-05-15 13:56:57 +02:00
Ali BARIN
9548c93b4c Merge pull request #1867 from automatisch/custom-user-seed
add POST /api/v1/installation/users to seed user
2024-05-13 16:19:37 +02:00
Ali BARIN
4144944ab2 refactor(migrations): rename installation completed migration 2024-05-13 14:12:46 +00:00
Ali BARIN
46b85519c1 refactor(User/createAdmin): mark installation completed 2024-05-13 14:10:21 +00:00
Ali BARIN
5a83fc33ec refactor(User): rename createAdminUser with createAdmin 2024-05-13 14:09:09 +00:00
Ali BARIN
c80791267f refactor(installation): improve allow installation guard 2024-05-13 14:00:12 +00:00
Ali BARIN
b30f97db3e feat: add POST /api/v1/installation/users to seed user 2024-05-13 13:31:16 +00:00
Ali BARIN
717c81fa2b test(global-hooks): truncate config table 2024-05-13 13:31:16 +00:00
Ali BARIN
ae188bc563 feat: add migration to mark userful instances installation completed 2024-05-13 13:31:16 +00:00
Ali BARIN
fc4561221d feat: add DISABLE_SEED_USER to bypass yarn db:seed:user command 2024-05-13 13:31:16 +00:00
Ali BARIN
5aeb4f8809 Merge pull request #1883 from automatisch/checkisenterprise
feat: remove checkIsEnterprise middleware from admin users
2024-05-13 15:30:55 +02:00
Ali BARIN
c6c900bc39 test(get-users.ee): remove license mock 2024-05-13 13:20:48 +00:00
Rıdvan Akca
c18ab67a25 feat: remove checkIsEnterprise middleware from admin users 2024-05-13 15:02:10 +02:00
Ali BARIN
55ae1470d0 Merge pull request #1875 from automatisch/logout-saml 2024-05-13 13:51:49 +02:00
Ömer Faruk Aydın
a1136fdfb2 Merge pull request #1882 from automatisch/no-proxy
feat: add no_proxy support in http(s) agents
2024-05-13 13:43:39 +02:00
Ali BARIN
dfe56d3aa2 feat: add no_proxy support in http(s) agents 2024-05-13 09:15:37 +00:00
Ali BARIN
3da5e13ecd feat: support bi-directional backchannel SAML SLO 2024-05-10 08:58:32 +00:00
Ali BARIN
40d0fe0db6 chore: add saml_session_id property in access token 2024-05-10 08:54:02 +00:00
Ali BARIN
029fd2d0b0 chore(devcontainer): remove keycloak custom container name 2024-05-10 08:54:02 +00:00
Ali BARIN
12905ad733 Merge pull request #1873 from automatisch/fix-use-dynamic-data
fix(useDynamicData): send correct payload to API
2024-05-10 10:53:14 +02:00
Ali BARIN
d257f59a3e Merge pull request #1872 from automatisch/hide-empty-sso-providers
fix(SsoProviders): hide empty block
2024-05-10 10:53:00 +02:00
Ali BARIN
c9281b4605 fix(useDynamicData): send correct payload to API 2024-05-09 20:08:59 +00:00
Ali BARIN
e9d2ae5d67 fix(SsoProviders): hide empty block 2024-05-09 19:07:30 +00:00
Ali BARIN
0f8e05610b Merge pull request #1482 from automatisch/AUT-508
feat(disqus): add new flagged comments trigger
2024-05-08 15:51:54 +02:00
Ali BARIN
9ea2196e51 refactor(disqus/new-flagged-comments): make filter value variable 2024-05-08 13:48:01 +00:00
Ali BARIN
97327a9033 Merge pull request #1865 from automatisch/AUT-973
refactor(google-tasks/find-task): filter all tasks when finding a task
2024-05-08 15:11:55 +02:00
Ali BARIN
8bf11ba7d1 Merge pull request #1544 from automatisch/AUT-582
feat(ynab): add you need a budget app integration
2024-05-08 15:11:49 +02:00
Ali BARIN
523833b015 Merge pull request #1504 from automatisch/AUT-520
feat(vtiger-crm): add vtiger crm integration
2024-05-08 15:10:16 +02:00
Ali BARIN
e25a651d26 fix(ynab/low-account-balance): scope trigger by year and month 2024-05-08 13:06:40 +00:00
Ali BARIN
92a8c1483d fix(ynab/goal-completed): scope triger by year and month 2024-05-08 12:56:46 +00:00
Ali BARIN
8da3448e9c feat(ynab): utilize DOCS_URL variable 2024-05-08 12:55:37 +00:00
Ali BARIN
f2385d8916 fix(ynab/category-overspent): scope trigger by year and month 2024-05-08 12:54:55 +00:00
Ali BARIN
17a8daa526 Merge pull request #1546 from automatisch/AUT-583
feat(ynab): add low account balance trigger
2024-05-08 12:09:16 +02:00
Ali BARIN
51e254f127 Merge pull request #1547 from automatisch/AUT-584
feat(ynab): add category overspent trigger
2024-05-08 12:09:09 +02:00
Ali BARIN
feccf571cd Merge pull request #1548 from automatisch/AUT-585
feat(ynab): add goal completed trigger
2024-05-08 12:08:57 +02:00
Ali BARIN
9f8ce44c1b Merge pull request #1549 from automatisch/AUT-586
feat(ynab): add new transactions trigger
2024-05-08 12:04:16 +02:00
Ali BARIN
a7cfe7f23b Merge pull request #1866 from automatisch/fix-ynab
refactor(ynab): specify a budget when creating a connection
2024-05-08 12:00:46 +02:00
Rıdvan Akca
8eaf775ef2 refactor(ynab): specify a budget when creating a connection 2024-05-07 17:23:16 +02:00
Rıdvan Akca
7b4179a87f refactor(google-tasks/find-task): filter all tasks when finding a task 2024-05-07 16:51:23 +02:00
Ali BARIN
43281bcbfe Merge pull request #1863 from automatisch/vtiger-fix
refactor(vtiger-crm): update field names and keys
2024-05-07 16:15:00 +02:00
Rıdvan Akca
8a35d47caf refactor(vtiger-crm): update field names and keys 2024-05-07 15:42:35 +02:00
Ali BARIN
759e8b6c42 fix(vtiger-crm/triggers): correct pagination 2024-05-07 11:33:55 +00:00
Ali BARIN
a8b01244af fix(vtiger-crm/create-case): mark contactName required 2024-05-07 11:33:37 +00:00
Ali BARIN
6ffb16ac67 fix(vtiger-crm): use DOCS_URL variable in authDocUrl 2024-05-07 11:33:17 +00:00
Ali BARIN
5b66cc6c8b Merge pull request #1527 from automatisch/AUT-521
feat(vtiger-crm): add create todo action
2024-05-07 13:23:49 +02:00
Rıdvan Akca
9a96258265 feat(vtiger-crm): add create case action 2024-05-07 11:22:51 +00:00
Rıdvan Akca
a6cc1566c7 feat(vtiger-crm): add create contact action 2024-05-07 11:22:51 +00:00
Rıdvan Akca
d8d6227125 feat(vtiger-crm): add create lead action 2024-05-07 11:22:51 +00:00
Rıdvan Akca
fbfa67e471 feat(vtiger-crm): add create todo action 2024-05-07 11:22:51 +00:00
Rıdvan Akca
ab897ada5a feat(vtiger-crm): add create opportunity action 2024-05-07 11:22:49 +00:00
Ali BARIN
3bcd3f3cb7 Merge pull request #1524 from automatisch/AUT-528
feat(vtiger-crm): add new todos trigger
2024-05-07 12:18:12 +02:00
Ali BARIN
acbede8631 Merge pull request #1523 from automatisch/AUT-530
feat(vtiger-crm): add new opportunities trigger
2024-05-07 12:16:40 +02:00
Ali BARIN
fa8c7571d7 Merge pull request #1522 from automatisch/AUT-531
feat(vtiger-crm): add new leads trigger
2024-05-07 12:14:52 +02:00
Ali BARIN
a58575c5a1 Merge pull request #1521 from automatisch/AUT-532
feat(vtiger-crm): add new invoices trigger
2024-05-07 12:13:44 +02:00
Ali BARIN
51f7009a80 Merge pull request #1520 from automatisch/AUT-533
feat(vtiger-crm): add new contacts trigger
2024-05-07 12:09:49 +02:00
Ali BARIN
ba24c77f06 Merge pull request #1519 from automatisch/AUT-534
feat(vtiger-crm): add new cases trigger
2024-05-07 11:41:57 +02:00
Rıdvan Akca
6b712c9a90 feat(disqus): add new flagged comments trigger 2024-05-07 10:43:47 +02:00
Ali BARIN
033b15a158 Merge pull request #1484 from automatisch/AUT-510
feat(google-tasks): add google tasks integration
2024-05-06 18:23:28 +02:00
Ali BARIN
e398bb84d4 fix(google-tasks): use DOCS_URL variable in auth doc url 2024-05-06 16:15:32 +00:00
Ali BARIN
05e902ab0c fix(google-tasks): enable triggers 2024-05-06 16:13:52 +00:00
Ali BARIN
36eee61cb5 fix(google-tasks/triggers): use id instead of etag 2024-05-06 16:13:30 +00:00
Ali BARIN
2409ce6fce fix(google-tasks/newCompletedTasks): use unique meaningful key 2024-05-06 16:13:12 +00:00
Ali BARIN
999d61e520 Merge pull request #1485 from automatisch/AUT-511
feat(google-tasks): add find task action
2024-05-06 18:12:02 +02:00
Ali BARIN
08d2418190 Merge pull request #1486 from automatisch/AUT-512
feat(google-tasks): add update task action
2024-05-06 18:08:25 +02:00
Ali BARIN
6c07faeaaf Merge pull request #1487 from automatisch/AUT-513
feat(google-tasks): add create task action
2024-05-06 18:05:49 +02:00
Ali BARIN
3f5cfbf5a2 Merge pull request #1488 from automatisch/AUT-514
feat(google-tasks): add create task list action
2024-05-06 18:02:40 +02:00
Ali BARIN
28f7707c75 Merge pull request #1489 from automatisch/AUT-515
feat(google-tasks): add new task lists trigger
2024-05-06 17:59:11 +02:00
Ali BARIN
dc8358f6ce Merge pull request #1490 from automatisch/AUT-516
feat(google-tasks): add new tasks trigger
2024-05-06 17:56:25 +02:00
Ali BARIN
ffcda04677 Merge pull request #1492 from automatisch/AUT-517
feat(google-tasks): add new completed tasks trigger
2024-05-06 17:50:23 +02:00
Ali BARIN
64ef655abb Merge pull request #1862 from automatisch/remove-dockerfile-cloud
chore(docker): remove Dockerfile.cloud
2024-05-06 17:00:01 +02:00
Ali BARIN
67887b1220 Merge pull request #1472 from automatisch/AUT-506
feat(disqus): add disqus integration
2024-05-06 16:14:31 +02:00
Ali BARIN
07803d1263 Merge pull request #1476 from automatisch/AUT-509
feat(disqus): add new comments trigger
2024-05-06 16:11:19 +02:00
Ali BARIN
f5ff7f7e13 chore(docker): remove Dockerfile.cloud 2024-05-06 12:42:05 +00:00
Ali BARIN
641d062b82 Merge pull request #1846 from automatisch/encode-uri-component
feat(formatter): add encode uri using encodeURIComponent action
2024-05-06 14:40:27 +02:00
Rıdvan Akca
bb28a06ee9 feat(formatter): add encode uri using encodeURIComponent action 2024-05-06 14:12:04 +02:00
Ali BARIN
81338c60f2 Merge pull request #1845 from automatisch/AUT-955
feat(formatter): add encode uri action
2024-05-06 13:44:40 +02:00
Ömer Faruk Aydın
f47fa5d272 Merge pull request #1859 from automatisch/remove-docker-cloud-entrypoint
chore(docker): remove cloud entrypoint
2024-05-03 15:16:20 +02:00
Ali BARIN
29e9e012a5 chore(docker): remove cloud entrypoint 2024-05-03 13:12:35 +00:00
Ömer Faruk Aydın
f89ddb5847 Merge pull request #1858 from automatisch/automatisch-version
fix: Do not use the version from npm packages
2024-05-03 15:11:51 +02:00
Faruk AYDIN
c721f063ef fix: Do not use the version from npm packages 2024-05-03 15:04:32 +02:00
Ömer Faruk Aydın
a709565336 Merge pull request #1857 from automatisch/latest-dockerfile
feat: Use latest docker image for docker compose
2024-05-03 14:53:25 +02:00
Faruk AYDIN
91e484aef1 feat: Use latest docker image for docker compose 2024-05-03 14:48:44 +02:00
Rıdvan Akca
6ba94dcc8e feat(formatter): add encode uri action 2024-04-27 13:21:50 +02:00
Ömer Faruk Aydın
788530be45 Merge pull request #1843 from automatisch/dockerignore
chore: Add .env and yarn error log files to dockerignore
2024-04-26 17:27:55 +02:00
Faruk AYDIN
7ed392e854 chore: Add .env and yarn error log files to dockerignore 2024-04-26 17:19:18 +02:00
Ömer Faruk Aydın
3932e554da Merge pull request #1842 from automatisch/node-gyp
chore: Explicitly install node-gyp
2024-04-26 16:45:30 +02:00
Faruk AYDIN
1a21624618 chore: Explicitly install node-gyp 2024-04-26 16:39:14 +02:00
Ömer Faruk Aydın
9f292ff018 Merge pull request #1840 from automatisch/update-bcrypt
chore: Update bcrypt version to 5.1.0
2024-04-26 15:43:47 +02:00
Faruk AYDIN
dbb24b3a9b chore: Update bcrypt version to 5.1.0 2024-04-26 15:36:36 +02:00
Ali BARIN
35b2639837 Merge pull request #1839 from automatisch/dockerfile-revision
chore: direct builds in docker
2024-04-26 15:02:37 +02:00
Ali BARIN
35951199cd chore: direct builds in docker 2024-04-26 14:42:56 +02:00
Ali BARIN
79af909c51 Merge pull request #1832 from automatisch/align-404-page-center
fix: align 404 page content to the center
2024-04-26 14:22:26 +02:00
Ali BARIN
3482aa7b76 Merge pull request #1837 from automatisch/logout-endpoint-web-implementation
feat: implement revoke access token with RQ
2024-04-26 14:20:49 +02:00
Ali BARIN
5dbc1f59ef Merge pull request #1835 from automatisch/logout-endpoint
feat: add DELETE /access-tokens/:token
2024-04-26 14:18:59 +02:00
Ali BARIN
2166a3220e style: add break line before variable declaration and beforeEach 2024-04-26 12:02:38 +00:00
Ali BARIN
24a7d1ef10 Merge pull request #1833 from automatisch/aut-931
feat: remove static page title
2024-04-26 11:51:03 +02:00
Ali BARIN
18ffbb7317 fix(AccountDropdownMenu): await token revocation request 2024-04-26 09:27:41 +00:00
Rıdvan Akca
363874de6a feat: implement revoke access token with RQ 2024-04-26 09:25:50 +00:00
Ali BARIN
68d1719b11 feat: add new methods to cors options 2024-04-26 09:25:27 +00:00
Ali BARIN
1a75d81268 test: add test for revoking access token 2024-04-26 09:16:53 +00:00
Ali BARIN
2163be4227 feat: add DELETE /access-tokens/:token 2024-04-24 15:31:22 +00:00
Ali BARIN
b54afcd922 Merge pull request #1825 from automatisch/access-tokens
feat: Use persisted access tokens for authentication
2024-04-24 16:39:57 +02:00
Ali BARIN
0a86641a0f feat: remove static page title 2024-04-24 15:27:37 +02:00
kasia.oczkowska
18464c746a fix: align 404 page content to the center 2024-04-24 13:20:07 +01:00
Ömer Faruk Aydın
ba92cddae1 Merge pull request #1828 from automatisch/aut-932
feat: compute DOCS_URL in authDocUrl
2024-04-24 12:09:19 +02:00
Faruk AYDIN
2a4f8ed45f feat: Add indexes to token and userId columns of access tokens 2024-04-24 12:03:45 +02:00
Ali BARIN
135a0028be feat: introduce DOCS_URL in authDocUrl properties 2024-04-23 12:39:38 +00:00
Ali BARIN
4da6e8372f feat: compute DOCS_URL in authDocUrl 2024-04-23 12:21:51 +00:00
Faruk AYDIN
6a7cdf2570 feat: Use persisted access tokens for authentication 2024-04-22 16:57:34 +02:00
Faruk AYDIN
73c929f25e feat: Create access tokens model 2024-04-22 15:19:17 +02:00
Ali BARIN
754c2d41c2 Merge pull request #1814 from automatisch/AUT-892
feat: remove chatwood
2024-04-17 14:40:17 +02:00
Rıdvan Akca
7201e48111 feat: remove chatwood 2024-04-17 14:29:54 +02:00
Ömer Faruk Aydın
e4292815cd Merge pull request #1812 from automatisch/AUT-917
fix: expose missing createdAt and updatedAt fields from flow
2024-04-16 14:10:26 +02:00
Rıdvan Akca
ab37250d5d fix: expose missing createdAt and updatedAt fields from flow 2024-04-15 13:57:38 +02:00
Ömer Faruk Aydın
e5be8d3ba7 Merge pull request #1802 from automatisch/AUT-688
refactor: rewrite get connected apps with RQ
2024-04-15 11:43:35 +02:00
Ali BARIN
96a421fa22 Merge pull request #1811 from automatisch/AUT-920
fix: make inputs look and behave disabled when flow is in published state
2024-04-12 16:19:37 +02:00
kasia.oczkowska
12f72401b1 fix: make inputs look and behave disabled when flow is in published state 2024-04-12 14:58:24 +01:00
Ali BARIN
7391a9eddc Merge pull request #1810 from automatisch/AUT-921
fix: disable add connection button for unauthorized users
2024-04-12 15:15:38 +02:00
Ali BARIN
30dee27f72 Merge pull request #1809 from automatisch/AUT-914
fix: invalidate app connections upon reconnecting a connection
2024-04-12 15:15:11 +02:00
Ali BARIN
51a9939034 Merge pull request #1808 from automatisch/AUT-922
fix: disable create flow button when user doesn't have permissions
2024-04-12 15:14:44 +02:00
Ali BARIN
e03c6e0ca4 Merge pull request #1807 from automatisch/update-query-key
fix: update old query key
2024-04-12 15:14:26 +02:00
Rıdvan Akca
bece5c6488 fix: invalidate app connections upon reconnecting a connection 2024-04-12 14:55:45 +02:00
kasia.oczkowska
d49bb4c52d fix: disable add connection button for unauthorized users 2024-04-12 13:43:26 +01:00
kattoczko
73d0eec30c Merge branch 'main' into update-query-key 2024-04-12 14:10:40 +02:00
kasia.oczkowska
5c756b16ca fix: disable create flow button when user doesn't have permissions 2024-04-12 12:41:50 +01:00
Ali BARIN
f482c2422c Merge pull request #1806 from automatisch/AUT-913
fix: invalidate app connections upon creating a connection
2024-04-12 13:31:03 +02:00
kasia.oczkowska
2e564c863f fix: update old query key 2024-04-12 12:25:02 +01:00
Rıdvan Akca
d9917a81bb fix: invalidate app connections upon creating a connection 2024-04-12 13:10:51 +02:00
Ali BARIN
61dc431f92 Merge pull request #1805 from automatisch/AUT-919
fix: pass current user id to usePlanAndUsage hook
2024-04-12 13:06:57 +02:00
Ali BARIN
7d2fb8d9d7 Merge pull request #1803 from automatisch/AUT-912
fix: invalidate useCurrentUser when updating profile settings
2024-04-12 13:06:24 +02:00
Ali BARIN
608b79b66f Merge pull request #1804 from automatisch/unify-query-keys 2024-04-12 11:57:13 +02:00
kasia.oczkowska
009754c18b fix: pass current user id to usePlanAndUsage hook 2024-04-12 10:43:40 +01:00
Rıdvan Akca
5df07c289e fix: invalidate useCurrentUser when updating profile settings 2024-04-12 11:28:13 +02:00
kasia.oczkowska
a36d10870b feat: unify react-query query keys 2024-04-12 10:07:51 +01:00
kasia.oczkowska
b549ba3e39 refactor: rewrite get connected apps with RQ 2024-04-11 14:00:53 +01:00
Ali BARIN
897c96361f Merge pull request #1801 from automatisch/remove-unused-get-app-auth-client
refactor: remove not used files related to gql get-app-auth-client
2024-04-11 12:18:03 +02:00
kasia.oczkowska
e7693d8aa6 refactor: remove not used files related to gql get-app-auth-client 2024-04-11 11:10:58 +01:00
Ali BARIN
1fe755f836 Merge pull request #1800 from automatisch/AUT-689
refactor: rewrite useDynamicData with RQ
2024-04-10 17:47:22 +02:00
Rıdvan Akca
ea1a63f7dd refactor: rewrite useDynamicData with RQ 2024-04-10 17:25:01 +02:00
Ali BARIN
85134722a5 Merge pull request #1799 from automatisch/AUT-709
refactor: rewrite test connection with RQ
2024-04-10 17:21:37 +02:00
Rıdvan Akca
5c9d3ed134 refactor: rewrite test connection with RQ 2024-04-10 16:39:55 +02:00
Ali BARIN
17fb935ea0 Merge pull request #1798 from automatisch/fix-flow-counts
fix: show flow counts using useConnectionFlows
2024-04-10 16:37:06 +02:00
Ali BARIN
196642a1cf feat(AppConnectionRow): embed skeleton in place of flow count 2024-04-10 14:08:30 +00:00
Rıdvan Akca
009cf63d8c fix: show flow counts using useConnectionFlows 2024-04-10 15:29:21 +02:00
Ali BARIN
da399aacd6 Merge pull request #1766 from automatisch/AUT-705
refactor: rewrite useStepWithTestExecutions with RQ
2024-04-10 13:30:04 +02:00
Rıdvan Akca
3632ee77e5 refactor: rewrite useStepWithTestExecutions with RQ 2024-04-09 16:32:52 +02:00
Ali BARIN
2901f337cc Merge pull request #1797 from automatisch/disable-retry-on-mount
fix: disable retry on mount by default
2024-04-09 14:31:57 +02:00
Ali BARIN
f0bd2f335b fix: disable retry on mount by default 2024-04-08 15:20:10 +00:00
Ali BARIN
acdd026448 Merge pull request #1780 from automatisch/AUT-686
refactor: rewrite useBillingAndUsageData with useSubscription and useUserTrial
2024-04-08 15:22:55 +02:00
Ali BARIN
fb0a328ab0 Merge pull request #1791 from automatisch/AUT-905
refactor: rewrite get app connections with RQ
2024-04-08 15:21:02 +02:00
Rıdvan Akca
d2a7889fc9 refactor: remove useBillingAndUsageData hook 2024-04-08 14:49:37 +02:00
Rıdvan Akca
88c50e014d fix: update SubscriptionCancelledAlert and CheckoutCompletedAlert based on useSubscription and useUserTrial 2024-04-08 14:45:42 +02:00
Rıdvan Akca
f0ef12f904 refactor: rewrite useSubscription with RQ and use it in UsageDataInformation 2024-04-08 14:45:42 +02:00
Rıdvan Akca
1827f5413f refactor(useUserTrial): return hasTrial field from hook 2024-04-08 14:45:42 +02:00
Rıdvan Akca
0609f30e25 feat: introduce usePlanAndUsage with RQ 2024-04-08 14:45:42 +02:00
Rıdvan Akca
d4e4d95b6d refactor: rewrite get app connections with RQ 2024-04-08 14:44:36 +02:00
Ali BARIN
d74af4931e Merge pull request #1793 from automatisch/AUT-682
refactor: rewrite useAuthClients with RQ
2024-04-08 14:40:44 +02:00
Ali BARIN
bee043d10d Merge pull request #1792 from automatisch/fix-deleting-flows
fix: refetch app flows after delete and duplicate
2024-04-08 14:25:52 +02:00
Rıdvan Akca
a65e48b98a fix: refetch app flows after delete and duplicate 2024-04-08 13:52:32 +02:00
Ali BARIN
ee26b54d54 Merge pull request #1761 from automatisch/AUT-859
refactor: rewrite useFlow and useStepConnection with RQ
2024-04-08 13:33:48 +02:00
Ömer Faruk Aydın
855ec53dc2 Merge pull request #1795 from automatisch/rest-get-user-apps
feat: Implement users get apps API endpoint
2024-04-07 03:54:47 +02:00
Faruk AYDIN
3e3e48110d feat: Implement users get apps API endpoint 2024-04-07 03:45:33 +02:00
Rıdvan Akca
fc04a357c8 refactor: rewrite useFlow and useStepConnection with RQ 2024-04-05 17:51:28 +02:00
Ali BARIN
c8147370de Merge pull request #1794 from automatisch/fix-application-page
fix: destructure app config data correctly on Application page
2024-04-05 16:50:57 +02:00
kasia.oczkowska
999426be89 fix: destructure app config data correctly on Application page 2024-04-05 15:36:50 +01:00
kasia.oczkowska
91458f91ef refactor: rewrite useAuthClients with RQ 2024-04-05 15:35:05 +01:00
Ali BARIN
4b9ed29cc0 Merge pull request #1758 from automatisch/dependabot/npm_and_yarn/webpack-dev-middleware-5.3.4
chore(deps): bump webpack-dev-middleware from 5.3.0 to 5.3.4
2024-04-05 16:03:44 +02:00
Ali BARIN
e3bcb673fb Merge pull request #1787 from automatisch/dependabot/npm_and_yarn/vite-3.2.10
chore(deps): bump vite from 3.2.8 to 3.2.10
2024-04-05 16:03:20 +02:00
Ali BARIN
bf4776ca4f Merge pull request #1788 from automatisch/AUT-867
fix: introduce fix for token management
2024-04-05 14:19:05 +02:00
Ali BARIN
9f7f30a92a Merge pull request #1790 from automatisch/AUT-907
fix: set loading false if there is no flowName
2024-04-05 14:18:03 +02:00
Rıdvan Akca
5c29fff55e fix: set loading false if there is no flowName 2024-04-05 14:06:29 +02:00
Ali BARIN
a0160c2573 Merge pull request #1789 from automatisch/fix-use-apps
fix: introduce fix for useApps not using name as param
2024-04-05 12:00:50 +02:00
kasia.oczkowska
87d3ca287d fix: introduce fix for useApps not using name as param 2024-04-05 10:48:49 +01:00
kasia.oczkowska
526e093689 fix: introduce fix for token management 2024-04-04 14:16:25 +01:00
Ömer Faruk Aydın
0930c9d8d6 Merge pull request #1786 from automatisch/flow-error-message
fix: Use soft deleted filter to get soft deleted user
2024-04-04 00:50:50 +02:00
dependabot[bot]
ec680a713d chore(deps): bump vite from 3.2.8 to 3.2.10
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.2.8 to 3.2.10.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v3.2.10/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.2.10/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 18:08:37 +00:00
Faruk AYDIN
583f90d1e9 fix: Use soft deleted filter to get soft deleted user 2024-04-03 19:10:40 +02:00
Ömer Faruk Aydın
8ba95381bc Merge pull request #1784 from automatisch/create-dynamic-data-action
feat: Implement create dynamic data API endpoint
2024-04-03 01:23:14 +02:00
Faruk AYDIN
ec6d634b99 feat: Implement create dynamic data API endpoint 2024-04-03 01:17:06 +02:00
Ali BARIN
bc082acbe7 Merge pull request #1785 from automatisch/make-stages-dynamic-in-pipedrive
feat(pipedrive/create-deal): add dynamic stages
2024-04-03 00:09:46 +02:00
Ali BARIN
e474ba02cb Merge pull request #1645 from automatisch/flex-http-request
feat(http-request/custom-request): utilize accept header for parsing response
2024-04-02 19:54:44 +02:00
Ali BARIN
ea922aaf10 feat(pipedrive/create-deal): add dynamic stages 2024-04-02 15:43:53 +00:00
Ömer Faruk Aydın
766e6e20d8 Merge pull request #1783 from automatisch/rest-test-connection
feat: Implement test connection API endpoint
2024-03-30 00:22:38 +01:00
Faruk AYDIN
8e646c244e feat: Implement test connection API endpoint 2024-03-30 00:12:59 +01:00
Ömer Faruk Aydın
26f31a5899 Merge pull request #1782 from automatisch/rest-get-app-connections
feat: Implement get app connections API endpoint
2024-03-29 00:44:15 +01:00
Faruk AYDIN
5c79e374dd feat: Implement get app connections API endpoint 2024-03-29 00:21:58 +01:00
Ömer Faruk Aydın
7c1473ea95 Merge pull request #1781 from automatisch/fix-app-config-endpoint
fix: Fetch app auth clients for app config endpoint
2024-03-28 22:55:46 +01:00
Faruk AYDIN
1fe4cc3258 fix: Fetch app auth clients for app config endpoint 2024-03-28 22:48:17 +01:00
Ömer Faruk Aydın
042ad4cea1 Merge pull request #1774 from automatisch/rest-admin-get-app-auth-client
feat: Implement new admin get app auth client API endpoint
2024-03-28 20:47:50 +01:00
Ömer Faruk Aydın
e4c998dbce Merge pull request #1773 from automatisch/rest-admin-get-app-auth-clients
feat: Implement new admin get auth clients API endpoint
2024-03-28 20:47:40 +01:00
Ömer Faruk Aydın
83c8cacdac Merge pull request #1771 from automatisch/rest-get-app-auth-clients
feat: Implement new get app auth clients API endpoint
2024-03-28 20:47:12 +01:00
Ömer Faruk Aydın
f75d5d906e Merge pull request #1770 from automatisch/add-app-key-to-auth-clients
feat: Implement new get auth clients api endpoint
2024-03-28 20:44:51 +01:00
Faruk AYDIN
85b3856564 chore: Correct the folder of get auth client mock 2024-03-28 20:41:12 +01:00
Faruk AYDIN
75cb2569b5 chore: Remove old app auth client routers 2024-03-28 20:41:12 +01:00
Faruk AYDIN
0a4ac1cece feat: Implement new admin get app auth client API endpoint 2024-03-28 20:41:12 +01:00
Faruk AYDIN
a873fd14bd chore: Remove old admin app auth clients API endpoint 2024-03-28 20:40:45 +01:00
Faruk AYDIN
85b4cd4998 feat: Implement new admin get auth clients API endpoint 2024-03-28 20:40:45 +01:00
Faruk AYDIN
e9bc9b1aa8 fix: Typo for the get auth clients test file 2024-03-28 20:40:45 +01:00
Faruk AYDIN
e3bf599bf6 feat: Implement new get app auth clients API endpoint 2024-03-28 20:40:14 +01:00
Faruk AYDIN
01ae96840e refactor: Remove redundant appConfigId from get auth clients mock 2024-03-28 20:38:46 +01:00
Faruk AYDIN
186160ebf4 feat: Make appKey column of app auth clients not nullable 2024-03-28 20:38:46 +01:00
Faruk AYDIN
70f5e45c1f chore: Remove old app auth clients API endpoint 2024-03-28 20:38:46 +01:00
Faruk AYDIN
6dc54ecabc feat: Implement new get auth clients api endpoint 2024-03-28 20:38:46 +01:00
Faruk AYDIN
d21888c047 feat: Remove app config relation from app auth clients 2024-03-28 20:38:46 +01:00
Faruk AYDIN
33f7a90042 feat: Remove app auth clients relation from app configs 2024-03-28 20:38:46 +01:00
Faruk AYDIN
a00d3a2c5e feat: Remove app config id from app auth clients 2024-03-28 20:38:46 +01:00
Faruk AYDIN
abc64d769c feat: Migrate app config id to app key 2024-03-28 20:38:46 +01:00
Faruk AYDIN
88754ac569 feat: Add appKey to app auth clients 2024-03-28 20:38:46 +01:00
Ali BARIN
e3ee05d47d Merge pull request #1772 from automatisch/fix-signal
fix(useDynamicFields): pass signal in RQ
2024-03-28 14:22:39 +01:00
Rıdvan Akca
3b004e7483 fix(useDynamicFields): pass signal in RQ 2024-03-27 10:57:17 +03:00
Ali BARIN
9aa48c20e4 Merge pull request #1764 from automatisch/AUT-872
refactor: rewrite useDynamicFields with RQ
2024-03-26 16:58:43 +01:00
Rıdvan Akca
1b5d3beeca refactor: rewrite useDynamicFields with RQ 2024-03-26 18:50:36 +03:00
Ömer Faruk Aydın
00115d313e Merge pull request #1769 from automatisch/rest-logger
refactor: Use additional logger line only for graphQL
2024-03-26 16:25:12 +01:00
Faruk AYDIN
190f1a205f refactor: Use additional logger line only for graphQL 2024-03-26 15:39:02 +01:00
Ali BARIN
8ab6f0c3fe Merge pull request #1767 from automatisch/fix-trial-badge
fix: show trial status badge if user has trial
2024-03-26 13:52:40 +01:00
Rıdvan Akca
13eea263c0 fix: show trial status badge if user has trial 2024-03-26 15:45:26 +03:00
Ömer Faruk Aydın
b52b40962e Merge pull request #1768 from automatisch/rest-create-access-token
feat: Implement create access token API endpoint
2024-03-26 13:31:18 +01:00
Faruk AYDIN
7d1fa2e40c feat: Implement create access token API endpoint 2024-03-26 13:14:33 +01:00
Faruk AYDIN
93b2098829 refactor: Extract token generation logic to User model 2024-03-26 13:14:10 +01:00
Faruk AYDIN
a2acdc6b12 feat: Add draft version of renderError to renderer helper 2024-03-26 13:13:37 +01:00
Ali BARIN
38b2c1e30f Merge pull request #1765 from automatisch/refactor-get-app-config
refactor: Move app config endpoint to apps namespace
2024-03-26 12:38:42 +01:00
Rıdvan Akca
e07f579f3c refactor: update endpoint in useAppConfig 2024-03-25 19:12:45 +03:00
Faruk AYDIN
df3297b6ca refactor: Move app config endpoint to apps namespace 2024-03-25 17:01:16 +01:00
Ömer Faruk Aydın
fc4eeed764 Merge pull request #1760 from automatisch/rest-app-auth-clients
feat: Implement get app auth clients API endpoint
2024-03-22 15:20:00 +01:00
Faruk AYDIN
3596d13be1 feat: Implement get app auth clients API endpoint 2024-03-22 15:05:37 +01:00
Ömer Faruk Aydın
104d49ea1c Merge pull request #1759 from automatisch/rest-admin-app-auth-clients
feat: Implement admin get app auth clients API endpoint
2024-03-22 15:05:30 +01:00
Faruk AYDIN
7057317446 refactor: Use ee extension for admin app auth clients 2024-03-22 14:48:46 +01:00
Faruk AYDIN
280575df88 refactor: Move app auth client mock to correct folder 2024-03-22 14:46:43 +01:00
Faruk AYDIN
d2cb434b7b refactor: Move admin get app auth client mock to correct folder 2024-03-22 14:44:35 +01:00
Faruk AYDIN
2ecb802a2e feat: Implement admin get app auth clients API endpoint 2024-03-22 14:42:48 +01:00
Ali BARIN
46e706c415 Merge pull request #1756 from automatisch/AUT-687
refactor: rewrite useConfig with RQ
2024-03-22 10:24:52 +01:00
kasia.oczkowska
3a57349d8a refactor: rewrite useConfig with RQ 2024-03-22 09:14:29 +00:00
dependabot[bot]
565db852e0 chore(deps): bump webpack-dev-middleware from 5.3.0 to 5.3.4
Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 5.3.0 to 5.3.4.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v5.3.0...v5.3.4)

---
updated-dependencies:
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-22 09:08:14 +00:00
Ali BARIN
754c3269ec Merge pull request #1739 from automatisch/dependabot/npm_and_yarn/follow-redirects-1.15.6
chore(deps): bump follow-redirects from 1.15.3 to 1.15.6
2024-03-22 10:07:35 +01:00
Ömer Faruk Aydın
a079842408 Merge pull request #1757 from automatisch/create-dynamic-fields-endpoint
feat: Implement create dynamic fields API endpoint
2024-03-22 03:05:11 +01:00
Faruk AYDIN
7664b58553 feat: Implement create dynamic fields API endpoint 2024-03-22 02:55:23 +01:00
Ali BARIN
de77488f7e Merge pull request #1754 from automatisch/AUT-697
refactor: rewrite useNotifications with RQ
2024-03-21 15:05:35 +01:00
kasia.oczkowska
d808afd21b refactor: rewrite useNotifications with RQ 2024-03-21 14:56:54 +01:00
Ömer Faruk Aydın
b68aff76a1 Merge pull request #1755 from automatisch/get-previous-steps
feat: Implement get previous steps rest API endpoint
2024-03-21 14:56:16 +01:00
Faruk AYDIN
6da7fe158f feat: Implement get previous steps rest API endpoint 2024-03-21 14:40:18 +01:00
Faruk AYDIN
4dbc7fdc7d feat: Extend step serializers to include execution steps 2024-03-21 14:39:22 +01:00
Ali BARIN
ad1e1f7eca Merge pull request #1750 from automatisch/make-respond-with-flexible
feat(webhooks/respond-with): accept custom headers
2024-03-21 12:03:51 +01:00
Ömer Faruk Aydın
9c3f7a3823 Merge pull request #1753 from automatisch/use-objection-for-factories
refactor: Use objection instead of knex for factories
2024-03-20 17:31:37 +01:00
Faruk AYDIN
86f4cb7701 refactor: Use objection instead of knex for factories 2024-03-20 17:24:44 +01:00
Ali BARIN
359a90245d Merge pull request #1734 from automatisch/AUT-845
refactor: rewrite useUsers with RQ
2024-03-20 16:08:07 +01:00
kasia.oczkowska
d8d7d86359 feat: invalidate queries on user related actions 2024-03-20 15:00:54 +00:00
Ali BARIN
7189b629c0 Merge pull request #1746 from automatisch/AUT-856
refactor: rewrite useFlows as useConnectionFlows and useAppFlows with RQ
2024-03-20 15:13:36 +01:00
kasia.oczkowska
55c9b5566c feat: rename hooks 2024-03-20 14:23:33 +01:00
kasia.oczkowska
ab671ccbf7 refactor: rewrite useUsers with RQ 2024-03-20 13:14:25 +00:00
Rıdvan Akca
316bda8c3f refactor: rewrite useFlows as useConnectionFlows and useAppFlows with RQ 2024-03-20 11:45:26 +03:00
Ömer Faruk Aydın
76f77e8a4c Merge pull request #1752 from automatisch/fix-step-factory
fix: Adjust step factory to use objection instead of knex
2024-03-20 02:15:13 +01:00
Faruk AYDIN
4a99d5eab7 fix: Adjust step factory to use objection instead of knex 2024-03-20 02:03:31 +01:00
Ali BARIN
473d287c6d feat(webhooks/respond-with): accept custom headers 2024-03-19 19:21:20 +00:00
Ömer Faruk Aydın
bddd9896e4 Merge pull request #1749 from automatisch/fix/docs-change
fix: Do not explicitly define github and context for CI actions
2024-03-19 20:08:08 +01:00
Faruk AYDIN
95eb115965 fix: Do not explicitly define github and context for CI actions 2024-03-19 17:49:05 +01:00
Ömer Faruk Aydın
9a63b213b0 Merge pull request #1747 from automatisch/docs-changes
feat: Add docs change CI workflow to detect changes
2024-03-19 17:37:56 +01:00
Faruk AYDIN
90b00d88f1 feat: Add docs change CI workflow to detect changes 2024-03-19 17:32:36 +01:00
Rıdvan Akca
ec87c7f21c feat: introduce useLazyFlows with RQ 2024-03-19 16:56:53 +03:00
Ali BARIN
452f45cac6 Merge pull request #1744 from QAComet/QAComet/manage-users-roles-update
test: fix flakiness in manage roles and users tests
2024-03-19 12:57:28 +01:00
Ali BARIN
c644b3d384 Merge pull request #1745 from automatisch/fix-unused-queries
fix: pass all params to enabled of RQ if necessary
2024-03-19 11:25:32 +01:00
Rıdvan Akca
68160c20e8 fix: pass all params to enabled of RQ if necessary 2024-03-19 13:16:08 +03:00
QAComet
ad144206dd fix(e2e): update expect to web-first assertion, wait for edit form to load 2024-03-18 12:22:56 -06:00
Ali BARIN
f3d20ab769 Merge pull request #1738 from automatisch/AUT-849
refactor: rewrite useAdminSamlAuthProviderRoleMappings with RQ
2024-03-18 15:19:33 +01:00
Ömer Faruk Aydın
9767ca7116 Merge pull request #1741 from automatisch/guard-actions-triggers
fix: Guard actions and triggers properties of apps
2024-03-17 13:26:59 +01:00
Faruk AYDIN
73a5b8553f fix: Guard actions and triggers properties of apps 2024-03-17 12:47:18 +01:00
dependabot[bot]
5c684cd499 chore(deps): bump follow-redirects from 1.15.3 to 1.15.6
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-16 20:12:03 +00:00
Ali BARIN
479f3e3172 Merge pull request #1737 from automatisch/fix-admin-applications
fix: control variables parameter in useApps hook
2024-03-15 17:26:27 +01:00
Rıdvan Akca
6a1350fd00 refactor: rewrite useAdminSamlAuthProviderRoleMappings with RQ 2024-03-15 19:03:54 +03:00
Rıdvan Akca
563784da1c fix: control variables parameter in useApps hook 2024-03-15 18:57:43 +03:00
Ali BARIN
347f0ed3a5 Merge pull request #1736 from automatisch/fix-loading-and-undefined-requests
fix: convert loading to isLoading in useUser hook
2024-03-15 16:50:07 +01:00
Rıdvan Akca
1db9f5b2c2 fix: convert loading to isLoading in useUser hook 2024-03-15 18:42:07 +03:00
Ömer Faruk Aydın
f2a3e26188 Merge pull request #1735 from automatisch/delete-step-fix
fix: Use correct model file to delete step
2024-03-15 16:42:06 +01:00
Faruk AYDIN
1c0897bfb6 fix: Use correct model file to delete step 2024-03-15 16:34:38 +01:00
Ali BARIN
f0793992a6 Merge pull request #1726 from automatisch/AUT-839
refactor: rewrite usePermissionCatalog with RQ
2024-03-15 15:28:33 +01:00
Ali BARIN
393205ba2f Merge pull request #1725 from automatisch/AUT-838
refactor: rewrite useSamlAuthProviders with RQ
2024-03-15 15:28:01 +01:00
Rıdvan Akca
ab49535b6c refactor: rewrite useSamlAuthProviders with RQ 2024-03-15 17:27:48 +03:00
Ali BARIN
8191b48548 Merge pull request #1722 from automatisch/AUT-832
refactor: rewrite useUserTrial with RQ
2024-03-15 15:19:58 +01:00
Rıdvan Akca
925dd06432 refactor: rewrite useUserTrial with RQ 2024-03-15 16:56:31 +03:00
Rıdvan Akca
0d525e056a refactor: rewrite usePermissionCatalog with RQ 2024-03-15 16:51:22 +03:00
Ali BARIN
3aa86eebf2 Merge pull request #1733 from automatisch/AUT-844
refactor: rewrite useUser with RQ
2024-03-15 14:03:20 +01:00
Ali BARIN
d7a93abec0 Merge pull request #1717 from automatisch/AUT-829
refactor: rewrite useCurrentUser with RQ
2024-03-15 14:02:09 +01:00
Ali BARIN
6448d28a18 Merge pull request #1732 from automatisch/AUT-842
refactor: rewrite useSamlAuthProvider with RQ
2024-03-15 13:59:22 +01:00
kasia.oczkowska
449976483c refactor: rewrite useUser with RQ 2024-03-15 12:55:23 +00:00
Ali BARIN
e468b762ef Merge pull request #1723 from automatisch/remove-unused-payloads
refactor: remove unused payloads from RQ
2024-03-15 13:53:45 +01:00
Rıdvan Akca
b578e73cc4 refactor: rewrite useSamlAuthProvider with RQ 2024-03-15 15:52:39 +03:00
Ali BARIN
e381f95b95 Merge pull request #1719 from automatisch/AUT-831
refactor: rewrite useSubscription with RQ
2024-03-15 13:23:06 +01:00
Ali BARIN
5685afae63 Merge pull request #1718 from automatisch/AUT-830
refactor: rewrite useInvoices with RQ
2024-03-15 13:22:21 +01:00
Ali BARIN
53a473422b Merge pull request #1731 from automatisch/AUT-841
refactor: rewrite useRole with RQ
2024-03-15 13:19:41 +01:00
Rıdvan Akca
3f9f17f584 refactor: rewrite useRole with RQ 2024-03-15 15:09:36 +03:00
QAComet
2c410bf318 docs(e2e-tests): write basic README for setting up the tests (#1730) 2024-03-15 13:08:04 +01:00
Ali BARIN
40934a2c77 Merge pull request #1727 from automatisch/AUT-840
refactor: rewrite useRoles with RQ
2024-03-15 13:03:44 +01:00
Rıdvan Akca
ecc9379d7e refactor: remove get-roles GQL query 2024-03-15 14:51:18 +03:00
Ömer Faruk Aydın
f8d27342dc Merge pull request #1729 from automatisch/rest-plan-and-usage
feat: Implement plan and usage API endpoint
2024-03-15 00:56:42 +01:00
Faruk AYDIN
17bd2bf2ba feat: Implement plan and usage API endpoint 2024-03-15 00:49:15 +01:00
Ömer Faruk Aydın
d984a3f275 Merge pull request #1728 from automatisch/rest-saml-auth-providers
feat: Implement get role mappings API endpoint
2024-03-14 16:01:34 +01:00
Faruk AYDIN
64049bd546 feat: Implement get role mappings API endpoint 2024-03-14 15:49:14 +01:00
Rıdvan Akca
9218091c33 refactor: rewrite useRoles with RQ 2024-03-14 16:33:08 +03:00
Rıdvan Akca
75df7d6413 refactor: rewrite parameters of RQ hooks 2024-03-14 13:54:51 +03:00
Ömer Faruk Aydın
29341f81e1 Merge pull request #1724 from automatisch/rest-saml-auth-providers
feat: Implement saml auth providers API endpoint
2024-03-14 10:36:33 +01:00
Faruk AYDIN
68c5a3dca7 feat: Implement saml auth providers API endpoint 2024-03-14 10:27:24 +01:00
Ömer Faruk Aydın
b1e2e370c8 Merge pull request #1720 from automatisch/rest-get-step-connection
feat: Implement get step connection API endpoint
2024-03-14 10:27:18 +01:00
Rıdvan Akca
ba9d3afc88 refactor: remove unused payloads from RQ 2024-03-14 12:25:26 +03:00
Faruk AYDIN
9a0434be32 feat: Implement get step connection API endpoint 2024-03-13 19:51:36 +01:00
Faruk AYDIN
d6923a2ff0 fix: Use insertAndFetch to get record with after find modifications 2024-03-13 19:51:36 +01:00
Faruk AYDIN
8f7f6dc19e feat: Add connection serializer 2024-03-13 19:51:36 +01:00
Rıdvan Akca
70b8817643 refactor: rewrite useSubscription with RQ 2024-03-13 18:03:29 +03:00
Rıdvan Akca
87c25cbbfe refactor: rewrite useInvoices with RQ 2024-03-13 18:01:32 +03:00
Rıdvan Akca
082e905014 refactor: remove get-current-user GQL query 2024-03-13 17:58:37 +03:00
Ali BARIN
e3e598b208 Merge pull request #1721 from automatisch/fix-public-layout
fix: introduce a fix for the content container height in the PublicLayout component
2024-03-13 15:46:21 +01:00
kasia.oczkowska
6cf92d4ea6 fix: introduce a fix for the content container height in the PublicLayout component 2024-03-13 14:28:16 +00:00
Ali BARIN
89ad685f3a Merge pull request #1716 from automatisch/AUT-828
refactor: rewrite useVersion and healthcheck with RQ
2024-03-13 11:02:38 +01:00
Rıdvan Akca
1e868dc802 refactor: rewrite useCurrentUser with RQ 2024-03-13 12:33:31 +03:00
Rıdvan Akca
58fcfd9a34 refactor: rewrite useVersion and healthcheck with RQ 2024-03-13 11:39:52 +03:00
Ali BARIN
c849afbc11 Merge pull request #1715 from automatisch/AUT-698
refactor: rewrite usePaddleInfo and usePaymentPlans with RQ
2024-03-13 09:20:39 +01:00
Rıdvan Akca
2ebe71ddd0 refactor: rewrite usePaymentPlans with RQ 2024-03-13 11:05:21 +03:00
Rıdvan Akca
7a8e8c1f3e refactor: rewrite usePaddleInfo with RQ 2024-03-12 17:21:44 +03:00
Ali BARIN
5e897ad1c2 Merge pull request #1460 from automatisch/AUT-493
feat: introduce asterisk for all the required fields
2024-03-12 14:23:53 +01:00
Ali BARIN
ce07907f85 Merge pull request #1700 from automatisch/AUT-782
feat: make flow editor topbar sticky
2024-03-12 14:21:37 +01:00
Ali BARIN
1e38aa7b53 Merge pull request #1714 from automatisch/AUT-693
refactor: rewrite get executions using useExecutions with RQ
2024-03-12 14:17:15 +01:00
Rıdvan Akca
3bc0c23e5a refactor: rewrite get executions using useExecutions with RQ 2024-03-12 15:45:04 +03:00
Ali BARIN
f07b6d105a Merge pull request #1712 from automatisch/AUT-692
refactor: rewrite get execution using useExecution with RQ
2024-03-12 12:34:48 +01:00
Rıdvan Akca
46491269e3 refactor: rewrite get execution using useExecution with RQ 2024-03-12 14:24:23 +03:00
Ali BARIN
8d9c43af6a Merge pull request #1711 from automatisch/AUT-691
refactor: rewrite get execution steps using useExecutionSteps with RQ
2024-03-12 12:23:19 +01:00
Rıdvan Akca
c3568354aa feat: use useInfinityQuery instead of useQuery in useExecutionSteps 2024-03-12 13:55:58 +03:00
Rıdvan Akca
e68696ccd4 refactor: rewrite get execution steps using useExecutionSteps with RQ 2024-03-12 12:12:09 +03:00
Ali BARIN
35d8b2e790 Merge pull request #1713 from automatisch/fix-auth-client-auth-fields
fix: use useAppAuth for getting auth fields
2024-03-11 16:18:03 +01:00
Rıdvan Akca
1f83573206 fix: use useAppAuth for getting auth fields 2024-03-11 18:07:15 +03:00
Ali BARIN
2887e76514 Merge pull request #1702 from automatisch/AUT-683
refactor: rewrite useAppConfig with RQ
2024-03-11 15:43:04 +01:00
Rıdvan Akca
63b9943203 refactor: rewrite useAppConfig with RQ 2024-03-11 17:32:55 +03:00
Ali BARIN
bd5aedd83f Merge pull request #1696 from automatisch/AUT-685
refactor: implement rest API endpoint for get app and get apps
2024-03-11 15:26:54 +01:00
Rıdvan Akca
c9ff6d7bb9 fix: pass enabled to useTriggers and useActions hooks 2024-03-11 17:17:09 +03:00
Rıdvan Akca
5835def5d0 refactor: move abort controller into useLazyApps hook 2024-03-11 16:16:12 +03:00
Ali BARIN
6a2694ce3b Merge pull request #1644 from automatisch/sync-webhook
feat(webhook/catch-raw-webhook): add sync support and custom response
2024-03-11 14:05:35 +01:00
Ali BARIN
65ae7bce79 chore(webhook/catch-raw-webhook): update description 2024-03-11 13:55:43 +01:00
Ali BARIN
57ce8da0ee feat(webhook): add respondWith action 2024-03-11 13:54:00 +01:00
Ali BARIN
7484bf7403 feat(webhook/catch-raw-webhook): add sync support 2024-03-11 13:54:00 +01:00
Ömer Faruk Aydın
f6b2312c49 Merge pull request #1710 from automatisch/rest-get-connection-flows
feat: Implement get connection flows API endpoint
2024-03-11 12:50:53 +01:00
Faruk AYDIN
6027cb7cb0 feat: Implement get connection flows API endpoint 2024-03-10 16:11:07 +01:00
Ömer Faruk Aydın
c1740aae6c Merge pull request #1708 from automatisch/rest-app-flows
feat: Implement API endpoint to get flows of the specified app
2024-03-09 15:16:01 +01:00
Faruk AYDIN
22ce29e86c feat: Implement API endpoint to get flows of the specified app 2024-03-09 15:09:12 +01:00
Ömer Faruk Aydın
251d1b5b2e Merge pull request #1707 from automatisch/rest-get-flows
feat: Implement get flows API endpoint
2024-03-08 23:21:34 +01:00
Faruk AYDIN
ea64708c69 feat: Implement get flows API endpoint 2024-03-08 23:11:42 +01:00
Ömer Faruk Aydın
209ec27a29 Merge pull request #1706 from automatisch/rest-config-api
feat: Implement automatisch config API endpoint
2024-03-08 22:49:54 +01:00
Faruk AYDIN
ceee495525 feat: Implement automatisch config API endpoint 2024-03-08 22:42:24 +01:00
Ömer Faruk Aydın
751a2347aa Merge pull request #1703 from automatisch/rest-get-subscription
feat: Implement get subscription API endpoint
2024-03-08 14:46:13 +01:00
Faruk AYDIN
efd96d5fdf feat: Implement get subscription API endpoint 2024-03-08 14:33:47 +01:00
Rıdvan Akca
2ee5af8bfb feat: add useAppAuth with RQ 2024-03-07 16:53:22 +03:00
Rıdvan Akca
a4c0edf493 refactor: remove getApp query from web 2024-03-07 16:53:22 +03:00
Rıdvan Akca
28c8be97b6 feat: add useLazyApps hook 2024-03-07 16:53:22 +03:00
Rıdvan Akca
f320a44d45 refactor: rewrite get-app queries with RQ 2024-03-07 16:53:22 +03:00
Rıdvan Akca
c0cc6cc176 refactor: rewrite get-apps queries with RQ 2024-03-07 16:53:22 +03:00
Rıdvan Akca
be62c09d06 refactor: rewrite useApp with RQ 2024-03-07 16:53:22 +03:00
Rıdvan Akca
5fe3546d2a feat: add useTriggerSubsteps and useActionSubsteps with RQ 2024-03-07 16:53:22 +03:00
Rıdvan Akca
c4b2ea125c feat: add useActions with RQ 2024-03-07 16:53:22 +03:00
Rıdvan Akca
3301b038fe feat: add useTriggers with RQ 2024-03-07 16:53:22 +03:00
Rıdvan Akca
6a58d1e3da fix(useAdminAppAuthClient): pass signal 2024-03-07 16:53:22 +03:00
Rıdvan Akca
e5670d820d refactor: rewrite useApps with RQ 2024-03-07 16:53:22 +03:00
Ömer Faruk Aydın
1870aead73 Merge pull request #1701 from automatisch/rest-get-app-config
feat: Implement get app config API endpoint
2024-03-07 14:26:46 +01:00
Faruk AYDIN
95db6cca2c feat: Implement get app config API endpoint 2024-03-07 14:18:21 +01:00
Faruk AYDIN
79a792ac62 feat: Add app config serializer 2024-03-07 14:11:00 +01:00
Kasia
6406f9eb86 feat: make flow editor topbar sticky 2024-03-07 12:20:22 +01:00
Kasia
8f8ec496f8 feat: introduce asterisk for all the required fields 2024-03-07 10:15:53 +01:00
Ali BARIN
3d6847a3a2 Merge pull request #1558 from automatisch/AUT-606
fix: remove unnecessery styling causing the problem with scrolling Edit/Create role pages
2024-03-07 00:38:20 +01:00
Ali BARIN
613abaec1b Merge pull request #1550 from automatisch/AUT-563
feat: render AdminSettingsLayout once for all child routes
2024-03-06 18:56:59 +01:00
Ömer Faruk Aydın
b51ae9ac38 Merge pull request #1698 from automatisch/rest-get-execution-steps
feat: Implement get execution steps API endpoint
2024-03-06 17:30:33 +01:00
Faruk AYDIN
c4fd03542b feat: Implement get execution steps API endpoint 2024-03-06 17:23:56 +01:00
Faruk AYDIN
e40d6c5ef0 feat: Implement execution step serializer 2024-03-06 17:23:56 +01:00
kasia.oczkowska
9f7dee3baa test: introuce test fix, select role by exact name 2024-03-06 16:28:17 +01:00
kasia.oczkowska
d3da62c04a feat: render AdminSettingsLayout once for all child routes 2024-03-06 16:28:17 +01:00
kasia.oczkowska
aa7bb3f8c9 fix: remove unnecessery styling causing the problem 2024-03-06 15:55:03 +01:00
Ali BARIN
3a9dfe339a Merge pull request #1689 from automatisch/fix-auth-in-rq
fix: initialize auth in RQ client
2024-03-06 15:52:17 +01:00
Ali BARIN
08830003a3 Merge pull request #1560 from automatisch/AUT-619
fix: add optional chaining to data.getTrialStatus check
2024-03-06 15:34:04 +01:00
kasia.oczkowska
efeeb6cb02 fix: add optional chaining to data.getTrialStatus check and introduce minor code improvements 2024-03-06 15:12:02 +01:00
Ömer Faruk Aydın
ac59ce2deb Merge pull request #1697 from automatisch/rest-get-executions
feat: Implement get executions API endpoint
2024-03-06 15:08:35 +01:00
Faruk AYDIN
3ff89a03ac feat: Implement get executions API endpoint 2024-03-06 14:46:19 +01:00
Faruk AYDIN
25e231cd7c feat: Extend execution serializer with status 2024-03-06 14:46:10 +01:00
Ömer Faruk Aydın
f4d8d909b0 Merge pull request #1695 from automatisch/sentry-enhancement
chore: Do not enable sentry for dev and test environments
2024-03-05 15:53:36 +01:00
Faruk AYDIN
35ea18a117 chore: Do not enable sentry for dev and test environments 2024-03-05 15:47:07 +01:00
Ömer Faruk Aydın
ee9433261b Merge pull request #1693 from automatisch/refactor-get-executions-tests
refactor: Add steps to get execution tests
2024-03-04 16:23:09 +01:00
Faruk AYDIN
1cb48c7760 refactor: Add steps to get execution tests 2024-03-04 16:14:11 +01:00
Ömer Faruk Aydın
172bf4bd51 Merge pull request #1692 from automatisch/remove-empty-associations
refactor: Remove empty associations from serializers
2024-03-04 16:14:00 +01:00
Faruk AYDIN
fe1039cfbc test: Add permissions to get current user tests 2024-03-04 16:07:18 +01:00
Faruk AYDIN
a9de79546b refactor: Remove empty associations from serializers 2024-03-04 16:06:50 +01:00
kasia.oczkowska
7afdf43872 feat: introduce propTypes 2024-03-04 15:21:07 +01:00
Rıdvan Akca
bfc7d5d0dd refactor(web): rewrite useAdminAppAuthClient with react-query (#1690) 2024-03-04 13:09:42 +01:00
Ömer Faruk Aydın
690832052a Merge pull request #1691 from automatisch/error-handler
feat: Send rest API errors to Sentry
2024-03-04 13:01:20 +01:00
Faruk AYDIN
f7c1a47d52 feat: Send rest API errors to Sentry 2024-03-04 12:19:53 +01:00
Ali BARIN
930843d065 fix: initialize auth in RQ client 2024-03-04 10:48:55 +00:00
Ömer Faruk Aydın
a9ee609502 Merge pull request #1688 from automatisch/rest-get-execution
feat: Implement get execution API endpoint
2024-03-03 19:06:10 +01:00
Faruk AYDIN
9fd2125923 test: Add tests for execution serializer 2024-03-03 18:58:54 +01:00
Faruk AYDIN
ede8703f9d feat: Implement get execution API endpoint 2024-03-03 18:53:14 +01:00
Faruk AYDIN
6d85623d9b feat: Add execution serializer 2024-03-03 18:52:32 +01:00
Faruk AYDIN
6236ee8f6d feat: Add authorizedExecutions to user model 2024-03-03 18:51:50 +01:00
Ömer Faruk Aydın
92665d80d6 Merge pull request #1687 from automatisch/get-action-substeps
feat: Implement get action substeps API endpoint
2024-03-02 16:30:43 +01:00
Faruk AYDIN
70ae0bc77e feat: Implement get action substeps API endpoint 2024-03-02 16:24:20 +01:00
Faruk AYDIN
e28c757352 feat: Add find action substeps method to App model 2024-03-02 16:24:20 +01:00
Ömer Faruk Aydın
7cdcf7ebab Merge pull request #1686 from automatisch/get-app-actions
feat: Implement get app actions API endpoint
2024-03-02 16:19:57 +01:00
Faruk AYDIN
7c368af5ed feat: Implement get app actions API endpoint 2024-03-02 16:13:13 +01:00
Faruk AYDIN
df2fbbabc6 feat: Implement action serializer 2024-03-02 16:12:51 +01:00
Faruk AYDIN
48141eb199 feat: Add find actions by key method to App model 2024-03-02 16:09:57 +01:00
Ömer Faruk Aydın
343fbb282c Merge pull request #1685 from automatisch/get-trigger-substeps
feat: Implement get trigger substeps API endpoint
2024-03-02 14:44:06 +01:00
Faruk AYDIN
cea9ed056b feat: Implement get trigger substeps API endpoint 2024-03-01 16:35:46 +01:00
Ali BARIN
73bd90c555 refactor(web): utilize REACT_APP_BACKEND_URL for GQL and REST API URLs 2024-03-01 15:14:22 +01:00
Ali BARIN
917de46c45 chore(web): build with API URL 2024-03-01 15:14:22 +01:00
Ali BARIN
b592092923 chore: update building web in e2e tests 2024-03-01 15:14:22 +01:00
Ali BARIN
760bc1c22a fix(useAutomatischInfo): pass signal correctly 2024-03-01 15:14:22 +01:00
Ali BARIN
1f8b81ee78 refactor: remove GetAutomatischInfo GQL query 2024-03-01 15:14:22 +01:00
Ali BARIN
70af7d05e3 refactor: remove AutomatischInfo context 2024-03-01 15:14:22 +01:00
Ali BARIN
14c04ee4ac refactor: rewrite useAutomatischInfo with RQ and REST API 2024-03-01 15:14:22 +01:00
Ali BARIN
83815d3caa feat: introduce react-query and react-query-devtools 2024-03-01 15:14:22 +01:00
Ali BARIN
487c621fa5 chore: update react and react-dom to 18 2024-03-01 15:14:22 +01:00
Ömer Faruk Aydın
304eab801c Merge pull request #1684 from automatisch/rest-get-triggers
feat: Implement get triggers API endpoint
2024-03-01 15:10:31 +01:00
Faruk AYDIN
dfe3add1cc feat: Implement get triggers API endpoint 2024-03-01 15:03:53 +01:00
Faruk AYDIN
a32bf5539e feat: Add find triggers by key method to App model 2024-03-01 15:02:56 +01:00
Faruk AYDIN
e944333e5f feat: Implement trigger serializer 2024-03-01 15:02:21 +01:00
Ömer Faruk Aydın
dad23a52b0 Merge pull request #1683 from automatisch/rest-get-apps
feat: Implement get apps API endpoint
2024-03-01 14:27:59 +01:00
Faruk AYDIN
53606c306d feat: Implement get apps API endpoint 2024-03-01 14:21:41 +01:00
Ömer Faruk Aydın
53b03f8231 Merge pull request #1680 from automatisch/available-apps
docs: Add datastore to available apps
2024-03-01 12:03:02 +01:00
Faruk AYDIN
ac5f6dc024 docs: Add datastore to available apps 2024-03-01 11:50:42 +01:00
Ali BARIN
2c15e0dd32 Merge pull request #1665 from automatisch/ts-removal-in-web
refactor(web): remove typescript
2024-02-29 11:43:07 +01:00
Ömer Faruk Aydın
007334fef0 Merge pull request #1671 from automatisch/helix-integration
feat: Use new API endpoint from Helix
2024-02-29 11:41:19 +01:00
Ali BARIN
b3ae2d2748 refactor(web): remove typescript 2024-02-29 09:38:32 +00:00
Ömer Faruk Aydın
7149c766d0 Merge pull request #1675 from automatisch/get-app-auth
feat: Implement get app auth API endpoint
2024-02-28 16:25:40 +01:00
Faruk AYDIN
5dca0191d2 feat: Implement get app auth API endpoint 2024-02-28 16:16:13 +01:00
Faruk AYDIN
356668a68d feat: Implement auth serializer 2024-02-28 16:16:13 +01:00
Faruk AYDIN
63c9442126 feat: Add find by auth method to App model 2024-02-28 16:16:13 +01:00
Faruk AYDIN
0031d7911d fix: Adjust description of app serializer test 2024-02-28 16:16:13 +01:00
Faruk AYDIN
31c92b43b4 feat: Add optional system prompt variable to Helix app 2024-02-28 14:18:55 +01:00
Faruk AYDIN
2667548041 feat: Introduce optional session ID for helix app 2024-02-28 13:44:04 +01:00
Faruk AYDIN
54282ba7e0 feat: Use new API endpoint from Helix 2024-02-28 02:23:50 +01:00
Ömer Faruk Aydın
7f324abd44 Merge pull request #1669 from automatisch/helix-attemtps
fix: Add artificial delay to Helix API attempts
2024-02-27 23:49:05 +01:00
Faruk AYDIN
65a0c3b40a fix: Add artificial delay to Helix API attempts 2024-02-27 23:44:52 +01:00
Ömer Faruk Aydın
2449baac5b Merge pull request #1668 from automatisch/document-datastore
docs: Add datastore app to the integration list
2024-02-27 22:10:52 +01:00
Faruk AYDIN
0ab03e1856 docs: Add datastore app to the integration list 2024-02-27 21:44:51 +01:00
Ömer Faruk Aydın
9a3f85106c Merge pull request #1667 from automatisch/fix-helix-integration
fix: Stop asking to helix server after 50 attempts
2024-02-27 19:17:04 +01:00
Faruk AYDIN
42c495d8ab fix: Stop asking to helix server after 50 attempts 2024-02-27 19:14:19 +01:00
Ömer Faruk Aydın
58def585f1 Merge pull request #1666 from automatisch/datastore-app
feat: Implement datastore built-in app
2024-02-27 19:13:26 +01:00
Faruk AYDIN
047034d831 fix: Remove min length validation from value of datastore 2024-02-27 19:05:27 +01:00
Faruk AYDIN
bdb2f24a81 feat: Implement datastore built-in app 2024-02-27 19:01:46 +01:00
Ömer Faruk Aydın
636870a075 Merge pull request #1661 from automatisch/get-app
feat: Introduce app serializer
2024-02-26 22:32:06 +01:00
Faruk AYDIN
8981174302 feat: Introduce app serializer 2024-02-26 22:25:03 +01:00
Faruk AYDIN
dd5f05334b feat: Allow renderer to use explicitly defined serializers 2024-02-26 22:17:21 +01:00
Ömer Faruk Aydın
929b626b51 Merge pull request #1660 from automatisch/rest-get-app
feat: Implement get app API endpoint
2024-02-26 21:44:23 +01:00
Faruk AYDIN
7d5b2ec81e feat: Implement get app API endpoint 2024-02-26 17:59:48 +01:00
Ömer Faruk Aydın
f0e2d36c34 Merge pull request #1657 from automatisch/timestamp-serializer
feat: Use timestamp for serializer date objects
2024-02-26 14:36:34 +01:00
Faruk AYDIN
94f171d757 feat: Use timestamp for serializer date objects 2024-02-26 14:11:56 +01:00
Ömer Faruk Aydın
04e06db430 Merge pull request #1656 from automatisch/api-controller-tests
test: Cover not found responses for API endpoint tests
2024-02-26 13:36:48 +01:00
Faruk AYDIN
d74b215169 test: Cover bad request responses for API endpoint tests 2024-02-26 13:30:30 +01:00
Faruk AYDIN
404ea94dd2 test: Cover not found responses for API endpoint tests 2024-02-26 01:40:20 +01:00
Faruk AYDIN
4afe7c6b46 feat: Handle bad request for invalid UUID 2024-02-26 01:26:04 +01:00
Ömer Faruk Aydın
60b20c4d01 Merge pull request #1655 from automatisch/add-async-handler
feat: Implement async handler for routes
2024-02-26 01:25:35 +01:00
Faruk AYDIN
58658c6b1a feat: Do not expose unknown error message to client 2024-02-26 01:07:31 +01:00
Faruk AYDIN
ec444317b3 feat: Catch not found error message for objection 2024-02-26 01:06:54 +01:00
Faruk AYDIN
8b4aee1afa feat: Implement async handler for routes 2024-02-26 01:03:15 +01:00
Ömer Faruk Aydın
51abd74304 Merge pull request #1654 from automatisch/get-flow
feat: Implement get flow API endpoint
2024-02-26 01:02:38 +01:00
Faruk AYDIN
b93b465f09 feat: Implement get flow API endpoint 2024-02-26 00:52:02 +01:00
Faruk AYDIN
5aad68ec62 test: Use nested serializers explicitly for serializer tests 2024-02-25 23:34:41 +01:00
Faruk AYDIN
74fbc937a1 feat: Introduce flow serializer 2024-02-25 23:31:22 +01:00
Faruk AYDIN
7e35f544eb feat: Introduce step serializer 2024-02-25 23:01:55 +01:00
Ömer Faruk Aydın
ed1c3cffc1 Merge pull request #1653 from automatisch/rest-automatisch-license
faet: Implement automatisch license API endpoint
2024-02-25 18:36:42 +01:00
Ömer Faruk Aydın
c4983a9f9b Merge pull request #1652 from automatisch/rest-automatisch-info
feat: Implement automatisch info API endpoint
2024-02-25 18:36:27 +01:00
Ömer Faruk Aydın
5b43262e7a Merge pull request #1651 from automatisch/remove-role-join
chore: No need to join role since we don't expose roleId anymore
2024-02-25 18:36:10 +01:00
Ömer Faruk Aydın
dad4408679 Merge pull request #1650 from automatisch/rest-get-invoices
feat: Implement get invoices API endpoint
2024-02-25 18:35:52 +01:00
Ömer Faruk Aydın
a78c4d12b4 Merge pull request #1607 from automatisch/AUT-681
feat: implement app-auth-client endpoint
2024-02-25 18:35:33 +01:00
Ömer Faruk Aydın
74664a9df8 Merge pull request #1649 from automatisch/move-get-user
feat: Move get user API endpoint to admin namespace
2024-02-25 18:34:48 +01:00
Ömer Faruk Aydın
fce5281a03 Merge pull request #1648 from automatisch/move-get-users
feat: Move get users API endpoint to admin namespace
2024-02-25 18:32:24 +01:00
Faruk AYDIN
de0bd2f486 faet: Implement automatisch license API endpoint 2024-02-25 03:28:20 +01:00
Faruk AYDIN
079fb5d108 feat: Implement automatisch info API endpoint 2024-02-25 03:27:17 +01:00
Faruk AYDIN
1c7435a32b chore: No need to join role since we don't expose roleId anymore 2024-02-25 02:02:02 +01:00
Faruk AYDIN
1afd374cf6 feat: Implement get invoices API endpoint 2024-02-25 01:31:36 +01:00
Faruk AYDIN
3adf549915 feat: Extract get invoices logic to user model 2024-02-25 01:30:29 +01:00
Faruk AYDIN
e94d669eca fix: Cover empty array case for renderer helper 2024-02-25 01:29:59 +01:00
Faruk AYDIN
5fac0b4689 test: Add tests for app auth client serializer 2024-02-24 02:51:34 +01:00
Faruk AYDIN
832d323a6e refactor: Remove redundant query string from get app auth client tests 2024-02-24 01:25:46 +01:00
Faruk AYDIN
03f1dbd5b2 feat: Add check enterprise middleware to get app auth clients 2024-02-24 01:24:41 +01:00
Faruk AYDIN
c0a216f109 refactor: Remove license check for admin, since it is middleware responsibility 2024-02-24 01:22:27 +01:00
Faruk AYDIN
ad67b13270 fix: Add missing middleware imports for admin app auth clients 2024-02-24 01:18:30 +01:00
Faruk AYDIN
5d420c08c6 fix: Remove forgotten character in the routes 2024-02-24 01:14:56 +01:00
Faruk AYDIN
3d8235c670 refactor: Use kebab-case for app auth client serializer filename 2024-02-24 01:10:59 +01:00
Faruk AYDIN
5a209f81d1 feat: Add missing middleware checks to admin app auth clients 2024-02-24 01:08:08 +01:00
Rıdvan Akca
d17d8e2805 feat: implement app-auth-client endpoint 2024-02-24 01:02:28 +01:00
Faruk AYDIN
ca7636e7bc feat: Move get user API endpoint to admin namespace 2024-02-24 00:40:54 +01:00
Faruk AYDIN
532cfc10d0 feat: Move get users API endpoint to admin namespace 2024-02-24 00:31:15 +01:00
Ömer Faruk Aydın
72d68c4377 Merge pull request #1647 from automatisch/error-logger-for-queues
feat: Add logger for errors happened in queues
2024-02-23 23:57:00 +01:00
Faruk AYDIN
00f5964aa4 feat: Add logger for errors happened in queues 2024-02-23 23:50:50 +01:00
Ali BARIN
bd1ad5fa56 feat(http-request/custom-request): utilize accept header for parsing response 2024-02-23 18:03:56 +00:00
Ali BARIN
f2e22e7445 feat: keep axios defaults for instances 2024-02-23 18:02:33 +00:00
Ömer Faruk Aydın
fcf345abab Merge pull request #1642 from automatisch/delete-step
fix: Allow permitted users to delete others steps
2024-02-23 14:15:29 +01:00
Faruk AYDIN
24ad43d3e4 fix: Allow permitted users to delete others steps 2024-02-23 13:45:50 +01:00
Ömer Faruk Aydın
9a7cdf42e1 Merge pull request #1641 from automatisch/remove-role-id-from-user-serializer
chore: Remove redundant roleId from user serializer
2024-02-23 11:28:20 +01:00
Ömer Faruk Aydın
c36b652d5b Merge pull request #1640 from automatisch/rest-get-notifications
feat: Implement get notifications API endpoint
2024-02-23 11:28:11 +01:00
Ömer Faruk Aydın
553070fc23 Merge pull request #1638 from automatisch/rest-get-payment-paddle-info
feat: Implement get paddle info API endpoint
2024-02-23 11:27:50 +01:00
Ömer Faruk Aydın
5d69f7e24f Merge pull request #1637 from automatisch/rest-get-payment-plans
feat: Implement get payment plans API endpoint
2024-02-23 11:27:36 +01:00
Ömer Faruk Aydın
bc0e2bada0 Merge pull request #1635 from automatisch/rest-get-role
feat: Implement get role API endpoint for admin
2024-02-23 11:27:22 +01:00
Ömer Faruk Aydın
80b6cc1d94 Merge pull request #1636 from automatisch/rest-get-permissions-catalog
feat: Implement permission catalog API endpoint
2024-02-23 11:20:34 +01:00
Ömer Faruk Aydın
bce3273e64 Merge pull request #1634 from automatisch/rest-get-roles
feat: Implement admin get roles API endpoint
2024-02-23 11:20:25 +01:00
Faruk AYDIN
3abf61152a chore: Remove redundant roleId from user serializer 2024-02-23 01:30:57 +01:00
Faruk AYDIN
14923d4cd6 feat: Implement get notifications API endpoint 2024-02-23 01:24:56 +01:00
Faruk AYDIN
6fdc4bf900 feat: Implement get paddle info API endpoint 2024-02-22 20:22:05 +01:00
Faruk AYDIN
d21e1f75b5 feat: Implement get payment plans API endpoint 2024-02-21 18:15:32 +01:00
Faruk AYDIN
84a0b37fcc feat: Implement permission catalog API endpoint 2024-02-21 17:52:51 +01:00
Faruk AYDIN
f135a0f09e feat: Implement get role API endpoint for admin 2024-02-21 17:39:05 +01:00
Faruk AYDIN
0f24c99456 feat: Add permissions to role serializer 2024-02-21 16:01:45 +01:00
Faruk AYDIN
9eae0ab947 fix: Move get saml auth provider mocks to correct namespace 2024-02-21 15:37:39 +01:00
Faruk AYDIN
3bf1f79c79 feat: Implement admin get roles API endpoint 2024-02-21 15:35:30 +01:00
Faruk AYDIN
b21074c871 fix: Move saml auth provider router to correct folder 2024-02-21 14:59:42 +01:00
Ömer Faruk Aydın
d7893d9a32 Merge pull request #1621 from automatisch/show-saml-auth-provider
feat: Implement API endpoint to show saml auth provider
2024-02-20 13:00:25 +01:00
Ömer Faruk Aydın
9cbdda330c Merge pull request #1620 from automatisch/fix-authorization-middleware
fix: Include http methods for route rules
2024-02-20 12:59:12 +01:00
Ömer Faruk Aydın
42a9bfd099 Merge pull request #1619 from automatisch/get-saml-auth-providers
feat: Implement get saml auth providers API endpoint
2024-02-20 12:59:03 +01:00
Faruk AYDIN
eb15bd01ca feat: Implement API endpoint to show saml auth provider 2024-02-19 23:41:37 +01:00
Faruk AYDIN
9e98aebeb3 fix: Include http methods for route rules 2024-02-19 22:22:04 +01:00
Faruk AYDIN
1361cbc826 chore: Remove get saml auth providers from authorization list 2024-02-19 22:19:37 +01:00
Faruk AYDIN
679d0808a9 refactor: Move saml auth providers endpoint to admin namespace 2024-02-19 22:18:15 +01:00
Faruk AYDIN
6fe9a548ad feat: Implement get saml auth providers API endpoint 2024-02-19 21:48:06 +01:00
Faruk AYDIN
2d6d2430d2 fix: Detect types also for not paginated arrays 2024-02-19 21:46:20 +01:00
Faruk AYDIN
a445538e81 feat: Implement isCheckEnterprise middleware 2024-02-19 21:22:36 +01:00
Faruk AYDIN
50d38ffbd8 chore: Make http log level lower than info 2024-02-19 21:14:54 +01:00
Faruk AYDIN
93bcdfd9c9 feat: Implement saml auth provider serializer 2024-02-19 17:59:18 +01:00
Faruk AYDIN
5be3b101a5 feat: Implement saml auth provider factory 2024-02-19 17:58:52 +01:00
Ömer Faruk Aydın
024c7476c7 Merge pull request #1616 from automatisch/node-18-in-devcontainer
refactor: use node 18 in devcontainer
2024-02-19 11:51:59 +01:00
Ali BARIN
30a7ffe93d refactor: use node 18 in devcontainer 2024-02-19 10:17:16 +00:00
kattoczko
e2d803ebf7 feat: do not let users access notifications page when it's turned off (#1583) 2024-02-16 16:15:01 +01:00
kattoczko
be7e67c940 feat: introduce 404 page (#1600) 2024-02-16 15:54:35 +01:00
kattoczko
ead4b13ba5 feat: Show /login directly on / without valid authentication (#1528) 2024-02-16 15:15:25 +01:00
Ömer Faruk Aydın
e02c42ee18 Merge pull request #1605 from automatisch/test-permission-serializer
test: Add tests for permission serializer
2024-02-16 12:41:09 +01:00
Ömer Faruk Aydın
d39886fdf8 Merge pull request #1604 from automatisch/test-role-serializer
test: Add tests for role serializer
2024-02-16 12:40:59 +01:00
Ömer Faruk Aydın
11a425f1de Merge pull request #1603 from automatisch/test-user-serializer
test: Add tests for user serializer
2024-02-16 12:40:48 +01:00
Ömer Faruk Aydın
f0e194e584 Merge pull request #1606 from automatisch/remove-redundant
chore: Remove redundant npm libraries
2024-02-16 12:37:34 +01:00
Faruk AYDIN
d4b9331cf2 chore: Remove redundant npm libraries 2024-02-16 01:01:50 +01:00
Faruk AYDIN
37e1acc5f1 test: Add tests for permission serializer 2024-02-16 00:19:53 +01:00
Faruk AYDIN
ffaf6a577d test: Add tests for role serializer 2024-02-16 00:18:53 +01:00
Faruk AYDIN
afdaf6ba39 test: Add tests for user serializer 2024-02-16 00:10:37 +01:00
Ömer Faruk Aydın
4c49367910 Merge pull request #1602 from automatisch/introduce-serializers
feat: Introduce serializers
2024-02-15 12:46:20 +01:00
Ömer Faruk Aydın
a506c4411d Merge pull request #1601 from automatisch/rest-get-trial
feat: Implement API endpoint for user trial info
2024-02-15 12:45:54 +01:00
Faruk AYDIN
1859c9854e chore: Add permission serializer to serializers 2024-02-15 02:21:26 +01:00
Faruk AYDIN
6ff29b9ae6 refactor: Use serializer for user model instead of formatJson 2024-02-15 02:19:24 +01:00
Faruk AYDIN
3578f6b849 feat: Extend renderer to use serializers 2024-02-15 02:15:44 +01:00
Faruk AYDIN
0347864fde feat: Introduce serializers 2024-02-15 02:15:19 +01:00
Faruk AYDIN
5f9786a2c7 chore: Adjust get user trial file to have .ee extension 2024-02-14 15:55:02 +01:00
Faruk AYDIN
75aeff1898 test: Cover removed user token for authentication tests 2024-02-14 15:48:49 +01:00
Faruk AYDIN
0afcdce6d3 refactor: Do not expose subscription info for get user trial 2024-02-14 14:23:54 +01:00
Faruk AYDIN
a591d0ea87 test: Add tests for get user trial action 2024-02-14 14:18:42 +01:00
Faruk AYDIN
0e111a3532 feat: Implement API endpoint for user trial info 2024-02-14 14:18:28 +01:00
Faruk AYDIN
b599466ffa feat: Add checkIsCloud middleware for routes 2024-02-14 13:06:58 +01:00
Faruk AYDIN
69727e78df fix: Throw not found error for authentication 2024-02-14 13:06:29 +01:00
Ömer Faruk Aydın
02ae67b147 Merge pull request #1597 from automatisch/rest-api-get-users
feat: Implement api/v1/users API endpoint
2024-02-14 11:38:09 +01:00
Faruk AYDIN
a769f78801 test: Add tests for api/v1/users API endpoint 2024-02-14 01:20:29 +01:00
Faruk AYDIN
d583e42428 refactor: Structure api mock data with folders 2024-02-14 01:02:42 +01:00
Faruk AYDIN
da732becb6 feat: Implement api/v1/users API endpoint 2024-02-14 00:52:17 +01:00
Faruk AYDIN
b89a4d58d9 feat: Add pagination for REST endpoints 2024-02-14 00:51:48 +01:00
Faruk AYDIN
09854147d1 feat: Extend renderer functionality to work with pagination 2024-02-14 00:51:16 +01:00
Ömer Faruk Aydın
3648c2bfe3 Merge pull request #1592 from automatisch/rest-api-get-user
feat: Implement api/v1/users/:userId API endpoint
2024-02-13 12:14:37 +01:00
Ömer Faruk Aydın
3f3ee032f6 Merge pull request #1591 from automatisch/rest-api-get-current-user
feat: Implement users/me API endpoint
2024-02-13 11:34:37 +01:00
Ömer Faruk Aydın
68e5d54331 Merge pull request #1590 from automatisch/rest-api-automatisch-version
feat: Implement automatisch version API endpoint
2024-02-13 10:42:44 +01:00
Faruk AYDIN
824c434b0b feat: Implement api/v1/users/:userId API endpoint 2024-02-13 03:44:44 +01:00
Faruk AYDIN
9f0e0ca656 feat: Implement users/me API endpoint 2024-02-13 02:06:24 +01:00
Faruk AYDIN
95f89ba03e refactor: Use objectionjs instead of knex for factories 2024-02-13 01:49:40 +01:00
Faruk AYDIN
697f72ecf4 refactor: Use api/v1 namespace for routes 2024-02-12 23:30:38 +01:00
Faruk AYDIN
4f03f2ab51 feat: Introduce renderer helper 2024-02-12 23:25:09 +01:00
Faruk AYDIN
c81531cb7a feat: Implement automatisch version API endpoint 2024-02-12 22:59:44 +01:00
Ömer Faruk Aydın
7b6e4aa153 Merge pull request #1589 from automatisch/healthcheck-api-endpoint
feat: Implement healthcheck api endpoint
2024-02-12 22:57:58 +01:00
Faruk AYDIN
f21039d19d feat: Implement healthcheck api endpoint 2024-02-12 22:50:57 +01:00
morihoos
8c936a91be fix(csp): remove illegal characters in directive names (#1585) 2024-02-08 17:41:33 +01:00
Ali BARIN
24451892ff feat: add custom additional drawer link (#1586) 2024-02-08 16:33:12 +01:00
morihoos
6bba2c82fe feat(config): add ability to override apiUrl in environment variables (#1581) 2024-02-07 16:17:03 +01:00
Ali BARIN
3320dc6bc4 Merge pull request #1582 from automatisch/toggle-favicon-and-notifications-page
feat: put favicon and notifications page behind feature flags
2024-02-07 14:46:59 +01:00
Ali BARIN
9d42fd9293 test(queries/get-config): incorporate feature flags
cover disableNotificationsPage and disableFavicon feature flags
2024-02-07 13:11:57 +00:00
Ali BARIN
e6b806616f feat: add DISABLE_FAVICON feature flag 2024-02-07 11:51:17 +00:00
Ali BARIN
6ec5872391 feat: add DISABLE_NOTIFICATIONS_PAGE feature flag 2024-02-07 11:47:44 +00:00
Ali BARIN
a26cf932a1 chore(devcontainer): upgrade node to 20 2024-02-07 11:46:12 +00:00
Ali BARIN
38a3e3ab9f Merge pull request #1570 from automatisch/prevent-public-registrations
fix: prevent registration on non-cloud
2024-01-30 14:11:05 +01:00
Ali BARIN
32b17c1418 fix: prevent registration on non-cloud 2024-01-30 13:03:52 +00:00
Ömer Faruk Aydın
44aa6a1579 Merge pull request #1569 from automatisch/compile-email
fix: Adjust dirname for compile email helper
2024-01-29 13:05:58 +01:00
Faruk AYDIN
2369aacd2a fix: Adjust dirname for compile email helper 2024-01-29 12:48:21 +01:00
Ömer Faruk Aydın
7dafc6364b Merge pull request #1552 from automatisch/dependabot/npm_and_yarn/vite-3.2.8
chore(deps): Bump vite from 3.2.7 to 3.2.8
2024-01-29 12:32:10 +01:00
Ömer Faruk Aydın
3d25fa0aeb Merge branch 'main' into dependabot/npm_and_yarn/vite-3.2.8 2024-01-29 11:14:49 +01:00
Ali BARIN
0297b0f296 Merge pull request #1559 from automatisch/base64-to-text
feat(formatter): add base64 to string action
2024-01-26 10:56:54 +01:00
Rıdvan Akca
4c7d09c3d8 feat(formatter): add base64 to string action 2024-01-26 12:41:05 +03:00
Ali BARIN
48a74826e8 Merge pull request #1557 from automatisch/text-to-base64
feat(formatter): add string to base64 action
2024-01-25 16:56:15 +01:00
Rıdvan Akca
ef34068ac4 feat(formatter): add string to base64 action 2024-01-25 18:52:44 +03:00
dependabot[bot]
3987a8db77 chore(deps): Bump vite from 3.2.7 to 3.2.8
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.2.7 to 3.2.8.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v3.2.8/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.2.8/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-19 22:40:35 +00:00
Rıdvan Akca
c413ab030b feat(airtable): add airtable integration 2024-01-19 17:20:56 +03:00
Rıdvan Akca
0f39007f92 feat(ynab): add new transactions trigger 2024-01-18 18:08:42 +03:00
Rıdvan Akca
ab811daba7 feat(ynab): add goal completed trigger 2024-01-18 18:00:48 +03:00
Rıdvan Akca
1428bf8ffa feat(ynab): add category overspent trigger 2024-01-18 17:31:53 +03:00
Rıdvan Akca
53f7f38e23 feat(ynab): add low account balance trigger 2024-01-18 16:00:52 +03:00
Rıdvan Akca
ce6ad9e0d3 feat(ynab): add you need a budget app integration 2024-01-18 15:54:20 +03:00
Rıdvan Akca
17a0c6123a feat(vtiger-crm): add new todos trigger 2024-01-17 10:47:52 +03:00
Rıdvan Akca
10edc5a8ad feat(vtiger-crm): add new opportunities trigger 2024-01-16 18:09:05 +03:00
Rıdvan Akca
bdf07d6bd5 feat(vtiger-crm): add new leads trigger 2024-01-16 18:05:13 +03:00
Rıdvan Akca
10ff65e71a feat(vtiger-crm): add new invoices trigger 2024-01-16 18:00:41 +03:00
Rıdvan Akca
9395097fda feat(vtiger-crm): add new contacts trigger 2024-01-16 17:55:48 +03:00
Rıdvan Akca
47eb0e00e3 feat(vtiger-crm): add new cases trigger 2024-01-16 17:48:24 +03:00
Rıdvan Akca
57d5f34ac5 feat(vtiger-crm): add vtiger crm integration 2024-01-16 17:42:34 +03:00
Rıdvan Akca
06b040412a feat(google-tasks): add new completed tasks trigger 2024-01-16 17:30:25 +03:00
Rıdvan Akca
cab040c74a feat(google-tasks): add new tasks trigger 2024-01-16 17:25:25 +03:00
Rıdvan Akca
21706a7d15 feat(google-tasks): add new task lists trigger 2024-01-16 17:17:24 +03:00
Rıdvan Akca
22e4b8aaeb feat(google-tasks): add create task list action 2024-01-16 17:10:27 +03:00
Rıdvan Akca
bd43a6021a feat(google-tasks): add create task action 2024-01-16 16:39:38 +03:00
Rıdvan Akca
a90b58b6db feat(google-tasks): add update task action 2024-01-16 16:33:41 +03:00
Rıdvan Akca
92a9b096ec feat(google-tasks): add find task action 2024-01-16 16:27:45 +03:00
Rıdvan Akca
7a6aa99840 feat(google-tasks): add google tasks integration 2024-01-16 13:55:03 +03:00
Rıdvan Akca
5657f0d793 feat(disqus): add new comments trigger 2024-01-16 13:40:00 +03:00
Rıdvan Akca
798529007e feat(disqus): add disqus integration 2024-01-16 13:23:26 +03:00
Ömer Faruk Aydın
953c5a5b5b Merge pull request #1540 from automatisch/authentication-tests
feat: Add tests for authentication helper
2024-01-15 16:10:36 +01:00
Ömer Faruk Aydın
4313265c00 Merge pull request #1541 from automatisch/remove-cli-from
chore: Remove cli package from linter and build scripts
2024-01-15 16:10:24 +01:00
Faruk AYDIN
9405f267ba chore: Remove build:watch script 2024-01-15 16:06:28 +01:00
Faruk AYDIN
1d29238199 chore: Remove cli package from linter and build scripts 2024-01-15 15:33:21 +01:00
Faruk AYDIN
c5bf66f462 chore: Remove redundant import of authentication rule 2024-01-15 15:31:20 +01:00
Faruk AYDIN
e6180bdfaa chore: No need to export authentication options 2024-01-15 15:31:00 +01:00
Faruk AYDIN
55c391afc8 chore: Remove authentication cases from individual tests 2024-01-15 15:27:30 +01:00
Faruk AYDIN
782fa67320 feat: Add tests for authentication helper 2024-01-15 15:21:04 +01:00
Ömer Faruk Aydın
1e3ab75bb7 Merge pull request #1538 from automatisch/remove-types-package
chore: Remove types package
2024-01-15 13:57:01 +01:00
Faruk AYDIN
5f6dd12a73 chore: Remove types package from web dependencies 2024-01-15 13:41:54 +01:00
Faruk AYDIN
d18c06d2c4 chore: Remove types package 2024-01-15 13:37:58 +01:00
Ömer Faruk Aydın
baf99a9cfe Merge pull request #1537 from automatisch/web/types
chore: Use types from the web package
2024-01-15 13:37:43 +01:00
Faruk AYDIN
159931a6ea chore: Use types from the web package 2024-01-15 13:30:48 +01:00
Ömer Faruk Aydın
7831f2925b Merge pull request #1536 from automatisch/docs/remove-typescript
Use JS for the documentation examples
2024-01-15 13:17:48 +01:00
Faruk AYDIN
8fcb7840de docs: Convert code examples to JS 2024-01-15 13:13:48 +01:00
Faruk AYDIN
9ece9461dc docs: Convert all file imports to ES modules 2024-01-15 13:10:26 +01:00
Faruk AYDIN
b304acaaba docs: Use .js file extension 2024-01-15 13:02:06 +01:00
Faruk AYDIN
5a1960609a docs: Use JS highlighter instead of TS 2024-01-15 12:56:43 +01:00
Faruk AYDIN
476aa6e3aa docs: Remove imports of automatisch types 2024-01-15 12:55:55 +01:00
Ömer Faruk Aydın
aa76007fd0 Merge pull request #1533 from automatisch/remove-cli
chore: Remove cli package
2024-01-14 21:06:46 +01:00
Faruk AYDIN
17a8813c4b chore: Remove build step from CI for cli 2024-01-14 20:13:23 +01:00
Faruk AYDIN
fe79fc9003 chore: Remove cli package 2024-01-14 20:10:23 +01:00
Ömer Faruk Aydın
ac8649ac18 Merge pull request #1532 from automatisch/seed-user
fix: Exit process after creating seed user
2024-01-13 03:07:05 +01:00
Faruk AYDIN
817db026b1 fix: Exit process after creating database and user 2024-01-13 02:59:00 +01:00
Faruk AYDIN
01ef97949b feat: Convert migration file names if there is a table 2024-01-13 02:58:28 +01:00
Faruk AYDIN
9e151051a8 fix: Exit process after creating seed user 2024-01-13 02:55:42 +01:00
Ömer Faruk Aydın
0feab23eb6 Merge pull request #1531 from automatisch/dockerfile-cloud
fix: Remove redundant branch tag for dockerfile cloud
2024-01-12 18:12:48 +01:00
Faruk AYDIN
8957f83939 fix: Remove redundant branch tag for dockerfile cloud 2024-01-12 18:08:55 +01:00
Ömer Faruk Aydın
3bf2bc94f3 Merge pull request #1517 from automatisch/models-js
feat: Convert model files to JS
2024-01-12 18:05:44 +01:00
Faruk AYDIN
8c3d5f1f4b feat: Convert old TS migration names to JS names 2024-01-12 17:50:09 +01:00
Faruk AYDIN
124e6e0811 feat: Execute db:migrate and db:seed:user for main instance 2024-01-12 17:30:05 +01:00
Faruk AYDIN
54d9d17d14 chore: Make dockerfile cloud work with main branch 2024-01-12 17:24:29 +01:00
Faruk AYDIN
62bdb7fb6d fix: Import statements of removed subscription job 2024-01-12 16:44:56 +01:00
Faruk AYDIN
af6574fdf1 feat: Do not build web when it's a worker instance 2024-01-12 16:44:44 +01:00
Faruk AYDIN
115a993cd2 feat: Convert cloud dockerfile to work without build step 2024-01-12 16:33:58 +01:00
Faruk AYDIN
188b6c2fe5 chore: Remove @automatisch/web from backend package 2024-01-12 16:10:37 +01:00
Faruk AYDIN
99adb2ceda feat: Update node version to 18 for Dockerfiles 2024-01-12 15:17:09 +01:00
Faruk AYDIN
6344a3bcef feat: Remove jest from dev dependencies 2024-01-12 14:23:03 +01:00
Faruk AYDIN
f62c17de0b fix: Remove redundant only statement from backend tests 2024-01-12 14:22:19 +01:00
Faruk AYDIN
9d269b8111 chore: Change CI node version to 18 2024-01-12 14:19:29 +01:00
Faruk AYDIN
49b26a9640 chore: Remove tsconfig file for backend package 2024-01-12 14:15:39 +01:00
Faruk AYDIN
dddb79eeb2 chore: Remove ts-jest from dev dependencies 2024-01-12 14:14:30 +01:00
Faruk AYDIN
b0909ecb98 chore: Change main and files of backend package 2024-01-12 14:13:45 +01:00
Faruk AYDIN
ec63ce0532 chore: Remove sinon from dependencies 2024-01-12 14:13:26 +01:00
Faruk AYDIN
1eb03e3afb chore: Remove all dev dependencies for types 2024-01-12 14:10:58 +01:00
Faruk AYDIN
26d906f1b7 chore: Remove ts-node and ts-node-dev libraries 2024-01-12 14:09:00 +01:00
Faruk AYDIN
af9ceac0b4 feat: Use vitest instead of jest for ESM compatibility 2024-01-12 14:07:59 +01:00
Faruk AYDIN
911159a14f chore: Update NodeJS from 16.15 to 18.19 to use vitest 2024-01-11 19:37:00 +01:00
Faruk AYDIN
6a639e4ac9 chore: Use ES module path to import auth files 2024-01-09 12:51:41 +01:00
Faruk AYDIN
c4a6c86a69 feat: Make web app path static for the backend 2024-01-08 18:36:36 +01:00
Faruk AYDIN
d2bac9d8d1 chore: Adjust cli package to use JS for linter 2024-01-08 17:23:06 +01:00
Faruk AYDIN
758aa50550 feat: Change playwright test setup for the backend 2024-01-08 17:20:03 +01:00
Faruk AYDIN
1af887cee7 chore: Remove backend build step from cli build 2024-01-08 17:11:26 +01:00
Faruk AYDIN
34b115c694 feat: Convert cli files to JS 2024-01-08 17:08:20 +01:00
Faruk AYDIN
8e4935409f feat: Add start worker CI step for the backend package 2024-01-08 16:40:20 +01:00
Faruk AYDIN
ca32d221c4 fix: Remove redundant lerna bootstrap command 2024-01-08 16:35:04 +01:00
Faruk AYDIN
e2de1fe038 feat: Add webhook secret key to CI step 2024-01-08 16:26:25 +01:00
Faruk AYDIN
80179062db feat: Add sample encryption key to CI step 2024-01-08 16:15:47 +01:00
Faruk AYDIN
7143620d25 feat: Remove root files for worker, server, logger and database 2024-01-08 16:09:58 +01:00
Faruk AYDIN
a0e51e2a7e feat: Change CI configuration to start backend instead of build 2024-01-08 16:02:48 +01:00
Faruk AYDIN
53dbd01cb1 feat: Adjust start command to work without dist folder 2024-01-08 15:55:53 +01:00
Faruk AYDIN
3607c16fd1 chore: Remove build:watch script from backend 2024-01-08 15:55:29 +01:00
Faruk AYDIN
4dfdd01295 chore: Remove build and related scripts from backend 2024-01-08 15:54:32 +01:00
Faruk AYDIN
8983a3c581 chore: Remove types folder of the backend package 2024-01-08 15:53:41 +01:00
Faruk AYDIN
9cddef9108 fix: Adjust migrations folder for new JS structure 2024-01-08 14:49:30 +01:00
Faruk AYDIN
3dbea953a7 chore: Remove tsc command from build script 2024-01-08 14:49:14 +01:00
Faruk AYDIN
962bbc04b5 fix: Change require.resolve to work with ESM 2024-01-08 12:25:21 +01:00
Faruk AYDIN
0804026d74 fix: Correct dirname for the app config 2024-01-08 12:24:53 +01:00
Faruk AYDIN
879aa1f9f8 fix: Eslint offenses for JS files 2024-01-07 20:09:36 +01:00
Faruk AYDIN
9ffe2c14df chore: Exclude apps folder from type roots 2024-01-07 19:38:07 +01:00
Faruk AYDIN
f0d2f07193 feat: Convert package scripts to work with JS 2024-01-07 19:36:44 +01:00
Faruk AYDIN
ccf5928262 feat: Adjust eslint configuration to work with JS 2024-01-07 19:33:18 +01:00
Faruk AYDIN
b2f8634008 chore: Use ES modules for backend app 2024-01-05 19:08:04 +01:00
Faruk AYDIN
43dba351c3 feat: Convert all app files to JS 2024-01-05 17:44:21 +01:00
Faruk AYDIN
b95478b635 chore: Use imports as ES modules 2024-01-04 22:24:42 +01:00
Faruk AYDIN
523f8a8951 feat: Convert app, server, worker ts files to JS 2024-01-04 21:47:34 +01:00
Faruk AYDIN
0f71924d06 feat: Convert migration files to JS 2024-01-04 21:44:40 +01:00
Faruk AYDIN
6d1bfc0be0 fix: Remove response data types to get rid of ts errors 2024-01-04 21:17:15 +01:00
Faruk AYDIN
b0f53268f6 feat: Convert factories files to JS 2024-01-04 21:10:42 +01:00
Faruk AYDIN
75f5db23df feat: Conveert bin folder to use JS files 2024-01-04 21:07:19 +01:00
Faruk AYDIN
85141812d9 feat: Convert helpers to use JS files 2024-01-04 19:55:41 +01:00
Faruk AYDIN
8819ddefa7 feat: Convert model files to JS 2024-01-04 19:27:13 +01:00
Ömer Faruk Aydın
b693c12500 Merge pull request #1515 from automatisch/queues-js
feat: Convert all queues folder to js files
2024-01-04 18:30:42 +01:00
Faruk AYDIN
cbe3db8187 feat: Convert all queues folder to js files 2024-01-04 18:20:08 +01:00
Ömer Faruk Aydın
7bccbc9471 Merge pull request #1514 from automatisch/root-resolvers
feat: Convert root query and mutation resolvers to js
2024-01-04 18:19:29 +01:00
Faruk AYDIN
a452520f1a feat: Convert root query and mutation resolvers to js 2024-01-04 18:12:27 +01:00
Ömer Faruk Aydın
a331b34b49 Merge pull request #1513 from automatisch/mutations-js
feat: Convert all mutation files to js
2024-01-04 18:11:48 +01:00
Faruk AYDIN
8d6f0f8e9e feat: Convert all mutation files to js 2024-01-04 18:04:54 +01:00
Ömer Faruk Aydın
47dd5a1949 Merge pull request #1512 from automatisch/queries-js
feat: Convert all query files to JS
2024-01-04 18:04:21 +01:00
Faruk AYDIN
387f8fd44c feat: Convert all query files to JS 2024-01-04 17:55:29 +01:00
Ömer Faruk Aydın
b69b1f6f67 Merge pull request #1511 from automatisch/workers-js
feat: Convert workers to use js files
2024-01-04 17:55:01 +01:00
Faruk AYDIN
d1427ffd54 feat: Convert workers to use js files 2024-01-04 17:48:52 +01:00
Ömer Faruk Aydın
00c876dd93 Merge pull request #1510 from automatisch/routes-js
feat: Convert routes folder to the js files
2024-01-04 17:48:26 +01:00
Faruk AYDIN
9d1aa9e59a feat: Convert routes folder to the js files 2024-01-04 17:41:52 +01:00
Ömer Faruk Aydın
aceebba99a Merge pull request #1509 from automatisch/errors-folder-js
feat: Convert ts files to js files for errors directory
2024-01-04 17:40:59 +01:00
Faruk AYDIN
7d6a8c4607 feat: Convert service folder to js files 2024-01-04 17:33:03 +01:00
Faruk AYDIN
5fd90355ae feat: Convert error handler ts file to js file 2024-01-04 17:17:25 +01:00
Faruk AYDIN
9b01a2a4da feat: Convert ts files to js files for errors directory 2024-01-04 17:14:28 +01:00
Ömer Faruk Aydın
a2986d70a0 Merge pull request #1508 from automatisch/controllers-js
feat: Convert ts files to js files for controllers
2024-01-04 17:13:39 +01:00
Faruk AYDIN
5dfa38ca99 feat: Convert ts files to js files for controllers 2024-01-04 17:06:19 +01:00
Ömer Faruk Aydın
157c6812cc Merge pull request #1507 from automatisch/config-folder-js
feat: Convert ts files to js files for config folder
2024-01-04 17:05:52 +01:00
Faruk AYDIN
215ff4b74a chore: Add eslint configuration specific to backend 2024-01-04 16:56:29 +01:00
Faruk AYDIN
ca7b8b865a feat: Convert ts files to js files for config folder 2024-01-04 16:52:52 +01:00
Ömer Faruk Aydın
fd0b12f6a1 Merge pull request #1506 from automatisch/allow-js
chore: Allow JS files for the backend package
2024-01-04 16:50:19 +01:00
Faruk AYDIN
2f3b739f9e chore: Allow JS files for the backend package 2024-01-04 16:34:55 +01:00
Ömer Faruk Aydın
3255ddca63 Merge pull request #1503 from automatisch/feature/helix-app
feat: Implement Helix app with new chat action
2024-01-02 21:20:50 +01:00
Faruk AYDIN
b5460712e6 feat: Implement Helix app with new chat action 2024-01-02 19:06:07 +01:00
Ömer Faruk Aydın
6f7dcc2b6e Merge pull request #1498 from automatisch/AUT-557
feat(self-hosted-llm): add send prompt and send chat prompt actions
2024-01-02 14:27:46 +01:00
Ömer Faruk Aydın
70d4800cb1 Merge pull request #1497 from automatisch/AUT-554
feat(azure-openai): add send prompt action
2024-01-02 14:27:20 +01:00
Ali BARIN
a8b85cdb0d feat(self-hosted-llm): add send prompt and send chat prompt actions 2023-12-20 16:18:39 +00:00
Ali BARIN
fe10523972 test: update first app as azure-openai 2023-12-20 14:51:30 +00:00
Ali BARIN
c975a56245 feat(azure-openai): add send prompt action 2023-12-20 14:48:33 +00:00
QAComet
d070e976b0 test(e2e-tests): run only on relevant changes in pull requests (#1495) 2023-12-15 18:51:58 +01:00
Ali BARIN
0caf6bfabb Merge pull request #1494 from automatisch/aut-551
feat: hide notifications page in mation instances
2023-12-15 18:00:08 +01:00
Ali BARIN
b842d7938f feat: hide notifications page in mation instances 2023-12-15 16:28:41 +00:00
Ali BARIN
cebbf84375 Merge pull request #1491 from automatisch/aut-548
feat: apply conditional mation styling
2023-12-15 11:40:12 +01:00
Ali BARIN
8608431490 feat: add conditional mation logo by default 2023-12-14 15:59:37 +00:00
Ali BARIN
78ba18b176 feat: apply conditional mation styling 2023-12-14 14:28:07 +00:00
Ali BARIN
f8c30c8526 Merge pull request #1475 from automatisch/aut-547
feat(queries/getAutomatischInfo): add mation
2023-12-14 11:15:35 +01:00
QAComet
693c9b85a5 test: run UI workflow only on changes outside of backend apps (#1462) 2023-12-14 10:45:15 +01:00
Ali BARIN
70bb7defd1 feat(queries/getAutomatischInfo): add mation 2023-12-12 17:37:27 +00:00
Ali BARIN
160377ca31 Merge pull request #1473 from automatisch/aut-545
docs(salesforce): update connection steps
2023-12-12 18:17:07 +01:00
Ali BARIN
2c0ce77a4e docs(salesforce): update connection steps 2023-12-12 17:08:15 +00:00
Ali BARIN
77fbb0c9da Merge pull request #1470 from automatisch/aut-538
fix(odoo): introduce secure connection option
2023-12-11 16:44:11 +01:00
Ali BARIN
5971425d23 fix(odoo): introduce secure connection option 2023-12-11 15:36:50 +00:00
Ali BARIN
aefff5c861 Merge pull request #1449 from automatisch/AUT-414
feat(zendesk): add new users trigger
2023-11-30 12:55:02 +01:00
Rıdvan Akca
a296b5e645 feat(zendesk): add new users trigger 2023-11-30 14:42:25 +03:00
Ali BARIN
eb486a3a07 Merge pull request #1456 from automatisch/AUT-431
feat(notion): add updated database items trigger
2023-11-29 16:54:45 +01:00
Ali BARIN
062b8521ba Merge pull request #1454 from automatisch/AUT-418
feat(zendesk): add delete user action
2023-11-29 14:37:42 +01:00
Rıdvan Akca
1b07f3195a feat(zendesk): add delete user action 2023-11-29 16:30:05 +03:00
Rıdvan Akca
dfa7d4cb8d feat(notion): add updated database items trigger 2023-11-29 16:18:38 +03:00
Ali BARIN
a14dd9666c Merge pull request #1451 from automatisch/AUT-415
feat(zendesk): add create user action
2023-11-29 14:10:46 +01:00
Rıdvan Akca
b07bd4374f feat(zendesk): add create user action 2023-11-29 16:01:55 +03:00
Ali BARIN
b4e12b0ea8 Merge pull request #1448 from automatisch/AUT-413
feat(zendesk): add delete ticket action
2023-11-29 13:35:58 +01:00
Ali BARIN
ee5c17bb85 Merge pull request #1447 from automatisch/AUT-412
feat(zendesk): add find ticket action
2023-11-29 13:32:29 +01:00
Rıdvan Akca
16c9d3400c feat(zendesk): add delete ticket action 2023-11-29 14:27:54 +03:00
Rıdvan Akca
4dd994348d feat(zendesk): add find ticket action 2023-11-29 13:17:04 +03:00
Ali BARIN
f0cbfafc24 Merge pull request #1443 from automatisch/AUT-411
feat(zendesk): add update ticket action
2023-11-28 15:02:21 +01:00
Ali BARIN
d3f38f5488 Merge pull request #1455 from automatisch/rename-discord-scheduled-event-action
feat(discord/create-scheduled-event): remove new prefix
2023-11-28 13:14:25 +01:00
Ali BARIN
737090a67a feat(discord/create-scheduled-event): remove new prefix 2023-11-28 11:56:36 +00:00
Ali BARIN
4f66a4d090 Merge pull request #1446 from automatisch/AUT-465
feat: embed external fonts used in the codebase
2023-11-28 12:47:32 +01:00
Rıdvan Akca
df54f909c1 feat(zendesk): add update ticket action 2023-11-28 14:40:26 +03:00
Ali BARIN
772b195eca Merge pull request #1441 from automatisch/AUT-409
feat(zendesk): add new tickets trigger
2023-11-28 11:52:22 +01:00
Ali BARIN
87866e34ed Merge pull request #1450 from felifluid/feature/action-discord-create-event
feat(discord): add createEvent action
2023-11-27 18:08:20 +01:00
Ali BARIN
c98ac05097 feat(discord/create-new-scheduled-event): rework fields 2023-11-27 17:01:40 +00:00
DerKlobold
36f991b6f9 feat: discord createNewEvent action in docs
adds a simple entry in the docs for the createNewEvent action
2023-11-26 18:59:01 +01:00
DerKlobold
a81c5164fc feat: discord createNewEvent action
adds the action of creating a new event on a discord server. provides some sort of logic-check to make sure the correct fields have been filled, depending of the type given.
2023-11-26 18:58:09 +01:00
DerKlobold
5942482690 feat: list discord voice channel dynamic data
adds a helper function to provide dynamic data of voice and stage channels of a discord server
2023-11-26 18:56:50 +01:00
Rıdvan Akca
4f538ca2fc feat(zendesk): add new tickets trigger 2023-11-24 15:22:35 +03:00
Kasia
9f2281a3e2 feat: embed external fonts used in the codebase 2023-11-24 12:20:28 +00:00
Ali BARIN
b0d2f28c78 Merge pull request #1444 from automatisch/AUT-487
fix(zendesk): get after_cursor from meta field
2023-11-23 13:42:01 +01:00
Rıdvan Akca
d4380a4426 fix(zendesk): get after_cursor from meta field 2023-11-23 15:17:11 +03:00
Ali BARIN
ae2738d4cc Merge pull request #1435 from mohammedzaher/removebg
feat(removebg): add `remove image background` action
2023-11-22 16:28:55 +01:00
Ali BARIN
aa5ae028b2 feat(removebg/remove-image-background): update wording 2023-11-22 15:01:02 +00:00
Mohammed Zaher
7ab8c76aa0 docs(removebg): Add Remove image background action 2023-11-16 15:43:22 +00:00
Mohammed Zaher
8075b65e14 feat(removebg): Add Remove image background action 2023-11-16 15:39:46 +00:00
Ali BARIN
073ce3bf1b Merge pull request #1433 from automatisch/AUT-445
feat(reddit): provide user-agent header
2023-11-14 17:25:29 +01:00
Rıdvan Akca
80fcbfe01b feat(reddit): provide user-agent header 2023-11-14 14:08:01 +03:00
Ali BARIN
dba0041e5f Merge pull request #1430 from automatisch/dependabot/npm_and_yarn/axios-1.6.0
chore(deps): bump axios from 0.24.0 to 1.6.0
2023-11-13 17:56:57 +01:00
Ali BARIN
b8a44afd25 refactor: re-type interceptors for axios@1.6.0 2023-11-13 16:14:03 +00:00
dependabot[bot]
e2445bf585 chore(deps): bump axios from 0.24.0 to 1.6.0
Bumps [axios](https://github.com/axios/axios) from 0.24.0 to 1.6.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.24.0...v1.6.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 16:14:03 +00:00
Ali BARIN
50706c524e Merge pull request #1431 from QAComet/qacomet/admin-roles-loader
test: add page title test ids to await and await mounting loader components
2023-11-13 10:52:49 +01:00
QAComet
11e0cb9398 test: add page title test ids to await and await mounting loader components 2023-11-12 16:46:38 -07:00
Ali BARIN
1e82e40802 Merge pull request #1428 from automatisch/AUT-398
feat(reddit): add create link post action
2023-11-10 16:27:25 +01:00
Rıdvan Akca
ff00644e62 feat(reddit): add create link post action 2023-11-10 18:21:04 +03:00
Ali BARIN
97bcd3792b Merge pull request #1427 from automatisch/AUT-397
feat(reddit): add new posts matching search trigger
2023-11-10 16:03:35 +01:00
Rıdvan Akca
5738a09771 feat(reddit): add new posts matching search trigger 2023-11-10 16:50:26 +03:00
kattoczko
c461cc4878 feat: introduce application auth clients tab in the admin panel (#1423)
* feat: introduce application auth clients tab in the admin panel

* feat: introduce improvements

* feat: use loading state returned from useMutation

* feat: use error returned by useMutation hook
2023-11-10 14:09:23 +01:00
Ali BARIN
878fab347a Merge pull request #1426 from automatisch/AUT-396
feat(reddit): add reddit integration
2023-11-10 11:16:46 +01:00
Rıdvan Akca
354b331b08 feat(reddit): add reddit integration 2023-11-10 12:51:52 +03:00
Ali BARIN
3b9aadb90f Merge pull request #1421 from automatisch/AUT-392
feat(xero): add new payments trigger
2023-11-09 16:30:42 +01:00
Ali BARIN
7193d018ce Merge pull request #1425 from automatisch/add-sf-execute-query-in-docs
docs(salesforce): list execute query in actions
2023-11-09 16:09:43 +01:00
Ali BARIN
d5cea034ac docs(salesforce): list execute query in actions 2023-11-09 15:02:58 +00:00
Ömer Faruk Aydın
a2760c10b3 Merge pull request #1422 from automatisch/release/0.10.0
Release v0.10.0
2023-11-09 16:12:19 +03:00
Faruk AYDIN
5492fae213 Release v0.10.0 2023-11-09 15:48:33 +03:00
Faruk AYDIN
490a23ae0a chore: Update version to 0.10.0 in Dockerfiles 2023-11-09 15:46:42 +03:00
Rıdvan Akca
3593cf3808 feat(xero): add new payments trigger 2023-11-09 11:57:47 +03:00
Ali BARIN
6ea7400ff4 Merge pull request #1419 from automatisch/AUT-391
feat(xero): add new bank transactions trigger
2023-11-08 17:07:14 +01:00
Rıdvan Akca
1a4ba35ef4 feat(xero): add new bank transactions trigger 2023-11-08 18:59:50 +03:00
Ali BARIN
2d52cab693 fix: let permitted users delete others' flows (#1417) 2023-11-08 16:55:30 +01:00
Ömer Faruk Aydın
e1fac78aba Merge pull request #1412 from automatisch/aut-311
fix: let permitted users create step in not-owned flows
2023-11-08 17:55:53 +03:00
Ali BARIN
e79fc9cae4 Merge pull request #1418 from automatisch/AUT-390
feat(xero): add xero integration
2023-11-08 15:37:03 +01:00
Rıdvan Akca
9200e1011b feat(xero): add xero integration 2023-11-08 17:03:33 +03:00
moaaz
373d29eeab docs(carbone): Add add-template actions 2023-11-08 11:27:17 +01:00
moaaz
bc337c588a feat(carbone): add add-template action 2023-11-08 11:27:17 +01:00
QAComet
112b05f7ad test: add wait for roles loader to detach 2023-11-08 10:39:02 +01:00
Moaaz Elsayed
9f84af95f6 docs(removebg): fix connection link (#1416) 2023-11-08 10:03:34 +01:00
Ali BARIN
0873cfa997 fix: let permitted users create step in not-owned flows 2023-11-07 15:51:24 +00:00
Ali BARIN
94d7162782 docs(carbone): list in available apps (#1411) 2023-11-07 15:30:47 +01:00
Mohammed Zaher
5db62679fa feat(removebg): add remove-bg integration (#1406)
* feat(remove-bg): add remove-bg integration

* feat(removebg): update name and icon

* docs(removebg): update name and icon

* docs: add remove.bg in available apps

* docs(removebg): correct path

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-11-07 13:52:55 +01:00
Moaaz Elsayed
a4a0102679 feat(carbone): add carbone integration (#1405)
* feat(carbone): add carbone integration

* Update list-apps.spec.js to ensure Carbone is the first application in the alphabetically sorted list

Previously, the test expected DeepL to be the first in the list. Now, this change ensures that Carbone will take precedence as it will come first in the alphabetical order.
2023-11-07 13:00:22 +01:00
Rıdvan Akca
2afcfbb4bc feat(ghost): add new post published trigger (#1403) 2023-11-07 12:55:35 +01:00
Rıdvan Akca
f0e8f070a8 feat(ghost): add ghost integration (#1401) 2023-11-07 11:30:26 +01:00
Rıdvan Akca
c42374e031 feat(notion/create-page): support variables in parentPageId field (#1410) 2023-11-07 09:33:57 +01:00
Rıdvan Akca
be610c7fa9 feat(zendesk): add create ticket action 2023-11-06 16:02:26 +01:00
Rıdvan Akca
4ff824663b test: skip admin role is not deletable 2023-11-06 14:21:19 +01:00
QAComet
1581b5ac0a test: write tests for role management (#1396) 2023-11-06 10:35:20 +01:00
Ömer Faruk Aydın
5fb48ed54b Merge pull request #1402 from automatisch/tests/get-flow
test: Implement graphQL getFlow query tests
2023-10-31 16:12:26 +01:00
Faruk AYDIN
903e9e6093 test: Implement graphQL getFlow query tests 2023-10-31 15:57:44 +01:00
Faruk AYDIN
d30e491817 test: Delete formattedData from connection factory before persisting 2023-10-31 15:57:22 +01:00
Faruk AYDIN
aa727e3260 test: Adjust step factory to assign correct appKey 2023-10-31 15:56:49 +01:00
Ömer Faruk Aydın
1cad3a7149 Merge pull request #1398 from automatisch/tests/disable-typescript
test: Disable ts check for test files
2023-10-31 12:08:30 +01:00
Ali BARIN
3b7f6740bb chore: exclude test files from eslint 2023-10-31 11:35:53 +01:00
Ali BARIN
2febc5efad fix(mutations/delete-flow): cover incomplete trigger 2023-10-30 15:19:31 +01:00
Faruk AYDIN
903616bef6 test: Disable ts check for test files 2023-10-30 14:25:22 +01:00
Rıdvan Akca
c944193fb4 feat(trello): add create card action 2023-10-30 11:48:19 +01:00
Ömer Faruk Aydın
4f2155ea63 Merge pull request #1394 from automatisch/tests/coverage
test: Show coverage for graphQL queries folder
2023-10-30 10:23:42 +01:00
Faruk AYDIN
4bda1edda7 test: Show coverage for graphQL queries folder 2023-10-29 13:13:01 +01:00
QAComet
1a55cc8604 test: update snackbar with variant and data-test attributes 2023-10-27 19:48:40 +02:00
Ali BARIN
bf7ab475ee feat: unregister webhook upon deleting flow 2023-10-27 19:19:13 +02:00
Ömer Faruk Aydın
2f39efb935 Merge pull request #1381 from automatisch/add-filters-in-get-executions-query
feat(queries/get-executions): add filter support
2023-10-26 17:56:10 +02:00
Ali BARIN
9f8eb985e4 refactor: assert entry dates as string 2023-10-26 15:43:11 +00:00
Ali BARIN
3549fef71c feat(ExecutionRow): use createdAt instead of updatedAt 2023-10-26 15:43:10 +00:00
Ali BARIN
2cfa64c2a3 test(queries/get-executions): use createdAt in filter test cases 2023-10-26 15:43:08 +00:00
Ali BARIN
7245a0a599 refactor(queries/get-executions): use createdAt in filters 2023-10-26 15:29:28 +00:00
Ali BARIN
0633da3244 fix(mutations/duplicate-flow): correct webhook path 2023-10-26 17:21:28 +02:00
Faruk AYDIN
96341976f5 test: Add graphQL query test for getExecutions 2023-10-26 17:19:37 +02:00
Faruk AYDIN
9abfaec4d5 test: Adjust permission factory to pass all values 2023-10-26 17:17:12 +02:00
Faruk AYDIN
945c52dd6b test: Add createdAt and updatedAt defaultst to execution and flow 2023-10-26 17:16:42 +02:00
Faruk AYDIN
6567d24760 test: Adjust app key of step depending on type 2023-10-26 17:15:50 +02:00
Faruk AYDIN
ffaf9b6e0c chore: Add date types to IFlow and IExecution 2023-10-26 17:15:10 +02:00
QAComet
463e6908b1 test: write tests for user management (#1316)
* chore: add data-test attributes

* test: add github connection test, add applications modal

* test: write tests for user management
2023-10-26 15:12:37 +02:00
Ali BARIN
e185ceb385 fix(queries/get-executions): recover flow and steps relations 2023-10-26 13:52:20 +02:00
Ali BARIN
1b21bbe5b7 feat(queries/get-executions): accept timestamp instead of ISO datetime 2023-10-26 13:52:20 +02:00
Ali BARIN
14b7053ed8 feat: add updated_at index in executions 2023-10-26 13:52:20 +02:00
Ali BARIN
2760526def feat: add flow_id index in executions 2023-10-26 13:52:20 +02:00
Ali BARIN
d851db22d0 feat(queries/get-executions): add updatedAt filter support 2023-10-26 13:52:20 +02:00
Ali BARIN
2fa360e400 feat(queries/get-executions): add status filter support 2023-10-26 13:52:20 +02:00
Ali BARIN
e4eb146169 feat(queries/get-executions): add flowId filter support 2023-10-26 13:52:20 +02:00
Moaaz Elsayed
86611453b5 feat(zendesk): add zendesk integration (#1385)
* feat(zendesk): add zendesk integration

* Add Zendesk connection documentation

* docs(zendesk/connection): add missing steps

* feat(zendesk): add more auth scopes for planned triggers/actions

* fix(zendesk): fix instanceUrl

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-10-26 12:47:13 +02:00
dependabot[bot]
65f9d1b6b9 chore(deps): bump crypto-js from 4.1.1 to 4.2.0
Bumps [crypto-js](https://github.com/brix/crypto-js) from 4.1.1 to 4.2.0.
- [Commits](https://github.com/brix/crypto-js/compare/4.1.1...4.2.0)

---
updated-dependencies:
- dependency-name: crypto-js
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-26 10:00:04 +02:00
QAComet
2fceaf2cf4 test: fix flakiness in GH connection test case (#1383) 2023-10-25 11:04:04 +02:00
Ömer Faruk Aydın
d82b50fcdb Merge pull request #1382 from automatisch/fix/delete-current-user
fix: Guard lowercase email for delete user operation
2023-10-25 01:17:52 +02:00
Faruk AYDIN
ab6e49bf4f fix: Guard lowercase email for delete user operation 2023-10-25 01:00:43 +02:00
Rıdvan Akca
ee90422f56 feat(trello): add trello integration (#1380) 2023-10-24 15:13:08 +02:00
Ömer Faruk Aydın
627184f124 Merge pull request #1379 from automatisch/factories/execution-step
test: Implement execution step factory
2023-10-24 13:45:08 +02:00
Rıdvan Akca
fa02edfefc feat(pushover): add send a pushover notification action (#1373) 2023-10-24 13:40:24 +02:00
Faruk AYDIN
61afebc827 test: Implement execution step factory 2023-10-24 12:35:29 +02:00
Faruk AYDIN
a4c22799e7 fix: Correct executions table name for execution factory 2023-10-24 12:35:29 +02:00
Faruk AYDIN
870a110a75 fix: Fetch lastStep directly on the step factory 2023-10-24 12:35:29 +02:00
kattoczko
8c859f9408 feat: introduce admin app configs page (#1335) 2023-10-24 12:19:37 +02:00
Ali BARIN
0a36101da1 feat: close snackbars upon click (#1378) 2023-10-24 12:03:30 +02:00
Ömer Faruk Aydın
c1bf063b12 Merge pull request #1377 from automatisch/factories/execution
test: Implement factory for the execution model
2023-10-23 23:06:45 +02:00
Ömer Faruk Aydın
0da56a800d Merge pull request #1376 from automatisch/factories/step
test: Add factory file for the step model
2023-10-23 23:00:26 +02:00
Faruk AYDIN
4d2172d153 test: Implement factory for the execution model 2023-10-23 22:52:24 +02:00
Faruk AYDIN
d0fab0e1f1 test: Add factory file for the step model 2023-10-23 22:47:19 +02:00
QAComet
4cedbdbc60 test: add tests for git connection (#1289)
* chore: add data-test attributes

* test: add github connection test, add applications modal

* chore: embed test GITHUB_CLIENT_* environment values

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-10-23 18:48:23 +02:00
Ömer Faruk Aydın
a82d34cbce Merge pull request #1375 from automatisch/factories/flow
test: Add factory file for the flow model
2023-10-23 18:43:14 +02:00
Faruk AYDIN
16d0c243c7 test: Add factory file for the flow model 2023-10-23 18:26:43 +02:00
Ömer Faruk Aydın
855901bd9e Merge pull request #1372 from automatisch/refactor/tests
refactor: Use named exports for factories
2023-10-23 11:09:05 +02:00
Faruk AYDIN
6be8a581d2 refactor: Use named exports for factories 2023-10-23 10:36:44 +02:00
Faruk AYDIN
655deb12c8 refactor: Rename fixtures as factories to differentiate dynamic data 2023-10-23 10:30:27 +02:00
Ömer Faruk Aydın
31b1b9457b Merge pull request #1364 from automatisch/AUT-348
feat(pushover): add pushover integration
2023-10-22 23:13:01 +02:00
Faruk AYDIN
c4394228f2 fix(placetel): Authenticate in case valid user without device 2023-10-22 23:03:46 +02:00
Rıdvan Akca
98e6dbe141 feat(pushover): add pushover integration 2023-10-22 23:03:46 +02:00
Ömer Faruk Aydın
4fac1ef7c4 Merge pull request #1355 from automatisch/AUT-347
feat(youtube): add new video by search trigger
2023-10-21 10:52:31 +02:00
Rıdvan Akca
034bc6a79e refactor(pipedrive): make filterProvidedFields func reusable 2023-10-20 19:06:34 +02:00
Rıdvan Akca
94e64676af refactor(pipedrive): set baseUrl in a seperate file 2023-10-20 18:36:50 +02:00
Rıdvan Akca
3a638220af feat(pipedrive): add create person action 2023-10-20 17:39:24 +02:00
Rıdvan Akca
0772308bf5 feat(pipedrive): add create organization action 2023-10-20 17:12:51 +02:00
Rıdvan Akca
9f5ea80731 feat(youtube): add new video by search trigger 2023-10-20 18:02:44 +03:00
Ömer Faruk Aydın
fb1f520096 Merge pull request #1367 from automatisch/test/connection-fixture
test: Implement connection fixture
2023-10-20 15:53:04 +02:00
Ömer Faruk Aydın
dd36609443 Merge pull request #1353 from automatisch/AUT-344
feat(youtube): add new video in channel trigger
2023-10-20 15:43:06 +02:00
Rıdvan Akca
4eace3fb7e feat(youtube): add new video in channel trigger 2023-10-20 16:35:13 +03:00
Faruk AYDIN
f13e93e2ce test: Implement connection fixture 2023-10-19 23:04:02 +02:00
Ömer Faruk Aydın
da4f8ab529 Merge pull request #1351 from automatisch/AUT-343
feat(youtube): add youtube integration
2023-10-19 15:05:58 +02:00
Ömer Faruk Aydın
b6ff4ec992 Merge pull request #1363 from automatisch/test/get-trial-status
test: Implement tests for get trial status graphQL query
2023-10-19 14:29:59 +02:00
Ömer Faruk Aydın
25f6cac69a Merge pull request #1362 from automatisch/test/get-automatisch-info
test: Add getAutomatischInfo graphQL query tests
2023-10-19 14:23:51 +02:00
Faruk AYDIN
172a8934e3 test: Add restoreAllMocks to global afterEach for spy and replaceProperty 2023-10-19 14:22:00 +02:00
Ali BARIN
aead014bcf refactor: remove additional mock implentation in tests 2023-10-19 13:43:49 +02:00
Faruk AYDIN
59770c80db test: Implement tests for get trial status graphQL query 2023-10-19 01:06:41 +02:00
Faruk AYDIN
6d6b77148d refactor: User fixture to pass additonal params 2023-10-19 01:06:01 +02:00
Faruk AYDIN
c1e8f5765f chore: Use cloud enabled version for test db 2023-10-19 01:05:23 +02:00
Faruk AYDIN
76e442940b test: Add getAutomatischInfo graphQL query tests 2023-10-18 15:47:09 +02:00
Faruk AYDIN
b2205097da test: Implement the structure of mocking appConfig options 2023-10-18 15:47:09 +02:00
Faruk AYDIN
14886d42e8 test: Clear all jest mocks with after each global hook 2023-10-18 15:47:09 +02:00
Ömer Faruk Aydın
2f35403078 Merge pull request #1359 from automatisch/AUT-350
fix(pipedrive): check if there is no data in dynamic-data
2023-10-18 11:42:12 +02:00
Rıdvan Akca
961d55a1c6 fix(pipedrive): check if there is no data in dynamic-data 2023-10-18 12:20:25 +03:00
Ömer Faruk Aydın
0fca0ef734 Merge pull request #1340 from automatisch/AUT-329
feat(invoice-ninja): add create product action
2023-10-18 00:27:05 +02:00
Ömer Faruk Aydın
cc3acd81bc Merge pull request #1357 from automatisch/pipedrive-create-activity-name-correction
fix(pipedrive/create-activity): correct its key
2023-10-18 00:18:30 +02:00
Ali BARIN
69a691c19e fix(pipedrive/create-activity): correct its key 2023-10-17 21:48:58 +02:00
Ömer Faruk Aydın
e0a4f5c9c9 Merge pull request #1356 from automatisch/formatter/format-phone-number
feat(formatter): implement format phone number transformer
2023-10-17 17:02:22 +02:00
Faruk AYDIN
cabf9b8fb8 feat(formatter): implement format phone number transformer 2023-10-17 16:45:56 +02:00
Rıdvan Akca
61e24da07d feat(invoice-ninja): add create product action 2023-10-17 15:27:25 +03:00
Ömer Faruk Aydın
648511dfad Merge pull request #1354 from automatisch/dependabot/npm_and_yarn/babel/traverse-7.23.2
chore(deps): bump @babel/traverse from 7.16.3 to 7.23.2
2023-10-17 12:52:18 +02:00
dependabot[bot]
dfc9efc31a chore(deps): bump @babel/traverse from 7.16.3 to 7.23.2
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.16.3 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-17 10:32:32 +00:00
Ömer Faruk Aydın
b58a22addc Merge pull request #1339 from automatisch/AUT-328
feat(invoice-ninja): add create payment action
2023-10-17 11:37:44 +02:00
Ömer Faruk Aydın
e07a9eeda2 Merge pull request #1338 from automatisch/AUT-327
feat(invoice-ninja): add create invoice action
2023-10-16 17:36:38 +02:00
Rıdvan Akca
f0de42fa63 feat(invoice-ninja): add create payment action 2023-10-16 18:30:10 +03:00
Rıdvan Akca
0121661ad0 feat(invoice-ninja): add create invoice action 2023-10-16 18:22:57 +03:00
Rıdvan Akca
fb6e46bd69 feat(youtube): add youtube integration 2023-10-16 16:27:17 +03:00
Ömer Faruk Aydın
9bd041799b Merge pull request #1350 from automatisch/test/get-config
test: Implement tests for getConfig graphQL query
2023-10-16 15:12:53 +02:00
Ömer Faruk Aydın
9e191c4ed9 Merge pull request #1349 from automatisch/test/get-roles
test: add tests for graphQL getRoles query
2023-10-16 15:12:43 +02:00
Ömer Faruk Aydın
794b4cf26a Merge pull request #1348 from automatisch/tests/get-role
test: Add getRole graphQL query test
2023-10-16 14:52:28 +02:00
Faruk AYDIN
2d8421943f test: Implement tests for getConfig graphQL query 2023-10-15 20:01:05 +02:00
Faruk AYDIN
48dc2312d9 refactor: Remove redundant context variable from getConfig 2023-10-15 20:00:51 +02:00
Faruk AYDIN
cdf7a1adc4 test: Implement config fixture 2023-10-15 20:00:07 +02:00
Faruk AYDIN
99ebd12081 chore: Add IConfig type 2023-10-15 19:59:26 +02:00
Faruk AYDIN
859337b5c1 test: add tests for graphQL getRoles query 2023-10-15 16:55:25 +02:00
Faruk AYDIN
1e601559a0 test: remove roles and permission with global before all hook 2023-10-15 16:54:51 +02:00
Faruk AYDIN
9314cba724 test: Add getRole graphQL query test 2023-10-15 15:22:08 +02:00
Ömer Faruk Aydın
25224f0308 Merge pull request #1346 from automatisch/test/get-users
test: Implement tests for graphQL getUsers query
2023-10-14 21:35:51 +02:00
Faruk AYDIN
9a981d5373 test: Implement tests for graphQL getUsers query 2023-10-14 21:29:24 +02:00
Faruk AYDIN
c7116361ab refactor: No need to interpolate token for getUser test 2023-10-14 21:21:40 +02:00
Ömer Faruk Aydın
1f17236c4f Merge pull request #1345 from automatisch/refactor/tests
test: Correct get current user test descriptions
2023-10-14 21:21:21 +02:00
Ömer Faruk Aydın
67f415de35 Merge pull request #1344 from automatisch/test/healthcheck-query
test: Add test for healthcheck graphQL query
2023-10-14 21:20:55 +02:00
Faruk AYDIN
b890150817 chore: Add verbose flag to yarn test script 2023-10-14 20:13:13 +02:00
Faruk AYDIN
4de1fc49df test: Add test case for unauthorized user for getUser 2023-10-14 20:12:10 +02:00
Faruk AYDIN
fb80d5d70d test: Correct get current user test descriptions 2023-10-14 20:04:49 +02:00
Faruk AYDIN
eaa25e412a test: Add test for healthcheck graphQL query 2023-10-14 17:45:26 +02:00
Faruk AYDIN
706142f98e chore: Change the description of existing graphQL tests 2023-10-14 17:19:25 +02:00
Ömer Faruk Aydın
36a72d0a32 Merge pull request #1334 from automatisch/AUT-326
feat(invoice-ninja): add create client action
2023-10-14 15:36:24 +02:00
Faruk AYDIN
1d44d387ac feat(invoice-ninja): Add static country codes to create client fields 2023-10-14 15:26:58 +02:00
Faruk AYDIN
f93c41f2d8 feat(invoice-ninja): Set instance URL as base URL 2023-10-14 15:26:58 +02:00
Rıdvan Akca
5b13f880c8 feat(invoice-ninja): add create client action 2023-10-14 15:26:58 +02:00
Ömer Faruk Aydın
c4af873036 Merge pull request #1342 from automatisch/lowercase-email
fix: Lowercase user email before insert and update
2023-10-14 13:42:05 +02:00
Faruk AYDIN
fe820fb4fe fix: use lowercase email for user model findOne method 2023-10-13 13:21:55 +02:00
Faruk AYDIN
82ad0735d2 chore: Convert user emails to lowercase 2023-10-13 11:52:31 +02:00
Faruk AYDIN
8b0a421924 fix: Lowercase user email before insert and update 2023-10-13 11:44:52 +02:00
Ömer Faruk Aydın
d44cb3d92e Merge pull request #1341 from automatisch/test/get-current-user
test: Implement getCurrentUser graphQL test
2023-10-13 11:36:38 +02:00
Ömer Faruk Aydın
5f335ef5b3 refactor: Use token without string interpolation for getCurrentUser test
Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-10-13 11:24:54 +02:00
Faruk AYDIN
5831bf9653 test: Implement getCurrentUser graphQL test 2023-10-13 01:04:35 +02:00
Ömer Faruk Aydın
2480dfbb6d Merge pull request #1331 from automatisch/AUT-323
feat(invoice-ninja): add new quotes trigger
2023-10-12 16:03:28 +02:00
Ömer Faruk Aydın
162b352ea5 Merge pull request #1330 from automatisch/AUT-322
feat(invoice-ninja): add new projects trigger
2023-10-12 15:58:49 +02:00
Ömer Faruk Aydın
9f30d7d7ba Merge pull request #1329 from automatisch/AUT-321
feat(invoice-ninja): add new payments trigger
2023-10-12 15:55:44 +02:00
Rıdvan Akca
27c296bb89 feat(invoice-ninja): add new quotes trigger 2023-10-12 14:44:17 +03:00
Rıdvan Akca
ef67908451 feat(invoice-ninja): add new projects trigger 2023-10-12 14:43:39 +03:00
Rıdvan Akca
3dedc3bfc7 feat(invoice-ninja): add new payments trigger 2023-10-12 14:43:06 +03:00
Ömer Faruk Aydın
65d509c97f Merge pull request #1328 from automatisch/AUT-320
feat(invoice-ninja): add new invoices trigger
2023-10-11 16:00:25 +02:00
Rıdvan Akca
11f38c4d3a feat(invoice-ninja): add new invoices trigger 2023-10-11 15:36:20 +02:00
Ömer Faruk Aydın
3bca6497f7 Merge pull request #1327 from automatisch/AUT-319
feat(invoice-ninja): add new credits trigger
2023-10-11 15:34:17 +02:00
Ömer Faruk Aydın
23d79b9265 Merge pull request #1333 from automatisch/backend-tests-ci
feat: Add CI configuration for backend tests
2023-10-11 14:07:01 +02:00
Faruk AYDIN
12c53a3d4d feat: Add CI configuration for backend tests 2023-10-11 13:41:03 +02:00
Ömer Faruk Aydın
1dfe58ec02 Merge pull request #1337 from automatisch/placetel-webhook
fix(placetel): Parse request body inside of run method
2023-10-11 11:24:55 +02:00
Faruk AYDIN
7615e62bbc fix(placetel): Parse request body inside of run method 2023-10-11 11:17:19 +02:00
Faruk AYDIN
53189a6487 fix: Do not parse all requests with json parser 2023-10-10 18:26:53 +02:00
Rıdvan Akca
027b11c3fb feat(invoice-ninja): add new credits trigger 2023-10-10 16:31:42 +03:00
Ömer Faruk Aydın
453ab7de66 Merge pull request #1325 from automatisch/AUT-318
feat(invoice-ninja): add new clients trigger
2023-10-10 12:51:40 +02:00
Rıdvan Akca
58f8ded161 feat(invoice-ninja): add new clients trigger 2023-10-10 13:41:14 +03:00
Ömer Faruk Aydın
497ce2e84f Merge pull request #1323 from automatisch/AUT-315
feat(invoice-ninja): add invoice ninja integration
2023-10-09 16:41:35 +02:00
Faruk AYDIN
3794c6f508 docs(invoice-ninja): Add warning to see API tokens 2023-10-09 16:30:53 +02:00
Rıdvan Akca
ee6c9fa5d4 feat(invoice-ninja): add invoice ninja integration 2023-10-09 16:06:00 +03:00
Ömer Faruk Aydın
1369bb095f Merge pull request #1324 from automatisch/placetel
feat(placetel): Implement app structure with authentication
2023-10-09 14:19:58 +02:00
Faruk AYDIN
c786d7549a refactor(placetel): No need to stringify call ID 2023-10-09 14:11:39 +02:00
Faruk AYDIN
b59840cb77 feat(placetel): Add types to hungup call trigger 2023-10-09 12:49:59 +02:00
Faruk AYDIN
265d57d8b7 refactor(placetel): Remove redundant header variable 2023-10-09 12:18:55 +02:00
Faruk AYDIN
5eed84f9e5 feat: Add run method to placetel hungup trigger 2023-10-09 12:18:11 +02:00
Faruk AYDIN
0a334dff1d docs(placetel): Add connection and triggers pages 2023-10-09 12:17:23 +02:00
Faruk AYDIN
5fff9bdc02 chore(placetel): Add missing type file 2023-10-09 12:17:23 +02:00
Faruk AYDIN
a9fd261bab refactor: Use json parser when content type is not specified 2023-10-09 12:17:23 +02:00
Faruk AYDIN
ef087be4f0 feat(placetel): Add hungup call trigger 2023-10-09 12:17:23 +02:00
Faruk AYDIN
2099978b8f fix: Add fields from substeps to getApps query 2023-10-09 12:17:23 +02:00
Faruk AYDIN
712bee297a feat(placetel): Implement app structure with authentication 2023-10-09 12:17:23 +02:00
Ömer Faruk Aydın
57bba90091 Merge pull request #1332 from automatisch/webhook-body
feat: Add run method to webhook triggers
2023-10-09 12:12:39 +02:00
Faruk AYDIN
d877f5c764 refactor: Use trigger queue for webhook handler 2023-10-09 12:05:45 +02:00
Faruk AYDIN
4c66cc1e33 feat: Adjust webhook handler to work with run method 2023-10-08 15:51:59 +02:00
Faruk AYDIN
27a3edeb93 feat: Add run method to webhook triggers 2023-10-07 18:46:25 +02:00
Ali BARIN
f79fc29203 chore: add mock license server 2023-10-06 14:39:11 +02:00
Ali BARIN
174240a220 refactor: add useEnqueueSnackbar with data-test attr 2023-10-06 12:28:09 +02:00
Ömer Faruk Aydın
60d8af5c16 Merge pull request #1321 from automatisch/AUT-310
feat(pipedrive): add create lead action
2023-10-06 11:40:04 +02:00
Faruk AYDIN
627a5892f1 chore: Add description to Pipedrive create lead fields 2023-10-06 11:33:52 +02:00
Ömer Faruk Aydın
7767f6d9cc Merge pull request #1322 from automatisch/salesforce/api-request
feat(salesforce): Implement execute query action
2023-10-05 16:12:42 +02:00
Faruk AYDIN
9729fd6b15 feat(salesforce): Implement execute query action 2023-10-05 15:23:48 +02:00
Rıdvan Akca
17916f29f6 feat(pipedrive): add create lead action 2023-10-05 14:12:37 +03:00
kattoczko
584b9323ec feat: introduce admin apps page (#1296)
* feat: introduce admin apps page

* feat: add access restriction and fix incorrectly placed key prop
2023-10-05 10:55:00 +02:00
Ömer Faruk Aydın
82c1aadfa9 Merge pull request #1319 from automatisch/refactor-get-user-tests
refactor: Use fixtures for getUser graphQL tests
2023-10-05 10:25:49 +02:00
Faruk AYDIN
bd497af89b test: Add case to getUser to not return user password 2023-10-04 21:01:16 +02:00
Faruk AYDIN
1683c5630a test: Add types to getUser test file 2023-10-04 21:01:16 +02:00
Faruk AYDIN
b5df1a026a chore: Use snake case test mappers for test env 2023-10-04 21:01:16 +02:00
Faruk AYDIN
b290c32aeb refactor: Use shared requestObject for getUser tests 2023-10-04 21:01:16 +02:00
Faruk AYDIN
a29b3c6db4 refactor: Use fixtures for getUser graphQL tests 2023-10-04 21:01:16 +02:00
Faruk AYDIN
ffb2f4f5db refactor: Use unauthorized user describe block for getUser tests 2023-10-04 21:01:16 +02:00
Faruk AYDIN
24c95f4801 refactor: Remove reduntant global knex instance 2023-10-04 21:01:16 +02:00
Ömer Faruk Aydın
1aaec2d555 Merge pull request #1317 from automatisch/AUT-306
feat(pipedrive): add create activity action
2023-10-04 20:55:43 +02:00
Rıdvan Akca
fedb198ae7 feat(pipedrive): add create activity action 2023-10-04 13:31:39 +03:00
Ömer Faruk Aydın
add654ccac Merge pull request #1314 from automatisch/get-user-test
feat: Implement getUser graphQL query test
2023-10-04 12:19:12 +02:00
Faruk AYDIN
5a578643a6 feat: Implement getUser graphQL query test 2023-10-04 11:52:39 +02:00
Faruk AYDIN
f0712bd213 feat: Adjust global hooks to work with both knex and objection 2023-10-04 11:48:38 +02:00
Faruk AYDIN
f490632722 refactor: Login mutation with create auth token helper 2023-10-04 11:46:18 +02:00
Faruk AYDIN
2610b96762 chore: Install supertest and faker libraries for tests 2023-10-04 11:46:18 +02:00
Ömer Faruk Aydın
8d90cb834d Merge pull request #1312 from automatisch/global-test-hooks
feat: Add global hooks for jest
2023-10-04 11:45:37 +02:00
Faruk AYDIN
9d92509796 fix: Disable eslint no-var while overriding global 2023-10-03 23:40:12 +02:00
Faruk AYDIN
04a78ee0ba feat: Add types knex field of global 2023-10-03 23:40:12 +02:00
Faruk AYDIN
3703390268 chore: Adjust global and knex types for global hooks 2023-10-03 23:40:12 +02:00
Faruk AYDIN
4ab6415f49 feat: Migrate test database within pretest script 2023-10-03 23:40:12 +02:00
Faruk AYDIN
9228722147 chore: Use ts migration files also for test env 2023-10-03 23:40:12 +02:00
Faruk AYDIN
0e5529b4ca feat: Add global hooks for jest 2023-10-03 23:40:12 +02:00
Ömer Faruk Aydın
4d454ec932 Merge pull request #1313 from automatisch/AUT-303
feat(pipedrive): add create note action
2023-10-02 17:50:42 +02:00
Rıdvan Akca
a9282ad118 feat(pipedrive): add create note action 2023-10-02 16:19:07 +03:00
Ömer Faruk Aydın
0e959641af Merge pull request #1310 from automatisch/test-setup
feat: Introduce jest for backend tests
2023-09-30 15:02:01 +02:00
Faruk AYDIN
13263eea76 feat: Introduce jest for backend tests 2023-09-30 14:31:01 +02:00
Faruk AYDIN
1a3418de58 chore: Remove ava from test setup 2023-09-30 14:17:47 +02:00
Ömer Faruk Aydın
4402995132 Merge pull request #1133 from automatisch/sandbox-emails
chore: Allow only automatisch emails for non-prod cloud envs
2023-09-30 13:25:18 +02:00
Ömer Faruk Aydın
4e33f9875b Merge pull request #1307 from automatisch/pipedrive-create-deal
feat(pipedrive): add create deal action
2023-09-30 13:20:43 +02:00
Faruk AYDIN
ed2893e37f fix(pipedrive): Add guard for not having any organizations 2023-09-30 13:13:21 +02:00
Rıdvan Akca
c35be241ca feat(pipedrive): add create deal action 2023-09-30 13:05:09 +02:00
Ömer Faruk Aydın
aad0b4ddfe Merge pull request #1302 from automatisch/miro-create-card-widget
feat(miro): add create card widget action
2023-09-30 10:48:25 +02:00
Rıdvan Akca
52f5c7ddb5 feat(miro): add create card widget action 2023-09-29 21:39:30 +02:00
Kasia
a04b933161 refactor: introduce useApps hook 2023-09-29 17:03:36 +02:00
kattoczko
c77e12edbb fix: consider null as value in step parameters (#1282) 2023-09-29 16:33:45 +02:00
Ömer Faruk Aydın
108bd04cf8 Merge pull request #1301 from automatisch/miro-copy-board
feat(miro): add copy board action
2023-09-29 12:52:25 +02:00
Rıdvan Akca
a95b500e42 feat(miro): add copy board action 2023-09-29 12:46:36 +02:00
Ömer Faruk Aydın
c2744c5569 Merge pull request #1300 from automatisch/miro-integration
feat(miro): add create board action
2023-09-29 12:45:05 +02:00
Faruk AYDIN
a1dfd87bbe docs(miro): Add to available apps 2023-09-29 12:31:33 +02:00
Rıdvan Akca
221aa8687f feat(miro): add create board action 2023-09-29 12:17:21 +02:00
Rıdvan Akca
fa8ac0a8ba feat(miro): add miro integration 2023-09-29 12:17:21 +02:00
Ömer Faruk Aydın
cc1f9873cb Merge pull request #1299 from automatisch/pipedrive-new-lead
feat(pipedrive): add new leads trigger
2023-09-29 12:15:28 +02:00
Rıdvan Akca
3cae9ee5d2 feat(pipedrive): add new leads trigger 2023-09-29 12:06:56 +02:00
Ömer Faruk Aydın
f764914adb Merge pull request #1298 from automatisch/pipedrive-new-activity
feat(pipedrive): add new activities trigger
2023-09-29 12:04:29 +02:00
Rıdvan Akca
991250c73f feat(pipedrive): add new activities trigger 2023-09-29 11:57:11 +02:00
Ömer Faruk Aydın
af46cf5ce8 Merge pull request #1297 from automatisch/pipedrive-new-note
feat(pipedrive): add new notes trigger
2023-09-29 11:53:10 +02:00
Faruk AYDIN
dbb1c42c47 fix(pipedrive): Skip adding auth header for refresh token 2023-09-29 11:44:35 +02:00
Rıdvan Akca
991f593b2e feat(pipedrive): add new notes trigger 2023-09-29 11:44:35 +02:00
Ömer Faruk Aydın
e43c083d50 Merge pull request #1305 from automatisch/fix-user-creation
fix: use default role for fallback user creation
2023-09-29 10:39:29 +02:00
Ömer Faruk Aydın
3cd9bdc1d4 Merge pull request #1304 from automatisch/new-calendars
feat(google-calendar): Add max results option to new calendar trigger
2023-09-28 17:00:51 +02:00
Ali BARIN
c0b8e6178d fix: use default role for fallback user creation 2023-09-28 14:49:49 +00:00
Ömer Faruk Aydın
410f9d0af5 Merge pull request #1291 from automatisch/google-calendar-new-event
feat(google-calendar): add new event trigger
2023-09-28 16:16:32 +02:00
Ömer Faruk Aydın
b1fedf28dc Merge branch 'main' into google-calendar-new-event 2023-09-28 16:06:08 +02:00
Faruk AYDIN
b0df03dcd2 feat(google-calendar): Add max results option to new calendar trigger 2023-09-28 15:10:36 +02:00
Ömer Faruk Aydın
2794e50a19 Merge pull request #1294 from automatisch/pipedrive-integration
feat(pipedrive): add new deals trigger
2023-09-28 15:09:17 +02:00
Faruk AYDIN
365ae656f2 fix(pipedrive): Adjust description of OAuth redirect URL 2023-09-28 15:01:35 +02:00
Faruk AYDIN
98649dcba6 fix(pipedrive): Guard new deals response in case there is none 2023-09-28 15:00:34 +02:00
Faruk AYDIN
213c8096d2 fix(pipedrive): Change the order in available apps 2023-09-28 15:00:34 +02:00
Faruk AYDIN
398938f27e feat(pipedrive): Use also company domain for screen name 2023-09-28 15:00:34 +02:00
Faruk AYDIN
6378e62645 docs(pipedrive): Add to available apps 2023-09-28 15:00:34 +02:00
Rıdvan Akca
251885d4be feat(pipedrive): add new deals trigger 2023-09-28 15:00:34 +02:00
Rıdvan Akca
f53909355f feat(pipedrive): add pipedrive integration 2023-09-28 15:00:34 +02:00
Rıdvan Akca
242b68889a feat(google-calendar): add new event trigger 2023-09-28 15:52:53 +03:00
Ömer Faruk Aydın
6a66b65f2a Merge pull request #1290 from automatisch/google-calendar-new-calendar-trigger
feat(google-calendar): add new calendar trigger
2023-09-28 13:45:41 +02:00
Faruk AYDIN
f30ead6bcb docs(google-calendar): Add to available apps 2023-09-28 13:37:32 +02:00
Faruk AYDIN
237ee72ca6 feat(google-calendar): Use etag as internal id instead of id 2023-09-28 13:29:39 +02:00
Faruk AYDIN
3590d84ad6 fix(google-calendar): Reverse order the response data of new calendars 2023-09-28 13:28:58 +02:00
Rıdvan Akca
2dae8c162d feat(google-calendar): add new calendar trigger 2023-09-18 15:17:05 +03:00
Rıdvan Akca
9a192b708e feat(google-calendar): add google calendar integration 2023-09-18 15:12:29 +03:00
Rıdvan Akca
c193f9334f feat(wordpress): add new comment trigger 2023-09-15 18:33:38 +02:00
Rıdvan Akca
6e682dc752 fix(create-role): check isCreator by default when permissioon is checked 2023-09-15 15:32:52 +02:00
Rıdvan Akca
da86fe56bd feat(wordpress): add new page trigger 2023-09-15 13:05:41 +02:00
Ali BARIN
45865d701a chore: embed env. vars. for playwright actions 2023-09-15 12:56:15 +02:00
Ömer Faruk Aydın
a66a31b474 Merge pull request #1284 from automatisch/tests/ava
feat: Introduce backend test suite with ava
2023-09-14 12:43:45 +02:00
Faruk AYDIN
2661e7102f feat: Add env file existince check for test suite 2023-09-14 12:25:09 +02:00
Faruk AYDIN
224965b91e feat: Introduce backend test suite with ava 2023-09-14 11:56:53 +02:00
Ömer Faruk Aydın
a9c7375534 Merge pull request #1279 from automatisch/feature/hubspot
feat(hubspot): Implement create contact action
2023-09-14 11:52:18 +02:00
Faruk AYDIN
e77f7ee0bf docs(hubspot): Order alphabetically & correct connection name typo 2023-09-13 23:39:34 +02:00
Faruk AYDIN
ae5dd0cad6 fix(hubspot): Remove redundant field descriptions 2023-09-13 23:16:23 +02:00
Faruk AYDIN
a128907a4e fix(hubspot): Correct website URL typo and primary color 2023-09-13 23:16:23 +02:00
Faruk AYDIN
d6453a8ed0 chore: Use camelCase convention for hubspot actions 2023-09-13 23:16:23 +02:00
Faruk AYDIN
dd1e8240b8 feat(hubspot): Implement verify credentials for OAuth 2023-09-13 23:16:23 +02:00
Faruk AYDIN
b12f39916f feat(hubspot): Implement generate auth url for OAuth 2023-09-13 23:16:23 +02:00
Faruk AYDIN
aae88fe1ad docs(hubspot): Adjust connection page for OAuth setup 2023-09-13 23:16:23 +02:00
Faruk AYDIN
83bb400df1 chore: Change hubspot auth doc url 2023-09-13 23:16:23 +02:00
Vitalii Mykytiuk
8ea8067788 feat(hubspot): Implement create contact action 2023-09-13 23:16:23 +02:00
Rıdvan Akca
9fbc9d59f5 feat: make authentication role mappings emptiable 2023-09-13 22:32:18 +02:00
Ali BARIN
b96ba69a72 chore: run GH actions on push to main branch 2023-09-13 22:25:20 +02:00
Faruk AYDIN
c4ccab6a5d chore: Run CI builds only for pull requests 2023-09-13 22:25:20 +02:00
Rıdvan Akca
f84f27bb56 feat(user-interface): introduce optimistic response 2023-09-13 22:10:47 +02:00
Ömer Faruk Aydın
416cc0ffa9 Merge pull request #1280 from automatisch/node-version
chore: Add .node-version and .nvmrc files to the root
2023-09-13 12:41:37 +02:00
Faruk AYDIN
1fd5ec4db6 chore: Add .node-version and .nvmrc files to the root 2023-09-13 12:36:20 +02:00
Rıdvan Akca
4795c35c68 feat(create-role): make isCreator condition checked by default (#1276) 2023-09-11 15:28:47 +02:00
Rıdvan Akca
25ce63b86d feat(user-interface): use default config as fallback (#1251)
* feat(user-interface): return default app values

* test: remove skip in UI tests

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-09-11 14:06:05 +02:00
Ömer Faruk Aydın
5271033d34 Merge pull request #1275 from automatisch/docs/formatter
docs(formatter): Add numbers and date-time actions
2023-09-11 10:05:44 +02:00
Faruk AYDIN
6ba8f33399 docs(formatter): Add numbers and date-time actions 2023-09-11 09:57:50 +02:00
Ali BARIN
7ab79bd815 Merge pull request #1273 from automatisch/role-mappings 2023-09-10 10:48:34 +02:00
Faruk AYDIN
04a0a847c7 fix: Check role mappings data with isEmpty method 2023-09-10 10:43:08 +02:00
Ali BARIN
436fa9af69 Merge pull request #1267 from automatisch/AUT-276
feat(user-interface): add title field
2023-09-08 21:04:58 +02:00
Ali BARIN
ca0bbb0f08 Merge pull request #1270 from automatisch/feat/random-number
feat(formatter): add decimal point to random number transformer
2023-09-08 21:02:10 +02:00
Ali BARIN
88996144a5 Merge pull request #1269 from automatisch/formatter/date-format
feat(formatter): Implement format date time transformer
2023-09-08 17:27:36 +02:00
Faruk AYDIN
44d5eee99e feat(formatter): Implement format date time transformer for date time action 2023-09-08 13:10:09 +00:00
Ali BARIN
0d1ff6074f Merge pull request #1266 from automatisch/numbers/format-number
feat(formatter): Add format number transformer to numbers action
2023-09-08 15:09:21 +02:00
kattoczko
d63757634a feat: introduce role mappings form on authentication page (#1256) 2023-09-08 14:09:53 +02:00
Faruk AYDIN
fd61cf3388 feat(formatter): Add decimal point to random number transformer 2023-09-06 17:06:13 +02:00
Faruk AYDIN
a6a6b63e5a feat(formatter): Add format number transformer to numbers action 2023-09-05 16:10:39 +02:00
Rıdvan Akca
c02c2def29 feat(user-interface): add title field 2023-09-05 17:10:01 +03:00
Ömer Faruk Aydın
ff66548462 feat(formatter): add random number transformer to numbers action (#1265) 2023-09-05 16:08:30 +02:00
Ömer Faruk Aydın
c9f292e252 feat(formatter): add number action with math operation transformer (#1264)
* feat(formatter): Add number action with math operation transformer

* chore: Use different folders for list transform options of formatter
2023-09-05 13:02:43 +02:00
Faruk AYDIN
18cef5f3bd chore: Sort formatter text transformers alphabetically 2023-09-01 18:02:14 +02:00
Faruk AYDIN
e19340f1e0 feat(formatter): Add replace transformer to text action 2023-09-01 18:02:14 +02:00
Ömer Faruk Aydın
feb613cb6d docs: add upgrade guide for docker compose installation (#1262) 2023-09-01 17:53:21 +02:00
Ömer Faruk Aydın
afa6bdfa44 feat(formatter): add trim whitespace transformer to text action (#1261) 2023-09-01 14:07:50 +02:00
Ömer Faruk Aydın
200e6d9905 feat(formatter): add pluralize transformer for text action (#1260) 2023-09-01 13:37:35 +02:00
Ömer Faruk Aydın
70772c49bd feat(formatter): add lowercase to text transformers (#1259) 2023-09-01 13:26:15 +02:00
Ömer Faruk Aydın
762ea97e8b Merge pull request #1258 from automatisch/release/0.9.3
Release v0.9.3
2023-09-01 12:55:35 +02:00
Faruk AYDIN
8156b8b356 Release v0.9.3 2023-09-01 12:35:19 +02:00
Faruk AYDIN
3a2cbae0a0 chore: Update version to 0.9.3 in Dockerfiles 2023-09-01 12:34:25 +02:00
Ömer Faruk Aydın
0ad8da097b fix(rss): get text for internal ID if the guid or id is object (#1257) 2023-09-01 12:10:42 +02:00
Ömer Faruk Aydın
e2dcdd2811 feat(formatter): add extract number transform to text action (#1255) 2023-08-31 16:35:28 +02:00
Ömer Faruk Aydın
8074f9146b Merge pull request #1253 from automatisch/refactor-notifications
refactor: fetch notifications over graphql query
2023-08-29 16:37:37 +02:00
Ali BARIN
df24bac913 refactor: fetch notifications over graphql query 2023-08-28 20:44:55 +00:00
Ali BARIN
4d4091adcc test: write login page tests 2023-08-28 20:11:21 +02:00
Ali BARIN
cac54c41a1 chore: run automatisch in playwright workflow 2023-08-28 20:11:21 +02:00
Ali BARIN
130931d7af fix: use axios with proxy in license check (#1252) 2023-08-28 17:19:19 +02:00
Ömer Faruk Aydın
d35b08b35e Merge pull request #1250 from automatisch/release/0.9.2
Release v0.9.2
2023-08-28 16:54:32 +02:00
Faruk AYDIN
82031da6a6 Release v0.9.2 2023-08-28 16:30:29 +02:00
Faruk AYDIN
9df5ee7b11 chore: Update version to 0.9.2 in Dockerfiles 2023-08-28 16:29:53 +02:00
Ömer Faruk Aydın
2ed1a57cd9 Merge pull request #1249 from automatisch/permission-contions
chore: Convert conditions of permissions to array
2023-08-28 16:27:29 +02:00
Faruk AYDIN
101450cba6 chore: Convert conditions of permissions to array 2023-08-28 16:24:39 +02:00
Ömer Faruk Aydın
6bab5b3f7c Merge pull request #1248 from automatisch/release/0.9.1
Release v0.9.1
2023-08-28 15:15:25 +02:00
Faruk AYDIN
ca3c0e00a7 Release v0.9.1 2023-08-28 14:47:05 +02:00
Faruk AYDIN
6d64daf324 chore: Update version to 0.9.1 in Dockerfiles 2023-08-28 14:46:26 +02:00
Ömer Faruk Aydın
9ae4578e19 Merge pull request #1247 from automatisch/remove-api-url
chore(web): Remove API url env variable
2023-08-28 14:44:41 +02:00
Faruk AYDIN
e06b7ab87a chore(web): Remove API url env variable 2023-08-28 14:37:10 +02:00
Ömer Faruk Aydın
1e2adedcbf Merge pull request #1246 from automatisch/release/0.9.0
Release v0.9.0
2023-08-28 13:34:24 +02:00
Faruk AYDIN
adf763c1b0 Release v0.9.0 2023-08-28 13:13:23 +02:00
Faruk AYDIN
36ee0df256 chore: Update version to 0.9.0 in Dockerfiles 2023-08-28 13:06:20 +02:00
Rıdvan Akca
823d85b24a feat(custom-logo): constraint svg logo dimensions (#1243) 2023-08-25 21:43:53 +02:00
Rıdvan Akca
a3b3038709 test(user-interface-configuration): write initial tests (#1242)
* test(user-interface): add tests with playwright

* test: refactor UI configuration tests

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-08-25 21:31:02 +02:00
kattoczko
ddeb18f626 feat: introduce authentication page (#1241)
* feat: introduce authentication page

* feat: update page width

* fix(saml): cover non-existing role mapping on onboarding

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-08-25 15:24:50 +02:00
Rıdvan Akca
90cd11bd38 feat: align admin pages vertically (#1240) 2023-08-24 16:34:18 +02:00
Ömer Faruk Aydın
e9ba37b8de fix: use withSoftDeleted scope to remove user associations permanently (#1239) 2023-08-24 16:34:07 +02:00
Faruk AYDIN
d5e4a1b1ad fix: Soft delete existing associations of soft deleted users 2023-08-24 15:05:54 +02:00
Faruk AYDIN
129e6d60e5 fix: Remove all related records when user is deleted 2023-08-24 15:05:54 +02:00
Faruk AYDIN
4b77f2f590 fix: Remove deleted flows from Redis 2023-08-24 15:05:54 +02:00
Rıdvan Akca
a909966562 feat(executions): display execution step id (#1232)
* feat(executions): display execution step id

* refactor: remove conditional components in execution steps

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-08-23 21:53:16 +02:00
Ömer Faruk Aydın
fd184239d6 Merge pull request #1233 from automatisch/enhance-variable-coverage
feat: enhance step variable coverage
2023-08-23 12:35:07 +02:00
Ali BARIN
52bc49dc6a feat: enhance step variable coverage 2023-08-22 16:17:20 +02:00
Ali BARIN
b9352ccc06 fix(mutations/update-flow-status): correct permission check 2023-08-22 16:17:20 +02:00
Ali BARIN
525b2baf06 fix(mutations/execute-flow): correct permission check 2023-08-22 16:17:20 +02:00
Ali BARIN
a8edeb2459 fix(mutations/update-step): correct permission check 2023-08-22 16:17:20 +02:00
Ali BARIN
e3830d64e0 feat: add getSamlAuthProviderRoleMappings query (#1229) 2023-08-22 14:50:01 +02:00
Ali BARIN
91f3e2c2b4 feat: make user.role_id not nullable (#1217) 2023-08-22 14:49:53 +02:00
Ali BARIN
77b4408416 chore: correct e2e test results path in GH actions (#1231) 2023-08-22 10:57:40 +03:00
QAComet
cede96f018 test: refactor create flow test cases with test.step (#1228) 2023-08-22 00:27:10 +02:00
dependabot[bot]
8e0a28d238 chore(deps): bump @node-saml/node-saml from 4.0.4 to 4.0.5 (#1227)
Bumps [@node-saml/node-saml](https://github.com/node-saml/node-saml) from 4.0.4 to 4.0.5.
- [Release notes](https://github.com/node-saml/node-saml/releases)
- [Changelog](https://github.com/node-saml/node-saml/blob/v4.0.5/CHANGELOG.md)
- [Commits](https://github.com/node-saml/node-saml/compare/v4.0.4...v4.0.5)

---
updated-dependencies:
- dependency-name: "@node-saml/node-saml"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-21 23:35:38 +02:00
Rıdvan Akca
da5d594428 feat(user-interface): introduce user interface page (#1226) 2023-08-21 23:11:25 +02:00
kattoczko
9f9ee0bb58 feat: create clear button for ControlledCustomAutocomplete (#1222)
Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-08-21 22:52:59 +02:00
Rıdvan Akca
163aca6179 feat(user-list): add pagination (#1219)
* feat(user-list): add pagination

* feat: add actual total count in getUsers

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-08-21 21:15:07 +02:00
Ali BARIN
cb06d3b0ae test: add in-between assertions and more fixtures (#1224) 2023-08-18 18:34:52 +02:00
Ali BARIN
dbe18dd100 chore: configure login env. vars. in e2e test workflow (#1221) 2023-08-18 09:48:41 +02:00
Ali BARIN
217970667a chore: make e2e tests manually triggerable (#1220) 2023-08-18 10:25:43 +03:00
Rıdvan Akca
dace794167 feat: introduce playwright (#1194)
* feat: introduce playwright

* test: migrate apps folder to playwright (#1201)

* test: rewrite connections tests with playwright (#1203)

* test: rewrite executions tests with playwright (#1207)

* test: rewrite flow editor tests with playwright (#1212)

* test(flow-editor): rewrite tests using serial mode (#1218)

* test: update custom connection creation paths

* test: move login logic to page fixture

* test: remove cypress tests and deps

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-08-17 23:31:38 +02:00
Rıdvan Akca
590780a539 feat(user-list): display user role (#1215) 2023-08-16 19:26:49 +02:00
Ömer Faruk Aydın
cbd1f47e87 fix(formatter): capitalize all words without trimming any data (#1216) 2023-08-16 19:21:49 +02:00
Ömer Faruk Aydın
f89cff4e4a Merge pull request #1214 from automatisch/formatter-integration
feat: Implement initial version of formatter app
2023-08-16 19:08:43 +02:00
Faruk AYDIN
cb08e0bf9f feat: Implement initial version of formatter app 2023-08-16 18:59:36 +02:00
Ali BARIN
3b54b29a99 feat: introduce app configs with shared auth clients (#1213) 2023-08-16 15:46:43 +02:00
Ali BARIN
25983e046c chore: move config behind checks (#1211) 2023-08-11 22:32:13 +02:00
Ömer Faruk Aydın
a6a124d2e6 feat: add role mappings for SAML configuration (#1210) 2023-08-11 19:07:39 +02:00
Ali BARIN
c7e1d30553 fix(get-apps): fetch additionalFields for triggers (#1209) 2023-08-11 16:24:09 +02:00
Ömer Faruk Aydın
6cc8c45634 Merge pull request #1208 from automatisch/docs-postgresql
docs: Add warning for PostgreSQL version
2023-08-11 16:07:37 +02:00
Ömer Faruk Aydın
ee9a9114b7 Merge pull request #1205 from automatisch/white-labelling
feat: introduce dynamic configuration
2023-08-11 16:02:45 +02:00
Faruk AYDIN
11f00f866c docs: Add warning for PostgreSQL version 2023-08-11 16:00:05 +02:00
Ali BARIN
03ea61ba81 feat: use dynamic custom logo 2023-08-11 08:29:57 +00:00
Ali BARIN
f6c500c998 feat: use dynamic custom theme 2023-08-11 08:29:57 +00:00
Ali BARIN
b590f0f98f feat: write useConfig hook 2023-08-11 08:29:57 +00:00
Ali BARIN
ef9359b208 feat: write updateConfig GQL mutation 2023-08-11 08:29:57 +00:00
Ali BARIN
efd243a340 feat: create getConfig GQL query 2023-08-11 08:29:57 +00:00
Ali BARIN
bafb8b86db feat: create Config model 2023-08-11 08:29:57 +00:00
Ömer Faruk Aydın
84b701747f feat: add license info in getAutomatischInfo query (#1202) 2023-08-10 23:18:10 +02:00
Ali BARIN
ec42446daa feat(wordpress): add auth and new post trigger (#1160) 2023-08-09 22:34:21 +02:00
Rıdvan Akca
5046c4c911 feat(auth): add loading state for user and role management (#1188) 2023-08-09 21:51:07 +02:00
Ömer Faruk Aydın
ce8c9906cb chore: Rename createSamlAuthProvider mutation as upsertSamlAuthProvider (#1200) 2023-08-08 22:56:23 +02:00
Ömer Faruk Aydın
6fb5482bba Merge pull request #1199 from automatisch/get-saml-auth-provider
feat: Implement getSamlAuthProvider graphQL query
2023-08-07 16:51:33 +02:00
Faruk AYDIN
58189963f5 feat: Implement getSamlAuthProvider graphQL query 2023-08-07 16:48:36 +02:00
Ömer Faruk Aydın
f488a71304 Merge pull request #1198 from automatisch/list-saml-auth-providers
Rename getSamlAuthProviders as listSamlAuthProviders query
2023-08-07 16:48:06 +02:00
Faruk AYDIN
4b706e004d chore: Rename getSamlAuthProviders as listSamlAuthProviders query 2023-08-07 16:44:59 +02:00
Ömer Faruk Aydın
40e10cc270 Merge pull request #1196 from automatisch/remove-role-check
chore: Warn user about default role of SAML before deleting role
2023-08-07 15:31:13 +02:00
Ömer Faruk Aydın
41db227eb3 Merge pull request #1195 from automatisch/saml-configuration-create
feat: Add createSamlAuthProvider graphQL mutation
2023-08-07 15:30:52 +02:00
Faruk AYDIN
43eea965c5 chore: Warn user about default role of SAML before deleting role 2023-08-07 15:21:32 +02:00
Faruk AYDIN
8101c9f0bc feat: Add createSamlAuthProvider graphQL mutation 2023-08-07 15:02:25 +02:00
Rıdvan Akca
b4cda90338 feat(auth): add feedback state for user and role management (#1191) 2023-08-07 11:08:29 +02:00
Ali BARIN
7ca37c412e fix: clone base db queries 2023-08-03 21:11:59 +02:00
Ali BARIN
e4e3356dc9 fix: add fallback for api url 2023-08-03 20:19:02 +02:00
Ali BARIN
0deaa03218 feat(auth): add user and role management 2023-08-03 19:39:48 +02:00
Ali BARIN
a7104c41a2 feat(sso): introduce authentication with SAML 2023-08-03 19:39:48 +02:00
Ali BARIN
5176b8c322 feat(authorization): add update connection checks 2023-08-03 19:39:48 +02:00
Ali BARIN
c37c70446d feat(authorization): add read connection checks 2023-08-03 19:39:48 +02:00
Ali BARIN
63abc8a2c8 feat(authorization): add delete flow checks 2023-08-03 19:39:48 +02:00
Ali BARIN
ba5c038e3b feat(authorization): add create flow checks 2023-08-03 19:39:48 +02:00
Ali BARIN
a6669415f5 feat(authorization): add delete connection checks 2023-08-03 19:39:48 +02:00
Ali BARIN
4086fad867 feat(authorization): add create connection checks 2023-08-03 19:39:48 +02:00
Ali BARIN
8a71c13078 feat(authorization): add read execution checks 2023-08-03 19:39:48 +02:00
Ali BARIN
5d77f64e76 feat(authorization): add update flow checks 2023-08-03 19:39:48 +02:00
Ali BARIN
0d092b977f feat(authorization): add read flow checks 2023-08-03 19:39:48 +02:00
Ali BARIN
69582ff83d feat: introduce role based access control 2023-08-03 19:39:48 +02:00
Ömer Faruk Aydın
a5c7da331a Merge pull request #1190 from automatisch/docs-available-apps
docs: Remove warning from available apps
2023-08-02 17:31:07 +02:00
Faruk AYDIN
8e842296b7 docs: Remove warning from available apps 2023-08-02 17:19:53 +02:00
Ömer Faruk Aydın
7db14d1df7 Merge pull request #1189 from automatisch/release/0.8.0
Release v0.8.0
2023-08-02 15:48:33 +02:00
Faruk AYDIN
067ec2eb9c Release v0.8.0 2023-08-02 15:07:27 +02:00
Faruk AYDIN
2d332b32d9 chore: Update version to 0.8.0 in Dockerfiles 2023-08-02 15:06:49 +02:00
Ömer Faruk Aydın
1d9ad2ba86 Merge pull request #1184 from automatisch/notion-find-database-item
feat(notion): add find database item action
2023-08-01 13:54:09 +02:00
Ömer Faruk Aydın
a28e2177f7 Merge pull request #1183 from automatisch/notion-create-page
feat(notion): add create page action
2023-08-01 13:44:47 +02:00
Ömer Faruk Aydın
18fe0df691 Merge pull request #1185 from automatisch/email-case-insensitive-login
fix(auth): allow login with case insensitive email
2023-07-31 17:05:01 +03:00
Ömer Faruk Aydın
8e21a06d99 Merge pull request #1186 from automatisch/gitlab-use-user-projects
fix(gitlab/list-projects): list projects the user has membership
2023-07-31 17:03:25 +03:00
Ali BARIN
2daf5473bb fix(gitlab/list-projects): list projects the user has membership 2023-07-31 16:00:27 +02:00
Ömer Faruk Aydın
928ff53adf Merge pull request #1187 from automatisch/fix-gitlab-github-names
fix: GitHub and GitLab app names
2023-07-31 16:54:20 +03:00
Faruk AYDIN
a71e95e6e5 fix: GitHub and GitLab app names 2023-07-31 15:47:06 +02:00
Ali BARIN
cb4a54b5cc fix(auth): allow login with case insensitive email 2023-07-30 14:59:16 +00:00
Rıdvan Akca
37e4524156 feat(notion): add find database item action 2023-07-27 14:39:57 +03:00
dependabot[bot]
9ac24ee051 chore(deps): bump word-wrap from 1.2.3 to 1.2.4
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-26 22:51:23 +02:00
Ömer Faruk Aydın
f28ccd559a Merge pull request #1177 from automatisch/notion-create-database-item
feat(notion): add create database item action
2023-07-25 14:04:08 +03:00
Ömer Faruk Aydın
8e84a93d8e Merge pull request #1166 from automatisch/create-worksheet
feat(google-sheets): add create worksheet action
2023-07-25 13:58:41 +03:00
Ömer Faruk Aydın
d871dec1b7 Merge pull request #1179 from automatisch/add-http-proxy-agent
fix(axios): incorporate http(s)-proxy-agents
2023-07-24 15:40:22 +03:00
Ömer Faruk Aydın
b133e1a197 Merge pull request #1176 from automatisch/compute-params
fix: allow colon while computing step parameters
2023-07-24 15:33:16 +03:00
Rıdvan Akca
9346a037b9 feat(notion): add create page action 2023-07-24 14:50:53 +03:00
Ali BARIN
89facbcddd fix(axios): incorporate http(s)-proxy-agents 2023-07-17 22:23:48 +00:00
Faruk AYDIN
53fef35638 fix: Allow colon while computing step parameters 2023-07-17 18:19:54 +02:00
Rıdvan Akca
bfe496a09b feat(notion): add create database item action 2023-07-17 16:23:00 +03:00
dependabot[bot]
ff774c2e8e chore(deps): bump semver from 5.7.1 to 5.7.2
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-14 14:31:07 +02:00
Ömer Faruk Aydın
08a6d1078c Merge pull request #1132 from automatisch/show-webhook-url-by-flag
feat: introduce singleton webhook URL
2023-07-13 12:02:49 +02:00
Ömer Faruk Aydın
e9bcc919bf Merge branch 'main' into show-webhook-url-by-flag 2023-07-13 11:58:19 +02:00
Faruk AYDIN
04f4693c85 fix: Fetch webhooks by flow id 2023-07-12 14:05:46 +02:00
Ömer Faruk Aydın
2a58a0a4c4 Merge pull request #1174 from automatisch/twilio-receive-sms-fix
fix(twilio): Receive SMS webhook payload
2023-07-12 11:24:14 +02:00
Faruk AYDIN
d911843648 fix(twilio): Receive SMS webhook payload 2023-07-11 17:50:31 +02:00
Ömer Faruk Aydın
c80d178410 Merge pull request #1170 from automatisch/mattermost-docs
docs(mattermost): Fix links of mattermost app
2023-07-05 14:33:19 +02:00
Faruk AYDIN
9fb4dca39b docs(mattermost): Fix links of mattermost app 2023-07-05 14:29:19 +02:00
Rıdvan Akca
0dd444d50b feat(google-sheets): add create worksheet action 2023-06-30 19:03:54 +03:00
dependabot[bot]
f3bf418997 chore(deps): bump fast-xml-parser from 4.2.4 to 4.2.5 (#1164)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.2.4 to 4.2.5.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.2.4...v4.2.5)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-29 17:51:47 +02:00
KrzysztofDK
676027245f feat(mattermost): add auth and send message to channel action
* feat: mattermost integration

* post review adjustments
2023-06-29 16:45:57 +02:00
Ali BARIN
6c5039f1ba fix(odoo): add missing empty type file (#1165) 2023-06-29 16:03:44 +02:00
Jack Dane
807be59f25 feat(odoo): add auth and create lead action (#1143)
* Add Odoo App and Icon

* Add Auth for Odoo

* Authorise with API key, the password would also work, but we should encourage an API key.

* Odoo Verify Credentials method

* Add the xmlrpc dependency so the backend can communicate with Odoo's API.
* Add a port to the auth fields to establish a connection that might not be over HTTPS.

* Add still verified method

* Currently no need to keep uid, so remove it from the auth data.
* Await the callback from the xmlrpc method call to ensure we don't verify credentials before the callback has been executed.

* Add Odoo create-lead action

* Provide basic functionality to create a lead.

* Add Odoo type option

* Let the user decide if the lead should be a "lead" or "opportunity" in the create-lead action.

* Add documentation for Odoo app

* Follow project standards

* Change indents to 2 spaces
* Use single quotes instead of double

* Commonise the authentication method (DRY)

* Use latest for API doc link

* refactor(odoo): abstract and organize implementation

---------

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2023-06-29 15:56:20 +02:00
AnimatedSwine37
8e9896ec2e fix(postgresql): close connections when done 2023-06-27 18:57:18 +02:00
Rıdvan Akca
110c2dbac8 docs: add missing dots in action/trigger descriptions 2023-06-26 12:05:42 +02:00
Rıdvan Akca
f55ec4bd8a fix(google-sheets): sort actions 2023-06-25 15:50:03 +02:00
AnimatedSwine37
06c9bf420e fix(discord): show announcement channels in selection 2023-06-25 13:31:47 +02:00
Rıdvan Akca
3c9bc53a79 feat(google-sheets): add create spreadsheet action 2023-06-23 20:29:12 +02:00
Ali BARIN
de7a35dfe9 feat: introduce singleton webhook URL 2023-06-22 08:51:43 +00:00
Ömer Faruk Aydın
92638c2e97 Merge pull request #1142 from automatisch/fix-twilio-receive-sms-test-run
fix(twilio/receive-sms): use phone number via phone number sid
2023-06-14 13:42:11 +02:00
Ali BARIN
63251e6a9a fix(twilio/receive-sms): use phone number via phone number sid 2023-06-14 13:27:49 +02:00
Ömer Faruk Aydın
59844c33fd Merge pull request #1140 from automatisch/notion-app
feat(notion): add auth and new DB items trigger
2023-06-14 13:24:59 +02:00
Faruk AYDIN
d36dd2ece1 docs: Use triggers link of Notion for available apps 2023-06-14 13:21:34 +02:00
Ömer Faruk Aydın
1fdb94739b Merge pull request #1141 from automatisch/fix-dynamic-data
fix: skip prior execution steps if no prior execution
2023-06-14 12:54:34 +02:00
Ali BARIN
8a18f4c44f fix: skip prior execution steps if no prior execution 2023-06-13 20:56:39 +00:00
Ali BARIN
c9c47c5519 docs(notion): add auth and new DB items trigger 2023-06-13 05:56:33 +00:00
Ali BARIN
6be8b55daa feat(notion): add auth and new DB items trigger 2023-06-13 05:56:33 +00:00
Ali BARIN
f2dc2f5530 feat: introduce CustomAutocomplete with variables 2023-06-12 14:06:13 +02:00
Ömer Faruk Aydın
42842e7aec Merge pull request #1130 from gh-kdk/feature/gitlab-integration-documentation
docs(gitlab): add connection and triggers
2023-06-12 12:31:43 +02:00
Faruk AYDIN
49d9f77d1b docs: Add GitLab to available apps 2023-06-12 12:31:07 +02:00
Faruk AYDIN
d06a89564f docs: Add GitLab favicon 2023-06-12 12:31:07 +02:00
Krzysztof Dukszta-Kwiatkowski
58a8510d49 feat: gitlab integration documentation 2023-06-12 12:31:07 +02:00
Ömer Faruk Aydın
8055d6555e Merge pull request #1139 from automatisch/update-flow-status-accordingly
fix: update flow.active when remote calls succeed
2023-06-12 11:48:25 +02:00
Ömer Faruk Aydın
39620d3510 Merge pull request #1135 from shehabghazy/postgres-docs
docs(postgres): add connection and actions
2023-06-12 11:15:11 +02:00
Faruk AYDIN
6d19711926 docs: Add PostgreSQL to available apps 2023-06-12 11:13:09 +02:00
Faruk AYDIN
0b362dd435 docs: Use postgresql key name instead of postgres 2023-06-12 11:11:39 +02:00
Shehab Ghazy
9485731e7d docs: Add PostgreSQL documentation 2023-06-12 11:08:17 +02:00
Ali BARIN
1449fb0f84 fix: update flow.active when remote calls succeed 2023-06-11 20:05:00 +00:00
Faruk AYDIN
e548dd49ca chore: Use paddle sandbox for all non-prod cloud envs 2023-06-08 19:38:00 +02:00
Faruk AYDIN
337d22bbf4 chore: Allow only automatisch emails for non-prod cloud envs 2023-06-08 11:58:14 +02:00
dependabot[bot]
35863ee6e9 chore(deps): bump fast-xml-parser from 4.0.11 to 4.2.4
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.0.11 to 4.2.4.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-06 21:15:17 +02:00
Faruk AYDIN
0784a2d4d0 refactor: Use limit to prevent fetching all records 2023-06-06 12:59:33 +02:00
Ali BARIN
75d5c0e356 feat: prevent from being used in iframe 2023-06-06 12:59:21 +02:00
Ali BARIN
a2dd6d76a8 fix(webhook/handler): log whole computed payload 2023-06-06 12:59:12 +02:00
dependabot[bot]
bdc6b59857 chore(deps): bump vite from 3.1.8 to 3.2.7
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.1.8 to 3.2.7.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v3.2.7/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.2.7/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-06 09:33:26 +02:00
Ömer Faruk Aydın
34e95f1e89 Merge pull request #1126 from automatisch/optimize-last-execution
refactor: Optimize fetching last execution step
2023-06-05 23:11:16 +02:00
Faruk AYDIN
6a92cfc573 refactor: Optimize fetching last execution step 2023-06-05 23:00:35 +02:00
Rıdvan Akca
9f759d70b6 feat(google-sheets): add new spreadsheet rows trigger 2023-06-02 15:51:36 +02:00
Ali BARIN
43e957e8d3 feat(gitlab): add instance URL in screen name 2023-06-02 15:20:23 +02:00
Ali BARIN
ae316f60e4 fix: stop checking auth urls 2023-06-02 15:20:09 +02:00
Rıdvan Akca
1ac423ba56 chore: update action and trigger names 2023-06-01 15:01:12 +02:00
Ali BARIN
b43490dd76 fix(get-dynamic-fields): fetch variables field 2023-06-01 13:28:36 +02:00
Ali BARIN
f586e81dd1 fix(FlowSubstep): count 0 as value towards required check 2023-06-01 13:28:36 +02:00
Ali BARIN
8a6d8a7d8c fix(google-sheets/list-sheet-headers): early exit upon not existing worksheet 2023-06-01 13:28:36 +02:00
Ali BARIN
45d607f1a0 fix(google-sheets/list-sheet-headers): cover worksheetId 0 2023-06-01 13:28:36 +02:00
Ali BARIN
d84abaa229 chore(google-sheets/create-spreedsheet-row): update metadata 2023-06-01 13:28:36 +02:00
Rıdvan Akca
3fd1d4d9b3 feat(google-sheets): create spreadsheet row 2023-06-01 13:28:36 +02:00
Ali BARIN
078b8efb56 feat(rss/new-items-in-feed): incorporate attributes 2023-05-30 16:26:48 +02:00
Ömer Faruk Aydın
5066995f72 Merge pull request #1117 from automatisch/barinali-patch-1
chore(gitlab): add empty d.ts file
2023-05-30 15:37:13 +02:00
Ali BARIN
577fe3dba8 chore(gitlab): add empty d.ts file 2023-05-30 15:33:14 +02:00
Krzysztof Dukszta-Kwiatkowski
d96f4999bc post review fixes 2023-05-30 15:21:13 +02:00
Krzysztof Dukszta-Kwiatkowski
6e80ff4eb6 post review fixes 2023-05-30 15:21:13 +02:00
Krzysztof Dukszta-Kwiatkowski
3f8f022d48 feat: gitlab triggers integration 2023-05-30 15:21:13 +02:00
Ali BARIN
93a2e2151e fix: early exit upon failed actions 2023-05-27 21:16:24 +02:00
Ömer Faruk Aydın
663a1ed9d4 Merge pull request #1108 from automatisch/docs/filter
docs: Add filter connection and actions
2023-05-24 15:42:04 +02:00
Ali BARIN
4f46c55c85 feat: add LOG_LEVEL env. var. 2023-05-24 15:35:38 +02:00
Ali BARIN
9701c98af9 feat: error log errors in action and triggers 2023-05-24 15:35:38 +02:00
Ali BARIN
aabf2a1c79 feat: debug log incoming webhook requests 2023-05-24 15:35:38 +02:00
Ali BARIN
29539b090e feat: cover arrays in error handling 2023-05-24 15:35:38 +02:00
Faruk AYDIN
1c80677ac3 docs: Add filter connection and actions 2023-05-24 15:23:38 +02:00
Ali BARIN
ad419855e9 feat(webhook/handler): use UUID for internal ids 2023-05-24 12:59:48 +02:00
Ömer Faruk Aydın
30b75943f3 Merge pull request #1103 from automatisch/release/0.7.1
Release v0.7.1
2023-05-19 20:31:09 +02:00
Faruk AYDIN
41a67b402d Release v0.7.1 2023-05-19 19:56:51 +02:00
Faruk AYDIN
caa104b1cc chore: Update version to 0.7.1 in Dockerfiles 2023-05-19 19:56:01 +02:00
Rıdvan Akca
94085f2bc8 fix(shared-drive): add missing field to payload 2023-05-19 17:55:52 +02:00
Faruk AYDIN
d39c962314 docs: Add Google Sheets to available apps 2023-05-19 16:15:46 +02:00
Ömer Faruk Aydın
706fb0f063 Merge pull request #1100 from automatisch/release/0.7.0
Release v0.7.0
2023-05-19 13:16:42 +02:00
Faruk AYDIN
b9d89b040f Release v0.7.0 2023-05-19 12:29:29 +02:00
Faruk AYDIN
41421b849a chore: Update version to 0.7.0 in Dockerfiles 2023-05-19 12:28:59 +02:00
Rıdvan Akca
324375da93 fix(shared-drive): show shared drive items 2023-05-19 07:35:49 +02:00
Ali BARIN
536446faf6 fix(twilio/receive-sms): use phonenumber sid in removing webhook 2023-05-17 12:57:02 +02:00
Rıdvan Akca
d026ac09f3 feat(google-sheets): add new worksheets trigger 2023-05-16 23:42:23 +02:00
Ali BARIN
88c93ac992 fix(dynamic-data): correct parameters 2023-05-16 17:59:04 +02:00
Ali BARIN
d540322d8b refactor(webhook): respond with 204 instead of 200 2023-05-16 16:40:12 +02:00
Ali BARIN
ad4db5e936 feat(twilio/send-sms): use dynamic phone numbers 2023-05-16 16:40:12 +02:00
Ali BARIN
25cb4d90f3 refactor(twilio/receive-sms): convert to webhook 2023-05-16 16:40:12 +02:00
Ömer Faruk Aydın
6c14a353ef Merge pull request #1093 from automatisch/openai-chat-prompt
feat(openai): add chat prompt
2023-05-16 12:46:41 +02:00
Ali BARIN
74d7d1aa98 feat(openai): add chat prompt 2023-05-15 20:41:25 +00:00
Ali BARIN
43b0d9ed29 fix: refetch step executions upon deleting and testing steps 2023-05-15 16:24:26 +02:00
Ali BARIN
3572e6f65a fix: send parameters to dynamic data query 2023-05-15 16:24:17 +02:00
Ali BARIN
d23d5d2da0 feat(slack): send direct message 2023-05-15 16:24:17 +02:00
Faruk AYDIN
183b9b0d88 feat: Add enable ssl field to PostgreSQL connection 2023-05-15 16:23:43 +02:00
Faruk AYDIN
7a1af268ae chore: Remove empty line from PostgreSQL index file 2023-05-15 16:23:43 +02:00
Ali BARIN
f879b3c5b0 refactor(postgresql): rename pgClient with client 2023-05-15 16:23:43 +02:00
Ali BARIN
40be72cf65 feat(postgresql/delete): add interactive where clause entries 2023-05-15 16:23:43 +02:00
Ali BARIN
a8886571d1 feat(postgresql/update): add interactive where clause 2023-05-15 16:23:43 +02:00
Ali BARIN
1fcd51ea26 refactor(postgresql/insert): use withSchema 2023-05-15 16:23:43 +02:00
Ali BARIN
89752138be refactor(postgresql): use bindings to set run-time params 2023-05-15 16:23:43 +02:00
Ali BARIN
f29ccace2a chore(postgresql): rename app folder and add icon 2023-05-15 16:23:43 +02:00
Shehab Ghazy
0c8343e76f feat(postgresql): add auth and primitive actions 2023-05-15 16:23:43 +02:00
Ali BARIN
9776c9f5a4 feat: add duplicate flow functionality 2023-05-13 14:44:21 +02:00
Ali BARIN
a5dbac9817 feat(ExecutionStep): show execution date 2023-05-13 13:20:05 +02:00
Ali BARIN
bad5e0b855 fix(queries/get-execution): serve soft deleteds 2023-05-13 13:19:53 +02:00
Ali BARIN
8e4ca55560 feat(ControlledAutocomplete): filter by value too 2023-05-13 13:19:42 +02:00
Ali BARIN
f52afc1fe0 chore: serve graphql explorer only on development 2023-05-13 13:19:35 +02:00
Ali BARIN
815e64302e fix(Editor): don't unregister step parameters 2023-05-13 13:19:28 +02:00
Faruk AYDIN
07b2b18a4e fix: Run remove cancelled subscriptions only in the cloud 2023-05-12 13:30:06 +02:00
Ömer Faruk Aydın
69eca33de7 Merge pull request #1080 from automatisch/docs-postgres-ssl
docs: Add POSTGRES_ENABLE_SSL env variable to configuration
2023-05-11 14:50:32 +02:00
Faruk AYDIN
ec76a480d0 docs: Add POSTGRES_ENABLE_SSL env variable to configuration 2023-05-11 13:58:02 +02:00
Ali BARIN
a8823c3ed0 fix(filters/continue): cover multiple conditions 2023-05-09 18:28:51 +02:00
Ali BARIN
1f1b3a341c refactor: make sentry cloud agnostic 2023-05-09 13:17:33 +02:00
Ali BARIN
8c164a3852 fix(http-request): suppress failure upon size check 2023-05-08 14:45:41 +02:00
Ali BARIN
dcf526d810 feat(http-request): convert non-text data to base64 2023-05-08 12:52:09 +02:00
Ali BARIN
2fc6d680a0 fix: incorporate spaces in variables 2023-05-08 12:52:09 +02:00
Ali BARIN
f414972f33 Merge pull request #1074 from automatisch/executions-updated-at
feat: sort executions by updated at
2023-05-08 12:49:15 +02:00
Ali BARIN
69d192d989 feat: sort executions by updated at 2023-05-02 09:30:41 +00:00
Ömer Faruk Aydın
6c8769e598 Merge pull request #1071 from automatisch/paddle-plans
feat: Introduce new plans for the cloud
2023-04-26 13:21:18 +02:00
Faruk AYDIN
c12703422c feat: Introduce new plans for the cloud 2023-04-26 12:13:39 +02:00
Ömer Faruk Aydın
c0171e1cd1 Merge pull request #1070 from automatisch/dockerfile.cloud
chore: add dockerfile for cloud
2023-04-26 11:20:00 +02:00
Ali BARIN
920a983146 chore: add dockerfile for cloud 2023-04-25 20:43:48 +00:00
Ömer Faruk Aydın
7ec86bfef1 Merge pull request #1069 from automatisch/release/0.6.1
Release v0.6.1
2023-04-25 18:17:04 +02:00
Faruk AYDIN
d8bc318688 Release v0.6.1 2023-04-25 17:15:20 +02:00
Faruk AYDIN
600ea1848f chore: Update version to 0.6.1 in Dockerfiles 2023-04-25 17:14:43 +02:00
Ömer Faruk Aydın
a3ce9c7662 Merge pull request #1068 from automatisch/copy-hbs
fix: Include email templates for the build
2023-04-25 17:10:50 +02:00
Faruk AYDIN
44ce7577c6 fix: Include email templates for the build 2023-04-25 17:07:46 +02:00
Ömer Faruk Aydın
8c3e42f7eb Merge pull request #1067 from automatisch/company-name
chore: Use company name for the enterprise license
2023-04-24 18:20:34 +02:00
Faruk AYDIN
b8887c506c chore: Use company name for the enterprise license 2023-04-24 16:38:54 +02:00
Ömer Faruk Aydın
6c4228b7b8 Merge pull request #1063 from automatisch/docs/encryption-key-generation
docs: Explain how to create random keys for encryption and webhook secret keys
2023-04-20 17:07:38 +02:00
Faruk AYDIN
9b1da98386 docs: Explain how to create random keys for encryption and webhook secret keys 2023-04-19 18:44:19 +02:00
Ömer Faruk Aydın
1615169a3d Merge pull request #1060 from automatisch/release/0.6.0
Release v0.6.0
2023-04-17 19:05:25 +02:00
Faruk AYDIN
df83aa4d15 chore: Update version with 0.6.0 2023-04-17 18:37:24 +02:00
Faruk AYDIN
142b96beb0 Release v0.6.0 2023-04-17 18:35:16 +02:00
Shehab Ghazy
18d07dd3b9 feat: Add postgres schema environment variable (#1047)
feat: Add postgres schema environment variable

---------

Co-authored-by: Faruk AYDIN <omerfaruk26@gmail.com>
2023-04-17 14:56:12 +02:00
Ali BARIN
270039d211 Merge pull request #1058 from automatisch/remove-payment-plans
chore: remove payment plan model and related functionality
2023-04-16 20:32:01 +02:00
Ali BARIN
fcf3a480be chore: remove UsageAlert 2023-04-16 14:22:30 +00:00
Ali BARIN
80ee974973 chore: remove PaymentPlan model 2023-04-16 14:05:07 +00:00
Ömer Faruk Aydın
48c6a38205 Merge pull request #1057 from automatisch/AUT-98
feat: add subscription cancelled alert
2023-04-13 18:30:52 +02:00
Faruk AYDIN
c9536e58cb feat: Cover active but cancelled subscriptions 2023-04-13 18:27:57 +02:00
Ali BARIN
a16d783302 Merge pull request #1056 from automatisch/fix-within-limits-method
fix(user): correct withinLimits instance method
2023-04-12 22:17:11 +02:00
Ali BARIN
b837aecb27 feat: add subscription cancelled alert 2023-04-12 20:08:45 +00:00
Ali BARIN
532405048f fix(user): correct withinLimits instance method 2023-04-12 19:40:00 +00:00
Ali BARIN
6cd0427ff8 Merge pull request #1055 from automatisch/subscription-cancelled
feat: add subscription cancelled flow
2023-04-12 21:33:22 +02:00
Faruk AYDIN
d2163f180e feat: Add getSubscriptionStatus graphQL query 2023-04-12 21:29:36 +02:00
Faruk AYDIN
d1344457dd feat: Auto remove cancelled subscriptions 2023-04-11 23:32:34 +02:00
Faruk AYDIN
596be24d92 feat: Add cancellation effective date to subscriptions 2023-04-11 22:45:12 +02:00
Ömer Faruk Aydın
4e182b49f9 Merge pull request #1053 from automatisch/is-paused
fix: Return isPaused according to isAllowedToRunFlows method
2023-04-11 17:43:26 +02:00
Faruk AYDIN
51ac37f1de fix: Return isPaused according to isAllowedToRunFlows method 2023-04-11 17:11:38 +02:00
Ömer Faruk Aydın
b578e88d46 Merge pull request #1050 from automatisch/add-virtual-flow-status
feat(flow): add virtual paused/published/draft status
2023-04-11 17:04:32 +02:00
Faruk AYDIN
9cb4607f69 refactor: User permission and limits to run flows 2023-04-11 16:59:59 +02:00
Ömer Faruk Aydın
2c4d602028 Merge pull request #1051 from automatisch/aut-97
feat: show completed checkout alert
2023-04-10 13:13:23 +02:00
Ali BARIN
a0feb7f309 feat: show completed checkout alert 2023-04-09 20:31:51 +00:00
Ali BARIN
77e29050c8 feat(flow): add virtual paused/published/draft status 2023-04-09 16:45:41 +00:00
Ömer Faruk Aydın
df55f746ca Merge pull request #1048 from automatisch/aut-92
feat: add trial status badge in appbar
2023-04-09 15:30:04 +02:00
Ali BARIN
2739d2297f feat: finalize TrialOverAlert on billing page 2023-04-09 14:11:22 +02:00
Faruk AYDIN
dc734b04d8 feat: Implement draft version of free trial over info box 2023-04-09 14:11:22 +02:00
Ali BARIN
d4c542168c feat: add trial status badge in appbar 2023-04-09 09:57:50 +00:00
Ömer Faruk Aydın
94a3b66130 Merge pull request #1040 from automatisch/usage-data
feat: add subscription update and cancel logics
2023-04-08 00:34:28 +03:00
Faruk AYDIN
c8baf9b0d7 feat: Check if user has active subscription or not for execution 2023-04-07 23:09:24 +02:00
Faruk AYDIN
c4dc0509c2 feat: Implement getTrialStatus graphQL query 2023-04-07 22:55:18 +02:00
Faruk AYDIN
3bfc428dfe feat: Add inTrial getter method to User model 2023-04-07 22:35:56 +02:00
Ömer Faruk Aydın
026b7da6f8 Merge pull request #1046 from automatisch/move-paddle-provider-deeper-in-app-tree
refactor(paddle): move script injection closer to checkout
2023-04-07 23:07:02 +03:00
Ali BARIN
58352b9f33 refactor(paddle): move script injection closer to checkout 2023-04-07 17:09:10 +00:00
Ömer Faruk Aydın
59faf593be Merge pull request #1045 from automatisch/expose-worker-errors
fix: Expose worker errors with stack trace
2023-04-07 19:23:56 +03:00
Faruk AYDIN
4aa41773c4 fix: Expose worker errors with stack trace 2023-04-07 18:16:08 +02:00
Ömer Faruk Aydın
20c5d6aee1 Merge pull request #1044 from automatisch/strava
feat(strava): add action to create totals and stats report
2023-04-07 16:24:21 +03:00
Ali BARIN
d503dbc103 docs(strava): describe connection and actions 2023-04-07 14:16:30 +02:00
Ali BARIN
53624a6379 feat(strava): add action to create totals and stats report 2023-04-07 14:16:30 +02:00
Ali BARIN
5b881db19f feat(strava): refresh token when expired 2023-04-07 14:16:30 +02:00
Ali BARIN
dece070d28 feat(strava): add connection verified check 2023-04-07 14:16:30 +02:00
Ali BARIN
8be2ed0034 feat(strava): add current user utility function 2023-04-07 14:16:30 +02:00
Ali BARIN
37c6b57a48 feat(strava): add authentication support 2023-04-07 14:16:30 +02:00
Ali BARIN
8a0b5c24a5 feat(strava): add app definition 2023-04-07 14:16:30 +02:00
Ali BARIN
20431da757 Merge pull request #1037 from automatisch/dropbox-new-folders
feat(dropbox): add create folder and rename file actions
2023-04-07 14:16:10 +02:00
Ali BARIN
f219c87a9e feat(dropbox): elaborate on argument label 2023-04-07 12:12:30 +00:00
Ali BARIN
5d2134db56 fix(dropbox): don't add old token in refresh token logic 2023-04-07 11:58:06 +00:00
Ali BARIN
1dc46dd31c docs(dropbox): add connection and actions 2023-04-06 18:59:55 +00:00
Ali BARIN
96250ce9a0 refactor(spotify): import node:buffer 2023-04-06 18:59:55 +00:00
Ali BARIN
691682e09c feat(dropbox): add rename file action 2023-04-06 18:59:55 +00:00
Ali BARIN
814c504951 feat(dropbox): add create folder action 2023-04-06 18:59:55 +00:00
Ali BARIN
5c2b96a812 feat(dropbox): support connections 2023-04-06 18:59:55 +00:00
Ali BARIN
3dc1ca8adb Merge pull request #1041 from automatisch/list-shared-drives-for-new-files-in-folder
feat(google-drive): list shared drives for new files in folder trigger
2023-04-06 17:45:33 +02:00
Ali BARIN
a6850f1bc0 Merge pull request #1042 from automatisch/list-shared-drives-for-new-folders
feat(google-drive): list shared drives for new folders trigger
2023-04-06 17:44:25 +02:00
Ali BARIN
5ba6cb9135 Merge pull request #1043 from automatisch/list-shared-drives-for-updated-files
feat(google-drive): list shared drives for updated files trigger
2023-04-06 17:43:53 +02:00
Rıdvan Akca
500283af6f feat(google-drive): list shared drives for new files in folder trigger 2023-04-06 18:42:07 +03:00
Rıdvan Akca
43184dccda feat(google-drive): list shared drives for new folders trigger 2023-04-06 18:41:12 +03:00
Rıdvan Akca
4296a3b5df feat(google-drive): list shared drives for updated files trigger 2023-04-06 18:39:22 +03:00
Ali BARIN
14ba50f061 Merge pull request #1039 from automatisch/list-shared-drives-for-new-files
feat(google-drive): list shared drives for new files trigger
2023-04-06 16:35:59 +02:00
Rıdvan Akca
9ad7de56a3 feat(google-drive): list shared drives for new files trigger 2023-04-06 16:31:30 +02:00
Ali BARIN
5570687957 Merge pull request #1038 from automatisch/gsheet-new-spreadsheet
feat(google-sheets): add google sheets integration
2023-04-06 16:31:18 +02:00
Rıdvan Akca
1406bf3e10 docs(google-sheets): add trigger for new spreadsheets 2023-04-06 17:12:48 +03:00
Rıdvan Akca
287f299b94 feat(google-sheets): add new spreadsheets trigger 2023-04-06 17:12:48 +03:00
Rıdvan Akca
f88f05cd46 feat(google-sheets): add google sheets integration 2023-04-06 17:12:41 +03:00
Ali BARIN
c6fb42e2f3 Merge pull request #1036 from automatisch/update-full-name-in-profile-page
feat(ProfileSettings): add capability to update user full name
2023-04-06 15:37:51 +02:00
Ali BARIN
c64ca9d9b7 fix(ProfileSettings): don't submit password unless changed 2023-04-06 13:34:43 +00:00
Ali BARIN
7d47793afb feat: add subscription update and cancel logics 2023-04-06 13:08:49 +00:00
Rıdvan Akca
2840fce856 feat(profile): combine forms 2023-04-05 15:07:28 +03:00
Rıdvan Akca
2791dca412 feat(profile): add capability to update user's full name 2023-03-31 12:38:02 +03:00
Ali BARIN
3e268bf66b Merge pull request #1035 from automatisch/gdrive-updated-files-trigger
feat(google-drive): add updated files trigger
2023-03-30 16:26:27 +02:00
Rıdvan Akca
f44422a77e docs(google-drive): add trigger for updated files 2023-03-30 17:02:52 +03:00
Rıdvan Akca
4931cbcc34 feat(google-drive): add updated files trigger 2023-03-30 17:00:56 +03:00
Ali BARIN
59e495f7d3 Merge pull request #1034 from automatisch/gdrive-add-new-folders-trigger
docs(google-drive): add trigger for new folders
2023-03-30 13:26:31 +02:00
Rıdvan Akca
93866d7bc2 docs(google-drive): add trigger for new folders 2023-03-30 12:15:15 +03:00
Ali BARIN
ba1cdeaeeb Merge pull request #1016 from automatisch/add-docs-for-google-drive
docs: add google drive connection and triggers
2023-03-29 18:29:43 +02:00
Ali BARIN
234b27e555 Merge pull request #1015 from automatisch/add-docs-for-google-forms
docs: add google forms connection and triggers
2023-03-29 18:28:28 +02:00
Ali BARIN
5acfd09819 Merge pull request #1033 from automatisch/update-new-files-in-folder-trigger
fix(google-drive): show root files if no particular folder is selected
2023-03-29 18:25:39 +02:00
Rıdvan Akca
9923b15ecd fix(google-drive): show root files if no particular folder is selected 2023-03-29 19:01:04 +03:00
Ali BARIN
def5a6d9d0 Merge pull request #1032 from automatisch/gdrive-new-folder-trigger
feat(google-drive): add new folders trigger
2023-03-29 17:40:03 +02:00
Rıdvan Akca
17c8a405f5 feat(google-drive): add new folders trigger 2023-03-29 18:35:26 +03:00
Rıdvan Akca
ff874bfb48 docs(google-drive): add trigger for new files in folder 2023-03-29 15:11:39 +02:00
Ali BARIN
4cbb37b996 Merge pull request #1030 from automatisch/gdrive-update-new-files-in-folder-trigger
fix(google-drive): show only files in trigger for  new files in folder
2023-03-29 14:38:22 +02:00
Rıdvan Akca
f57e35c6b8 fix(google-drive): show only files in trigger for new files in folder 2023-03-29 15:33:21 +03:00
Ali BARIN
312e786e33 Merge pull request #1028 from automatisch/gdrive-new-file-in-folder-trigger
feat(google-drive): add new files in folder trigger
2023-03-29 13:01:45 +02:00
Rıdvan Akca
e2c75a2daf feat(google-drive): add new files in folder trigger 2023-03-29 13:16:39 +03:00
Ali BARIN
fce20263ea Merge pull request #1027 from automatisch/hide-invoices-when-empty
fix: hide empty invoices section
2023-03-27 23:39:27 +02:00
Faruk AYDIN
d841f9cb62 fix: Do not return invoices if there is no subscription 2023-03-28 00:27:43 +03:00
Ali BARIN
4945240ec2 fix: hide empty invoices section 2023-03-27 20:14:39 +00:00
Ali BARIN
f1cdc7e422 Merge pull request #1026 from automatisch/invoices-section
feat: add invoices on billing and usage page
2023-03-27 10:25:18 +02:00
Ali BARIN
372cdb10d6 feat: make invoices dynamic 2023-03-27 08:22:24 +00:00
Ali BARIN
fd24dbee21 fix(useBillingAndUsageData): fix invalid date 2023-03-27 08:22:14 +00:00
Faruk AYDIN
7066f7ea76 feat: Add draft design for invoices section 2023-03-27 01:02:28 +03:00
Ömer Faruk Aydın
5ae53c79b6 Merge pull request #1025 from automatisch/make-billing-and-usage-dynamic
feat: use actual data in billing and usage
2023-03-27 00:13:35 +03:00
Ali BARIN
f3a8ab289f feat: use actual data in billing and usage 2023-03-26 19:28:15 +00:00
Ali BARIN
a99609e3da feat(devcontainer): expose psql and redis 2023-03-26 19:26:35 +00:00
Ali BARIN
a271189448 refactor(devcontainer): configure urls using localhost 2023-03-26 19:26:13 +00:00
Ömer Faruk Aydın
251bc28526 Merge pull request #1024 from automatisch/billing-query
chore: Adjust billing query to be more dynamic
2023-03-26 18:55:07 +03:00
Faruk AYDIN
05505704e4 chore: Adjust billing query to be more dynamic 2023-03-26 18:22:49 +03:00
Ali BARIN
4aadcb021e Merge pull request #1023 from automatisch/refactor-billing-and-usage
refactor: getBillingAndUsage graphQL query
2023-03-26 16:06:16 +02:00
Faruk AYDIN
ae9da1b354 refactor: getBillingAndUsage graphQL query 2023-03-26 14:56:44 +03:00
Rıdvan Akca
a594029541 docs: add google drive connection and triggers 2023-03-26 14:32:31 +03:00
Rıdvan Akca
ddcb894932 docs: add google forms connection and triggers 2023-03-26 14:31:16 +03:00
Ömer Faruk Aydın
708cdbe545 Merge pull request #1022 from automatisch/get-invoices
feat: Implement getInvoices graphQL query
2023-03-26 14:16:56 +03:00
Faruk AYDIN
1cbf96dff1 feat: Implement getInvoices graphQL query 2023-03-26 02:02:36 +03:00
Ömer Faruk Aydın
bd55b37d5f Merge pull request #1021 from automatisch/paddle-client
Paddle client
2023-03-26 00:38:19 +03:00
Faruk AYDIN
7c3a0effee chore: Remove paddle-sdk dependency 2023-03-25 18:35:21 +03:00
Faruk AYDIN
fe3048aab0 feat: Implement getSubscription for paddle without sdk 2023-03-25 18:32:16 +03:00
Faruk AYDIN
9a5a3e879d fix: Use paddle_subscription_id as field name for findOne query 2023-03-25 17:40:45 +03:00
Faruk AYDIN
269902db94 chore: Use verify webhook logic without paddle sdk 2023-03-25 17:40:02 +03:00
Ömer Faruk Aydın
4ba67ea863 Merge pull request #1020 from automatisch/subscription-payment-succeeded
feat: Handle subscription payment succeeded event
2023-03-25 16:38:10 +03:00
Faruk AYDIN
3534712478 feat: Handle subscription payment succeeded event 2023-03-25 16:34:24 +03:00
Ömer Faruk Aydın
62b9a8071a Merge pull request #1019 from automatisch/expose-error-stack
fix: Expose error stack together with error message
2023-03-25 16:32:42 +03:00
Faruk AYDIN
cf83c27ca0 fix: Expose error stack together with error message 2023-03-25 14:01:04 +03:00
Ömer Faruk Aydın
8035f81f97 Merge pull request #1018 from automatisch/billing-and-usage-v2
feat: Add usage data to getBillingAndUsage graphQL query
2023-03-25 13:23:36 +03:00
Ömer Faruk Aydın
d2375fdc54 Merge pull request #1017 from automatisch/billing-and-usage
Billing and usage graphQL query
2023-03-25 13:23:21 +03:00
Faruk AYDIN
f07d9dd813 feat: Add usage data to getBillingAndUsage graphQL query 2023-03-25 02:16:17 +03:00
Faruk AYDIN
b5524b18cf feat: Implement draft version of getBillingAndUsage query 2023-03-25 00:39:49 +03:00
Faruk AYDIN
310497a5bf chore: Add deleted_at column to subscriptions 2023-03-25 00:07:43 +03:00
Faruk AYDIN
47a738d5e6 fix: Next bill amount for paddle 2023-03-25 00:07:28 +03:00
Ömer Faruk Aydın
6ad13c1da0 Merge pull request #1014 from automatisch/handle-subscription-created
feat: Handle subscription created webhook event
2023-03-24 13:58:36 +03:00
Faruk AYDIN
99454fdc4b feat: Handle subscription created webhook event 2023-03-24 13:48:15 +03:00
Ali BARIN
799f0ead6c Merge pull request #1013 from automatisch/google-drive-integration
feat(google-drive): add new files trigger
2023-03-23 17:56:07 +01:00
Rıdvan Akca
d16d709b72 feat(google-drive): add new files trigger 2023-03-23 19:10:43 +03:00
Ömer Faruk Aydın
8e1087b818 Merge pull request #1002 from automatisch/dynamic-field-schema
feat(http-request): add headers support
2023-03-23 18:32:17 +03:00
Ömer Faruk Aydın
139dcb521e Merge pull request #1012 from automatisch/create-subscription
feat: Create subscription model
2023-03-23 18:22:09 +03:00
Faruk AYDIN
b17e431473 feat: Create subscription model 2023-03-23 18:15:36 +03:00
Ali BARIN
b1ee3ef8ba feat(http-request): add headers support 2023-03-23 14:53:27 +00:00
Ali BARIN
75bbd16b0c feat: support interactive fields 2023-03-23 13:45:46 +00:00
Ömer Faruk Aydın
71a7943d01 Merge pull request #1004 from zntemel/spotify-app
feat: implement Spotify app
2023-03-23 16:01:51 +03:00
Ömer Faruk Aydın
d34785b5b0 Merge branch 'main' into spotify-app 2023-03-23 15:58:50 +03:00
Ali BARIN
af58ef7244 fix(spotify): correct create playlist action key 2023-03-22 20:39:26 +00:00
Ali BARIN
6d3bec8518 fix(spotify): do not override auth header on refresh token 2023-03-22 20:38:27 +00:00
Ömer Faruk Aydın
0346b157c5 Merge pull request #1010 from automatisch/remove-stripe-remainings
feat(UsageAlert): use new plan upgrade page
2023-03-22 22:47:19 +03:00
Ali BARIN
e25aab742b feat(UsageAlert): use new plan upgrade page 2023-03-21 20:25:46 +00:00
Ömer Faruk Aydın
6f2ca00263 Merge pull request #1008 from automatisch/paddle-webhook-verify
feat: Verify paddle webhooks
2023-03-21 22:20:28 +03:00
Faruk AYDIN
e1d26325f3 feat: Verify paddle webhooks 2023-03-21 22:17:45 +03:00
Ömer Faruk Aydın
4202f963c3 Merge pull request #1007 from automatisch/remove-stripe
chore: Remove stripe-related functionality
2023-03-21 11:58:38 +03:00
Faruk AYDIN
d3ef45db1b chore: Remove stripe-related functionality 2023-03-21 11:55:45 +03:00
Ömer Faruk Aydın
dec55709a3 Merge pull request #1006 from automatisch/aut-73
feat: add checkout process
2023-03-21 11:34:16 +03:00
Ali BARIN
b5ed984f05 feat: add checkout process 2023-03-20 23:24:04 +00:00
Ali BARIN
66d7baa126 fix: make Paddle vendor id number 2023-03-20 23:23:44 +00:00
Ömer Faruk Aydın
a2809a14c5 Merge pull request #1005 from automatisch/paddle-info
feat: Implement getPaddleInfo graphQL query
2023-03-21 01:05:25 +03:00
Faruk AYDIN
040ad9edb0 feat: Implement getPaddleInfo graphQL query 2023-03-21 00:55:27 +03:00
Ömer Faruk Aydın
46dbe009f2 Merge pull request #1003 from automatisch/billing-page
feat: redesign billing page
2023-03-21 00:53:15 +03:00
Ali BARIN
3598d43938 feat: make payment plans dynamic 2023-03-21 00:50:33 +03:00
Faruk AYDIN
f1358c7ad1 feat: add GetPaymentPlans graphQL query 2023-03-21 00:50:33 +03:00
Ali BARIN
40862fcd01 feat: move plan upgrade to its page 2023-03-21 00:50:31 +03:00
Faruk AYDIN
189432c228 feat: Implement draft version of UpgradeFreeTrial component 2023-03-21 00:49:28 +03:00
Faruk AYDIN
280d16f3d9 chore: Use luxon instead moment as date utility 2023-03-21 00:49:28 +03:00
Faruk AYDIN
722c39590f feat: Start trial period on cloud 2023-03-21 00:49:28 +03:00
Ali BARIN
b1138dbf05 feat: make billings page responsive 2023-03-21 00:49:28 +03:00
Faruk AYDIN
08918282a7 feat: redesign billing page 2023-03-21 00:49:28 +03:00
Ömer Faruk Aydın
5007b0bf1a Merge pull request #993 from automatisch/searchable-json
feat: add searchable json viewer component
2023-03-20 13:29:40 +03:00
Rıdvan Akca
0a5912eb8e refactor(SearchableJSONViewer): rewrite collecting keys and values of data 2023-03-20 11:31:01 +03:00
Zeynep Nur Temel
8acd7b03ed docs: add spotify connection and actions 2023-03-19 23:48:45 +03:00
Zeynep Nur Temel
ed87df212f feat: add refresh token for spotify 2023-03-19 23:04:55 +03:00
Zeynep Nur Temel
56243aa076 feat: implement create playlist action for spotify 2023-03-18 19:18:16 +03:00
Zeynep Nur Temel
41e9f32e1b feat: implement Spotify connection 2023-03-18 13:41:18 +03:00
Rıdvan Akca
f7753aa1b4 fix(SearchableJSONViewer): remove undefined values from filtered arrays 2023-03-17 19:38:10 +03:00
Rıdvan Akca
aebfcc38dd feat(SearchableJSONViewer): cover no result case 2023-03-17 19:38:10 +03:00
Rıdvan Akca
3e0149c058 feat: add searchable json viewer component 2023-03-17 19:38:10 +03:00
Ali BARIN
1e62e09825 Merge pull request #999 from automatisch/dependabot/npm_and_yarn/webpack-5.76.1
chore(deps): bump webpack from 5.67.0 to 5.76.1
2023-03-14 23:20:07 +01:00
dependabot[bot]
956b15a2eb chore(deps): bump webpack from 5.67.0 to 5.76.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.67.0 to 5.76.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.67.0...v5.76.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-14 20:08:01 +00:00
Ali BARIN
572b457b43 Merge pull request #955 from s-schumann/feature/signalwire-integration
feat: add Signalwire integration
2023-03-14 09:26:30 +01:00
Ali BARIN
7d40ae009f fix(signalwire): use incoming phone number instead of its sid 2023-03-13 22:32:25 +00:00
Ali BARIN
aec9595dea fix: stop checking empty app input in createFlow 2023-03-13 22:11:55 +00:00
Ali BARIN
cc90f19a46 fix: stop checking empty action/trigger input in updateStep 2023-03-13 22:11:42 +00:00
Ali BARIN
ab486c8ed1 Merge branch 'main' into feature/signalwire-integration 2023-03-13 21:14:14 +01:00
Ali BARIN
bfb1e817ec feat(signalwire): introduce dynamic incoming phone numbers 2023-03-13 20:13:45 +00:00
Ömer Faruk Aydın
ebc7c22388 Merge pull request #998 from automatisch/corporate-signup-in-loading-in-signup
fix: show progress as of sign-up in SignUpForm
2023-03-13 22:39:48 +03:00
Ali BARIN
10b4066c82 refactor(signalwire): add dynamic api base url 2023-03-13 19:10:20 +00:00
Ali BARIN
42dd67954d refactor(signalwire): utilize axios post params 2023-03-13 19:06:20 +00:00
Ali BARIN
d45fdf605f fix(signalwire): localize icon 2023-03-13 19:05:32 +00:00
Ali BARIN
caef9bb8b5 chore: reword Signalwire as SignalWire 2023-03-13 19:05:02 +00:00
Ali BARIN
c888934601 fix: show progress as of sign-up in SignUpForm 2023-03-13 16:28:04 +00:00
Ömer Faruk Aydın
95613b595e Merge pull request #997 from automatisch/change-redirect-url
chore: Change redirect url for payment portal
2023-03-12 19:28:57 +01:00
Ömer Faruk Aydın
9247bd9d9e Merge pull request #996 from automatisch/subscription-creation
chore: Make subscription creation synchronous
2023-03-12 19:27:56 +01:00
Faruk AYDIN
ee3d2489e6 chore: Change redirect url for payment portal 2023-03-12 21:26:10 +03:00
Faruk AYDIN
7764c4fbcb chore: Make subscription creation synchronous 2023-03-12 21:23:32 +03:00
Ömer Faruk Aydın
a18b524859 Merge pull request #995 from automatisch/backend-mutation-validations
feat: add validation checks in mutations
2023-03-12 18:53:32 +01:00
Ali BARIN
9b8ec9b85e feat: validate step input in executeFlow 2023-03-12 11:28:33 +00:00
Ali BARIN
7b3f070973 feat: validate app and action input in createStep 2023-03-12 11:26:50 +00:00
Ali BARIN
ba27fc12e8 feat: validate app input in createFlow 2023-03-12 11:26:28 +00:00
Ali BARIN
db55912f78 feat: validate trigger input in updateStep 2023-03-12 11:18:04 +00:00
Ali BARIN
4c4bd267d4 feat: validate action input in updateStep 2023-03-12 11:17:55 +00:00
Ali BARIN
dc1002659b feat: validate connection input in updateStep 2023-03-12 11:16:51 +00:00
Ali BARIN
97da370301 feat: provide clear message when app is not found 2023-03-12 09:59:27 +00:00
Ali BARIN
571901f333 Merge pull request #994 from automatisch/introduce-sentry
feat: introduce Sentry
2023-03-10 20:06:56 +01:00
Ali BARIN
4d90df9d9a feat: introduce Sentry 2023-03-10 18:53:10 +00:00
Ali BARIN
2c18667ffd Merge pull request #992 from automatisch/open-stripe-in-same-window
feat: open payment portal in same window
2023-03-09 16:53:43 +01:00
Ömer Faruk Aydın
89157cd606 Merge pull request #991 from automatisch/let-extra-executions-go-through-over-quota
feat: don't interrupt execution due to quota
2023-03-09 16:18:14 +01:00
Ali BARIN
37e0091ef0 feat: open payment portal in same window 2023-03-09 15:17:05 +00:00
Ali BARIN
ae3512fecf feat: don't interrupt execution due to quota 2023-03-09 15:13:50 +00:00
Ömer Faruk Aydın
8b81391e2f Merge pull request #989 from automatisch/skip-processing-steps-over-quota
feat: skip processing tasks over task quota
2023-03-09 13:51:11 +01:00
Ali BARIN
54e68f6252 feat: skip processing tasks over task quota 2023-03-09 12:48:16 +00:00
Ali BARIN
92d1ed65ff feat: expose errors from webhooks 2023-03-09 12:46:32 +00:00
Ali BARIN
8098a7ee5d feat: add checkIfLimitExceeded in UsageData model 2023-03-09 12:46:32 +00:00
Ömer Faruk Aydın
c24297630c Merge pull request #988 from automatisch/show-alert-for-task-usage
feat: show usage alert as of threshold
2023-03-09 13:45:55 +01:00
Ömer Faruk Aydın
a9d5212602 Merge pull request #990 from automatisch/disable-conditional-features
feat: disable non-cloud features
2023-03-09 13:45:27 +01:00
Ali BARIN
c81db8ae19 feat: disable non-cloud features 2023-03-09 11:23:29 +00:00
Sebastian Schumann
ecd356d42b Merge branch 'automatisch:main' into feature/signalwire-integration 2023-03-09 01:51:13 +01:00
Ali BARIN
e67adf87b2 fix: hide chatwoot in small screens 2023-03-08 18:43:45 +00:00
Ali BARIN
1669708041 feat: show usage alert as of threshold 2023-03-08 18:43:42 +00:00
Ali BARIN
12e34013f8 refactor: default noSsr to true in useMediaQuery 2023-03-08 18:35:51 +00:00
Ömer Faruk Aydın
bd2ad1d7a1 Merge pull request #986 from automatisch/increase-consumed-task-count
feat: increase consumed task count upon tasks
2023-03-08 10:07:28 +01:00
Ali BARIN
934cdb8237 refactor: increment consumed task count atomically 2023-03-08 01:45:22 +00:00
Ömer Faruk Aydın
2f6ea8830e Merge pull request #984 from automatisch/add-chatwoot
feat: add chatwoot
2023-03-07 23:21:47 +01:00
Ömer Faruk Aydın
b77d08ebbf Merge pull request #985 from automatisch/show-payment-plan-name
feat: show current plan name in usage information
2023-03-07 23:03:44 +01:00
Ömer Faruk Aydın
b735d32cbc Merge pull request #983 from automatisch/payment-webhooks
feat: Implement stripe webhooks
2023-03-07 23:03:14 +01:00
Ali BARIN
472ffd5b5c feat: increase consumed task count upon tasks 2023-03-07 21:26:12 +00:00
Ali BARIN
4567ca8fce feat: show current plan name in usage information 2023-03-07 20:48:57 +00:00
Ali BARIN
07ed24ca7a feat: add chatwoot 2023-03-07 20:36:54 +00:00
Ali BARIN
52575be2a7 chore: add fullName in User interface 2023-03-07 20:36:54 +00:00
Ali BARIN
c8187e52bb fix: stop redirecting to login on /login 2023-03-07 20:36:54 +00:00
Faruk AYDIN
b0b6b72b4c feat: Implement stripe webhooks 2023-03-07 17:22:40 +01:00
Ali BARIN
7676bc5836 Merge pull request #982 from automatisch/add-space-between-buttons
refactor: adjust spacing in FlowRow
2023-03-07 16:10:27 +01:00
Rıdvan Akca
f98c1725be refactor: adjust spacing between button and chip in FlowRow component 2023-03-07 18:06:36 +03:00
Ali BARIN
c6bd599b63 Merge pull request #981 from automatisch/fix-signup-email
fix: add custom email error message for signup
2023-03-07 13:30:06 +01:00
Rıdvan Akca
7908779c89 fix: add custom email error message for signup 2023-03-07 15:25:40 +03:00
Ali BARIN
29ad68afab Merge pull request #980 from automatisch/make-automatisch-info-public
fix: make getAutomatischInfo public
2023-03-06 22:46:13 +01:00
Ali BARIN
9aaeac6a08 fix: make getAutomatischInfo public 2023-03-06 21:41:53 +00:00
Ömer Faruk Aydın
8f074c2131 Merge pull request #979 from automatisch/show-usage-data
feat: show usage data
2023-03-06 22:27:34 +01:00
Ali BARIN
930653c86d feat: show usage data 2023-03-06 20:28:09 +00:00
Ömer Faruk Aydın
cc31b7c210 Merge pull request #977 from automatisch/check-cloud
feat: add empty billing and usage page
2023-03-06 20:49:44 +01:00
Ömer Faruk Aydın
bb19e9308c Merge pull request #978 from automatisch/expose-payment-portal
feat: show payment portal information
2023-03-06 20:46:58 +01:00
Ali BARIN
5e7b4bfe45 feat: show payment portal information 2023-03-06 19:42:41 +00:00
Ali BARIN
dbeeb61cc5 feat: add empty billing and usage page 2023-03-06 18:06:00 +00:00
Ali BARIN
26d8e5856a feat: make automatisch info available 2023-03-06 18:04:47 +00:00
Ali BARIN
66be6d1e89 fix: return isCloud boolean in getAutomatischInfo 2023-03-06 18:01:47 +00:00
Ömer Faruk Aydın
677aa232e7 Merge pull request #976 from automatisch/get-payment-portal-url
feat: Add getPaymentPortalUrl graphQL query
2023-03-06 13:22:09 +01:00
Faruk AYDIN
cabbb45031 feat: Add getPaymentPortalUrl graphQL query 2023-03-06 12:45:29 +01:00
Ömer Faruk Aydın
ba99df645b Merge pull request #975 from automatisch/get-usage-data
feat: Implement getUsageData graphQL query
2023-03-06 12:44:35 +01:00
Faruk AYDIN
282e5ba2d8 feat: Implement getUsageData graphQL query 2023-03-06 12:37:28 +01:00
Ömer Faruk Aydın
42d418da58 Merge pull request #974 from automatisch/change-consumer-task-count
fix: Alter consumed task count column to integer
2023-03-06 12:09:34 +01:00
Faruk AYDIN
cbf270fdba fix: Alter consumed task count column to integer 2023-03-06 11:35:39 +01:00
Ömer Faruk Aydın
bb9abe104f Merge pull request #973 from automatisch/get-automatisch-info-query
feat: Introduce getAutomatischInfo graphQL query
2023-03-05 20:17:59 +01:00
Faruk AYDIN
18f0d6dea3 feat: Introduce getAutomatischInfo graphQL query 2023-03-05 20:12:59 +01:00
Ali BARIN
23dc9a1139 Merge pull request #972 from automatisch/payment-draft
feat: Initial payment implementation
2023-03-05 18:14:03 +01:00
Faruk AYDIN
5e18ef5830 feat: Initial payment implementation 2023-03-05 17:14:01 +01:00
Ömer Faruk Aydın
63f8fc266d Merge pull request #968 from automatisch/forgot-password
feat: add forgot password featureset
2023-03-05 10:28:07 +01:00
Ali BARIN
4e46b16f7b feat: use full name instead of email address in emails 2023-03-05 09:18:07 +00:00
Ömer Faruk Aydın
ba19b50005 Merge pull request #971 from automatisch/reset-password-page
feat: reset password page
2023-03-04 19:33:10 +01:00
Ali BARIN
fa867387d4 feat: add reset password page 2023-03-03 20:13:31 +00:00
Ali BARIN
5762cf5dc5 fix: make resetMutation public 2023-03-03 20:09:37 +00:00
Ali BARIN
7d9f624805 feat: add translations for sign up CTA in login 2023-03-03 18:15:49 +00:00
Ali BARIN
5b335ccd59 feat: add translations in login form 2023-03-03 18:11:44 +00:00
Ali BARIN
4792853eb6 feat: add forgot password page 2023-03-03 18:10:52 +00:00
Ali BARIN
cc05bc7db8 feat: expose email address in email templates 2023-03-03 18:07:35 +00:00
Ali BARIN
d198eaa988 fix: correct template name in email worker 2023-03-03 18:07:35 +00:00
Ali BARIN
f094da6a4b feat: add spacing in reset password email template 2023-03-03 18:07:35 +00:00
Ali BARIN
a53961b235 fix: correct reset password link in email 2023-03-03 18:07:35 +00:00
Ali BARIN
f644113af8 Merge pull request #970 from automatisch/add-signup
feat: add signup page
2023-03-03 19:06:43 +01:00
Rıdvan Akca
e4a903ec07 refactor: add translation for texts in sign up page 2023-03-03 20:42:12 +03:00
Rıdvan Akca
9408fe2a07 feat: remove helperText from profile setting page if there is no error 2023-03-03 18:43:18 +03:00
Rıdvan Akca
394e747a88 feat: remove helperText if there is no error 2023-03-03 18:40:55 +03:00
Ömer Faruk Aydın
e91f12729b Merge pull request #967 from automatisch/automatisch-cloud
feat: Introduce automatisch cloud env variable
2023-03-03 12:28:37 +01:00
Faruk AYDIN
134e588b14 feat: Introduce automatisch cloud env variable 2023-03-03 12:15:58 +01:00
Rıdvan Akca
d061eb7b58 feat: update migration logic and remove consolelog 2023-03-03 14:10:54 +03:00
Rıdvan Akca
18089a8076 feat: add signup logic 2023-03-03 14:05:35 +03:00
Ömer Faruk Aydın
02236e01d9 Merge pull request #966 from automatisch/delete-account-in-web
feat: show delete user functionality
2023-03-03 10:11:48 +01:00
Rıdvan Akca
c1150d50b1 feat: create signup form 2023-03-03 11:34:53 +03:00
Ali BARIN
387a849269 fix: delete current user in deleteUser mutation 2023-03-02 23:46:20 +00:00
Ali BARIN
399cebda70 feat: show delete user functionality 2023-03-02 23:37:05 +00:00
Ali BARIN
72720b3dfe Merge pull request #965 from automatisch/add-deleteUser-mutation
Add deleteUser mutation
2023-03-02 22:08:44 +01:00
Ali BARIN
64f7560b3b feat: add delete user worker 2023-03-02 15:28:51 +00:00
Ali BARIN
e06b646f49 feat: add deleteUser mutation 2023-03-02 15:26:06 +00:00
Ali BARIN
b51d9bb17b feat: add delete user queue 2023-03-02 15:25:24 +00:00
Rıdvan Akca
4e967c5720 feat: add signup link to login and create signup dummy page 2023-03-02 16:42:50 +03:00
Ali BARIN
179db38fd1 feat: show email queue jobs in bull-board 2023-03-02 11:11:42 +00:00
Ömer Faruk Aydın
e51930d7e1 Merge pull request #964 from automatisch/add-full-name-to-users
feat: introduce full name column to user model
2023-03-01 23:33:03 +01:00
Ali BARIN
74a299dbe6 feat: introduce full name column to user model 2023-03-01 21:40:39 +00:00
Ali BARIN
282863c526 Merge pull request #889 from automatisch/feature/dynamic-fields
feat: add dynamic fields support
2023-03-01 19:31:23 +01:00
Ali BARIN
63d794ed3e refactor(dynamicFields): use thrown error instead of returning it 2023-03-01 18:00:27 +00:00
Ali BARIN
c6b8f12f9a feat(Editor): implement dynamic fields 2023-03-01 17:52:52 +00:00
Faruk AYDIN
d16e292231 feat: Add dynamic fields structure to step arguments 2023-02-28 22:22:48 +00:00
Ali BARIN
29a319a850 Merge pull request #962 from automatisch/fix-unreachable-server-errors
fix: correct errors for unreachable servers
2023-02-27 21:00:43 +01:00
Ali BARIN
c11e0db077 Merge pull request #961 from automatisch/use-custom-server-in-ntfy
fix(ntfy): use given server URL instead of default
2023-02-27 21:00:31 +01:00
Ali BARIN
b2dafb5dfa Merge pull request #960 from automatisch/remove-original-error-in-gql-responses
fix: stop using originalError in GQL responses
2023-02-27 21:00:18 +01:00
Ali BARIN
e7ccd01427 fix: stop using originalError in GQL responses 2023-02-27 20:29:22 +01:00
Ali BARIN
447f26458a fix(ntfy): use given server URL instead of default 2023-02-27 20:28:58 +01:00
Ali BARIN
61fb71a080 fix: correct errors for unreachable servers 2023-02-27 20:28:15 +01:00
Ömer Faruk Aydın
329fcdf8f4 Merge pull request #959 from automatisch/do-not-suppress-native-gql-errors
fix: do not suppress native GQL errors
2023-02-26 23:16:03 +01:00
Ali BARIN
37cdb34014 fix: do not suppress native GQL errors 2023-02-26 22:13:07 +00:00
Ali BARIN
5ee7b85cc4 feat(filter): add filter app 2023-02-26 17:02:30 +01:00
Ömer Faruk Aydın
1f7228f95a Merge pull request #958 from automatisch/fix-seed-user
fix: Create seed user with admin role
2023-02-26 16:03:38 +01:00
Faruk AYDIN
fa8418adcd fix: Create seed user with admin role 2023-02-26 15:40:47 +01:00
Ömer Faruk Aydın
d3b1765ffe Merge branch 'main' into feature/signalwire-integration 2023-02-26 13:23:27 +01:00
Ömer Faruk Aydın
0a274ebadb Merge pull request #957 from automatisch/oauth-docs
docs: Explain OAuth preference for app connections
2023-02-25 11:02:50 +01:00
Faruk AYDIN
0d1b35edc5 docs: Explain OAuth preference for app connections 2023-02-25 10:53:54 +01:00
Sebastian Schumann
d7e4ae53ce feat: add Signalwire integration 2023-02-24 12:45:58 +01:00
Ömer Faruk Aydın
61ceffc6f9 Merge pull request #956 from automatisch/frontend-app-start
docs: Add how to start frontend app for dev setup
2023-02-24 12:27:02 +01:00
Faruk AYDIN
0c422bfd21 docs: Add how to start frontend app for dev setup 2023-02-24 12:23:25 +01:00
Ömer Faruk Aydın
a0815b06a6 feat: Implement draft version of reset password email (#949) 2023-02-24 00:25:10 +01:00
कारतोफ्फेलस्क्रिप्ट™
bd02b7574a chore: Reduce the docker image size by half (#890) 2023-02-21 13:02:32 +01:00
Ömer Faruk Aydın
1048d923d0 Merge pull request #947 from automatisch/reset-password
feat: Add resetPassword mutation
2023-02-19 11:49:58 +01:00
Faruk AYDIN
9dbfcf4262 feat: Add resetPassword mutation 2023-02-19 11:04:56 +01:00
Ömer Faruk Aydın
8ea176b5f0 Merge pull request #946 from automatisch/forgot-password-mutation
feat: Implement forgotPassword mutation
2023-02-18 17:23:16 +01:00
Faruk AYDIN
90dcbadc52 feat: Implement forgotPassword mutation 2023-02-18 16:54:01 +01:00
Ömer Faruk Aydın
e4021bf830 Merge pull request #945 from automatisch/create-user
feat: Implement createUser mutation
2023-02-18 15:53:07 +01:00
Faruk AYDIN
b8b453aba0 feat: Implement createUser mutation 2023-02-18 14:49:12 +01:00
Ömer Faruk Aydın
aeec2377c1 Merge pull request #944 from automatisch/user-role
feat: Introduce role column to user model
2023-02-18 14:29:11 +01:00
Faruk AYDIN
f8b0ffd39b feat: Introduce role column to user model 2023-02-18 14:26:10 +01:00
Ömer Faruk Aydın
9953c3c823 Merge pull request #943 from automatisch/check-license
fix: Use kebab-case for check license file
2023-02-17 22:46:40 +01:00
Faruk AYDIN
d227a07fe9 fix: Use kebab-case for check license file 2023-02-17 22:42:56 +01:00
Ömer Faruk Aydın
7c394414d8 Merge pull request #939 from automatisch/verify-license
feat: Introduce getLicense graphQL query
2023-02-14 22:19:17 +01:00
Faruk AYDIN
1dfb22d02e feat: Introduce getLicense graphQL query 2023-02-14 22:15:59 +01:00
Faruk AYDIN
1847ad5622 chore: Use GitHub issues instead of discussions for requests 2023-02-13 21:48:35 +01:00
Ömer Faruk Aydın
beb701ceb4 Merge pull request #894 from automatisch/docs/license
chore: Explain license changes in docs and package.json files
2023-02-12 16:02:23 +01:00
Faruk AYDIN
2fbadea821 chore: Explain license changes in docs and package.json files 2023-02-12 15:46:31 +01:00
Ömer Faruk Aydın
bac561d8c7 Merge pull request #893 from automatisch/license-adjustment
chore: Adjust licenses
2023-02-12 14:39:07 +01:00
Faruk AYDIN
7bd261a02e chore: Adjust licenses 2023-02-12 13:41:24 +01:00
Ömer Faruk Aydın
df99a889f0 Merge pull request #892 from automatisch/cla-text
chore: Add contributor license agreement
2023-02-12 12:09:21 +01:00
Ömer Faruk Aydın
16c5892a1d Merge pull request #891 from automatisch/ee-license
chore: Introduce EE license
2023-02-12 12:09:08 +01:00
Faruk AYDIN
0236bbaf68 chore: Add contributor license agreement 2023-02-10 15:56:43 +01:00
Faruk AYDIN
2ca5a290c3 chore: Adjust licenses as CE and EE editions 2023-02-10 15:46:51 +01:00
Faruk AYDIN
66c388a644 chore: Introduce enterprise license 2023-02-10 15:31:54 +01:00
Ali BARIN
74a77ed271 fix(worker): compute parameters for delaying job 2023-02-08 23:22:57 +01:00
Ali BARIN
3d98e6cdc0 feat(slack/list-channels): add im channels and increase limit 2023-02-08 23:22:43 +01:00
Faruk AYDIN
831ae96e0f Release v.0.5.0 2023-02-08 13:32:25 +01:00
Faruk AYDIN
113a91a73f chore: Update versioning in dockerfiles 2023-02-08 13:32:25 +01:00
Faruk AYDIN
2be8e14f66 feat(http-request): cover file downloads 2023-02-07 21:48:52 +01:00
Faruk AYDIN
9cfaa9e603 feat(salesforce): Implement create attachment integration 2023-02-07 21:15:44 +01:00
Ali BARIN
48653c7590 feat(slack/list-channels): add private and exclude archived channels 2023-02-06 00:47:41 +01:00
Ömer Faruk Aydın
72450b6305 Merge pull request #872 from automatisch/primitive-custom-http-request
feat(http-request): introduce custom request action
2023-02-06 00:21:37 +01:00
dependabot[bot]
7d22a1c105 chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 12:58:23 +01:00
Ali BARIN
08ac3fb984 docs(http-request): add custom request action 2023-02-02 22:34:42 +00:00
Ali BARIN
2f64a074c6 feat(http-request): introduce custom request action 2023-02-02 22:30:07 +00:00
Donghoon Song
f98c797311 fix: readme git clone commannd
Current command needs public key so access is denied.
2023-02-01 22:12:45 +01:00
Ömer Faruk Aydın
d81fb14b04 Merge pull request #870 from automatisch/slack-search-user-by-email
feat(slack): add find user by email action
2023-01-31 15:15:37 +01:00
Ali BARIN
01bb1259eb feat(slack): add find user by email action 2023-01-30 23:39:00 +00:00
Ali BARIN
1118d025bf chore: add hostRequirements in devcontainer 2023-01-31 00:23:50 +01:00
Ali BARIN
146f0604c3 docs(salesforce): add find record action 2023-01-31 00:19:51 +01:00
Ali BARIN
f90afe8b37 feat(salesforce): add find record action 2023-01-31 00:19:51 +01:00
Ali BARIN
fff5306fa6 chore: introduce .devcontainer 2023-01-30 13:47:30 +01:00
Ali BARIN
078ea24cd2 feat: request increase body size limit to 1mb 2023-01-29 13:53:32 +01:00
Ali BARIN
85a3558074 docs(ntfy): use actions page for app listing 2023-01-25 11:58:52 +01:00
Ali BARIN
73a9ae1c9c docs(twitter): remove duplicate items 2023-01-25 11:26:19 +01:00
dependabot[bot]
2222ede420 chore(deps): bump knex from 0.95.15 to 2.4.0
Bumps [knex](https://github.com/knex/knex) from 0.95.15 to 2.4.0.
- [Release notes](https://github.com/knex/knex/releases)
- [Changelog](https://github.com/knex/knex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/knex/knex/commits/2.4.0)

---
updated-dependencies:
- dependency-name: knex
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-20 18:01:10 +01:00
Ömer Faruk Aydın
c6d80a9b0e Merge pull request #856 from automatisch/search-user-in-twitter
feat(twitter): add search user action
2023-01-20 15:38:26 +03:00
Ömer Faruk Aydın
23c4414398 Merge pull request #852 from automatisch/openai-send-prompt
feat(openai): add send prompt action
2023-01-20 15:14:05 +03:00
Ömer Faruk Aydın
8b9320bbf9 Merge pull request #851 from automatisch/openai-check-moderation
feat(openai): add moderation action
2023-01-20 15:07:45 +03:00
Katriel Tsepelevish
a8ac288f17 fix(todoist): Add missing OAuth redirect URL field 2023-01-19 18:42:44 +01:00
Ali BARIN
ffe7de6774 docs(twitter): add search user action 2023-01-19 17:56:58 +01:00
Ali BARIN
d87a826493 feat(twitter): sign querystring in requests 2023-01-19 17:56:39 +01:00
Ali BARIN
645fe29060 feat(twitter): add search user action 2023-01-19 17:55:59 +01:00
Ali BARIN
4db738a7f6 docs(openai): add send prompt action 2023-01-18 22:41:53 +01:00
Ali BARIN
253c2c4317 feat(openai): add send prompt action 2023-01-18 22:41:53 +01:00
Ali BARIN
49755303f7 feat(openai): add list models dynamic data 2023-01-18 22:41:53 +01:00
Ali BARIN
1e137f0bd8 docs(openai): describe auth and check moderation action 2023-01-18 22:41:35 +01:00
Ali BARIN
c2579b1850 feat(openai): add moderation action 2023-01-18 22:41:34 +01:00
Ali BARIN
577d5215cd feat(openai): add app with auth 2023-01-18 22:41:34 +01:00
Ali BARIN
0870fa7e8f fix(typeform): add HTTP 403 to refresh token 2023-01-18 22:41:10 +01:00
Katriel Tsepelevish
ddb3795985 chore(backend): Provide HTTP url on server launch up 2023-01-15 17:24:22 +01:00
Ali BARIN
45e98cd5b7 fix(Editor): fetch webhookUrl upon updating step 2023-01-14 19:15:55 +01:00
Faruk AYDIN
4a99b7a3f2 chore: Update version in Dockerfiles with 0.4.0 2023-01-13 17:09:49 +01:00
Faruk AYDIN
985132da78 Release v0.4.0 2023-01-13 17:09:49 +01:00
Ali BARIN
315edea5ca docs(twitter): add missing space after comma 2023-01-11 22:05:39 +01:00
Ali BARIN
27e0ef4e38 docs(todoist): describe auth with oauth 2.0 2023-01-11 22:05:39 +01:00
Ali BARIN
8090d8be5a feat(todoist): enhance auth with oauth 2.0 2023-01-11 22:05:39 +01:00
Ali BARIN
8c8fd98bd5 feat(rss): cover atom feeds 2023-01-11 20:04:02 +01:00
dependabot[bot]
6f724b5bec chore(deps): bump luxon from 2.5.0 to 2.5.2
Bumps [luxon](https://github.com/moment/luxon) from 2.5.0 to 2.5.2.
- [Release notes](https://github.com/moment/luxon/releases)
- [Changelog](https://github.com/moment/luxon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moment/luxon/compare/2.5.0...2.5.2)

---
updated-dependencies:
- dependency-name: luxon
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 15:47:28 +01:00
Ali BARIN
909cbd1f0c fix(google-forms): platform name in OAuth field description 2023-01-09 14:09:33 +01:00
Ali BARIN
094de0ca21 fix(google-forms): remove unused and wrong docUrl in auth 2023-01-09 14:09:33 +01:00
dependabot[bot]
af8ca4af9e chore(deps): bump json5 from 1.0.1 to 1.0.2
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-07 16:23:57 +01:00
Ali BARIN
709e788f5f docs(todoist): restructure trigger and add in nav 2023-01-07 16:12:47 +01:00
Ian Levesque
1a4a1f7f8b feat(todoist): add app, authentication, docs (#826) 2023-01-07 15:09:39 +01:00
Ömer Faruk Aydın
ff0bde059a Merge pull request #825 from automatisch/google-forms-integration
Add google forms
2023-01-05 19:50:33 +03:00
Ali BARIN
ac671110a3 fix: wrap lines when showing error details 2023-01-03 21:24:29 +01:00
Ali BARIN
30c95da90e feat(google-forms): add new form responses trigger 2023-01-03 21:24:27 +01:00
Ali BARIN
0b52a1bd01 feat(google-forms): add list forms dynamic data 2023-01-03 21:23:35 +01:00
Ali BARIN
3fc7fce9ca feat(google-forms): add authentication 2023-01-03 19:06:04 +01:00
Ali BARIN
f8df7987b8 feat(google-forms): add primitive app 2023-01-03 19:02:56 +01:00
Ali BARIN
697594b63e Merge pull request #815 from automatisch/dependabot/npm_and_yarn/jsonwebtoken-9.0.0
chore(deps): bump jsonwebtoken from 8.5.1 to 9.0.0
2022-12-28 11:52:51 +01:00
dependabot[bot]
7be3923224 chore(deps): bump jsonwebtoken from 8.5.1 to 9.0.0
Bumps [jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) from 8.5.1 to 9.0.0.
- [Release notes](https://github.com/auth0/node-jsonwebtoken/releases)
- [Changelog](https://github.com/auth0/node-jsonwebtoken/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/node-jsonwebtoken/compare/v8.5.1...v9.0.0)

---
updated-dependencies:
- dependency-name: jsonwebtoken
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-28 10:35:59 +00:00
Ömer Faruk Aydın
5b913aa30a Merge pull request #818 from automatisch/handle-different-content-types-in-webhook
feat(webhooks): handle form-data and text/plain reqs
2022-12-28 13:35:02 +03:00
Ali BARIN
da9cb7d6eb feat(webhooks): handle form-data and text/plain reqs 2022-12-25 16:28:58 +01:00
Ali BARIN
aca19f7f73 Merge pull request #814 from automatisch/docs/create-flow
docs: Add the guide for how to create flows
2022-12-22 23:21:07 +01:00
Faruk AYDIN
faf151cd62 docs: Add the guide for how to create flows 2022-12-23 01:02:35 +03:00
Ömer Faruk Aydın
675cd4de2a Merge pull request #813 from automatisch/docs/ngrok-usage
docs: Add usage of ngrok for webhook-based trigger development
2022-12-21 23:10:03 +03:00
Faruk AYDIN
74ebe492c5 docs: Add usage of ngrok for webhook-based trigger development 2022-12-21 23:07:40 +03:00
Ali BARIN
254fcecf33 Merge pull request #811 from automatisch/chore/dockerfile
chore: Cover different architectures in Dockerfile
2022-12-17 18:45:51 +01:00
Faruk AYDIN
a334864980 chore: Cover different architectures in Dockerfile 2022-12-17 20:40:44 +03:00
Ömer Faruk Aydın
b6b377c209 Merge pull request #809 from automatisch/docs/change-advantages-copy
docs: Update advantages section of Automatisch
2022-12-17 16:46:56 +03:00
Faruk AYDIN
5f76aa02dd docs: Adjust advantages text of Automatisch 2022-12-17 16:29:41 +03:00
Ömer Faruk Aydın
0ba0c998e9 Merge pull request #810 from automatisch/readme/installation
chore: Update readme to refer installation guide
2022-12-17 03:12:36 +03:00
Faruk AYDIN
2e54216469 chore: Update readme to refer installation guide 2022-12-17 02:05:09 +03:00
Faruk AYDIN
56dbe62cad docs: Update advantages section of Automatisch 2022-12-17 01:37:59 +03:00
Ömer Faruk Aydın
048db60a10 Merge pull request #808 from automatisch/docs/delay-app
docs: Add connection and actions pages for delay app
2022-12-17 01:09:35 +03:00
Faruk AYDIN
f3b1b2254f docs: Add connection and actions pages for delay app 2022-12-17 01:04:50 +03:00
Ali BARIN
e705aaa2f6 Merge pull request #807 from automatisch/docs/configuration
docs: Add WEB_APP_URL and WEBHOOK_URL to configuration
2022-12-16 23:02:17 +01:00
Faruk AYDIN
1f80f843ba docs: Add WEB_APP_URL and WEBHOOK_URL to configuration 2022-12-17 00:54:49 +03:00
Ömer Faruk Aydın
02a76418fc Merge pull request #806 from automatisch/add-flowers-software
Add flowers software
2022-12-17 00:33:06 +03:00
Ömer Faruk Aydın
d1245705de Merge pull request #805 from automatisch/revise-web-app-url
feat: prioritize WEB_APP_URL
2022-12-16 23:12:09 +03:00
Ali BARIN
6d74f7c64d feat(flowers-software): add new activity trigger 2022-12-16 21:06:54 +01:00
Ali BARIN
bf1076b7d2 fix(AddAppConnection): don't render empty error details 2022-12-16 21:06:53 +01:00
Ali BARIN
7175d92eaf feat(flowers-software): add app with authentication 2022-12-16 21:06:53 +01:00
Ali BARIN
f30ac46672 feat($): add flow.setRemoteWebhookId 2022-12-16 21:06:52 +01:00
Ali BARIN
0970db3295 feat: add remoteWebhookId in Flow 2022-12-16 21:06:52 +01:00
Ali BARIN
5d24216124 feat: prioritize WEB_APP_URL 2022-12-16 21:06:40 +01:00
Ali BARIN
9a55333ce8 Merge pull request #804 from automatisch/delay-until-action
feat: Add delay until action for delay app
2022-12-16 20:16:10 +01:00
Faruk AYDIN
cb58ab5fb7 feat: Add delay until action for delay app 2022-12-16 20:13:39 +01:00
Ali BARIN
5d9ed13003 Merge pull request #801 from automatisch/delay-app
feat: Add delay application along with delay for action
2022-12-16 20:12:06 +01:00
Ali BARIN
5b51cb30f5 refactor: use step.appKey to recognize delay 2022-12-16 19:54:55 +01:00
Ali BARIN
d8c5850eaa Merge pull request #793 from automatisch/issue-788
feat: take search bar out of scroll in add app connection
2022-12-16 16:36:26 +01:00
Rıdvan Akca
4839b100cb feat: take search bar out of scroll in add app connection 2022-12-16 16:33:46 +01:00
Faruk AYDIN
469050914b feat: Add delay application along with delay for action 2022-12-16 02:32:57 +03:00
Ali BARIN
8036d20bf9 Merge pull request #794 from automatisch/fix-broken-flow-editor
fix: make type optional for webhook check
2022-12-12 15:57:30 +01:00
Ali BARIN
f04597335f fix: make type optional for webhook check 2022-12-12 15:54:36 +01:00
Ali BARIN
3d26ca6cc2 Merge pull request #792 from automatisch/available-apps
docs: Add webhooks to available apps
2022-12-12 14:15:05 +01:00
Faruk AYDIN
ec3454291b docs: Add webhooks to available apps 2022-12-12 16:08:04 +03:00
Ali BARIN
21e2f394a9 Merge pull request #791 from automatisch/docs/render-deployment
docs: render deployment
2022-12-12 12:00:41 +01:00
Faruk AYDIN
dd9f69e4cd docs: Add installation type for render 2022-12-12 13:43:04 +03:00
Faruk AYDIN
f7e8cb24ee feat: Add render.yaml for easy deployment to Render 2022-12-12 12:29:36 +03:00
Ömer Faruk Aydın
3b5a77ec22 Merge pull request #790 from automatisch/docs/github-stars
docs: Add cta for github stars
2022-12-12 11:56:43 +03:00
Ali BARIN
16715129d1 docs: fix mobile nav for GH stars announcement 2022-12-11 18:14:21 +01:00
Faruk AYDIN
3aafaabda6 docs: Add cta for github stars 2022-12-11 15:55:16 +03:00
Ali BARIN
279abfedfd Merge pull request #789 from automatisch/issue-760
feat: show "instant" chip for webhook triggers
2022-12-10 16:46:55 +01:00
Ali BARIN
e77580dd35 feat: show "instant" chip for webhook triggers 2022-12-10 16:39:25 +01:00
Ali BARIN
9cde662092 feat(grapql-schema): add type property in Trigger 2022-12-10 16:39:24 +01:00
Ali BARIN
862734c572 Merge pull request #784 from automatisch/dependabot/npm_and_yarn/express-4.17.3
chore(deps): bump express from 4.16.4 to 4.17.3
2022-12-08 23:09:25 +01:00
Ali BARIN
61dc611588 Merge pull request #787 from automatisch/fix-generic-webhook-internal-id-for-get-reqs
fix(webhook): correct internal ID for GET requests
2022-12-08 23:09:06 +01:00
Ali BARIN
03368e2cca fix(webhook): correct internal ID for GET requests 2022-12-08 22:19:45 +01:00
Ali BARIN
6382325280 feat(TestSubstep): put some space between info and test output 2022-12-08 22:19:00 +01:00
dependabot[bot]
a5b0910b60 chore(deps): bump express from 4.16.4 to 4.17.3
Bumps [express](https://github.com/expressjs/express) from 4.16.4 to 4.17.3.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.16.4...4.17.3)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-08 19:19:13 +00:00
Ali BARIN
ba1e1ef20c Merge pull request #786 from automatisch/release/0.3.0
Release v0.3.0
2022-12-08 20:18:27 +01:00
Ali BARIN
dd8bab299d chore: update cli version in dockerfiles 2022-12-08 20:15:06 +01:00
Ali BARIN
1125f31810 Release v0.3.0 2022-12-08 20:12:28 +01:00
Ali BARIN
ef3c93a907 Merge pull request #785 from automatisch/docs/webhooks
Docs: webhooks app
2022-12-08 20:02:53 +01:00
Faruk AYDIN
89bcaa96ed docs: Add trigger and connection pages of webhooks app 2022-12-08 22:00:17 +03:00
Ali BARIN
ce1eecf82e Merge pull request #782 from automatisch/docs/docker-installation
docs: Docker installation
2022-12-08 19:45:52 +01:00
Ali BARIN
3164663b4f Merge pull request #783 from automatisch/ntfy-field-descs
feat(ntfy): describe user & psswd in auth dialog
2022-12-08 19:45:11 +01:00
Ali BARIN
4f99bc36d0 Merge pull request #781 from automatisch/dependabot/npm_and_yarn/decode-uri-component-0.2.2
chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2
2022-12-08 19:45:00 +01:00
Ali BARIN
179c0a39d4 feat(ntfy): describe user & psswd in auth dialog 2022-12-08 19:36:41 +01:00
Faruk AYDIN
0fefa4e43a chore: Make telegram and ntfy apps collapsed for docs sidebar 2022-12-08 21:31:23 +03:00
Ömer Faruk Aydın
d4e8eb276d Merge pull request #780 from automatisch/generic-webhook
Add webhook integration
2022-12-08 19:20:52 +01:00
Ömer Faruk Aydın
fd3c26ad73 Merge pull request #777 from automatisch/feature/ntfy
Add ntfy support with sending message
2022-12-08 19:13:57 +01:00
Ali BARIN
d9f9056515 refactor(webhook): remove auth placeholder 2022-12-08 11:57:36 +01:00
Faruk AYDIN
d326b5a36a chore: Add migration for webhook secret key 2022-12-08 13:27:08 +03:00
Faruk AYDIN
8c4970b550 chore: Use webhook secret key for new entry trigger 2022-12-08 13:00:17 +03:00
Ali BARIN
51ccdf3577 feat(webhook): do not process actions in test run 2022-12-08 10:42:35 +01:00
Ali BARIN
f79245d24a fix(webhook): remove registrations logic 2022-12-08 10:26:07 +01:00
Ali BARIN
e8d8a5e89d feat(webhook): mark test run in executions 2022-12-08 10:22:39 +01:00
Faruk AYDIN
b1dddcb511 docs: Add installation types info box 2022-12-08 10:33:15 +03:00
Faruk AYDIN
af45b8a1e4 docs: Adjust docker setup to use one .env file 2022-12-08 10:33:15 +03:00
Faruk AYDIN
2c8b60ab9b chore: Remove project flag from docker compose command 2022-12-08 10:33:15 +03:00
Faruk AYDIN
75196cbf84 feat: Introduce webhook secret key to verify webhook requests 2022-12-08 10:33:15 +03:00
Faruk AYDIN
5d80fd523c docs: Remind to change password after installation 2022-12-08 10:33:15 +03:00
Faruk AYDIN
22dc61f39b docs: Add docker installation section 2022-12-08 10:33:15 +03:00
dependabot[bot]
f4611d88cd chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2
Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-08 01:56:18 +00:00
Ali BARIN
346a706e41 feat(Editor): show webhook info in test substep 2022-12-08 00:34:28 +01:00
Ali BARIN
3c62f182ab feat(webhook): add webhook application 2022-12-08 00:34:26 +01:00
Ömer Faruk Aydın
67964192de Merge pull request #778 from automatisch/worker-readiness-log
feat(worker): log when workers are ready
2022-12-06 18:37:51 +01:00
Ömer Faruk Aydın
c6f62fd078 Merge pull request #779 from automatisch/barinali-patch-1
docs(available-apps): fix telegram link
2022-12-06 18:17:50 +01:00
Ali BARIN
8ea547c1d7 docs(available-apps): fix telegram link 2022-12-06 18:14:21 +01:00
Ali BARIN
c5fedda195 feat(worker): log when workers are ready 2022-12-05 23:53:57 +01:00
Ali BARIN
8300a4b6df docs: add ntfy in available apps 2022-12-05 09:57:42 +01:00
Ali BARIN
32e77de8bb docs(ntfy): describe actions and auth 2022-12-05 00:52:13 +01:00
Ali BARIN
e1c080f237 feat(ntfy): add send message action 2022-12-05 00:45:30 +01:00
Ali BARIN
6995323a45 feat(ntfy): add auth support 2022-12-05 00:45:02 +01:00
Ali BARIN
46bfc597ec feat(ntfy): add application 2022-12-05 00:44:25 +01:00
Ömer Faruk Aydın
0abc614a78 Merge pull request #775 from automatisch/fix-autocomplete-search
fix(ControlledAutocomplete): use option value as option key
2022-12-04 22:51:56 +01:00
Ömer Faruk Aydın
7518456fe8 Merge pull request #776 from automatisch/add-option-value-in-autocomplete
feat(FlowSubstep): show autocomplete option value
2022-12-04 22:46:25 +01:00
Ali BARIN
4ab76e7507 feat(FlowSubstep): show autocomplete option value 2022-12-04 22:33:28 +01:00
Ömer Faruk Aydın
1cf5a88582 Merge pull request #770 from automatisch/feature/telegram-send-message
Add telegram bot support with sending message
2022-12-04 22:28:37 +01:00
Ali BARIN
14a8551e82 docs: add typeform and telegram in available apps 2022-12-04 21:26:11 +01:00
Ali BARIN
4b0916a214 fix(AppRow): use app key for links instead of name 2022-12-04 21:24:19 +01:00
Ali BARIN
e451dd2262 fix(ControlledAutocomplete): use option value as option key 2022-12-04 21:16:16 +01:00
Ali BARIN
2e4ecfab16 docs(telegram-bot): describe actions and auth 2022-12-04 17:27:59 +01:00
Ali BARIN
8c343abac5 feat(telegram-bot): add send message action 2022-12-04 17:27:59 +01:00
Ali BARIN
39ac3ff4c2 feat(telegram-bot): add authentication support 2022-12-04 17:27:58 +01:00
Ali BARIN
677880c633 feat(telegram-bot): add application 2022-12-04 17:27:58 +01:00
Ali BARIN
bd2f2cbf64 Merge pull request #761 from automatisch/docs/typeform-app
docs(typeform): Add connection and trigger pages
2022-12-01 18:22:45 +01:00
Ömer Faruk Aydın
4129264d1d Merge pull request #762 from automatisch/docs/webhook-examples
docs: Add the webhook-based trigger to integration examples
2022-12-01 18:00:49 +01:00
Faruk AYDIN
f9133a6e96 docs: Add the webhook-based trigger to integration examples 2022-12-01 17:57:38 +01:00
Faruk AYDIN
57a23946cc docs(typeform): Add connection and trigger pages 2022-12-01 17:57:07 +01:00
Ömer Faruk Aydın
6faa45ac16 Merge pull request #759 from automatisch/feature/typeform-integration
Add new entry trigger for typeform with webhook support
2022-11-30 22:06:07 +01:00
Ali BARIN
bf62ebd20a chore(typeform): add empty type definition file 2022-11-30 19:38:57 +01:00
Ali BARIN
687c6a09bc feat(webhook): register in mutation calls 2022-11-30 19:33:57 +01:00
Ali BARIN
77a7df1cff feat(webhook): process trigger in controller 2022-11-30 19:33:30 +01:00
Ali BARIN
05ce3edb80 fix(webhook): respond with 404 for non-webhook flows 2022-11-30 19:32:58 +01:00
Ali BARIN
2564d7d976 fix(typeform/new-entry): early exit when no response 2022-11-30 19:31:38 +01:00
Ali BARIN
2f06cda82b fix: remove circular serialization in GQL errors 2022-11-30 16:57:35 +01:00
Ali BARIN
945b777c3c fix(typeform): correct app color 2022-11-30 02:13:00 +01:00
Ali BARIN
d2a6c45fd6 refactor: simplify computed webhook event 2022-11-30 02:13:00 +01:00
Ali BARIN
b5436fe7fa chore: add comments in update flow status 2022-11-30 02:13:00 +01:00
Ali BARIN
82e3b40e7c refactor: remove redundant function signature 2022-11-30 02:12:59 +01:00
Ali BARIN
0f4f36c654 refactor: name webhook controller handler 2022-11-30 02:12:59 +01:00
Faruk AYDIN
d83e8dabf8 feat: Implement webhook logic along with new entry typeform trigger 2022-11-30 02:12:56 +01:00
Faruk AYDIN
397926f994 feat: Add listForms dynamic data to Typeform app 2022-11-30 02:12:26 +01:00
Faruk AYDIN
8d8a9f7c78 feat: Implement Typeform authentication 2022-11-30 02:12:25 +01:00
Ömer Faruk Aydın
40b8860e7c Merge pull request #751 from automatisch/fix/stripe-types
chore: Add type file for the stripe app
2022-11-29 22:23:08 +01:00
Faruk AYDIN
9978241329 chore: Add type file for the stripe app 2022-11-29 22:10:25 +01:00
Ömer Faruk Aydın
666a1ab81e Merge pull request #749 from PierreSchwang/feat/stripe
Feature: Stripe integration (triggers)
2022-11-29 22:06:58 +01:00
Pierre Maurice Schwang
1d6ed8d9d0 chore: align trigger key with trigger name 2022-11-29 21:32:20 +01:00
Pierre Maurice Schwang
34e2c77934 chore: address review comments 2022-11-29 20:06:17 +01:00
Pierre Maurice Schwang
f47d912074 Merge branch 'main' into feat/stripe 2022-11-28 19:28:33 +01:00
Pierre Maurice Schwang
f25b67c81c docs: add documentation for stripe connection / triggers 2022-11-28 19:24:51 +01:00
Ali BARIN
08e60e6961 Merge pull request #747 from automatisch/issue-728
feat(queue): auto clean up complete and fail jobs
2022-11-28 17:55:25 +01:00
Ali BARIN
c393a80185 Merge branch 'main' into issue-728 2022-11-28 17:06:44 +01:00
Ali BARIN
8e28ec491c Merge pull request #748 from automatisch/issue-745
feat: accept username, password, tls for redis configuration
2022-11-28 17:06:20 +01:00
Ali BARIN
2e391cc651 feat(queue): auto clean up complete and fail jobs 2022-11-28 02:01:12 +01:00
Ali BARIN
2e0b2191c0 feat: accept username, password, tls for redis configuration 2022-11-28 01:57:43 +01:00
Ömer Faruk Aydın
4240849a2a Merge pull request #746 from automatisch/separate-dockerfile-for-release
Separate dockerfile for release
2022-11-27 23:08:38 +01:00
Ali BARIN
a0f0db1dd4 refactor(docker-compose): incorporate standalone build 2022-11-27 01:39:08 +01:00
Ali BARIN
e455497596 refactor(docker): rework for release 2022-11-27 01:39:08 +01:00
Ali BARIN
bb99dd82ba chore: remove unused wait for postgres scripts 2022-11-27 01:39:07 +01:00
Ömer Faruk Aydın
48ccddb555 Merge pull request #744 from automatisch/extend-http-error
feat(http-error): add response
2022-11-25 20:01:25 +01:00
Ali BARIN
23f56e4deb feat(http-error): add response 2022-11-25 00:49:40 +01:00
Pierre Maurice Schwang
ef27c9348b feat: stripe triggers (payout + transaction) 2022-11-24 23:23:22 +01:00
Ali BARIN
cb664b563d Merge pull request #739 from ksurl/docker-alpine
chore: switch to alpine based image
2022-11-23 00:14:20 +01:00
ksurl
53f38c583a add openssl package 2022-11-22 14:31:21 -08:00
ksurl
12622e2045 add dos2unix prestage 2022-11-22 10:56:04 -08:00
ksurl
36dfedbaab Merge remote-tracking branch 'upstream/main' into docker-alpine 2022-11-22 10:48:28 -08:00
Ali BARIN
d3a059d759 fix(docker-compose): add dos2unix 2022-11-22 17:36:55 +01:00
ksurl
9ba1351a3b refactor: use healthcheck for db, remove psql client from image (#737)
* refactor: use healthcheck for db, remove postgresql client from main image

* fix: redis dependency condition

* cleanup entrypoint.sh

* fix healthcheck command
2022-11-22 01:18:05 +01:00
ksurl
399f8ed1db switch to alpine based image 2022-11-21 16:14:06 -08:00
ksurl
d36b5e8091 fix(docker-compose): add compose image tag (#734)
* fix: update compose image tag

* fix: update image org name
2022-11-22 00:01:46 +01:00
Ömer Faruk Aydın
fc616e818a Merge pull request #736 from automatisch/docs/refresh-token
docs: Add OAuth with refresh token to example integrations
2022-11-21 23:23:35 +01:00
Faruk AYDIN
edd438c37f docs: Add OAuth with refresh token to example integrations 2022-11-21 23:15:49 +01:00
ksurl
92e5ae0ebd refactor(docker-compose): combine dockerfiles with entrypoint (#727)
* combine worker and main image, support encryption key, app secret key env, and postgres pw

* Update docker/entrypoint.sh

fix env file path

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>

* add build tag, move compose to root

* add volumes

* style: remove trailing indent

* refactor(docker-compose): empty encryption env. vars

* docs(docker-compose): update compose folder

* refactor(docker-compose): remove host network

* fix(docker-compose): add environment variable keys

Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2022-11-21 20:26:44 +01:00
Faruk AYDIN
d3e13c30a6 chore: Make isRefreshTokenRequested optional for IAuth 2022-11-21 09:43:04 +01:00
Faruk AYDIN
6bf0e799a1 feat: Add isRefreshTokenRequested condition to auth in global variable 2022-11-21 09:43:04 +01:00
Ali BARIN
166dda4a4b feat(salesforce): implement refresh token logic 2022-11-21 09:43:04 +01:00
Ali BARIN
901605fd9c feat: add refresh token capability 2022-11-21 09:43:04 +01:00
dependabot[bot]
e3e8f570f8 chore(deps): bump loader-utils from 1.4.1 to 1.4.2
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-19 15:59:50 +01:00
Ali BARIN
6fdfdefe5c fix: use actual DB name in wait for postgres script 2022-11-19 13:37:36 +01:00
Faruk AYDIN
5cc1afa6de docs: Add explanation of automatic error handling for http client 2022-11-19 13:37:23 +01:00
Ali BARIN
4398570583 feat: show doc info in auth dialog in editor 2022-11-14 18:23:59 +01:00
Ömer Faruk Aydın
2e5b354f49 Merge pull request #716 from automatisch/plausible-docs
feat(docs): add plausible
2022-11-13 22:55:50 +01:00
Ali BARIN
11f96e8039 feat(docs): add plausible 2022-11-13 22:15:19 +01:00
Ömer Faruk Aydın
7ae1a079ea Merge pull request #715 from automatisch/chore/docker-compose-project-name
chore: Pass project name option to docker compose
2022-11-13 21:00:02 +01:00
Faruk AYDIN
b6d2624c4a chore: Pass project name option to docker compose 2022-11-13 20:54:31 +01:00
Ömer Faruk Aydın
51d6362863 Merge pull request #714 from automatisch/docker-compose-project-name
chore: add project name in docker compose
2022-11-13 16:30:13 +01:00
Ali BARIN
e30bfe67ed chore: add project name in docker compose 2022-11-13 16:19:11 +01:00
Faruk AYDIN
c5bcebad9a docs: Explain postgres user for db creation 2022-11-13 00:50:08 +01:00
Ömer Faruk Aydın
5deead7f94 Merge pull request #712 from automatisch/release/0.2.0
Release v0.2.0
2022-11-12 16:34:22 +01:00
Faruk AYDIN
2cff284122 chore: Update cli version in dockerfiles 2022-11-12 16:26:54 +01:00
Ali BARIN
5c78e6e7bf Release v0.2.0 2022-11-12 16:21:42 +01:00
Ömer Faruk Aydın
e8b06e9b78 Merge pull request #711 from automatisch/fix/wait-for-postgres-worker
fix: Wait for postgres in worker service
2022-11-12 16:17:33 +01:00
Faruk AYDIN
d67db9c63e fix: Wait for postgres in worker service 2022-11-12 16:15:06 +01:00
Faruk AYDIN
0dfdbc809c docs: Adjust the functionality of build integration 2022-11-11 09:54:05 +01:00
Faruk AYDIN
adddf23ae3 refactor: Check http error for actions 2022-11-11 09:53:53 +01:00
Ömer Faruk Aydın
eac3fd24a1 Merge pull request #708 from automatisch/docs/dynamic-data-explanation
docs: Change data to dynamic data for folder structure
2022-11-10 21:13:24 +01:00
Faruk AYDIN
599c0f8cfc docs: Change data to dynamic data for folder structure 2022-11-10 20:53:44 +01:00
Ömer Faruk Aydın
b1ec8467a6 Merge pull request #707 from automatisch/refactor/dynamic-data
refactor: Use getDynamicData instead of getData
2022-11-10 19:48:30 +01:00
Faruk AYDIN
d2b8d2beff refactor: Use getDynamicData instead of getData 2022-11-10 19:46:04 +01:00
Ömer Faruk Aydın
a415c7ef4e Merge pull request #706 from automatisch/docs/auth-fields
docs: Add $.app.auth.fields to global variable
2022-11-10 19:28:28 +01:00
Faruk AYDIN
1faf86a9cb docs: Add $.app.auth.fields to global variable 2022-11-10 19:22:18 +01:00
Ömer Faruk Aydın
3b7d2e9238 Merge pull request #705 from automatisch/docs/generate-auth-url
docs: Add tip info for generateAuthUrl method
2022-11-10 19:18:50 +01:00
Faruk AYDIN
829d0cafe9 docs: Add tip info for generateAuthUrl method 2022-11-10 19:16:06 +01:00
Ömer Faruk Aydın
a103ca9747 Merge pull request #704 from automatisch/expand-auth-arguments
feat: add .all support in auth arguments
2022-11-10 18:56:40 +01:00
Faruk AYDIN
81c41ef5ee refactor: Use generateAuthUrl method instead of createAuthData 2022-11-10 18:50:36 +01:00
Faruk AYDIN
10e2794ff9 refactor: Generate authentication steps from auth properties 2022-11-10 18:49:49 +01:00
Ali BARIN
6d3606abf0 refactor(twitter): use .all in auth args 2022-11-10 00:12:26 +01:00
Ali BARIN
bbace2b2c1 feat: add .all support in auth arguments 2022-11-10 00:12:09 +01:00
Ömer Faruk Aydın
5aa937f56a Merge pull request #703 from automatisch/docs/build-integrations
Docs/build integrations
2022-11-09 23:39:01 +01:00
Faruk AYDIN
44159af83e docs: Expands the explanation of already procesed control 2022-11-09 23:36:36 +01:00
Faruk AYDIN
98041b7af2 docs: Explain $.auth.set expands the value rather than overriding 2022-11-09 23:32:57 +01:00
Faruk AYDIN
72e1fe3c21 docs: Explain that trigger array order will be reflected on UI 2022-11-09 23:29:21 +01:00
Ömer Faruk Aydın
af8d1190c5 docs: Fix wording for the global variable page
Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2022-11-09 23:10:56 +01:00
Ömer Faruk Aydın
b07e564a23 Merge pull request #702 from automatisch/issue-663
feat: add circular progress in flow step
2022-11-09 22:45:31 +01:00
Faruk AYDIN
4b8ac0ff9c docs: Add explanation to include screenName in verify credentials 2022-11-09 22:42:51 +01:00
Faruk AYDIN
0d479426ed docs: Add $.step.parameters property to global variable 2022-11-09 22:42:51 +01:00
Faruk AYDIN
e956b2d959 docs: Separate the tips of pushTriggerItem method 2022-11-09 22:42:51 +01:00
Faruk AYDIN
580e97ffe3 docs: Adjust wording for building triggers and actions 2022-11-09 22:42:51 +01:00
Faruk AYDIN
1cb951056a docs: Fix grammar mistakes for build integrations 2022-11-09 22:42:51 +01:00
Faruk AYDIN
a973887db2 docs: Add explanation for not supporting webhook based triggers atm 2022-11-09 22:42:51 +01:00
Faruk AYDIN
86ae81526a docs: Fix the wording for actions of build integrations 2022-11-09 22:42:51 +01:00
Faruk AYDIN
9d62a552fe docs: Add explanation of setActionItem usage 2022-11-09 22:42:51 +01:00
Faruk AYDIN
5497084b57 docs: Add missing properties of global variable 2022-11-09 22:42:51 +01:00
Faruk AYDIN
39b7effc26 docs: Use tip box for the integration and app explanation 2022-11-09 22:42:51 +01:00
Faruk AYDIN
2c847f62af fix: Cat svg path problem for docs 2022-11-09 22:42:51 +01:00
Faruk AYDIN
01ac26de8c docs: Add warning to visit development setup page for integrations 2022-11-09 22:42:51 +01:00
Faruk AYDIN
c579eebd16 docs: Add content table for build integration pages 2022-11-09 22:42:51 +01:00
Faruk AYDIN
47afd60ddf docs: Add warning to say integration and app used interchangeably 2022-11-09 22:42:51 +01:00
Faruk AYDIN
f432e72253 docs: Add actions page to build integration section 2022-11-09 22:42:51 +01:00
Faruk AYDIN
d572623552 docs: Add examples page for build integrations 2022-11-09 22:42:51 +01:00
Faruk AYDIN
3a129557e0 docs: Add triggers page to build integrations guide 2022-11-09 22:42:51 +01:00
Faruk AYDIN
49fac8f147 docs: Add how to test authentication part to auth 2022-11-09 22:42:51 +01:00
Faruk AYDIN
3140fb2435 docs: Add auth page to build integration guide 2022-11-09 22:42:51 +01:00
Faruk AYDIN
22cea145f8 docs: Add global variable page 2022-11-09 22:42:51 +01:00
Ali BARIN
6c93d46ec1 feat: add circular progress in flow step 2022-11-09 00:47:04 +01:00
Ömer Faruk Aydın
3c73064b19 Merge pull request #700 from automatisch/dependabot/npm_and_yarn/loader-utils-1.4.1
chore(deps): bump loader-utils from 1.4.0 to 1.4.1
2022-11-08 23:57:17 +01:00
Ömer Faruk Aydın
247ac1f96f Merge branch 'main' into dependabot/npm_and_yarn/loader-utils-1.4.1 2022-11-08 23:34:46 +01:00
Ömer Faruk Aydın
642f32ab4e Merge pull request #701 from automatisch/fix-e2e-tests
test: replace Slack with DeepL
2022-11-08 23:34:22 +01:00
Ömer Faruk Aydın
41cb1c71c7 Merge pull request #699 from automatisch/issue-694
feat(web): add status in execution row
2022-11-08 23:33:58 +01:00
Ömer Faruk Aydın
41de2aa769 Merge pull request #698 from automatisch/issue-695
feat(web): hide empty error tab in execution step
2022-11-08 23:30:48 +01:00
Ömer Faruk Aydın
e9e7b679f4 Merge pull request #697 from automatisch/refactor-is-still-verified
refactor: abstract exception capture out of is-still-verified
2022-11-08 23:09:43 +01:00
Ali BARIN
c9022f4208 test: do not display empty error in execution step 2022-11-08 21:58:27 +01:00
Ali BARIN
0a4877993d test: replace Slack with DeepL 2022-11-08 21:58:02 +01:00
dependabot[bot]
ca74fa626a chore(deps): bump loader-utils from 1.4.0 to 1.4.1
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.1/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-08 20:36:16 +00:00
Ali BARIN
608038cbcc feat(web): add status in execution row 2022-11-08 21:04:56 +01:00
Ali BARIN
bf009ae13b chore(types): add status in Execution 2022-11-08 21:04:23 +01:00
Ali BARIN
bdb7a1b840 feat(web): hide empty error tab in execution step 2022-11-08 20:02:14 +01:00
Ali BARIN
d2b0a57064 refactor: abstract exception capture out of is-still-verified 2022-11-08 19:48:54 +01:00
Ali BARIN
dbceed563a feat: eager load apps 2022-11-08 00:49:55 +01:00
Ömer Faruk Aydın
cbf1d86c26 Merge pull request #688 from automatisch/revise-custom-errors
Revise custom errors
2022-11-07 22:56:31 +01:00
Faruk AYDIN
06a2014bc1 feat: Enrich error responses 2022-11-07 22:51:30 +01:00
Ali BARIN
ad46b3eea3 refactor: adapt errors in apps 2022-11-07 20:31:52 +01:00
Ali BARIN
5df7867b6d refactor(BaseError): leverage error.message 2022-11-07 20:31:52 +01:00
Ali BARIN
ceea962464 fix(AddAppConnection): word break error messages 2022-11-07 20:31:52 +01:00
Ömer Faruk Aydın
72386bc589 Merge pull request #693 from automatisch/chore/deepl-auth-field-typo
fix: Typo of DeepL authentication key field
2022-11-07 19:13:23 +01:00
Faruk AYDIN
34068a8188 fix: Typo of DeepL authentication key field 2022-11-07 19:03:17 +01:00
Ömer Faruk Aydın
414d521588 Merge pull request #692 from automatisch/docs/deepl-integration
docs: Add actions and connection pages for DeepL
2022-11-07 19:01:28 +01:00
Faruk AYDIN
d15e3d4c36 docs: Add actions and connection pages for DeepL 2022-11-07 18:58:45 +01:00
Ömer Faruk Aydın
81b850c1f7 Merge pull request #691 from automatisch/feature/deepl-integration
feat: Add DeepL integration with translate text action
2022-11-07 18:55:53 +01:00
Faruk AYDIN
527dfe6971 feat: Add DeepL integration with translate text action 2022-11-07 18:46:51 +01:00
Faruk AYDIN
d681d06de1 docs: Add salesforce to available apps 2022-11-07 09:55:33 +01:00
Ömer Faruk Aydın
9fe8ef0238 Merge pull request #689 from automatisch/describe-sf-auth
docs(salesforce): describe auth and triggers
2022-11-06 22:27:25 +01:00
Ali BARIN
99640b3d73 docs(salesforce): describe auth and triggers 2022-11-06 21:30:05 +01:00
Ömer Faruk Aydın
c9925ba8fe Merge pull request #687 from automatisch/docs/app-definition
docs: Add app definition page for build integrations
2022-11-06 11:26:09 +01:00
Faruk AYDIN
3b829af43d docs: Add app definition page for build integrations 2022-11-06 02:03:37 +01:00
Ömer Faruk Aydın
2abe23f918 Merge pull request #686 from automatisch/lint
Auto format whole project
2022-11-06 00:06:05 +01:00
Ali BARIN
475f24f661 style: auto format whole project 2022-11-05 23:57:33 +01:00
Ali BARIN
e338770e57 chore: add prettier as default formatter 2022-11-05 22:44:43 +01:00
Ömer Faruk Aydın
6bb2a583de Merge pull request #685 from automatisch/refactor/use-app-key
refactor: Use app key instead of name for new connection url
2022-11-05 22:33:37 +01:00
Faruk AYDIN
74bbbf55f8 refactor: Use app key instead of name for new connection url 2022-11-05 21:34:58 +01:00
Ömer Faruk Aydın
20b87cb000 Merge pull request #684 from automatisch/chore/before-request
chore: Make beforeRequest field optional for IApp
2022-11-05 21:31:43 +01:00
Faruk AYDIN
a3d82c5d70 chore: Make beforeRequest field optional for IApp 2022-11-05 21:29:07 +01:00
Ömer Faruk Aydın
c778c0c111 Merge pull request #683 from automatisch/docs/folder-structure
docs: Add folder structure page to build integrations section
2022-11-05 20:42:06 +01:00
Faruk AYDIN
bb7ef994f7 docs: Add folder structure page to build integrations section 2022-11-05 20:12:40 +01:00
Ömer Faruk Aydın
278b1ed7c0 Merge pull request #682 from automatisch/salesforce/replace-object-with-record
refactor(salesforce): replace object with record
2022-11-05 16:13:17 +01:00
Ali BARIN
08bfb953de refactor(salesforce): replace object with record 2022-11-05 15:33:08 +01:00
Ömer Faruk Aydın
276b1ef4cd Merge pull request #681 from automatisch/salesforce/updated-field-in-object
feat(salesforce): add updated field in objects trigger
2022-11-05 15:02:14 +01:00
Faruk AYDIN
cbd408ae89 fix(salesforce): Implement guard for list objects 2022-11-05 14:53:38 +01:00
Ali BARIN
fc6822a298 feat(salesforce): add updated field in objects trigger 2022-11-05 02:43:14 +01:00
Ali BARIN
43b7e506a7 fix(web): add missing options in GetApps query 2022-11-05 02:42:46 +01:00
Ali BARIN
f11a4b8472 fix(TestSubstep): don't show length of empty errors 2022-11-05 02:41:55 +01:00
Ali BARIN
927ceb6768 feat(salesforce): add list fields data 2022-11-05 02:41:12 +01:00
Ali BARIN
3d9249192c feat(salesforce): add list objects data 2022-11-05 02:40:46 +01:00
Ömer Faruk Aydın
243e50465f Merge pull request #680 from automatisch/chore/use-definitive-article
chore: Use definitive article for the license
2022-11-05 00:53:32 +01:00
Faruk AYDIN
d539bc6fc8 chore: Use definitive article for the license 2022-11-05 00:41:38 +01:00
Ömer Faruk Aydın
6fc52c8b4c Merge pull request #679 from automatisch/docs/contributing-section
docs: Add contributing sections to homepage
2022-11-04 23:52:38 +01:00
Ömer Faruk Aydın
df3bf4ce11 Merge pull request #678 from automatisch/fix/overflow-docs
fix: Add overflow-y scroll to root css of docs
2022-11-04 23:52:25 +01:00
Faruk AYDIN
c35753c63e docs: Add contributing sections to homepage 2022-11-04 23:47:51 +01:00
Faruk AYDIN
8d2cac5018 fix: Add overflow-y scroll to root css of docs 2022-11-04 23:46:59 +01:00
Ömer Faruk Aydın
a8c8efb4bd Merge pull request #676 from automatisch/salesforce/auth
feat(salesforce): add authentication
2022-11-04 01:24:21 +01:00
Ömer Faruk Aydın
c94b52aa61 Merge pull request #677 from automatisch/chore/change-auth-doc-url-of-apps
chore: Adjust auth doc url of apps to new links
2022-11-04 00:38:04 +01:00
Faruk AYDIN
f1d319601e chore: Adjust auth doc url of apps to new links 2022-11-04 00:19:41 +01:00
Ömer Faruk Aydın
00a0efc945 Merge branch 'main' into salesforce/auth 2022-11-03 23:34:20 +01:00
Ömer Faruk Aydın
f175ada782 Merge pull request #674 from automatisch/remove-reconnection-steps
Remove reconnection steps
2022-11-03 23:33:49 +01:00
Ali BARIN
ede55a70aa feat(salesforce): add authentication 2022-11-03 23:12:33 +01:00
Ali BARIN
7d82ca5d3c fix(InputCreator): show default value in dropdown 2022-11-03 23:12:33 +01:00
Ali BARIN
6a33636d9d refactor: compute reconnectionSteps out of auth steps 2022-11-03 23:12:09 +01:00
Ali BARIN
a03c60bd90 refactor: remove step property out of app auth 2022-11-03 23:12:09 +01:00
Ömer Faruk Aydın
4b122bd19e Merge pull request #675 from automatisch/remove-github-token-info-func
refactor(github): remove getTokenInfo function
2022-11-03 23:11:17 +01:00
Ali BARIN
c386b001ba refactor(github): remove getTokenInfo function 2022-11-03 20:16:57 +01:00
Ömer Faruk Aydın
9d5e54c2d9 Merge pull request #673 from automatisch/issue-495
feat(slack): add bot capability in send message action
2022-11-03 18:04:25 +01:00
Ali BARIN
2ffce75056 refactor(slack): move scopes out of function definition 2022-11-03 18:01:35 +01:00
Ali BARIN
ff76e37efc docs(slack): add bot token scope for bot functionality 2022-11-03 01:08:27 +01:00
Ali BARIN
ae3d547c3f fix(slack): uncomment users.profile:read user scope 2022-11-03 00:56:42 +01:00
Ali BARIN
a52e365b88 docs(slack): describe oauth2 connection 2022-11-02 21:01:55 +01:00
Ali BARIN
fa7b7d8781 feat(slack): add bot capability in send message action 2022-11-02 20:29:59 +01:00
Ali BARIN
f057501611 feat(slack): use oauth2 authentication flow 2022-11-02 20:28:07 +01:00
Ali BARIN
e740d4fe25 feat(slack): use current user to validate connection 2022-11-02 20:28:07 +01:00
Ali BARIN
dbcf8fde7f feat(types): add additionalProperties in requestConfig 2022-11-02 20:28:07 +01:00
Ali BARIN
b4a4f47f78 feat(slack): add get-current-user helper 2022-11-02 20:28:07 +01:00
Ali BARIN
362c8dc25d fix: keep parameters not needing computation 2022-11-02 20:28:07 +01:00
Ömer Faruk Aydın
18b0a41a40 Merge pull request #672 from automatisch/fix/docs-app-images
fix: Use withBase method for app images on documentation
2022-11-02 19:08:09 +01:00
Faruk AYDIN
d43f77a894 fix: Use withBase method for app images on documentation 2022-11-02 18:48:34 +01:00
Ömer Faruk Aydın
aeeb058ebb Merge pull request #670 from automatisch/docs/restructure-apps
Restructure apps on docs
2022-11-01 22:55:38 +01:00
Faruk AYDIN
e57122c4ff refactor: Restructure names, keys and descs of triggers and actions 2022-11-01 22:48:22 +01:00
Faruk AYDIN
802a9bd2e2 docs: Restructure apps documentation, add triggers and actions 2022-11-01 22:40:12 +01:00
Ömer Faruk Aydın
b63603afb6 Merge pull request #668 from automatisch/refactor/action-arguments
refactor: Use only arguments for action definitions
2022-11-01 00:50:45 +01:00
Faruk AYDIN
d6c0690324 refactor: Differentiate trigger and action for get app helper 2022-10-31 23:31:28 +01:00
Faruk AYDIN
1cfe84fc3d refactor: Use only arguments for action definitions 2022-10-31 23:25:55 +01:00
Ömer Faruk Aydın
bcfc9beb99 Merge pull request #669 from automatisch/docs/remove-typeform-connection
docs: Remove typeform connection guide
2022-10-31 22:55:19 +01:00
Faruk AYDIN
cb839637ab docs: Remove typeform connection guide 2022-10-31 22:09:03 +01:00
Ömer Faruk Aydın
6dc795fe45 Merge pull request #667 from automatisch/refactor/user-args-for-actions
refactor: Specify only the arguments for trigger definitions
2022-10-31 22:04:31 +01:00
Faruk AYDIN
b3f216209a refactor: Specify only the arguments for trigger definitions 2022-10-31 18:12:12 +01:00
Ömer Faruk Aydın
571bf6bfa7 Merge pull request #666 from automatisch/discord/send-message-to-channel
feat(discord): add send message to channel action
2022-10-30 23:16:26 +01:00
Ali BARIN
f272e5c4a8 docs: add discord in connections 2022-10-30 23:12:04 +01:00
Ali BARIN
d8a91ac62d docs(discord): describe discord setup 2022-10-30 22:52:56 +01:00
Ömer Faruk Aydın
92b0c5e409 Merge pull request #665 from automatisch/chore/remove-sorting
chore: Remove sorting logic from flow service
2022-10-30 22:29:08 +01:00
Ali BARIN
dfa076ba89 feat(discord): add send message to channel action 2022-10-30 22:28:50 +01:00
Ali BARIN
79e609e682 feat(discord): add list channels data 2022-10-30 22:28:16 +01:00
Ali BARIN
9c40bc5863 fix(web): discard failed auth process 2022-10-30 22:27:27 +01:00
Faruk AYDIN
7b18937530 chore: Remove sorting logic from flow service 2022-10-30 22:25:32 +01:00
Ali BARIN
c2b020fc94 feat(discord): use bot auth instead of user 2022-10-30 22:25:11 +01:00
Ömer Faruk Aydın
798769d5ae Merge pull request #664 from automatisch/chore/update-bullmq
chore: Update BullMQ version to 3.0.0
2022-10-30 21:14:19 +01:00
Faruk AYDIN
9546d76dc9 fix: Use pattern instead of cron for repeatable job options 2022-10-30 18:57:35 +01:00
Faruk AYDIN
6964f7ebec chore: Update BullMQ version to 3.0.0 2022-10-30 18:52:53 +01:00
Ömer Faruk Aydın
e58b7166ad Merge pull request #662 from automatisch/chore/remove-redundant-libraries
chore: Remove redundant libraries of backend
2022-10-30 16:58:26 +01:00
Faruk AYDIN
d881cfeeb0 chore: Add type file to twilio app 2022-10-30 16:55:49 +01:00
Faruk AYDIN
854dc6f61a chore: Remove redundant libraries of backend 2022-10-30 16:50:33 +01:00
Ali BARIN
1a3345e521 chore(backend): remove excluding apps in tsconfig 2022-10-30 15:49:19 +01:00
Ömer Faruk Aydın
8632b29719 Merge pull request #659 from automatisch/feat/http-basic-auth-for-bullmq
feat: Add http basic auth for BullMQ dashboard
2022-10-30 15:20:02 +01:00
Ömer Faruk Aydın
24a3c3fd1c Merge pull request #660 from automatisch/chore/use-string-for-app-keys
chore: Remove available apps enum type and use string instead
2022-10-30 15:19:51 +01:00
Faruk AYDIN
115a46d2e7 chore: Remove available apps enum type and use string instead 2022-10-30 15:17:10 +01:00
Faruk AYDIN
cd5502fdde feat: Add http basic auth for BullMQ dashboard 2022-10-30 15:11:22 +01:00
Ömer Faruk Aydın
53bbde4314 Merge pull request #652 from automatisch/feature/new-sms-trigger
feat: Implement twilio new sms trigger
2022-10-30 14:39:23 +01:00
Faruk AYDIN
9506c22016 feat: Implement twilio receive sms trigger 2022-10-30 14:06:35 +01:00
Ömer Faruk Aydın
f3f9af9fdf Merge pull request #658 from automatisch/discord/auth
feat(discord): add auth
2022-10-30 13:37:14 +01:00
Ali BARIN
2f9e40fc0e feat(discord): add auth 2022-10-30 12:47:35 +01:00
Ömer Faruk Aydın
c46fbef03c Merge pull request #657 from automatisch/embed-actions-triggers-data-auth-in-app
refactor: inline auth, data, triggers and actions in apps
2022-10-28 23:33:22 +02:00
Ali BARIN
9a973c8257 refactor: inline auth, data, triggers and actions in apps 2022-10-28 22:38:52 +02:00
Ömer Faruk Aydın
c2c8973dd5 Merge pull request #656 from automatisch/feature/docs-search
feat: Add search functionality to docs
2022-10-28 20:51:42 +02:00
Faruk AYDIN
b178807a39 feat: Add search functionality to docs 2022-10-28 20:45:22 +02:00
Ömer Faruk Aydın
179fe512af Merge pull request #655 from automatisch/refactor/integration-structure
Refactor integration structure
2022-10-28 20:14:18 +02:00
Ömer Faruk Aydın
964a38db2c chore: Add explanations to early exit conditions of global variable
Co-authored-by: Ali BARIN <ali.barin53@gmail.com>
2022-10-28 20:07:31 +02:00
Faruk AYDIN
2b38e5a0dd chore: Use last 2000 records as deduplication list 2022-10-28 13:46:08 +02:00
Faruk AYDIN
d8e1f6df81 refactor: Remove test run and completion check for flick triggers 2022-10-28 13:43:01 +02:00
Faruk AYDIN
c3a54e0c69 feat: Introduce http error class 2022-10-28 13:36:28 +02:00
Faruk AYDIN
2b6ff7de41 refactor: Remove dedupeStrategy field from triggers 2022-10-28 13:23:51 +02:00
Faruk AYDIN
ae58e629ea fix: Do not push recent trigger item in case of already processed 2022-10-28 13:22:15 +02:00
Faruk AYDIN
18ccb25b29 refactor: Remove is already processed from new feed items 2022-10-28 01:16:32 +02:00
Faruk AYDIN
74d7e472af refactor: Remove test run and completion check from new photos 2022-10-28 01:12:20 +02:00
Faruk AYDIN
232ba230eb refactor: Remove test run and completion check from new pull requests 2022-10-28 01:12:20 +02:00
Faruk AYDIN
031e175e9f refactor: Remove test run and completion check from new issues 2022-10-28 01:12:20 +02:00
Faruk AYDIN
87fdc02224 refactor: Remove test run and completion logic from new watchers 2022-10-28 01:12:20 +02:00
Faruk AYDIN
3308a44c2b refactor: Remove testRun and completion check from new stargazers 2022-10-28 01:12:20 +02:00
Faruk AYDIN
796121acfc chore: Remove redundant IActionOutput type import 2022-10-28 01:12:20 +02:00
Faruk AYDIN
8e0553147b refactor: Remove testRun logic from get user followers 2022-10-28 01:12:20 +02:00
Faruk AYDIN
96007a1f48 refactor: Remove pagination and test run checks from user tweets 2022-10-28 01:12:20 +02:00
Faruk AYDIN
5189e5b131 refactor: Adjust pagination and test run for search tweets 2022-10-28 01:12:20 +02:00
Faruk AYDIN
11dc650e0e refactor: Remove dedupe strategies, use only dedupe list 2022-10-28 01:12:20 +02:00
Faruk AYDIN
baebec2270 feat: Add base and early exit error classes 2022-10-28 01:12:20 +02:00
Ali BARIN
419d84da97 feat(rss): add new items in feed trigger 2022-10-28 00:57:48 +02:00
Faruk AYDIN
7d7c96274d feat: Implement send sms action of twilio 2022-10-26 18:35:41 +02:00
Ömer Faruk Aydın
4553084503 Merge pull request #649 from automatisch/flickr/new-album
feat(flickr): add new albums trigger
2022-10-26 18:21:10 +02:00
Ömer Faruk Aydın
30bd56b984 Merge pull request #650 from automatisch/fix/e2e-tests-more-than-one-app
test(list-apps): assert apps length to be at least 1
2022-10-26 18:20:21 +02:00
Ali BARIN
4292517a86 test(list-apps): assert apps length to be at least 1 2022-10-26 01:26:44 +02:00
Ali BARIN
f8c7e601a5 feat(flickr): add new albums trigger 2022-10-26 00:54:29 +02:00
Ali BARIN
fbc867b4fa fix: cover _ in variable regex 2022-10-26 00:11:59 +02:00
Ali BARIN
1644bfeb43 feat(flickr): add new photos in an album trigger 2022-10-26 00:11:49 +02:00
Ali BARIN
7cc82eb143 feat(flickr): add list albums dynamic data 2022-10-26 00:11:49 +02:00
Ömer Faruk Aydın
5c13c81de9 Merge pull request #646 from automatisch/docs/twilio-connection
docs: Add connection setup guide for Twilio
2022-10-25 22:38:27 +02:00
Faruk AYDIN
1b80db1eba docs: Add connection setup guide for Twilio 2022-10-25 22:02:47 +02:00
Faruk AYDIN
30d2740368 feat: Implement twilio connection 2022-10-25 20:08:11 +02:00
Ömer Faruk Aydın
8fb58cf662 Merge pull request #644 from automatisch/docs/available-apps
Docs/available apps
2022-10-25 20:01:06 +02:00
Ömer Faruk Aydın
3b4ad0d9c7 Merge pull request #643 from automatisch/feature/smtp-send-email
feat: Implement send email action
2022-10-25 19:59:22 +02:00
Ömer Faruk Aydın
abe4ebe66a Merge pull request #642 from automatisch/refactor/use-set-action-item
refactor: Use setActionItem method to push action data item
2022-10-25 19:59:13 +02:00
Ömer Faruk Aydın
ad1514c60b Merge pull request #641 from automatisch/fix/stargazer-data-order
fix: Iterate stargazer data reverse-chronologically
2022-10-25 19:59:03 +02:00
Faruk AYDIN
81ff07ec28 docs: Add generic explanation to github connection guide 2022-10-25 19:57:36 +02:00
Faruk AYDIN
7cd45a5ca3 docs: Sort connections alphabetically on the sidebar 2022-10-25 19:57:36 +02:00
Faruk AYDIN
e27a941425 docs: Use limited word for explaining available apps 2022-10-25 19:57:36 +02:00
Faruk AYDIN
f2c9adf2ef docs: Add recently implemented apps to available apps 2022-10-25 19:57:36 +02:00
Faruk AYDIN
8dfb919aa0 feat: Implement send email action 2022-10-25 19:50:36 +02:00
Faruk AYDIN
4cfae2d9c6 refactor: Use setActionItem method to push action data item 2022-10-25 19:49:33 +02:00
Ali BARIN
6b8e44a952 fix(flickr): name new photo trigger as plural 2022-10-25 19:49:02 +02:00
Ali BARIN
6b40d206f8 feat(flickr): add new fav photos trigger 2022-10-25 19:49:02 +02:00
Ali BARIN
524c3c22dc refactor(flickr): add isAlreadyProcessed for greatest dedupe strategy 2022-10-25 19:49:02 +02:00
Faruk AYDIN
d39cf2f051 fix: Iterate stargazer data reverse-chronologically 2022-10-25 19:48:37 +02:00
Faruk AYDIN
b2caea9b9b chore: Remove temporary app list from app model 2022-10-24 18:36:07 +02:00
Faruk AYDIN
ea76b5b762 refactor: Use pushTriggerItem utility function for triggers 2022-10-24 18:24:08 +02:00
Ömer Faruk Aydın
bda7ad9f2f Merge pull request #637 from automatisch/flickr/new-photos
feat(flickr): add new photos trigger
2022-10-23 23:43:23 +02:00
Ali BARIN
aa8d1d984c fix(github): iterate over next pages in actual run 2022-10-23 21:29:00 +02:00
Ali BARIN
4d54a608a6 feat(flickr): add new photos trigger 2022-10-23 21:28:53 +02:00
Ömer Faruk Aydın
6466606f49 Merge pull request #636 from automatisch/docs/smtp-guide
Add connection guide for SMTP
2022-10-23 20:29:17 +02:00
Faruk AYDIN
ca52bee808 docs: Remove redundant sentence from flick connection guide 2022-10-23 20:25:13 +02:00
Faruk AYDIN
8e3ef4873f docs: Add connection guide for SMTP 2022-10-23 20:24:29 +02:00
Faruk AYDIN
274d0eb2fd chore: Use argument option also for action substep argument 2022-10-23 20:12:48 +02:00
Faruk AYDIN
61cf45697c fix: Use arguments and formattedData for smtp auth 2022-10-23 20:12:48 +02:00
Faruk AYDIN
cb8f6f7b75 feat: Add argument option to connections of get app query 2022-10-23 20:12:48 +02:00
Faruk AYDIN
3978e8cd0d feat: Implement smtp connection 2022-10-23 20:12:48 +02:00
Faruk AYDIN
d816446c5e docs: Explain how to disable telemetry 2022-10-23 17:55:41 +02:00
Ömer Faruk Aydın
70f1aaab15 Merge pull request #631 from automatisch/add-flickr-auth
feat(flickr): add authentication
2022-10-23 00:12:51 +02:00
Ali BARIN
cccdb49075 docs(flickr): describe authentication 2022-10-23 00:02:59 +02:00
Ali BARIN
71d6a57cdc feat(flickr): add authentication 2022-10-22 23:55:06 +02:00
Ömer Faruk Aydın
05075fc1c4 Merge pull request #632 from automatisch/feature/extended-error-handler
Extend error handling logic to capture errors
2022-10-22 23:11:02 +02:00
Faruk AYDIN
a1692c3c37 fix: Adjust sorting for new stargazers trigger 2022-10-22 21:47:39 +02:00
Faruk AYDIN
d5cecde0e1 fix: Adjust sorting for new pull requests 2022-10-22 21:47:21 +02:00
Faruk AYDIN
b0dc0adf0e chore: Remove postgresql app with the old architecture 2022-10-22 21:09:38 +02:00
Faruk AYDIN
2bb058da36 fix: Adjust action item of slack post message 2022-10-22 19:50:25 +02:00
Faruk AYDIN
a56135ca57 refactor: Restructure apps with new data pushing logic 2022-10-22 19:29:02 +02:00
Faruk AYDIN
bcff9f5a9e refactor: Remove dedundant httpError assignment 2022-10-22 13:49:35 +02:00
Faruk AYDIN
59b9c66a91 refactor: Use global output with github stargazers 2022-10-22 13:49:32 +02:00
Faruk AYDIN
0f63f6d453 refactor: Use global output with scheduler triggers 2022-10-22 13:48:56 +02:00
Faruk AYDIN
585adb14e6 refactor: Use global output with slack actions 2022-10-22 13:48:56 +02:00
Faruk AYDIN
00be50d2fd refactor: Restructure create tweet with new global variable 2022-10-22 13:48:56 +02:00
Faruk AYDIN
7e2dd95134 chore: Differentiate trigger and action output types 2022-10-22 13:48:55 +02:00
Faruk AYDIN
64807fbc11 refactor: Add sort logic into my tweets trigger 2022-10-22 13:48:55 +02:00
Faruk AYDIN
204a8ffb7f refactor: No need to return from run methods for twitter triggers 2022-10-22 13:48:55 +02:00
Faruk AYDIN
aef097becb refactor: Use new error handling structure for user tweets 2022-10-22 13:48:55 +02:00
Faruk AYDIN
9a743fb4a8 feat: Capture unhandled errors by restructuring apps 2022-10-22 13:48:49 +02:00
Ali BARIN
525472d3e0 feat(github): add create issue action 2022-10-21 21:25:05 +02:00
Ali BARIN
d2e4f0d143 feat(github): add new watcher trigger 2022-10-21 21:24:55 +02:00
Ali BARIN
120a4c2b07 fix: mark step completed only when successful 2022-10-21 21:24:47 +02:00
Ali BARIN
97f88d6c4a feat(github): add new pull requests trigger 2022-10-21 21:24:47 +02:00
Ali BARIN
1613ab503c refactor(github): replace generateRequest with $.http 2022-10-20 20:45:52 +02:00
Faruk AYDIN
45bf274dc0 fix: Trigger sorting for tweets 2022-10-20 00:38:25 +02:00
Ömer Faruk Aydın
858737c25c Merge pull request #625 from automatisch/github-new-stargazers
feat(github): add new stargazer trigger
2022-10-20 00:28:48 +02:00
Ömer Faruk Aydın
ee31cfd390 Merge branch 'main' into github-new-stargazers 2022-10-20 00:05:01 +02:00
Ömer Faruk Aydın
5dae0edcf3 Merge pull request #624 from automatisch/github-new-issues
feat(github): add new issues trigger
2022-10-20 00:04:49 +02:00
Ali BARIN
e4dd7e454a feat(github): add new stargazer trigger 2022-10-19 22:57:10 +02:00
Ali BARIN
486e817a40 fix(github): return empty without repo in getRepoOwnerAndRepo helper 2022-10-19 22:56:52 +02:00
Ali BARIN
91ec19c7df fix(useDynamicData): throw error when dependency is undefined 2022-10-19 22:56:52 +02:00
Ali BARIN
f3f4ea5b60 fix(action): create empty execution step if needed 2022-10-19 22:56:52 +02:00
Ali BARIN
859b3e2db8 fix(trigger): create empty execution step if needed 2022-10-19 22:56:52 +02:00
Ali BARIN
3d836b45bf fix(github): return empty in list labels without repo 2022-10-19 22:56:52 +02:00
Ali BARIN
4670e2fe0c fix: reset field when its deps are not satisfied 2022-10-19 22:56:52 +02:00
Ali BARIN
3440b89b04 fix: use runtime parameters in get-data query 2022-10-19 22:56:52 +02:00
Ali BARIN
1458003536 feat(github): add new-issues trigger 2022-10-19 22:56:47 +02:00
Ali BARIN
eaf3c1ecfd feat(github): add list-labels dynamic data 2022-10-19 20:37:19 +02:00
Ali BARIN
12e73d59d5 feat(github): add list-repos dynamic data 2022-10-19 20:37:19 +02:00
Ali BARIN
51059b0f39 refactor(github): export default in get-repo-owner-and-repo 2022-10-19 20:37:19 +02:00
Ali BARIN
0b8b5aeebd feat(github): add paginate-all utility 2022-10-19 20:37:19 +02:00
Ali BARIN
cd795a55d3 feat: add parse-header-link helper 2022-10-19 20:37:19 +02:00
Ömer Faruk Aydın
922f86f20c Merge pull request #623 from automatisch/chore/remove-default-column-values
chore: Remove default values from fields of database models
2022-10-19 19:58:33 +02:00
Ömer Faruk Aydın
b8b2e3e3d2 Merge pull request #622 from automatisch/feature/add-status-to-get-executions
feat: Add dynamic status field to get executions graphQL query
2022-10-19 19:58:21 +02:00
Faruk AYDIN
74aed833bf chore: Remove default values from fields of database models 2022-10-19 19:22:11 +02:00
Faruk AYDIN
04a5378e1b feat: Add dynamic status field to get executions graphQL query 2022-10-19 18:48:02 +02:00
Ömer Faruk Aydın
dc0f374110 Merge pull request #620 from automatisch/refactor/restructure-slack
refactor: Use beforeRequest hook with slack app
2022-10-18 23:11:13 +02:00
Faruk AYDIN
7422f63c62 refactor: Use beforeRequest hook with slack app 2022-10-18 23:01:56 +02:00
Faruk AYDIN
3004cf1115 feat: Implement create tweet action 2022-10-18 19:57:53 +02:00
Faruk AYDIN
a5e114ac68 refactor: Restructure twitter app with beforeRequest hook 2022-10-18 19:45:00 +02:00
Faruk AYDIN
bc402883b3 feat: Add sitemap for the docs website 2022-10-18 18:50:26 +02:00
Ömer Faruk Aydın
72599c6683 Merge pull request #616 from automatisch/add-define-app-and-before-request
feat: add defineApp and beforeRequest
2022-10-18 00:34:56 +02:00
Ali BARIN
1760c6e454 feat: add defineApp and beforeRequest 2022-10-17 23:52:48 +02:00
Faruk AYDIN
3e05d7b5e9 fix: Use apiBaseUrl for twitter generate request method 2022-10-17 23:29:28 +02:00
Ömer Faruk Aydın
e9f7dcf030 Merge pull request #614 from automatisch/github-auth
refactor: clean up github and rewrite its auth
2022-10-17 00:20:32 +02:00
Ali BARIN
314787f39c refactor: clean up github and rewrite its auth 2022-10-16 23:34:21 +02:00
Ömer Faruk Aydın
a69cd51dda Merge pull request #613 from automatisch/feat/show-soft-deleted-executions
feat: Query soft-deleted executions and execution steps
2022-10-16 15:20:22 +02:00
Faruk AYDIN
d1932a107b feat: Query soft-deleted executions and execution steps 2022-10-16 15:00:08 +02:00
Ömer Faruk Aydın
670ebe5d37 Merge pull request #554 from automatisch/issue-553
feat: soft delete database entities
2022-10-16 13:43:15 +02:00
Ömer Faruk Aydın
b92e0b9660 Merge branch 'main' into issue-553 2022-10-16 13:23:07 +02:00
Ömer Faruk Aydın
664cd1d0cd Merge pull request #612 from ThuH2305/patch-4
docs(readme): remove trailing slash in docs link
2022-10-16 13:22:01 +02:00
Thu Huynh
efc4588a00 docs(readme): remove trailing slash in docs link 2022-10-16 13:20:15 +02:00
Ali BARIN
92a2d68a81 feat: add defineTrigger and defineAction 2022-10-16 11:15:05 +02:00
Ömer Faruk Aydın
ee9d095454 Merge pull request #610 from automatisch/chore/add-canonical-urls-to-docs
chore: Add canonical URLs to doc pages
2022-10-16 11:04:18 +02:00
Ömer Faruk Aydın
b9450e3c55 Merge pull request #609 from automatisch/fix/use-dev-dependecy-for-vitepress
fix: Use dev dependencies for vitepress
2022-10-16 11:04:06 +02:00
Faruk AYDIN
fe40e16e33 chore: Add canonical URLs to doc pages 2022-10-16 01:23:34 +02:00
Faruk AYDIN
8f5901753e fix: Use dev dependencies for vitepress 2022-10-16 00:50:21 +02:00
Thu Huynh
9005256cd3 chore(docs): update copyright date 2022-10-15 23:55:42 +02:00
Ali BARIN
ace2436e43 feat(FlowEditor): allow adding new connection in step 2022-10-15 23:52:37 +02:00
Ömer Faruk Aydın
d83db08b81 Merge pull request #606 from automatisch/feat/use-clean-doc-urls
feat: Use clean URLs for docs
2022-10-15 22:05:51 +02:00
Faruk AYDIN
fd0d4dceca feat: Use clean URLs for docs 2022-10-15 21:58:24 +02:00
Ali BARIN
6f0a763589 fix(scheduler): return TriggerDataItem 2022-10-15 20:43:11 +02:00
Ömer Faruk Aydın
0849801ae9 Merge pull request #603 from automatisch/issue-598
fix: only show apps with actions in action step
2022-10-15 13:41:09 +02:00
Ali BARIN
c0dfc101b2 fix: only show apps with actions in action step 2022-10-15 13:35:14 +02:00
Faruk AYDIN
b5e5ae7321 fix: Do not sort user tweets since it's in reverse-chronological order 2022-10-15 11:51:28 +02:00
Thu Huynh
39792d25d8 docs(readme): remove github community link 2022-10-14 23:57:15 +02:00
Ömer Faruk Aydın
20c0451c86 Merge pull request #600 from automatisch/refactor/remove-search-term
refactor: Do not expose search term separately for search tweets
2022-10-14 23:53:52 +02:00
Faruk AYDIN
8a883765d4 refactor: Do not expose search term separately for search tweets 2022-10-14 23:51:00 +02:00
Faruk AYDIN
cad42eed54 refactor: Remove test run methods from triggers 2022-10-14 23:47:50 +02:00
Ömer Faruk Aydın
a7f68f80d1 Merge branch 'main' into issue-553 2022-10-14 22:36:45 +02:00
Ömer Faruk Aydın
c422ca530d Merge pull request #596 from automatisch/refactor/background-jobs
refactor: Extract processor job into separate background jobs
2022-10-14 22:36:06 +02:00
Faruk AYDIN
237ab48d33 refactor: Restructure workers to work with services 2022-10-14 22:33:26 +02:00
Faruk AYDIN
628f872180 refactor: Implement test run helper to work with services 2022-10-14 20:18:58 +02:00
Faruk AYDIN
56a9aeece7 refactor: Extract processor job into separate background jobs 2022-10-13 18:45:30 +02:00
Faruk AYDIN
3c3bb82e97 refactor: Remove early exit strategy for twitter triggers 2022-10-12 23:23:08 +02:00
Faruk AYDIN
d9192f6e6b refactor: Introduce IActionOutput and ITriggerOutput types 2022-10-12 22:50:42 +02:00
Ali BARIN
2e31e821b3 Merge branch 'main' into issue-553 2022-10-12 18:02:53 +02:00
Zeynep Nur Temel
6895378d33 docs: fix description of Slack connection 2022-10-12 17:52:42 +02:00
Thu Huynh
f2f99fda31 docs: fix documentation link in README 2022-10-12 17:50:15 +02:00
Ali BARIN
56b7763488 chore: remove unused twilio app 2022-10-09 16:55:08 +02:00
Ali BARIN
12bbcd7887 chore: remove unused twitch app 2022-10-09 16:54:58 +02:00
Ali BARIN
b42c27b02f chore: remove unused typeform app 2022-10-09 16:54:52 +02:00
Ali BARIN
e34ac3c485 chore: remove unused smtp app 2022-10-09 16:54:46 +02:00
Ali BARIN
54bbc0d79c chore: remove unused gitlab app 2022-10-09 16:54:39 +02:00
Ali BARIN
3a186ebb1a chore: remove unused firebase app 2022-10-09 14:57:56 +02:00
Ali BARIN
119650048e chore: delete unused discord app 2022-10-09 14:57:23 +02:00
Ali BARIN
ec8e57972a Release v0.1.5 2022-10-09 10:21:05 +02:00
Ali BARIN
0d04e1534d chore: update cli version with 0.1.5 in Dockerfiles 2022-10-09 10:21:05 +02:00
Ali BARIN
a2602cd2c8 Merge branch 'main' into issue-553 2022-10-08 15:03:51 +02:00
Ali BARIN
56c8666f02 fix: associate executions in User model for types 2022-09-29 19:54:41 +02:00
Ali BARIN
1404650566 chore: update querybuilder type in flow model 2022-09-29 19:54:08 +02:00
Ali BARIN
6a438a34f0 chore: update query param type in pagination helper 2022-09-29 19:53:45 +02:00
Ali BARIN
816d63676d feat: add withSoftDeleted functionality in base model 2022-09-29 11:18:03 +02:00
Ali BARIN
8be352765e feat: soft delete database entities 2022-09-29 10:18:52 +02:00
Ali BARIN
038b38879f chore(backend): add soft delete migration 2022-09-28 21:38:33 +02:00
2268 changed files with 79239 additions and 50261 deletions

1
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1 @@
FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu-22.04

44
.devcontainer/boot.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/bin/bash
CURRENT_DIR="$(pwd)"
BACKEND_PORT=3000
WEB_PORT=3001
echo "Configuring backend environment variables..."
cd packages/backend
rm -rf .env
echo "
PORT=$BACKEND_PORT
WEB_APP_URL=http://localhost:$WEB_PORT
APP_ENV=development
POSTGRES_DATABASE=automatisch
POSTGRES_PORT=5432
POSTGRES_HOST=postgres
POSTGRES_USERNAME=automatisch_user
POSTGRES_PASSWORD=automatisch_password
ENCRYPTION_KEY=sample_encryption_key
WEBHOOK_SECRET_KEY=sample_webhook_secret_key
APP_SECRET_KEY=sample_app_secret_key
REDIS_HOST=redis
SERVE_WEB_APP_SEPARATELY=true" >> .env
cd $CURRENT_DIR
echo "Configuring web environment variables..."
cd packages/web
rm -rf .env
echo "
PORT=$WEB_PORT
REACT_APP_BACKEND_URL=http://localhost:$BACKEND_PORT
" >> .env
cd $CURRENT_DIR
echo "Installing and linking dependencies..."
yarn
yarn lerna bootstrap
echo "Migrating database..."
cd packages/backend
yarn db:migrate
yarn db:seed:user
echo "Done!"

View File

@@ -0,0 +1,53 @@
{
"name": "Automatisch",
"dockerComposeFile": "docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspace",
"features": {
"ghcr.io/devcontainers/features/git:1": {
"version": "latest"
},
"ghcr.io/devcontainers/features/node:1": {
"version": 18
},
"ghcr.io/devcontainers/features/common-utils:1": {
"username": "vscode",
"uid": 1000,
"gid": 1000,
"installZsh": true,
"installOhMyZsh": true,
"configureZshAsDefaultShell": true,
"upgradePackages": true
}
},
"hostRequirements": {
"cpus": 4,
"memory": "8gb",
"storage": "32gb"
},
"portsAttributes": {
"3000": {
"label": "Backend",
"onAutoForward": "silent",
"protocol": "http"
},
"3001": {
"label": "Frontend",
"onAutoForward": "silent",
"protocol": "http"
}
},
"forwardPorts": [3000, 3001],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": ["bash", ".devcontainer/boot.sh"]
// Configure tool-specific properties.
// "customizations": {},
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}

View File

@@ -0,0 +1,63 @@
version: '3.9'
services:
app:
build:
context: ..
dockerfile: .devcontainer/Dockerfile
volumes:
- ..:/workspace:cached
command: sleep infinity
postgres:
image: 'postgres:14.5-alpine'
environment:
- POSTGRES_DB=automatisch
- POSTGRES_USER=automatisch_user
- POSTGRES_PASSWORD=automatisch_password
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']
interval: 10s
timeout: 5s
retries: 5
ports:
- '5432:5432'
expose:
- 5432
redis:
image: 'redis:7.0.4-alpine'
volumes:
- redis_data:/data
ports:
- '6379:6379'
expose:
- 6379
keycloak:
image: quay.io/keycloak/keycloak:21.1
restart: always
environment:
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=admin
- KC_DB=postgres
- KC_DB_URL_HOST=postgres
- KC_DB_URL_DATABASE=keycloak
- KC_DB_USERNAME=automatisch_user
- KC_DB_PASSWORD=automatisch_password
- KC_HEALTH_ENABLED=true
ports:
- "8080:8080"
command: start-dev
depends_on:
- postgres
healthcheck:
test: "curl -f http://localhost:8080/health/ready || exit 1"
volumes:
- keycloak:/opt/keycloak/data/
expose:
- 8080
volumes:
postgres_data:
redis_data:
keycloak:

12
.dockerignore Normal file
View File

@@ -0,0 +1,12 @@
**/node_modules/
**/dist/
**/logs/
**/.devcontainer
**/.github
**/.vscode
**/.env
**/.env.test
**/.env.production
**/yarn-error.log
packages/docs
packages/e2e-test

View File

@@ -1,10 +0,0 @@
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'prettier',
],
};

48
.github/workflows/backend.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Automatisch Backend Tests
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
jobs:
test:
timeout-minutes: 60
runs-on:
- ubuntu-latest
services:
postgres:
image: postgres:14.5-alpine
env:
POSTGRES_DB: automatisch_test
POSTGRES_USER: automatisch_test_user
POSTGRES_PASSWORD: automatisch_test_user_password
options: >-
--health-cmd "pg_isready -U automatisch_test_user -d automatisch_test"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
redis:
image: redis:7.0.4-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: cd packages/backend && yarn
- name: Copy .env-example.test file to .env.test
run: cd packages/backend && cp .env-example.test .env.test
- name: Run tests
run: cd packages/backend && yarn test

View File

@@ -1,5 +1,11 @@
name: Automatisch CI
on: [push]
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
jobs:
linter:
runs-on: ubuntu-latest
@@ -10,15 +16,15 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
node-version: '18'
cache: 'yarn'
cache-dependency-path: yarn.lock
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- run: yarn --frozen-lockfile
- run: yarn lint
- run: cd packages/backend && yarn lint
- run: echo "🍏 This job's status is ${{ job.status }}."
build-backend:
start-backend-server:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
@@ -27,13 +33,36 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
node-version: '18'
cache: 'yarn'
cache-dependency-path: yarn.lock
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- run: yarn --frozen-lockfile && yarn lerna bootstrap
- run: cd packages/backend && yarn build
- run: cd packages/backend && yarn start
env:
ENCRYPTION_KEY: sample_encryption_key
WEBHOOK_SECRET_KEY: sample_webhook_secret_key
- run: echo "🍏 This job's status is ${{ job.status }}."
start-backend-worker:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '18'
cache: 'yarn'
cache-dependency-path: yarn.lock
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- run: yarn --frozen-lockfile && yarn lerna bootstrap
- run: cd packages/backend && yarn start:worker
env:
ENCRYPTION_KEY: sample_encryption_key
WEBHOOK_SECRET_KEY: sample_webhook_secret_key
- run: echo "🍏 This job's status is ${{ job.status }}."
build-web:
runs-on: ubuntu-latest
@@ -44,7 +73,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
node-version: '18'
cache: 'yarn'
cache-dependency-path: yarn.lock
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
@@ -54,21 +83,3 @@ jobs:
env:
CI: false
- run: echo "🍏 This job's status is ${{ job.status }}."
build-cli:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
cache: 'yarn'
cache-dependency-path: yarn.lock
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- run: yarn --frozen-lockfile && yarn lerna bootstrap
- run: cd packages/backend && yarn build
- run: cd packages/cli && yarn build
- run: echo "🍏 This job's status is ${{ job.status }}."

32
.github/workflows/docs-change.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: Automatisch Docs Change
on:
pull_request:
paths:
- 'packages/docs/**'
jobs:
label:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Label PR
uses: actions/github-script@v6
with:
script: |
const { pull_request } = context.payload;
const label = 'documentation-change';
const hasLabel = pull_request.labels.some(({ name }) => name === label);
if (!hasLabel) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pull_request.number,
labels: [label],
});
console.log(`Label "${label}" added to PR #${pull_request.number}`);
} else {
console.log(`Label "${label}" already exists on PR #${pull_request.number}`);
}

122
.github/workflows/playwright.yml vendored Normal file
View File

@@ -0,0 +1,122 @@
name: Automatisch UI Tests
on:
push:
branches:
- main
pull_request:
paths:
- 'packages/backend/**'
- 'packages/e2e-tests/**'
- 'packages/web/**'
- '!packages/backend/src/apps/**'
workflow_dispatch:
env:
ENCRYPTION_KEY: sample_encryption_key
WEBHOOK_SECRET_KEY: sample_webhook_secret_key
APP_SECRET_KEY: sample_app_secret_key
POSTGRES_HOST: localhost
POSTGRES_DATABASE: automatisch
POSTGRES_PORT: 5432
POSTGRES_USERNAME: automatisch_user
POSTGRES_PASSWORD: automatisch_password
REDIS_HOST: localhost
APP_ENV: production
LICENSE_KEY: dummy_license_key
jobs:
test:
timeout-minutes: 60
runs-on:
- ubuntu-latest
services:
postgres:
image: postgres:14.5-alpine
env:
POSTGRES_DB: automatisch
POSTGRES_USER: automatisch_user
POSTGRES_PASSWORD: automatisch_password
options: >-
--health-cmd "pg_isready -U automatisch_user -d automatisch"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
redis:
image: redis:7.0.4-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: yarn && yarn lerna bootstrap
- name: Install Playwright Browsers
run: yarn playwright install --with-deps
- name: Build Automatisch web
working-directory: ./packages/web
run: yarn build
env:
# Keep this until we clean up warnings in build processes
CI: false
- name: Migrate database
working-directory: ./packages/backend
run: yarn db:migrate
- name: Seed user
working-directory: ./packages/backend
run: yarn db:seed:user &
- name: Install certutils
run: sudo apt install -y libnss3-tools
- name: Install mkcert
run: |
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" \
&& chmod +x mkcert-v*-linux-amd64 \
&& sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
- name: Install root certificate via mkcert
run: mkcert -install
- name: Create certificate
run: mkcert automatisch.io "*.automatisch.io" localhost 127.0.0.1 ::1
working-directory: ./packages/e2e-tests
- name: Set CAROOT environment variable
run: echo "NODE_EXTRA_CA_CERTS=$(mkcert -CAROOT)/rootCA.pem" >> "$GITHUB_ENV"
- name: Override license server with local server
run: sudo echo "127.0.0.1 license.automatisch.io" | sudo tee -a /etc/hosts
- name: Run local license server
working-directory: ./packages/e2e-tests
run: sudo yarn start-mock-license-server &
- name: Run Automatisch
run: yarn start &
working-directory: ./packages/backend
- name: Run Automatisch worker
run: yarn start:worker &
working-directory: ./packages/backend
- name: Setup upterm session
if: false
uses: lhotari/action-upterm@v1
with:
limit-access-to-actor: true
limit-access-to-users: barinali
- name: Run Playwright tests
working-directory: ./packages/e2e-tests
env:
LOGIN_EMAIL: user@automatisch.io
LOGIN_PASSWORD: sample
BASE_URL: http://localhost:3000
GITHUB_CLIENT_ID: 1c0417daf898adfbd99a
GITHUB_CLIENT_SECRET: 3328fa814dd582ccd03dbe785cfd683fb8da92b3
run: yarn test
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: packages/e2e-tests/test-results
retention-days: 30

3
.gitignore vendored
View File

@@ -125,3 +125,6 @@ dist
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
# MacOS finder preferences
.DS_store

1
.node-version Normal file
View File

@@ -0,0 +1 @@
18.19.0

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
18.19.0

2
.vscode/launch.json vendored
View File

@@ -9,4 +9,4 @@
"command": "yarn dev"
}
]
}
}

View File

@@ -1,3 +1,7 @@
{
"editor.formatOnSave": true
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}

1
.yarnrc Normal file
View File

@@ -0,0 +1 @@
network-timeout 400000

View File

@@ -0,0 +1,5 @@
# Automatisch Contributor License Agreement
I give Automatisch permission to license my contributions on any terms they like. I am giving them this license in order to make it possible for them to accept my contributions into their project.
**_As far as the law allows, my contributions come as is, without any warranty or condition, and I will not be liable to anyone for any damages related to this software or this license, under any kind of legal claim._**

3
LICENSE Normal file
View File

@@ -0,0 +1,3 @@
LICENSE.agpl (AGPL-3.0) applies to all files in this
repository, except for files that contain ".ee." in their name
which are covered by LICENSE.enterprise.

View File

@@ -1,178 +1,178 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
2. Basic Permissions.
All rights granted under this License are granted for the term of
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
@@ -180,9 +180,9 @@ modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
@@ -190,12 +190,12 @@ non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
@@ -220,19 +220,19 @@ terms of section 4, provided that you also meet all of these conditions:
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
@@ -278,75 +278,75 @@ in one of these ways:
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
@@ -373,74 +373,74 @@ that material) supplement the terms of this License with terms:
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
@@ -448,43 +448,43 @@ give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
@@ -492,13 +492,13 @@ then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
@@ -506,10 +506,10 @@ or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
@@ -521,83 +521,83 @@ for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
@@ -607,9 +607,9 @@ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
@@ -620,11 +620,11 @@ copy of the Program in return for a fee.
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
@@ -647,15 +647,15 @@ the "copyright" line and a pointer to where the full notice is found.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.

35
LICENSE.enterprise Normal file
View File

@@ -0,0 +1,35 @@
The Automatisch Enterprise license (the “Enterprise License”)
Copyright (c) 2023-present AB Software GmbH.
With regard to the Automatisch Software:
This software and associated documentation files (the "Software") may only be
used in production, if you (and any entity that you represent) have a valid
Automatisch Enterprise license for the correct number of user seats. Subject
to the foregoing sentence, you are free to modify this Software and publish
patches to the Software. You agree that Automatisch and/or its licensors
(as applicable) retain all right, title and interest in and to all such
modifications and/or patches, and all such modifications and/or patches may
only be used, copied, modified, displayed, distributed, or otherwise exploited
with a valid Automatisch Enterprise license for the correct number of user seats.
Notwithstanding the foregoing, you may copy and modify the Software for
development and testing purposes, without requiring a subscription. You agree
that Automatisch and/or its licensors (as applicable) retain all right, title
and interest in and to all such modifications. You are not granted any other
rights beyond what is expressly stated herein. Subject to the foregoing, it is
forbidden to copy, merge, publish, distribute, sublicense, and/or sell the Software.
The full text of this Enterprise License shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
For all third party components incorporated into the Automatisch Software, those
components are licensed under the original license provided by the owner of the
applicable component.

View File

@@ -10,7 +10,7 @@
There are other existing solutions in the market, like Zapier and Integromat, so you might be wondering why you should use Automatisch.
The most significant advantage of having Automatisch is keeping your data on your own servers. Not all companies want to use an automation service in the cloud, and the current open-source or self-hosted solutions mainly focus on developers rather than a user without a technical background.
One of the main benefits of using Automatisch is that it allows you to store your data on your own servers, which is essential for businesses that handle sensitive user information and cannot risk sharing it with external cloud services. This is especially relevant for industries such as healthcare and finance, as well as for European companies that must adhere to the General Data Protection Regulation (GDPR).
🤓 Your contributions are vital to the development of Automatisch. As an open-source software, anyone can have an impact on how it is being developed.
@@ -24,29 +24,38 @@ The official documentation can be found here: [https://automatisch.io/docs](http
```bash
# Clone the repository
git clone git@github.com:automatisch/automatisch.git
git clone https://github.com/automatisch/automatisch.git
# Go to the repository folder
cd automatisch/docker/compose
cd automatisch
# Start
docker compose up
```
You can use `user@automatisch.io` email address and `sample` password to login to Automatisch. You can also change your email and password later on from the settings page.
You can use `user@automatisch.io` email address and `sample` password to login to Automatisch. Please do not forget to change your email and password from the settings page.
For other installation types, you can check the [installation](https://automatisch.io/docs/guide/installation) guide.
## Community Links
- [Github](https://github.com/automatisch/automatisch)
- [Discord](https://discord.gg/dJSah9CVrC)
- [Twitter](https://twitter.com/automatischio)
## Support
If you have any questions or problems, please visit our GitHub discussions page, and we'll try to help you as soon as possible.
If you have any questions or problems, please visit our GitHub issues page, and we'll try to help you as soon as possible.
[https://github.com/automatisch/automatisch/discussions](https://github.com/automatisch/automatisch/discussions)
[https://github.com/automatisch/automatisch/issues](https://github.com/automatisch/automatisch/issues)
## License
Automatisch is an open-source software with an [AGPL 3.0 license](https://github.com/automatisch/automatisch/blob/main/LICENSE.md).
Automatisch Community Edition (Automatisch CE) is an open-source software with the [AGPL-3.0 license](LICENSE.agpl).
Automatisch Enterprise Edition (Automatisch EE) is a commercial offering with the [Enterprise license](LICENSE.enterprise).
The Automatisch repository contains both AGPL-licensed and Enterprise-licensed files. We maintain a single repository to make development easier.
All files that contain ".ee." in their name fall under the [Enterprise license](LICENSE.enterprise). All other files fall under the [AGPL-3.0 license](LICENSE.agpl).
See the [LICENSE](LICENSE) file for more information.

70
docker-compose.yml Normal file
View File

@@ -0,0 +1,70 @@
version: '3.9'
services:
main:
build:
context: ./docker
dockerfile: Dockerfile.compose
entrypoint: /compose-entrypoint.sh
ports:
- '3000:3000'
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
environment:
- HOST=localhost
- PROTOCOL=http
- PORT=3000
- APP_ENV=production
- REDIS_HOST=redis
- POSTGRES_HOST=postgres
- POSTGRES_DATABASE=automatisch
- POSTGRES_USERNAME=automatisch_user
- POSTGRES_PASSWORD=automatisch_password
- ENCRYPTION_KEY
- WEBHOOK_SECRET_KEY
- APP_SECRET_KEY
volumes:
- automatisch_storage:/automatisch/storage
worker:
build:
context: ./docker
dockerfile: Dockerfile.compose
entrypoint: /compose-entrypoint.sh
depends_on:
- main
environment:
- APP_ENV=production
- REDIS_HOST=redis
- POSTGRES_HOST=postgres
- POSTGRES_DATABASE=automatisch
- POSTGRES_USERNAME=automatisch_user
- POSTGRES_PASSWORD=automatisch_password
- ENCRYPTION_KEY
- WEBHOOK_SECRET_KEY
- APP_SECRET_KEY
- WORKER=true
volumes:
- automatisch_storage:/automatisch/storage
postgres:
image: 'postgres:14.5'
environment:
- POSTGRES_DB=automatisch
- POSTGRES_USER=automatisch_user
- POSTGRES_PASSWORD=automatisch_password
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']
interval: 10s
timeout: 5s
retries: 5
redis:
image: 'redis:7.0.4'
volumes:
- redis_data:/data
volumes:
automatisch_storage:
postgres_data:
redis_data:

25
docker/Dockerfile Normal file
View File

@@ -0,0 +1,25 @@
# syntax=docker/dockerfile:1
FROM node:18-alpine
ENV PORT 3000
RUN \
apk --no-cache add --virtual build-dependencies python3 build-base git
WORKDIR /automatisch
# copy the app, note .dockerignore
COPY . /automatisch
RUN yarn
RUN cd packages/web && yarn build
RUN \
rm -rf /usr/local/share/.cache/ && \
apk del build-dependencies
COPY ./docker/entrypoint.sh /entrypoint.sh
EXPOSE 3000
ENTRYPOINT ["sh", "/entrypoint.sh"]

11
docker/Dockerfile.compose Normal file
View File

@@ -0,0 +1,11 @@
# syntax=docker/dockerfile:1
FROM automatischio/automatisch:latest
WORKDIR /automatisch
RUN apk add --no-cache openssl dos2unix
COPY ./compose-entrypoint.sh /compose-entrypoint.sh
RUN dos2unix /compose-entrypoint.sh
EXPOSE 3000
ENTRYPOINT ["sh", "/compose-entrypoint.sh"]

26
docker/compose-entrypoint.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/sh
set -e
if [ ! -f /automatisch/storage/.env ]; then
>&2 echo "Saving environment variables"
ENCRYPTION_KEY="${ENCRYPTION_KEY:-$(openssl rand -base64 36)}"
WEBHOOK_SECRET_KEY="${WEBHOOK_SECRET_KEY:-$(openssl rand -base64 36)}"
APP_SECRET_KEY="${APP_SECRET_KEY:-$(openssl rand -base64 36)}"
echo "ENCRYPTION_KEY=$ENCRYPTION_KEY" >> /automatisch/storage/.env
echo "WEBHOOK_SECRET_KEY=$WEBHOOK_SECRET_KEY" >> /automatisch/storage/.env
echo "APP_SECRET_KEY=$APP_SECRET_KEY" >> /automatisch/storage/.env
fi
# initiate env. vars. from /automatisch/storage/.env file
export $(grep -v '^#' /automatisch/storage/.env | xargs)
# migration for webhook secret key, will be removed in the future.
if [[ -z "${WEBHOOK_SECRET_KEY}" ]]; then
WEBHOOK_SECRET_KEY="$(openssl rand -base64 36)"
echo "WEBHOOK_SECRET_KEY=$WEBHOOK_SECRET_KEY" >> /automatisch/storage/.env
fi
echo "Environment variables have been set!"
sh /entrypoint.sh

View File

@@ -1,47 +0,0 @@
version: "3.9"
services:
main:
build:
context: ../images/wait-for-postgres
network: host
ports:
- "3000:3000"
depends_on:
- postgres
- redis
environment:
- HOST=localhost
- PROTOCOL=http
- PORT=3000
- APP_ENV=production
- REDIS_HOST=redis
- POSTGRES_HOST=postgres
- POSTGRES_DATABASE=automatisch
- POSTGRES_USERNAME=automatisch_user
volumes:
- automatisch_storage:/automatisch/storage
worker:
build:
context: ../images/plain
network: host
depends_on:
- main
environment:
- APP_ENV=production
- REDIS_HOST=redis
- POSTGRES_HOST=postgres
- POSTGRES_DATABASE=automatisch
- POSTGRES_USERNAME=automatisch_user
command: automatisch start-worker --env-file /automatisch/storage/.env
volumes:
- automatisch_storage:/automatisch/storage
postgres:
image: "postgres:14.5"
environment:
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_DB: automatisch
POSTGRES_USER: automatisch_user
redis:
image: "redis:7.0.4"
volumes:
automatisch_storage:

13
docker/entrypoint.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/sh
set -e
cd packages/backend
if [ -n "$WORKER" ]; then
yarn start:worker
else
yarn db:migrate
yarn db:seed:user
yarn start
fi

View File

@@ -1,5 +0,0 @@
# syntax=docker/dockerfile:1
FROM node:16
WORKDIR /automatisch
RUN yarn global add @automatisch/cli@0.1.4

View File

@@ -1,15 +0,0 @@
# syntax=docker/dockerfile:1
FROM node:16
WORKDIR /automatisch
RUN apt-get update && apt-get install -y postgresql-client
COPY ./wait-for-postgres.sh /automatisch/wait-for-postgres.sh
RUN mkdir -p /automatisch/storage
RUN touch /automatisch/storage/.env
RUN echo "ENCRYPTION_KEY=$(openssl rand -base64 36)" >> /automatisch/storage/.env
RUN echo "APP_SECRET_KEY=$(openssl rand -base64 36)" >> /automatisch/storage/.env
RUN yarn global add @automatisch/cli@0.1.4
EXPOSE 3000
CMD sh /automatisch/wait-for-postgres.sh automatisch start --env-file=/automatisch/storage/.env

View File

@@ -1,11 +0,0 @@
#!/bin/sh
set -e
until psql -h "$POSTGRES_HOST" -U "$POSTGRES_USERNAME" -d "$POSTGRES_HOST" -c '\q'; do
>&2 echo "Postgres is unavailable - sleeping"
sleep 1
done
>&2 echo "Postgres is up - executing command"
exec "$@"

View File

@@ -2,7 +2,7 @@
"packages": [
"packages/*"
],
"version": "0.1.4",
"version": "0.10.0",
"npmClient": "yarn",
"useWorkspaces": true,
"command": {
@@ -10,4 +10,4 @@
"exact": true
}
}
}
}

View File

@@ -1,13 +1,11 @@
{
"name": "@automatisch/root",
"license": "AGPL-3.0",
"license": "See LICENSE file",
"private": true,
"scripts": {
"start": "lerna run --stream --parallel --scope=@*/{web,backend} dev",
"start:web": "lerna run --stream --scope=@*/web dev",
"start:backend": "lerna run --stream --scope=@*/backend dev",
"lint": "lerna run --no-bail --stream --parallel --scope=@*/{web,backend,cli} lint",
"build:watch": "lerna run --no-bail --stream --parallel --scope=@*/{web,backend,cli} build:watch",
"build:docs": "cd ./packages/docs && yarn install && yarn build"
},
"workspaces": {
@@ -18,13 +16,10 @@
"**/babel-loader",
"**/webpack",
"**/@automatisch/web",
"**/@automatisch/types",
"**/ajv"
]
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.9.1",
"@typescript-eslint/parser": "^5.9.1",
"eslint": "^8.13.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
@@ -34,4 +29,4 @@
"publishConfig": {
"access": "public"
}
}
}

View File

@@ -1,7 +1,8 @@
HOST=localhost
PROTOCOL=http
PORT=3000
WEB_APP_URL=https://localhost:3001
WEB_APP_URL=http://localhost:3001
WEBHOOK_URL=http://localhost:3000
APP_ENV=development
POSTGRES_DATABASE=automatisch_development
POSTGRES_PORT=5432
@@ -10,7 +11,12 @@ POSTGRES_USERNAME=automatish_development_user
POSTGRES_PASSWORD=
POSTGRES_ENABLE_SSL=false
ENCRYPTION_KEY=sample-encryption-key
WEBHOOK_SECRET_KEY=sample-webhook-key
APP_SECRET_KEY=sample-app-secret-key
REDIS_PORT=6379
REDIS_HOST=127.0.0.1
REDIS_USERNAME=redis_username
REDIS_PASSWORD=redis_password
REDIS_TLS=true
ENABLE_BULLMQ_DASHBOARD=false
SERVE_WEB_APP_SEPARATELY=true

View File

@@ -0,0 +1,15 @@
APP_ENV=test
HOST=localhost
PROTOCOL=http
PORT=3000
LOG_LEVEL=debug
ENCRYPTION_KEY=sample_encryption_key
WEBHOOK_SECRET_KEY=sample_webhook_secret_key
APP_SECRET_KEY=sample_app_secret_key
POSTGRES_HOST=localhost
POSTGRES_DATABASE=automatisch_test
POSTGRES_PORT=5432
POSTGRES_USERNAME=automatisch_test_user
POSTGRES_PASSWORD=automatisch_test_user_password
REDIS_HOST=localhost
AUTOMATISCH_CLOUD=true

View File

@@ -0,0 +1,12 @@
{
"root": true,
"env": {
"node": true,
"es6": true
},
"extends": ["eslint:recommended", "prettier"],
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
}
}

View File

@@ -1,9 +1,9 @@
import { Client } from 'pg';
import pg from 'pg';
const client = new Client({
const client = new pg.Client({
host: 'localhost',
user: 'postgres',
port: 5432,
})
});
export default client;

View File

@@ -0,0 +1,31 @@
import appConfig from '../../src/config/app.js';
import logger from '../../src/helpers/logger.js';
import '../../src/config/orm.js';
import { client as knex } from '../../src/config/database.js';
export const renameMigrationsAsJsFiles = async () => {
if (!appConfig.isDev) {
return;
}
try {
const tableExists = await knex.schema.hasTable('knex_migrations');
if (tableExists) {
await knex('knex_migrations')
.where('name', 'like', '%.ts')
.update({
name: knex.raw("REPLACE(name, '.ts', '.js')"),
});
logger.info(
`Migration file names with typescript renamed as JS file names!`
);
}
} catch (err) {
logger.error(err.message);
}
await knex.destroy();
};
renameMigrationsAsJsFiles();

View File

@@ -0,0 +1,3 @@
import { createDatabaseAndUser } from './utils.js';
createDatabaseAndUser();

View File

@@ -1,3 +0,0 @@
import { createDatabaseAndUser } from './utils';
createDatabaseAndUser();

View File

@@ -0,0 +1,3 @@
import { dropDatabase } from './utils.js';
dropDatabase();

View File

@@ -1,3 +0,0 @@
import { dropDatabase } from './utils';
dropDatabase();

View File

@@ -0,0 +1,3 @@
import { createUser } from './utils.js';
createUser();

View File

@@ -1,3 +0,0 @@
import { createUser } from './utils';
createUser();

View File

@@ -1,14 +1,43 @@
import appConfig from '../../src/config/app';
import logger from '../../src/helpers/logger';
import client from './client';
import User from '../../src/models/user';
import '../../src/config/orm';
import appConfig from '../../src/config/app.js';
import logger from '../../src/helpers/logger.js';
import client from './client.js';
import User from '../../src/models/user.js';
import Config from '../../src/models/config.js';
import Role from '../../src/models/role.js';
import '../../src/config/orm.js';
import process from 'process';
async function fetchAdminRole() {
const role = await Role.query()
.where({
key: 'admin',
})
.limit(1)
.first();
return role;
}
export async function createUser(
email = 'user@automatisch.io',
password = 'sample'
) {
if (appConfig.disableSeedUser) {
logger.info('Seed user is disabled.');
process.exit(0);
return;
}
export async function createUser(email = 'user@automatisch.io', password = 'sample') {
const UNIQUE_VIOLATION_CODE = '23505';
const role = await fetchAdminRole();
const userParams = {
email,
password,
fullName: 'Initial admin',
roleId: role.id,
};
try {
@@ -17,26 +46,34 @@ export async function createUser(email = 'user@automatisch.io', password = 'samp
if (userCount === 0) {
const user = await User.query().insertAndFetch(userParams);
logger.info(`User has been saved: ${user.email}`);
await Config.markInstallationCompleted();
} else {
logger.info('No need to seed a user.');
}
} catch (err) {
if ((err as any).nativeError.code !== UNIQUE_VIOLATION_CODE) {
if (err.nativeError.code !== UNIQUE_VIOLATION_CODE) {
throw err;
}
logger.info(`User already exists: ${email}`);
}
process.exit(0);
}
export const createDatabaseAndUser = async (database = appConfig.postgresDatabase, user = appConfig.postgresUsername) => {
export const createDatabaseAndUser = async (
database = appConfig.postgresDatabase,
user = appConfig.postgresUsername
) => {
await client.connect();
await createDatabase(database);
await createDatabaseUser(user);
await grantPrivileges(database, user);
await client.end();
}
process.exit(0);
};
export const createDatabase = async (database = appConfig.postgresDatabase) => {
const DUPLICATE_DB_CODE = '42P04';
@@ -45,13 +82,13 @@ export const createDatabase = async (database = appConfig.postgresDatabase) => {
await client.query(`CREATE DATABASE ${database}`);
logger.info(`Database: ${database} created!`);
} catch (err) {
if ((err as any).code !== DUPLICATE_DB_CODE) {
if (err.code !== DUPLICATE_DB_CODE) {
throw err;
}
logger.info(`Database: ${database} already exists!`);
}
}
};
export const createDatabaseUser = async (user = appConfig.postgresUsername) => {
const DUPLICATE_OBJECT_CODE = '42710';
@@ -62,31 +99,31 @@ export const createDatabaseUser = async (user = appConfig.postgresUsername) => {
return result;
} catch (err) {
if ((err as any).code !== DUPLICATE_OBJECT_CODE) {
if (err.code !== DUPLICATE_OBJECT_CODE) {
throw err;
}
logger.info(`Database User: ${user} already exists!`);
}
}
};
export const grantPrivileges = async (
database = appConfig.postgresDatabase, user = appConfig.postgresUsername
database = appConfig.postgresDatabase,
user = appConfig.postgresUsername
) => {
await client.query(
`GRANT ALL PRIVILEGES ON DATABASE ${database} TO ${user};`
);
logger.info(
`${user} has granted all privileges on ${database}!`
);
}
logger.info(`${user} has granted all privileges on ${database}!`);
};
export const dropDatabase = async () => {
if (appConfig.appEnv != 'development' && appConfig.appEnv != 'test') {
const errorMessage = 'Drop database command can be used only with development or test environments!'
const errorMessage =
'Drop database command can be used only with development or test environments!';
logger.error(errorMessage)
logger.error(errorMessage);
return;
}
@@ -94,13 +131,15 @@ export const dropDatabase = async () => {
await dropDatabaseAndUser();
await client.end();
}
};
export const dropDatabaseAndUser = async(database = appConfig.postgresDatabase, user = appConfig.postgresUsername) => {
export const dropDatabaseAndUser = async (
database = appConfig.postgresDatabase,
user = appConfig.postgresUsername
) => {
await client.query(`DROP DATABASE IF EXISTS ${database}`);
logger.info(`Database: ${database} removed!`);
await client.query(`DROP USER IF EXISTS ${user}`);
logger.info(`Database User: ${user} removed!`);
}
};

View File

@@ -1 +0,0 @@
export * from './dist/bin/database/utils';

View File

@@ -1,2 +0,0 @@
/* eslint-disable */
module.exports = require('./dist/bin/database/utils');

View File

@@ -1 +0,0 @@
export * from './dist/src/config/database';

View File

@@ -1,2 +0,0 @@
/* eslint-disable */
module.exports = require('./dist/src/config/database');

View File

@@ -1,6 +1,10 @@
import appConfig from './src/config/app';
import { knexSnakeCaseMappers } from 'objection';
import appConfig from './src/config/app.js';
import path from 'path';
import { fileURLToPath } from 'url';
const fileExtension = appConfig.isDev ? 'ts' : 'js';
const fileExtension = 'js';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const knexConfig = {
client: 'pg',
@@ -10,8 +14,10 @@ const knexConfig = {
user: appConfig.postgresUsername,
password: appConfig.postgresPassword,
database: appConfig.postgresDatabase,
ssl: appConfig.postgresEnableSsl
ssl: appConfig.postgresEnableSsl,
},
asyncStackTraces: appConfig.isDev,
searchPath: [appConfig.postgresSchema],
pool: { min: 0, max: 20 },
migrations: {
directory: __dirname + '/src/db/migrations',
@@ -20,7 +26,8 @@ const knexConfig = {
},
seeds: {
directory: __dirname + '/src/db/seeds',
}
}
},
...(appConfig.isTest ? knexSnakeCaseMappers() : {}),
};
export default knexConfig;

View File

@@ -1 +0,0 @@
export * from './dist/src/helpers/logger';

View File

@@ -1,2 +0,0 @@
/* eslint-disable */
module.exports = require('./dist/src/helpers/logger');

View File

@@ -1,68 +1,75 @@
{
"name": "@automatisch/backend",
"version": "0.1.4",
"license": "AGPL-3.0",
"version": "0.10.0",
"license": "See LICENSE file",
"description": "The open source Zapier alternative. Build workflow automation without spending time and money.",
"type": "module",
"scripts": {
"dev": "ts-node-dev src/server.ts",
"worker": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/worker.ts",
"build": "tsc && yarn copy-statics",
"build:watch": "nodemon --watch 'src/**/*.ts' --watch 'bin/**/*.ts' --exec yarn build --ext ts",
"start": "node dist/src/server.js",
"test": "ava",
"lint": "eslint . --ignore-path ../../.eslintignore",
"db:create": "ts-node ./bin/database/create.ts",
"db:seed:user": "ts-node ./bin/database/seed-user.ts",
"db:drop": "ts-node ./bin/database/drop.ts",
"dev": "nodemon --watch 'src/**/*.js' --exec 'node' src/server.js",
"worker": "nodemon --watch 'src/**/*.js' --exec 'node' src/worker.js",
"start": "node src/server.js",
"start:worker": "node src/worker.js",
"pretest": "APP_ENV=test node ./test/setup/prepare-test-env.js",
"test": "APP_ENV=test vitest run",
"lint": "eslint .",
"db:create": "node ./bin/database/create.js",
"db:seed:user": "node ./bin/database/seed-user.js",
"db:drop": "node ./bin/database/drop.js",
"db:migration:create": "knex migrate:make",
"db:rollback": "knex migrate:rollback",
"db:migrate": "knex migrate:latest",
"copy-statics": "copyfiles src/**/*.{graphql,json,svg} dist",
"prepack": "yarn build",
"prebuild": "rm -rf ./dist"
"db:migrate": "node ./bin/database/convert-migrations.js && knex migrate:latest"
},
"dependencies": {
"@automatisch/web": "^0.1.4",
"@bull-board/express": "^3.10.1",
"@gitbeaker/node": "^35.6.0",
"@casl/ability": "^6.5.0",
"@graphql-tools/graphql-file-loader": "^7.3.4",
"@graphql-tools/load": "^7.5.2",
"@node-saml/passport-saml": "^4.0.4",
"@rudderstack/rudder-sdk-node": "^1.1.2",
"@slack/bolt": "3.10.0",
"@types/luxon": "^2.3.1",
"@sentry/node": "^7.42.0",
"@sentry/tracing": "^7.42.0",
"accounting": "^0.4.1",
"ajv-formats": "^2.1.1",
"axios": "0.24.0",
"bcrypt": "^5.0.1",
"bullmq": "^1.76.1",
"copyfiles": "^2.4.1",
"axios": "1.6.0",
"bcrypt": "^5.1.0",
"bullmq": "^3.0.0",
"cors": "^2.8.5",
"crypto-js": "^4.1.1",
"debug": "~2.6.9",
"discord.js": "13.2.0",
"dotenv": "^10.0.0",
"express": "~4.16.1",
"express": "~4.18.2",
"express-async-handler": "^1.2.0",
"express-basic-auth": "^1.2.1",
"express-graphql": "^0.12.0",
"flickr-sdk": "3.10.0",
"googleapis": "89.0.0",
"fast-xml-parser": "^4.0.11",
"graphql-middleware": "^6.1.15",
"graphql-shield": "^7.5.0",
"graphql-tools": "^8.2.0",
"graphql-type-json": "^0.3.2",
"handlebars": "^4.7.7",
"http-errors": "~1.6.3",
"jsonwebtoken": "^8.5.1",
"knex": "^0.95.11",
"http-proxy-agent": "^7.0.0",
"https-proxy-agent": "^7.0.1",
"jsonwebtoken": "^9.0.0",
"knex": "^2.4.0",
"libphonenumber-js": "^1.10.48",
"lodash.get": "^4.4.2",
"luxon": "2.3.1",
"luxon": "2.5.2",
"memory-cache": "^0.2.0",
"morgan": "^1.10.0",
"multer": "1.4.5-lts.1",
"node-html-markdown": "^1.3.0",
"nodemailer": "6.7.0",
"oauth-1.0a": "^2.2.6",
"objection": "^3.0.0",
"octokit": "^1.7.1",
"passport": "^0.6.0",
"pg": "^8.7.1",
"twilio": "3.70.0",
"twitch-js": "2.0.0-beta.42",
"twitter-api-v2": "1.6.0",
"winston": "^3.7.1"
"php-serialize": "^4.0.2",
"pluralize": "^8.0.0",
"raw-body": "^2.5.2",
"showdown": "^2.1.0",
"uuid": "^9.0.1",
"winston": "^3.7.1",
"xmlrpc": "^1.3.2"
},
"contributors": [
{
@@ -71,26 +78,15 @@
}
],
"homepage": "https://github.com/automatisch/automatisch#readme",
"main": "dist/src/app",
"main": "src/server",
"directories": {
"bin": "bin",
"src": "src",
"test": "__tests__"
},
"files": [
"dist",
"bin",
"src",
"server.js",
"server.d.ts",
"worker.js",
"worker.d.ts",
"logger.js",
"logger.d.ts",
"database.js",
"database.d.ts",
"database-utils.js",
"database-utils.d.ts"
"src"
],
"repository": {
"type": "git",
@@ -100,36 +96,10 @@
"url": "https://github.com/automatisch/automatisch/issues"
},
"devDependencies": {
"@automatisch/types": "^0.1.4",
"@types/bcrypt": "^5.0.0",
"@types/bull": "^3.15.8",
"@types/cors": "^2.8.12",
"@types/crypto-js": "^4.0.2",
"@types/express": "^4.17.13",
"@types/http-errors": "^1.8.1",
"@types/jsonwebtoken": "^8.5.8",
"@types/lodash.get": "^4.4.6",
"@types/morgan": "^1.9.3",
"@types/node": "^16.10.2",
"@types/nodemailer": "^6.4.4",
"@types/pg": "^8.6.1",
"@types/pino": "^7.0.5",
"ava": "^3.15.0",
"node-gyp": "^10.1.0",
"nodemon": "^2.0.13",
"sinon": "^11.1.2",
"ts-node": "^10.2.1",
"ts-node-dev": "^1.1.8"
},
"ava": {
"files": [
"test/**/*"
],
"extensions": [
"ts"
],
"require": [
"ts-node/register"
]
"supertest": "^6.3.3",
"vitest": "^1.1.3"
},
"publishConfig": {
"access": "public"

View File

@@ -1 +0,0 @@
export * from './dist/src/server';

View File

@@ -1,2 +0,0 @@
/* eslint-disable */
module.exports = require('./dist/src/server.js');

View File

@@ -0,0 +1,70 @@
import createError from 'http-errors';
import express from 'express';
import cors from 'cors';
import appConfig from './config/app.js';
import corsOptions from './config/cors-options.js';
import morgan from './helpers/morgan.js';
import * as Sentry from './helpers/sentry.ee.js';
import appAssetsHandler from './helpers/app-assets-handler.js';
import webUIHandler from './helpers/web-ui-handler.js';
import errorHandler from './helpers/error-handler.js';
import './config/orm.js';
import {
createBullBoardHandler,
serverAdapter,
} from './helpers/create-bull-board-handler.js';
import injectBullBoardHandler from './helpers/inject-bull-board-handler.js';
import router from './routes/index.js';
import configurePassport from './helpers/passport.js';
createBullBoardHandler(serverAdapter);
const app = express();
Sentry.init(app);
Sentry.attachRequestHandler(app);
Sentry.attachTracingHandler(app);
injectBullBoardHandler(app, serverAdapter);
appAssetsHandler(app);
app.use(morgan);
app.use(
express.json({
limit: appConfig.requestBodySizeLimit,
verify(req, res, buf) {
req.rawBody = buf;
},
})
);
app.use(
express.urlencoded({
extended: true,
limit: appConfig.requestBodySizeLimit,
verify(req, res, buf) {
req.rawBody = buf;
},
})
);
app.use(cors(corsOptions));
configurePassport(app);
app.use('/', router);
webUIHandler(app);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
next(createError(404));
});
Sentry.attachErrorHandler(app);
app.use(errorHandler);
export default app;

View File

@@ -1,45 +0,0 @@
import appConfig from './config/app';
import createError from 'http-errors';
import express, { Request, Response, NextFunction } from 'express';
import cors from 'cors';
import corsOptions from './config/cors-options';
import graphQLInstance from './helpers/graphql-instance';
import morgan from './helpers/morgan';
import appAssetsHandler from './helpers/app-assets-handler';
import webUIHandler from './helpers/web-ui-handler';
import errorHandler from './helpers/error-handler';
import './config/orm';
import {
createBullBoardHandler,
serverAdapter,
} from './helpers/create-bull-board-handler';
import injectBullBoardHandler from './helpers/inject-bull-board-handler';
if (appConfig.enableBullMQDashboard) {
createBullBoardHandler(serverAdapter);
}
const app = express();
if (appConfig.enableBullMQDashboard) {
injectBullBoardHandler(app, serverAdapter);
}
appAssetsHandler(app);
app.use(morgan);
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cors(corsOptions));
app.use('/graphql', graphQLInstance);
webUIHandler(app);
// catch 404 and forward to error handler
app.use(function (req: Request, res: Response, next: NextFunction) {
next(createError(404));
});
app.use(errorHandler);
export default app;

View File

@@ -0,0 +1,92 @@
import defineAction from '../../../../helpers/define-action.js';
export default defineAction({
name: 'Create record',
key: 'createRecord',
description: 'Creates a new record with fields that automatically populate.',
arguments: [
{
label: 'Base',
key: 'baseId',
type: 'dropdown',
required: true,
description: 'Base in which to create the record.',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listBases',
},
],
},
},
{
label: 'Table',
key: 'tableId',
type: 'dropdown',
required: true,
dependsOn: ['parameters.baseId'],
description: '',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listTables',
},
{
name: 'parameters.baseId',
value: '{parameters.baseId}',
},
],
},
additionalFields: {
type: 'query',
name: 'getDynamicFields',
arguments: [
{
name: 'key',
value: 'listFields',
},
{
name: 'parameters.baseId',
value: '{parameters.baseId}',
},
{
name: 'parameters.tableId',
value: '{parameters.tableId}',
},
],
},
},
],
async run($) {
const { baseId, tableId, ...rest } = $.step.parameters;
const fields = Object.entries(rest).reduce((result, [key, value]) => {
if (Array.isArray(value)) {
result[key] = value.map((item) => item.value);
} else if (value !== '') {
result[key] = value;
}
return result;
}, {});
const body = {
typecast: true,
fields,
};
const { data } = await $.http.post(`/v0/${baseId}/${tableId}`, body);
$.setActionItem({
raw: data,
});
},
});

View File

@@ -0,0 +1,174 @@
import defineAction from '../../../../helpers/define-action.js';
import { URLSearchParams } from 'url';
export default defineAction({
name: 'Find record',
key: 'findRecord',
description:
"Finds a record using simple field search or use Airtable's formula syntax to find a matching record.",
arguments: [
{
label: 'Base',
key: 'baseId',
type: 'dropdown',
required: true,
description: 'Base in which to create the record.',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listBases',
},
],
},
},
{
label: 'Table',
key: 'tableId',
type: 'dropdown',
required: true,
dependsOn: ['parameters.baseId'],
description: '',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listTables',
},
{
name: 'parameters.baseId',
value: '{parameters.baseId}',
},
],
},
},
{
label: 'Search by field',
key: 'tableField',
type: 'dropdown',
required: false,
dependsOn: ['parameters.baseId', 'parameters.tableId'],
description: '',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listTableFields',
},
{
name: 'parameters.baseId',
value: '{parameters.baseId}',
},
{
name: 'parameters.tableId',
value: '{parameters.tableId}',
},
],
},
},
{
label: 'Search Value',
key: 'searchValue',
type: 'string',
required: false,
variables: true,
description:
'The value of unique identifier for the record. For date values, please use the ISO format (e.g., "YYYY-MM-DD").',
},
{
label: 'Search for exact match?',
key: 'exactMatch',
type: 'dropdown',
required: true,
description: '',
variables: true,
options: [
{ label: 'Yes', value: 'true' },
{ label: 'No', value: 'false' },
],
},
{
label: 'Search Formula',
key: 'searchFormula',
type: 'string',
required: false,
variables: true,
description:
'Instead, you have the option to use an Airtable search formula for locating records according to sophisticated criteria and across various fields.',
},
{
label: 'Limit to View',
key: 'limitToView',
type: 'dropdown',
required: false,
dependsOn: ['parameters.baseId', 'parameters.tableId'],
description:
'You have the choice to restrict the search to a particular view ID if desired.',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listTableViews',
},
{
name: 'parameters.baseId',
value: '{parameters.baseId}',
},
{
name: 'parameters.tableId',
value: '{parameters.tableId}',
},
],
},
},
],
async run($) {
const {
baseId,
tableId,
tableField,
searchValue,
exactMatch,
searchFormula,
limitToView,
} = $.step.parameters;
let filterByFormula;
if (tableField && searchValue) {
filterByFormula =
exactMatch === 'true'
? `{${tableField}} = '${searchValue}'`
: `LOWER({${tableField}}) = LOWER('${searchValue}')`;
} else {
filterByFormula = searchFormula;
}
const body = new URLSearchParams({
filterByFormula,
view: limitToView,
});
const { data } = await $.http.post(
`/v0/${baseId}/${tableId}/listRecords`,
body
);
$.setActionItem({
raw: data,
});
},
});

View File

@@ -0,0 +1,4 @@
import createRecord from './create-record/index.js';
import findRecord from './find-record/index.js';
export default [createRecord, findRecord];

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="256px" height="215px" viewBox="0 0 256 215" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M114.25873,2.70101695 L18.8604023,42.1756384 C13.5552723,44.3711638 13.6102328,51.9065311 18.9486282,54.0225085 L114.746142,92.0117514 C123.163769,95.3498757 132.537419,95.3498757 140.9536,92.0117514 L236.75256,54.0225085 C242.08951,51.9065311 242.145916,44.3711638 236.83934,42.1756384 L141.442459,2.70101695 C132.738459,-0.900338983 122.961284,-0.900338983 114.25873,2.70101695" fill="#FFBF00"></path>
<path d="M136.349071,112.756863 L136.349071,207.659101 C136.349071,212.173089 140.900664,215.263892 145.096461,213.600615 L251.844122,172.166219 C254.281184,171.200072 255.879376,168.845451 255.879376,166.224705 L255.879376,71.3224678 C255.879376,66.8084791 251.327783,63.7176768 247.131986,65.3809537 L140.384325,106.815349 C137.94871,107.781496 136.349071,110.136118 136.349071,112.756863" fill="#26B5F8"></path>
<path d="M111.422771,117.65355 L79.742409,132.949912 L76.5257763,134.504714 L9.65047684,166.548104 C5.4112904,168.593211 0.000578531073,165.503855 0.000578531073,160.794612 L0.000578531073,71.7210757 C0.000578531073,70.0173017 0.874160452,68.5463864 2.04568588,67.4384994 C2.53454463,66.9481944 3.08848814,66.5446689 3.66412655,66.2250305 C5.26231864,65.2661153 7.54173107,65.0101153 9.47981017,65.7766689 L110.890522,105.957098 C116.045234,108.002206 116.450206,115.225166 111.422771,117.65355" fill="#ED3049"></path>
<path d="M111.422771,117.65355 L79.742409,132.949912 L2.04568588,67.4384994 C2.53454463,66.9481944 3.08848814,66.5446689 3.66412655,66.2250305 C5.26231864,65.2661153 7.54173107,65.0101153 9.47981017,65.7766689 L110.890522,105.957098 C116.045234,108.002206 116.450206,115.225166 111.422771,117.65355" fill-opacity="0.25" fill="#000000"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,38 @@
import crypto from 'crypto';
import { URLSearchParams } from 'url';
import authScope from '../common/auth-scope.js';
export default async function generateAuthUrl($) {
const oauthRedirectUrlField = $.app.auth.fields.find(
(field) => field.key == 'oAuthRedirectUrl'
);
const redirectUri = oauthRedirectUrlField.value;
const state = crypto.randomBytes(100).toString('base64url');
const codeVerifier = crypto.randomBytes(96).toString('base64url');
const codeChallenge = crypto
.createHash('sha256')
.update(codeVerifier)
.digest('base64')
.replace(/=/g, '')
.replace(/\+/g, '-')
.replace(/\//g, '_');
const searchParams = new URLSearchParams({
client_id: $.auth.data.clientId,
redirect_uri: redirectUri,
response_type: 'code',
scope: authScope.join(' '),
state,
code_challenge: codeChallenge,
code_challenge_method: 'S256',
});
const url = `https://airtable.com/oauth2/v1/authorize?${searchParams.toString()}`;
await $.auth.set({
url,
originalCodeChallenge: codeChallenge,
originalState: state,
codeVerifier,
});
}

View File

@@ -0,0 +1,48 @@
import generateAuthUrl from './generate-auth-url.js';
import verifyCredentials from './verify-credentials.js';
import refreshToken from './refresh-token.js';
import isStillVerified from './is-still-verified.js';
export default {
fields: [
{
key: 'oAuthRedirectUrl',
label: 'OAuth Redirect URL',
type: 'string',
required: true,
readOnly: true,
value: '{WEB_APP_URL}/app/airtable/connections/add',
placeholder: null,
description:
'When asked to input a redirect URL in Airtable, enter the URL above.',
clickToCopy: true,
},
{
key: 'clientId',
label: 'Client ID',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description: null,
clickToCopy: false,
},
{
key: 'clientSecret',
label: 'Client Secret',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description: null,
clickToCopy: false,
},
],
generateAuthUrl,
verifyCredentials,
isStillVerified,
refreshToken,
};

View File

@@ -0,0 +1,8 @@
import getCurrentUser from '../common/get-current-user.js';
const isStillVerified = async ($) => {
const currentUser = await getCurrentUser($);
return !!currentUser.id;
};
export default isStillVerified;

View File

@@ -0,0 +1,40 @@
import { URLSearchParams } from 'node:url';
import authScope from '../common/auth-scope.js';
const refreshToken = async ($) => {
const params = new URLSearchParams({
client_id: $.auth.data.clientId,
grant_type: 'refresh_token',
refresh_token: $.auth.data.refreshToken,
});
const basicAuthToken = Buffer.from(
$.auth.data.clientId + ':' + $.auth.data.clientSecret
).toString('base64');
const { data } = await $.http.post(
'https://airtable.com/oauth2/v1/token',
params.toString(),
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: `Basic ${basicAuthToken}`,
},
additionalProperties: {
skipAddingAuthHeader: true,
},
}
);
await $.auth.set({
accessToken: data.access_token,
refreshToken: data.refresh_token,
expiresIn: data.expires_in,
refreshExpiresIn: data.refresh_expires_in,
scope: authScope.join(' '),
tokenType: data.token_type,
});
};
export default refreshToken;

View File

@@ -0,0 +1,56 @@
import getCurrentUser from '../common/get-current-user.js';
const verifyCredentials = async ($) => {
if ($.auth.data.originalState !== $.auth.data.state) {
throw new Error("The 'state' parameter does not match.");
}
if ($.auth.data.originalCodeChallenge !== $.auth.data.code_challenge) {
throw new Error("The 'code challenge' parameter does not match.");
}
const oauthRedirectUrlField = $.app.auth.fields.find(
(field) => field.key == 'oAuthRedirectUrl'
);
const redirectUri = oauthRedirectUrlField.value;
const basicAuthToken = Buffer.from(
$.auth.data.clientId + ':' + $.auth.data.clientSecret
).toString('base64');
const { data } = await $.http.post(
'https://airtable.com/oauth2/v1/token',
{
code: $.auth.data.code,
client_id: $.auth.data.clientId,
redirect_uri: redirectUri,
grant_type: 'authorization_code',
code_verifier: $.auth.data.codeVerifier,
},
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: `Basic ${basicAuthToken}`,
},
additionalProperties: {
skipAddingAuthHeader: true,
},
}
);
await $.auth.set({
accessToken: data.access_token,
tokenType: data.token_type,
});
const currentUser = await getCurrentUser($);
await $.auth.set({
clientId: $.auth.data.clientId,
clientSecret: $.auth.data.clientSecret,
scope: $.auth.data.scope,
expiresIn: data.expires_in,
refreshExpiresIn: data.refresh_expires_in,
refreshToken: data.refresh_token,
screenName: currentUser.email,
});
};
export default verifyCredentials;

View File

@@ -0,0 +1,12 @@
const addAuthHeader = ($, requestConfig) => {
if (
!requestConfig.additionalProperties?.skipAddingAuthHeader &&
$.auth.data?.accessToken
) {
requestConfig.headers.Authorization = `${$.auth.data.tokenType} ${$.auth.data.accessToken}`;
}
return requestConfig;
};
export default addAuthHeader;

View File

@@ -0,0 +1,12 @@
const authScope = [
'data.records:read',
'data.records:write',
'data.recordComments:read',
'data.recordComments:write',
'schema.bases:read',
'schema.bases:write',
'user.email:read',
'webhook:manage',
];
export default authScope;

View File

@@ -0,0 +1,6 @@
const getCurrentUser = async ($) => {
const { data: currentUser } = await $.http.get('/v0/meta/whoami');
return currentUser;
};
export default getCurrentUser;

View File

@@ -0,0 +1,6 @@
import listBases from './list-bases/index.js';
import listTableFields from './list-table-fields/index.js';
import listTableViews from './list-table-views/index.js';
import listTables from './list-tables/index.js';
export default [listBases, listTableFields, listTableViews, listTables];

View File

@@ -0,0 +1,28 @@
export default {
name: 'List bases',
key: 'listBases',
async run($) {
const bases = {
data: [],
};
const params = {};
do {
const { data } = await $.http.get('/v0/meta/bases', { params });
params.offset = data.offset;
if (data?.bases) {
for (const base of data.bases) {
bases.data.push({
value: base.id,
name: base.name,
});
}
}
} while (params.offset);
return bases;
},
};

View File

@@ -0,0 +1,39 @@
export default {
name: 'List table fields',
key: 'listTableFields',
async run($) {
const tableFields = {
data: [],
};
const { baseId, tableId } = $.step.parameters;
if (!baseId) {
return tableFields;
}
const params = {};
do {
const { data } = await $.http.get(`/v0/meta/bases/${baseId}/tables`, {
params,
});
params.offset = data.offset;
if (data?.tables) {
for (const table of data.tables) {
if (table.id === tableId) {
table.fields.forEach((field) => {
tableFields.data.push({
value: field.name,
name: field.name,
});
});
}
}
}
} while (params.offset);
return tableFields;
},
};

View File

@@ -0,0 +1,39 @@
export default {
name: 'List table views',
key: 'listTableViews',
async run($) {
const tableViews = {
data: [],
};
const { baseId, tableId } = $.step.parameters;
if (!baseId) {
return tableViews;
}
const params = {};
do {
const { data } = await $.http.get(`/v0/meta/bases/${baseId}/tables`, {
params,
});
params.offset = data.offset;
if (data?.tables) {
for (const table of data.tables) {
if (table.id === tableId) {
table.views.forEach((view) => {
tableViews.data.push({
value: view.id,
name: view.name,
});
});
}
}
}
} while (params.offset);
return tableViews;
},
};

View File

@@ -0,0 +1,35 @@
export default {
name: 'List tables',
key: 'listTables',
async run($) {
const tables = {
data: [],
};
const baseId = $.step.parameters.baseId;
if (!baseId) {
return tables;
}
const params = {};
do {
const { data } = await $.http.get(`/v0/meta/bases/${baseId}/tables`, {
params,
});
params.offset = data.offset;
if (data?.tables) {
for (const table of data.tables) {
tables.data.push({
value: table.id,
name: table.name,
});
}
}
} while (params.offset);
return tables;
},
};

View File

@@ -0,0 +1,3 @@
import listFields from './list-fields/index.js';
export default [listFields];

View File

@@ -0,0 +1,86 @@
const hasValue = (value) => value !== null && value !== undefined;
export default {
name: 'List fields',
key: 'listFields',
async run($) {
const options = [];
const { baseId, tableId } = $.step.parameters;
if (!hasValue(baseId) || !hasValue(tableId)) {
return;
}
const { data } = await $.http.get(`/v0/meta/bases/${baseId}/tables`);
const selectedTable = data.tables.find((table) => table.id === tableId);
if (!selectedTable) return;
selectedTable.fields.forEach((field) => {
if (field.type === 'singleSelect') {
options.push({
label: field.name,
key: field.name,
type: 'dropdown',
required: false,
variables: true,
options: field.options.choices.map((choice) => ({
label: choice.name,
value: choice.id,
})),
});
} else if (field.type === 'multipleSelects') {
options.push({
label: field.name,
key: field.name,
type: 'dynamic',
required: false,
variables: true,
fields: [
{
label: 'Value',
key: 'value',
type: 'dropdown',
required: false,
variables: true,
options: field.options.choices.map((choice) => ({
label: choice.name,
value: choice.id,
})),
},
],
});
} else if (field.type === 'checkbox') {
options.push({
label: field.name,
key: field.name,
type: 'dropdown',
required: false,
variables: true,
options: [
{
label: 'Yes',
value: 'true',
},
{
label: 'No',
value: 'false',
},
],
});
} else {
options.push({
label: field.name,
key: field.name,
type: 'string',
required: false,
variables: true,
});
}
});
return options;
},
};

View File

@@ -0,0 +1,22 @@
import defineApp from '../../helpers/define-app.js';
import addAuthHeader from './common/add-auth-header.js';
import auth from './auth/index.js';
import actions from './actions/index.js';
import dynamicData from './dynamic-data/index.js';
import dynamicFields from './dynamic-fields/index.js';
export default defineApp({
name: 'Airtable',
key: 'airtable',
baseUrl: 'https://airtable.com',
apiBaseUrl: 'https://api.airtable.com',
iconUrl: '{BASE_URL}/apps/airtable/assets/favicon.svg',
authDocUrl: '{DOCS_URL}/apps/airtable/connection',
primaryColor: 'FFBF00',
supportsConnections: true,
beforeRequest: [addAuthHeader],
auth,
actions,
dynamicData,
dynamicFields,
});

View File

@@ -0,0 +1 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="132" height="24" fill="none" viewBox="0 0 132 24"><path fill="#19191C" d="M38.557 19.495c2.16 0 3.25-1.113 3.725-1.87h.214c.094.805.664 1.562 1.779 1.562h2.111V16.82h-.545c-.38 0-.57-.213-.57-.545V6.776h-2.8v1.516h-.213c-.545-.758-1.684-1.824-3.772-1.824-3.321 0-5.789 2.748-5.789 6.514s2.515 6.513 5.86 6.513m.498-2.7c-1.969 0-3.51-1.445-3.51-3.79 0-2.297 1.494-3.86 3.487-3.86 1.898 0 3.487 1.397 3.487 3.86 0 2.108-1.352 3.79-3.463 3.79M48.04 24h2.799v-6.376h.213c.522.758 1.637 1.871 3.844 1.871 3.321 0 5.741-2.795 5.741-6.513 0-3.743-2.586-6.514-5.931-6.514-2.135 0-3.18 1.16-3.678 1.8h-.213V6.776h-2.776V24m6.263-7.134c-1.922 0-3.512-1.42-3.512-3.884 0-2.108 1.353-3.885 3.464-3.885 1.97 0 3.511 1.54 3.511 3.885 0 2.297-1.494 3.884-3.463 3.884M62.082 24h2.8v-6.376h.213c.522.758 1.637 1.871 3.843 1.871 3.321 0 5.51-2.795 5.51-6.513 0-3.743-2.355-6.514-5.7-6.514-2.135 0-3.179 1.16-3.677 1.8h-.214V6.776h-2.775zm6.263-7.134c-1.922 0-3.511-1.42-3.511-3.884 0-2.108 1.352-3.885 3.463-3.885 1.97 0 3.512 1.54 3.512 3.885 0 2.297-1.495 3.884-3.464 3.884m9.805 2.61h3.961l2.254-9.735h.143l2.253 9.735H90.7l3.153-12.412h-2.821l-2.254 9.759h-.214l-2.253-9.759h-3.725l-2.278 9.759h-.213l-2.23-9.759h-2.99l3.274 12.412m17.123 0h2.8V13.34c0-2.345 1.09-3.79 3.131-3.79h1.233V6.756h-.925c-1.59 0-2.8 1.09-3.274 2.132h-.19V7.064h-2.775zm21.057 0h2.183v-2.487h-2.159c-.854 0-1.21-.38-1.21-1.256V9.528h3.511V7.064h-3.511V3.582h-2.657v3.482h-2.325v2.464h2.159v6.229c0 2.63 1.589 3.719 4.009 3.719m9.693.019c2.586 0 4.864-1.279 5.67-3.86l-2.562-.616c-.451 1.373-1.755 2.084-3.131 2.084-2.041 0-3.393-1.326-3.417-3.41h9.419v-.782c0-3.695-2.301-6.443-6.097-6.443-3.346 0-6.216 2.63-6.216 6.537 0 3.79 2.538 6.49 6.334 6.49m-3.416-7.84c.166-1.492 1.518-2.747 3.298-2.747 1.708 0 3.108 1.066 3.25 2.747h-6.548"/><path fill="#19191C" fill-rule="evenodd" d="M108.916 19.476h-2.8V9.528h-2.182V7.064h4.982z" clip-rule="evenodd"/><path fill="#19191C" d="M107.309 5.342c1.02 0 1.779-.758 1.779-1.753 0-.971-.759-1.73-1.779-1.73-1.021 0-1.78.759-1.78 1.73 0 .995.759 1.753 1.78 1.753"/><path fill="#FD366E" d="M24.443 16.432v5.478H10.752c-3.989 0-7.472-2.203-9.335-5.478A11.041 11.041 0 0 1 0 11.695v-1.48a10.97 10.97 0 0 1 .381-2.247C1.661 3.368 5.82 0 10.751 0c4.934 0 9.092 3.37 10.371 7.967h-5.854c-.96-1.499-2.624-2.49-4.516-2.49s-3.555.991-4.516 2.49a5.47 5.47 0 0 0-.67 1.494 5.562 5.562 0 0 0-.202 1.494 5.5 5.5 0 0 0 1.69 3.983 5.32 5.32 0 0 0 3.698 1.494h13.69"/><path fill="#FD366E" d="M24.443 9.46v5.478h-9.994a5.5 5.5 0 0 0 1.691-3.983 5.56 5.56 0 0 0-.203-1.494h8.506"/></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,65 @@
import verifyCredentials from './verify-credentials.js';
import isStillVerified from './is-still-verified.js';
export default {
fields: [
{
key: 'screenName',
label: 'Screen Name',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description:
'Screen name of your connection to be used on Automatisch UI.',
clickToCopy: false,
},
{
key: 'projectId',
label: 'Project ID',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description: 'Project ID of your Appwrite project.',
clickToCopy: false,
},
{
key: 'apiKey',
label: 'API Key',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description: 'API key of your Appwrite project.',
clickToCopy: false,
},
{
key: 'instanceUrl',
label: 'Appwrite instance URL',
type: 'string',
required: false,
readOnly: false,
placeholder: '',
description: '',
clickToCopy: true,
},
{
key: 'host',
label: 'Host Name',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description: 'Host name of your Appwrite project.',
clickToCopy: false,
},
],
verifyCredentials,
isStillVerified,
};

View File

@@ -0,0 +1,8 @@
import verifyCredentials from './verify-credentials.js';
const isStillVerified = async ($) => {
await verifyCredentials($);
return true;
};
export default isStillVerified;

View File

@@ -0,0 +1,5 @@
const verifyCredentials = async ($) => {
await $.http.get('/v1/users');
};
export default verifyCredentials;

View File

@@ -0,0 +1,16 @@
const addAuthHeader = ($, requestConfig) => {
requestConfig.headers['Content-Type'] = 'application/json';
if ($.auth.data?.apiKey && $.auth.data?.projectId) {
requestConfig.headers['X-Appwrite-Project'] = $.auth.data.projectId;
requestConfig.headers['X-Appwrite-Key'] = $.auth.data.apiKey;
}
if ($.auth.data?.host) {
requestConfig.headers['Host'] = $.auth.data.host;
}
return requestConfig;
};
export default addAuthHeader;

View File

@@ -0,0 +1,13 @@
const setBaseUrl = ($, requestConfig) => {
const instanceUrl = $.auth.data.instanceUrl;
if (instanceUrl) {
requestConfig.baseURL = instanceUrl;
} else if ($.app.apiBaseUrl) {
requestConfig.baseURL = $.app.apiBaseUrl;
}
return requestConfig;
};
export default setBaseUrl;

View File

@@ -0,0 +1,4 @@
import listCollections from './list-collections/index.js';
import listDatabases from './list-databases/index.js';
export default [listCollections, listDatabases];

View File

@@ -0,0 +1,44 @@
export default {
name: 'List collections',
key: 'listCollections',
async run($) {
const collections = {
data: [],
};
const databaseId = $.step.parameters.databaseId;
if (!databaseId) {
return collections;
}
const params = {
queries: [
JSON.stringify({
method: 'orderAsc',
attribute: 'name',
}),
JSON.stringify({
method: 'limit',
values: [100],
}),
],
};
const { data } = await $.http.get(
`/v1/databases/${databaseId}/collections`,
{ params }
);
if (data?.collections) {
for (const collection of data.collections) {
collections.data.push({
value: collection.$id,
name: collection.name,
});
}
}
return collections;
},
};

View File

@@ -0,0 +1,36 @@
export default {
name: 'List databases',
key: 'listDatabases',
async run($) {
const databases = {
data: [],
};
const params = {
queries: [
JSON.stringify({
method: 'orderAsc',
attribute: 'name',
}),
JSON.stringify({
method: 'limit',
values: [100],
}),
],
};
const { data } = await $.http.get('/v1/databases', { params });
if (data?.databases) {
for (const database of data.databases) {
databases.data.push({
value: database.$id,
name: database.name,
});
}
}
return databases;
},
};

View File

@@ -0,0 +1,21 @@
import defineApp from '../../helpers/define-app.js';
import addAuthHeader from './common/add-auth-header.js';
import setBaseUrl from './common/set-base-url.js';
import auth from './auth/index.js';
import triggers from './triggers/index.js';
import dynamicData from './dynamic-data/index.js';
export default defineApp({
name: 'Appwrite',
key: 'appwrite',
baseUrl: 'https://appwrite.io',
apiBaseUrl: 'https://cloud.appwrite.io',
iconUrl: '{BASE_URL}/apps/appwrite/assets/favicon.svg',
authDocUrl: '{DOCS_URL}/apps/appwrite/connection',
primaryColor: 'FD366E',
supportsConnections: true,
beforeRequest: [setBaseUrl, addAuthHeader],
auth,
triggers,
dynamicData,
});

View File

@@ -0,0 +1,3 @@
import newDocuments from './new-documents/index.js';
export default [newDocuments];

View File

@@ -0,0 +1,104 @@
import defineTrigger from '../../../../helpers/define-trigger.js';
export default defineTrigger({
name: 'New documents',
key: 'newDocuments',
pollInterval: 15,
description: 'Triggers when a new document is created.',
arguments: [
{
label: 'Database',
key: 'databaseId',
type: 'dropdown',
required: true,
description: '',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listDatabases',
},
],
},
},
{
label: 'Collection',
key: 'collectionId',
type: 'dropdown',
required: true,
dependsOn: ['parameters.databaseId'],
description: '',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listCollections',
},
{
name: 'parameters.databaseId',
value: '{parameters.databaseId}',
},
],
},
},
],
async run($) {
const { databaseId, collectionId } = $.step.parameters;
const limit = 1;
let lastDocumentId = undefined;
let offset = 0;
let documentCount = 0;
do {
const params = {
queries: [
JSON.stringify({
method: 'orderDesc',
attribute: '$createdAt',
}),
JSON.stringify({
method: 'limit',
values: [limit],
}),
// An invalid cursor shouldn't be sent.
lastDocumentId &&
JSON.stringify({
method: 'cursorAfter',
values: [lastDocumentId],
}),
].filter(Boolean),
};
const { data } = await $.http.get(
`/v1/databases/${databaseId}/collections/${collectionId}/documents`,
{ params }
);
const documents = data?.documents;
documentCount = documents?.length;
offset = offset + limit;
lastDocumentId = documents[documentCount - 1]?.$id;
if (!documentCount) {
return;
}
for (const document of documents) {
$.pushTriggerItem({
raw: document,
meta: {
internalId: document.$id,
},
});
}
} while (documentCount === limit);
},
});

View File

@@ -0,0 +1,3 @@
import sendPrompt from './send-prompt/index.js';
export default [sendPrompt];

View File

@@ -0,0 +1,97 @@
import defineAction from '../../../../helpers/define-action.js';
const castFloatOrUndefined = (value) => {
return value === '' ? undefined : parseFloat(value);
};
export default defineAction({
name: 'Send prompt',
key: 'sendPrompt',
description: 'Creates a completion for the provided prompt and parameters.',
arguments: [
{
label: 'Prompt',
key: 'prompt',
type: 'string',
required: true,
variables: true,
description: 'The text to analyze.',
},
{
label: 'Temperature',
key: 'temperature',
type: 'string',
required: false,
variables: true,
description:
'What sampling temperature to use, between 0 and 2. Higher values means the model will take more risks. Try 0.9 for more creative applications, and 0 (argmax sampling) for ones with a well-defined answer. We generally recommend altering this or Top P but not both.',
},
{
label: 'Maximum tokens',
key: 'maxTokens',
type: 'string',
required: false,
variables: true,
description:
'The maximum number of tokens to generate in the completion.',
},
{
label: 'Stop Sequence',
key: 'stopSequence',
type: 'string',
required: false,
variables: true,
description:
'Single stop sequence where the API will stop generating further tokens. The returned text will not contain the stop sequence.',
},
{
label: 'Top P',
key: 'topP',
type: 'string',
required: false,
variables: true,
description:
'An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.',
},
{
label: 'Frequency Penalty',
key: 'frequencyPenalty',
type: 'string',
required: false,
variables: true,
description: `Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.`,
},
{
label: 'Presence Penalty',
key: 'presencePenalty',
type: 'string',
required: false,
variables: true,
description: `Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.`,
},
],
async run($) {
const payload = {
model: $.step.parameters.model,
prompt: $.step.parameters.prompt,
temperature: castFloatOrUndefined($.step.parameters.temperature),
max_tokens: castFloatOrUndefined($.step.parameters.maxTokens),
stop: $.step.parameters.stopSequence || null,
top_p: castFloatOrUndefined($.step.parameters.topP),
frequency_penalty: castFloatOrUndefined(
$.step.parameters.frequencyPenalty
),
presence_penalty: castFloatOrUndefined($.step.parameters.presencePenalty),
};
const { data } = await $.http.post(
`/deployments/${$.auth.data.deploymentId}/completions`,
payload
);
$.setActionItem({
raw: data,
});
},
});

View File

@@ -0,0 +1,6 @@
<svg width="256px" height="260px" viewBox="0 0 256 260" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<title>OpenAI</title>
<g>
<path d="M239.183914,106.202783 C245.054304,88.5242096 243.02228,69.1733805 233.607599,53.0998864 C219.451678,28.4588021 190.999703,15.7836129 163.213007,21.739505 C147.554077,4.32145883 123.794909,-3.42398554 100.87901,1.41873898 C77.9631105,6.26146349 59.3690093,22.9572536 52.0959621,45.2214219 C33.8436494,48.9644867 18.0901721,60.392749 8.86672513,76.5818033 C-5.443491,101.182962 -2.19544431,132.215255 16.8986662,153.320094 C11.0060865,170.990656 13.0197283,190.343991 22.4238231,206.422991 C36.5975553,231.072344 65.0680342,243.746566 92.8695738,237.783372 C105.235639,251.708249 123.001113,259.630942 141.623968,259.52692 C170.105359,259.552169 195.337611,241.165718 204.037777,214.045661 C222.28734,210.296356 238.038489,198.869783 247.267014,182.68528 C261.404453,158.127515 258.142494,127.262775 239.183914,106.202783 L239.183914,106.202783 Z M141.623968,242.541207 C130.255682,242.559177 119.243876,238.574642 110.519381,231.286197 L112.054146,230.416496 L163.724595,200.590881 C166.340648,199.056444 167.954321,196.256818 167.970781,193.224005 L167.970781,120.373788 L189.815614,133.010026 C190.034132,133.121423 190.186235,133.330564 190.224885,133.572774 L190.224885,193.940229 C190.168603,220.758427 168.442166,242.484864 141.623968,242.541207 Z M37.1575749,197.93062 C31.456498,188.086359 29.4094818,176.546984 31.3766237,165.342426 L32.9113895,166.263285 L84.6329973,196.088901 C87.2389349,197.618207 90.4682717,197.618207 93.0742093,196.088901 L156.255402,159.663793 L156.255402,184.885111 C156.243557,185.149771 156.111725,185.394602 155.89729,185.550176 L103.561776,215.733903 C80.3054953,229.131632 50.5924954,221.165435 37.1575749,197.93062 Z M23.5493181,85.3811273 C29.2899861,75.4733097 38.3511911,67.9162648 49.1287482,64.0478825 L49.1287482,125.438515 C49.0891492,128.459425 50.6965386,131.262556 53.3237748,132.754232 L116.198014,169.025864 L94.3531808,181.662102 C94.1132325,181.789434 93.8257461,181.789434 93.5857979,181.662102 L41.3526015,151.529534 C18.1419426,138.076098 10.1817681,108.385562 23.5493181,85.125333 L23.5493181,85.3811273 Z M203.0146,127.075598 L139.935725,90.4458545 L161.7294,77.8607748 C161.969348,77.7334434 162.256834,77.7334434 162.496783,77.8607748 L214.729979,108.044502 C231.032329,117.451747 240.437294,135.426109 238.871504,154.182739 C237.305714,172.939368 225.050719,189.105572 207.414262,195.67963 L207.414262,134.288998 C207.322521,131.276867 205.650697,128.535853 203.0146,127.075598 Z M224.757116,94.3850867 L223.22235,93.4642272 L171.60306,63.3828173 C168.981293,61.8443751 165.732456,61.8443751 163.110689,63.3828173 L99.9806554,99.8079259 L99.9806554,74.5866077 C99.9533004,74.3254088 100.071095,74.0701869 100.287609,73.9215426 L152.520805,43.7889738 C168.863098,34.3743518 189.174256,35.2529043 204.642579,46.0434841 C220.110903,56.8340638 227.949269,75.5923959 224.757116,94.1804513 L224.757116,94.3850867 Z M88.0606409,139.097931 L66.2158076,126.512851 C65.9950399,126.379091 65.8450965,126.154176 65.8065367,125.898945 L65.8065367,65.684966 C65.8314495,46.8285367 76.7500605,29.6846032 93.8270852,21.6883055 C110.90411,13.6920079 131.063833,16.2835462 145.5632,28.338998 L144.028434,29.2086986 L92.3579852,59.0343142 C89.7419327,60.5687513 88.1282597,63.3683767 88.1117998,66.4011901 L88.0606409,139.097931 Z M99.9294965,113.5185 L128.06687,97.3011417 L156.255402,113.5185 L156.255402,145.953218 L128.169187,162.170577 L99.9806554,145.953218 L99.9294965,113.5185 Z" fill="#000000"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,58 @@
import verifyCredentials from './verify-credentials.js';
import isStillVerified from './is-still-verified.js';
export default {
fields: [
{
key: 'screenName',
label: 'Screen Name',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description:
'Screen name of your connection to be used on Automatisch UI.',
clickToCopy: false,
},
{
key: 'yourResourceName',
label: 'Your Resource Name',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description: 'The name of your Azure OpenAI Resource.',
docUrl: 'https://automatisch.io/docs/azure-openai#your-resource-name',
clickToCopy: false,
},
{
key: 'deploymentId',
label: 'Deployment ID',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description: 'The deployment name you chose when you deployed the model.',
docUrl: 'https://automatisch.io/docs/azure-openai#deployment-id',
clickToCopy: false,
},
{
key: 'apiKey',
label: 'API Key',
type: 'string',
required: true,
readOnly: false,
value: null,
placeholder: null,
description: 'Azure OpenAI API key of your account.',
docUrl: 'https://automatisch.io/docs/azure-openai#api-key',
clickToCopy: false,
},
],
verifyCredentials,
isStillVerified,
};

View File

@@ -0,0 +1,6 @@
const isStillVerified = async ($) => {
await $.http.get('/fine_tuning/jobs');
return true;
};
export default isStillVerified;

View File

@@ -0,0 +1,5 @@
const verifyCredentials = async ($) => {
await $.http.get('/fine_tuning/jobs');
};
export default verifyCredentials;

View File

@@ -0,0 +1,13 @@
const addAuthHeader = ($, requestConfig) => {
if ($.auth.data?.apiKey) {
requestConfig.headers['api-key'] = $.auth.data.apiKey;
}
requestConfig.params = {
'api-version': '2023-10-01-preview',
};
return requestConfig;
};
export default addAuthHeader;

View File

@@ -0,0 +1,11 @@
const setBaseUrl = ($, requestConfig) => {
const yourResourceName = $.auth.data.yourResourceName;
if (yourResourceName) {
requestConfig.baseURL = `https://${yourResourceName}.openai.azure.com/openai`;
}
return requestConfig;
};
export default setBaseUrl;

View File

@@ -0,0 +1,20 @@
import defineApp from '../../helpers/define-app.js';
import setBaseUrl from './common/set-base-url.js';
import addAuthHeader from './common/add-auth-header.js';
import auth from './auth/index.js';
import actions from './actions/index.js';
export default defineApp({
name: 'Azure OpenAI',
key: 'azure-openai',
baseUrl:
'https://azure.microsoft.com/en-us/products/ai-services/openai-service',
apiBaseUrl: '',
iconUrl: '{BASE_URL}/apps/azure-openai/assets/favicon.svg',
authDocUrl: '{DOCS_URL}/apps/azure-openai/connection',
primaryColor: '000000',
supportsConnections: true,
beforeRequest: [setBaseUrl, addAuthHeader],
auth,
actions,
});

View File

@@ -0,0 +1,35 @@
import defineAction from '../../../../helpers/define-action.js';
export default defineAction({
name: 'Add Template',
key: 'addTemplate',
description:
'Creates an attachment of a specified object by given parent ID.',
arguments: [
{
label: 'Templete Data',
key: 'templateData',
type: 'string',
required: true,
variables: true,
description: 'The content of your new Template in XML/HTML format.',
},
],
async run($) {
const templateData = $.step.parameters.templateData;
const base64Data = Buffer.from(templateData).toString('base64');
const dataURI = `data:application/xml;base64,${base64Data}`;
const body = JSON.stringify({ template: dataURI });
const response = await $.http.post('/template', body, {
headers: {
'Content-Type': 'application/json',
},
});
$.setActionItem({ raw: response.data });
},
});

View File

@@ -0,0 +1,3 @@
import addTemplate from './add-template/index.js';
export default [addTemplate];

Some files were not shown because too many files have changed in this diff Show More