Compare commits
	
		
			319 Commits
		
	
	
		
			dependabot
			...
			AUT-1379
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | a82dff5c79 | ||
|   | 112baad65f | ||
|   | 978ceaadb6 | ||
|   | 770b07179f | ||
|   | 6d15167ad9 | ||
|   | 39cba6bc74 | ||
|   | 9558e66abf | ||
|   | ff7908955e | ||
|   | 26b095b835 | ||
|   | feba2a32f9 | ||
|   | 5090ece9b6 | ||
|   | 221b19586e | ||
|   | 3346c14255 | ||
|   | 6e97e023c9 | ||
|   | b26e2ecf2e | ||
|   | d896238f23 | ||
|   | d2c8f5a75c | ||
|   | ce430d238c | ||
|   | ee397441ed | ||
|   | ba82d986c1 | ||
|   | 2361cb521e | ||
|   | 05f8d95281 | ||
|   | 6c60b1c263 | ||
|   | 0c32a0693c | ||
|   | 807faa3c93 | ||
|   | fb53e37f7a | ||
|   | 4ffdf98e16 | ||
|   | b8da721e39 | ||
|   | db8b98ca16 | ||
|   | 01b8c600fe | ||
|   | 69bd5549a2 | ||
|   | bc631e3931 | ||
|   | 8ca4bc5a33 | ||
|   | 58a569afb0 | ||
|   | db718d6fc3 | ||
|   | ca9cb8b07b | ||
|   | ef14586412 | ||
|   | 09335fcd79 | ||
|   | 15f1fca6fe | ||
|   | a570b8eb7a | ||
|   | 02e2735b7a | ||
|   | 54fa347142 | ||
|   | 0c752beace | ||
|   | c14f808d29 | ||
|   | ad71173671 | ||
|   | 204325ef44 | ||
|   | 7ce6117659 | ||
|   | 823a2c8b73 | ||
|   | 741866e742 | ||
|   | 41622678b0 | ||
|   | 449b953401 | ||
|   | 551548400f | ||
|   | 6345ce5195 | ||
|   | 95651f6163 | ||
|   | b02c1545b7 | ||
|   | 2deaab9b24 | ||
|   | f0d4853533 | ||
|   | af81ae812f | ||
|   | bae76064e5 | ||
|   | 07d9198cc8 | ||
|   | a2e07ea2f7 | ||
|   | 864c762fe2 | ||
|   | 167bb4e8a0 | ||
|   | 4cf64ede74 | ||
|   | bb309fea6f | ||
|   | 90a7b4c1c0 | ||
|   | 1133362028 | ||
|   | eb9226bd4a | ||
|   | a9abdcc37e | ||
|   | 6ace93bdbf | ||
|   | b89197939a | ||
|   | da788106af | ||
|   | 49e92e6f1d | ||
|   | a6c3276104 | ||
|   | 6388bfc714 | ||
|   | bebc3b181d | ||
|   | 5a6d561c1a | ||
|   | 5ba575fdfd | ||
|   | dcf8bbd804 | ||
|   | ff93ffd0b1 | ||
|   | 395c09df92 | ||
|   | 4c903cd08b | ||
|   | 64cb98717c | ||
|   | b0e4ce54fb | ||
|   | d67a37002f | ||
|   | 965ff8bc3f | ||
|   | 400a495ad2 | ||
|   | 09d0822a8d | ||
|   | 7016c20ccc | ||
|   | df54895805 | ||
|   | 62d5e6fe51 | ||
|   | 4615a0b7ea | ||
|   | 280d603b14 | ||
|   | 36271f0749 | ||
|   | 579638f932 | ||
|   | 48871c82a6 | ||
|   | 14056c42ef | ||
|   | 90fe1576de | ||
|   | d61cf13985 | ||
|   | dfe6dfd0c6 | ||
|   | c138c7d0e9 | ||
|   | d542be947e | ||
|   | c76366e72e | ||
|   | 75abfda783 | ||
|   | f3d8d7d4ad | ||
|   | 7255eccb22 | ||
|   | a0decb70cc | ||
|   | 532f562495 | ||
|   | 27e58ae925 | ||
|   | abf30dfc1a | ||
|   | 218b8ce86e | ||
|   | 4867ffcb4b | ||
|   | e34c3b411d | ||
|   | c91b8be1a6 | ||
|   | 9cb41644a1 | ||
|   | 8c01cea147 | ||
|   | 58eb55e90a | ||
|   | bb05e82e15 | ||
|   | 5ab95ea175 | ||
|   | a25c4f1d1e | ||
|   | 15287de8af | ||
|   | 49b4d6b511 | ||
|   | d5b4a5d4ac | ||
|   | de480b491c | ||
|   | a949fda1fc | ||
|   | 3e28af670c | ||
|   | b5310afb90 | ||
|   | da81ecf915 | ||
|   | f597066d16 | ||
|   | ec30606b24 | ||
|   | 20dce14f17 | ||
|   | 821742de85 | ||
|   | 74dc108f62 | ||
|   | a05fe856bb | ||
|   | d13f51a32d | ||
|   | 3dbe599cb3 | ||
|   | cf966dd83c | ||
|   | 4e62f3654f | ||
|   | 970d926563 | ||
|   | ff49c747ba | ||
|   | c46b8a5f4f | ||
|   | 485324e204 | ||
|   | 4696a03db1 | ||
|   | 7885de36a9 | ||
|   | fac4339207 | ||
|   | 9c70519021 | ||
|   | 9ae77ecd5d | ||
|   | 1c8e6f278d | ||
|   | c0a190a9f2 | ||
|   | e29e2a62f0 | ||
|   | 1580640a35 | ||
|   | 33c84b7fcc | ||
|   | 9773ce75b0 | ||
|   | c310e8d152 | ||
|   | af251c7b81 | ||
|   | 122483de0c | ||
|   | 42c2131144 | ||
|   | 71bc7a62c2 | ||
|   | 87bfff07db | ||
|   | 1cb5b780d2 | ||
|   | 2f6acd4d6e | ||
|   | c2e2351505 | ||
|   | d847b5480b | ||
|   | 32749ee58e | ||
|   | a531b8b5fe | ||
|   | 148a0c5bb0 | ||
|   | 39f9a58200 | ||
|   | edd113d344 | ||
|   | c641e8729b | ||
|   | 2c4b13e4b5 | ||
|   | 48fcf4dda7 | ||
|   | acfd980d4f | ||
|   | db9bfab812 | ||
|   | d32820ee09 | ||
|   | 0f823fd19e | ||
|   | 4308ed5850 | ||
|   | b9cd7c3983 | ||
|   | fa607aa961 | ||
|   | 6900b71841 | ||
|   | bb230d67e8 | ||
|   | 4f076ec3e3 | ||
|   | 96a6cbfb95 | ||
|   | 5bdc5aed72 | ||
|   | d38b0f088b | ||
|   | 892710f705 | ||
|   | fbf898be64 | ||
|   | e3e2ecc1e1 | ||
|   | b59807d221 | ||
|   | 163ad52285 | ||
|   | 4023a6d1cc | ||
|   | ec827e5dc0 | ||
|   | a8f4fb7c22 | ||
|   | bc195ed452 | ||
|   | 41568904ab | ||
|   | 79050af391 | ||
|   | 2e5b44c424 | ||
|   | 7a437660d1 | ||
|   | 47510e24d5 | ||
|   | 91c9ef3068 | ||
|   | 240854e4ac | ||
|   | 0e4fc7efbc | ||
|   | b47e859225 | ||
|   | 62a1072682 | ||
|   | c6f2a97591 | ||
|   | d66be231b3 | ||
|   | f73ffc8711 | ||
|   | e4c17c1bc7 | ||
|   | 997e729535 | ||
|   | e0e313b8d1 | ||
|   | f0bd763e72 | ||
|   | 6a7a90536b | ||
|   | ac8ddedfb5 | ||
|   | 6fcd126ff8 | ||
|   | 55d0966d48 | ||
|   | 2583e08f7a | ||
|   | de72e62470 | ||
|   | 91993dbb07 | ||
|   | d87ee4daa3 | ||
|   | 6791e002ff | ||
|   | 4ca84aa515 | ||
|   | 8189cbc171 | ||
|   | 73edb45ff7 | ||
|   | 0bbe362660 | ||
|   | a76bee51fc | ||
|   | 6e42b52414 | ||
|   | aed61209fa | ||
|   | f5d796ea77 | ||
|   | ecb04b4ba9 | ||
|   | dabb01e237 | ||
|   | c2d27d0fd4 | ||
|   | e62bd75fdf | ||
|   | 2e917bd62b | ||
|   | e0492c4264 | ||
|   | 7db68e2f96 | ||
|   | e9b05a37d1 | ||
|   | 5613259536 | ||
|   | 3209ff16ac | ||
|   | a49c8602d1 | ||
|   | 7caa055e00 | ||
|   | 0d62bc6c78 | ||
|   | bc0861fd9e | ||
|   | f280052d93 | ||
|   | 21da49f79d | ||
|   | 19a5ccf942 | ||
|   | 0234b4ad81 | ||
|   | 59ee9c21f3 | ||
|   | 00317fed24 | ||
|   | 42f6311ca8 | ||
|   | 0f77a1ec03 | ||
|   | 8268cd4d09 | ||
|   | c868070337 | ||
|   | 2981fa5946 | ||
|   | 623ec66a79 | ||
|   | b51bae14ec | ||
|   | 05a3016557 | ||
|   | 9250456e7b | ||
|   | 163d6a7a28 | ||
|   | 4ce9976dbc | ||
|   | f6490990de | ||
|   | f24ff606ac | ||
|   | 3ff53744b5 | ||
|   | 0b33c10ed8 | ||
|   | 3fa87701ed | ||
|   | e5e0c6fa2a | ||
|   | 0b38a0b6af | ||
|   | 44b228777a | ||
|   | dd4f658d14 | ||
|   | 9c66f47bca | ||
|   | 138a34d6a4 | ||
|   | 8f2af2e863 | ||
|   | c732fe16b3 | ||
|   | 9be75e56e7 | ||
|   | e7d1f26034 | ||
|   | c554fff048 | ||
|   | 0268521aaa | ||
|   | 89b1cb9353 | ||
|   | 8a17c5eaab | ||
|   | f4a1ad6c8c | ||
|   | 93d76d8d79 | ||
|   | 0b956a71b9 | ||
|   | 26be72f76d | ||
|   | 737391c721 | ||
|   | 9c1d21fd1b | ||
|   | ef4a4c8611 | ||
|   | 13c0a8ceaa | ||
|   | c2976080f6 | ||
|   | 0a1b6931af | ||
|   | 5009319f91 | ||
|   | 4db8683bd6 | ||
|   | d35cf8d31e | ||
|   | 5fef16131a | ||
|   | 8b2235ee26 | ||
|   | 2d8faf849e | ||
|   | c9de9fa185 | ||
|   | 0618877d58 | ||
|   | f6b4e7eef8 | ||
|   | 7abe44da19 | ||
|   | 9006a0c25f | ||
|   | f8389ff8ab | ||
|   | 894afe8f92 | ||
|   | 115394ac8c | ||
|   | de42eda65f | ||
|   | 0b7591edce | ||
|   | a043a044ca | ||
|   | b1f2727beb | ||
|   | d6e78a48a0 | ||
|   | 589fe0f5f3 | ||
|   | 244eeeb816 | ||
|   | 4d5fc50f1a | ||
|   | dc0273148c | ||
|   | 5e6f4bfb88 | ||
|   | bc0e18d074 | ||
|   | 24d09fda4c | ||
|   | 5e20ac07d1 | ||
|   | 37c78e6bbd | ||
|   | 7dcfb1081b | ||
|   | 01407cf040 | ||
|   | eb814c2fb0 | ||
|   | d3caadf4af | 
| @@ -5,8 +5,11 @@ BACKEND_PORT=3000 | |||||||
| WEB_PORT=3001 | WEB_PORT=3001 | ||||||
|  |  | ||||||
| echo "Configuring backend environment variables..." | echo "Configuring backend environment variables..." | ||||||
|  |  | ||||||
| cd packages/backend | cd packages/backend | ||||||
|  |  | ||||||
| rm -rf .env | rm -rf .env | ||||||
|  |  | ||||||
| echo " | echo " | ||||||
| PORT=$BACKEND_PORT | PORT=$BACKEND_PORT | ||||||
| WEB_APP_URL=http://localhost:$WEB_PORT | WEB_APP_URL=http://localhost:$WEB_PORT | ||||||
| @@ -21,24 +24,35 @@ WEBHOOK_SECRET_KEY=sample_webhook_secret_key | |||||||
| APP_SECRET_KEY=sample_app_secret_key | APP_SECRET_KEY=sample_app_secret_key | ||||||
| REDIS_HOST=redis | REDIS_HOST=redis | ||||||
| SERVE_WEB_APP_SEPARATELY=true" >> .env | SERVE_WEB_APP_SEPARATELY=true" >> .env | ||||||
|  |  | ||||||
|  | echo "Installing backend dependencies..." | ||||||
|  |  | ||||||
|  | yarn | ||||||
|  |  | ||||||
| cd $CURRENT_DIR | cd $CURRENT_DIR | ||||||
|  |  | ||||||
| echo "Configuring web environment variables..." | echo "Configuring web environment variables..." | ||||||
|  |  | ||||||
| cd packages/web | cd packages/web | ||||||
|  |  | ||||||
| rm -rf .env | rm -rf .env | ||||||
|  |  | ||||||
| echo " | echo " | ||||||
| PORT=$WEB_PORT | PORT=$WEB_PORT | ||||||
| REACT_APP_BACKEND_URL=http://localhost:$BACKEND_PORT | REACT_APP_BACKEND_URL=http://localhost:$BACKEND_PORT | ||||||
| " >> .env | " >> .env | ||||||
|  |  | ||||||
|  | echo "Installing web dependencies..." | ||||||
|  |  | ||||||
|  | yarn | ||||||
|  |  | ||||||
| cd $CURRENT_DIR | cd $CURRENT_DIR | ||||||
|  |  | ||||||
| echo "Installing and linking dependencies..." |  | ||||||
| yarn |  | ||||||
| yarn lerna bootstrap |  | ||||||
|  |  | ||||||
| echo "Migrating database..." | echo "Migrating database..." | ||||||
|  |  | ||||||
| cd packages/backend | cd packages/backend | ||||||
|  |  | ||||||
| yarn db:migrate | yarn db:migrate | ||||||
| yarn db:seed:user | yarn db:seed:user | ||||||
|  |  | ||||||
| echo "Done!" | echo "Done!" | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								.github/workflows/backend.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/workflows/backend.yml
									
									
									
									
										vendored
									
									
								
							| @@ -41,8 +41,11 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           node-version: 18 |           node-version: 18 | ||||||
|       - name: Install dependencies |       - name: Install dependencies | ||||||
|         run: cd packages/backend && yarn |         run: yarn | ||||||
|  |         working-directory: packages/backend | ||||||
|       - name: Copy .env-example.test file to .env.test |       - name: Copy .env-example.test file to .env.test | ||||||
|         run: cd packages/backend && cp .env-example.test .env.test |         run: cp .env-example.test .env.test | ||||||
|  |         working-directory: packages/backend | ||||||
|       - name: Run tests |       - name: Run tests | ||||||
|         run: cd packages/backend && yarn test |         run: yarn test:coverage | ||||||
|  |         working-directory: packages/backend | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -18,11 +18,13 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           node-version: '18' |           node-version: '18' | ||||||
|           cache: 'yarn' |           cache: 'yarn' | ||||||
|           cache-dependency-path: yarn.lock |           cache-dependency-path: packages/backend/yarn.lock | ||||||
|       - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." |       - 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: echo "🖥️ The workflow is now ready to test your code on the runner." | ||||||
|       - run: yarn --frozen-lockfile |       - run: yarn --frozen-lockfile | ||||||
|       - run: cd packages/backend && yarn lint |         working-directory: packages/backend | ||||||
|  |       - run: yarn lint | ||||||
|  |         working-directory: packages/backend | ||||||
|       - run: echo "🍏 This job's status is ${{ job.status }}." |       - run: echo "🍏 This job's status is ${{ job.status }}." | ||||||
|   start-backend-server: |   start-backend-server: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
| @@ -35,11 +37,13 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           node-version: '18' |           node-version: '18' | ||||||
|           cache: 'yarn' |           cache: 'yarn' | ||||||
|           cache-dependency-path: yarn.lock |           cache-dependency-path: packages/backend/yarn.lock | ||||||
|       - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." |       - 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: echo "🖥️ The workflow is now ready to test your code on the runner." | ||||||
|       - run: yarn --frozen-lockfile && yarn lerna bootstrap |       - run: yarn --frozen-lockfile | ||||||
|       - run: cd packages/backend && yarn start |         working-directory: packages/backend | ||||||
|  |       - run: yarn start | ||||||
|  |         working-directory: packages/backend | ||||||
|         env: |         env: | ||||||
|           ENCRYPTION_KEY: sample_encryption_key |           ENCRYPTION_KEY: sample_encryption_key | ||||||
|           WEBHOOK_SECRET_KEY: sample_webhook_secret_key |           WEBHOOK_SECRET_KEY: sample_webhook_secret_key | ||||||
| @@ -55,11 +59,13 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           node-version: '18' |           node-version: '18' | ||||||
|           cache: 'yarn' |           cache: 'yarn' | ||||||
|           cache-dependency-path: yarn.lock |           cache-dependency-path: packages/backend/yarn.lock | ||||||
|       - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." |       - 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: echo "🖥️ The workflow is now ready to test your code on the runner." | ||||||
|       - run: yarn --frozen-lockfile && yarn lerna bootstrap |       - run: yarn --frozen-lockfile | ||||||
|       - run: cd packages/backend && yarn start:worker |         working-directory: packages/backend | ||||||
|  |       - run: yarn start:worker | ||||||
|  |         working-directory: packages/backend | ||||||
|         env: |         env: | ||||||
|           ENCRYPTION_KEY: sample_encryption_key |           ENCRYPTION_KEY: sample_encryption_key | ||||||
|           WEBHOOK_SECRET_KEY: sample_webhook_secret_key |           WEBHOOK_SECRET_KEY: sample_webhook_secret_key | ||||||
| @@ -75,11 +81,13 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           node-version: '18' |           node-version: '18' | ||||||
|           cache: 'yarn' |           cache: 'yarn' | ||||||
|           cache-dependency-path: yarn.lock |           cache-dependency-path: packages/web/yarn.lock | ||||||
|       - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." |       - 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: echo "🖥️ The workflow is now ready to test your code on the runner." | ||||||
|       - run: yarn --frozen-lockfile && yarn lerna bootstrap |       - run: yarn --frozen-lockfile | ||||||
|       - run: cd packages/web && yarn build |         working-directory: packages/web | ||||||
|  |       - run: yarn build | ||||||
|  |         working-directory: packages/web | ||||||
|         env: |         env: | ||||||
|           CI: false |           CI: false | ||||||
|       - run: echo "🍏 This job's status is ${{ job.status }}." |       - run: echo "🍏 This job's status is ${{ job.status }}." | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							| @@ -3,12 +3,13 @@ on: | |||||||
|   push: |   push: | ||||||
|     branches: |     branches: | ||||||
|       - main |       - main | ||||||
|   pull_request: |   # TODO: Add pull request after optimizing the total excecution time of the test suite. | ||||||
|     paths: |   # pull_request: | ||||||
|       - 'packages/backend/**' |   #   paths: | ||||||
|       - 'packages/e2e-tests/**' |   #     - 'packages/backend/**' | ||||||
|       - 'packages/web/**' |   #     - 'packages/e2e-tests/**' | ||||||
|       - '!packages/backend/src/apps/**' |   #     - 'packages/web/**' | ||||||
|  |   #     - '!packages/backend/src/apps/**' | ||||||
|   workflow_dispatch: |   workflow_dispatch: | ||||||
|  |  | ||||||
| env: | env: | ||||||
| @@ -58,13 +59,21 @@ jobs: | |||||||
|       - uses: actions/setup-node@v3 |       - uses: actions/setup-node@v3 | ||||||
|         with: |         with: | ||||||
|           node-version: 18 |           node-version: 18 | ||||||
|       - name: Install dependencies |       - name: Install web dependencies | ||||||
|         run: yarn && yarn lerna bootstrap |         run: yarn | ||||||
|  |         working-directory: ./packages/web | ||||||
|  |       - name: Install backend dependencies | ||||||
|  |         run: yarn | ||||||
|  |         working-directory: ./packages/backend | ||||||
|  |       - name: Install e2e-tests dependencies | ||||||
|  |         run: yarn | ||||||
|  |         working-directory: ./packages/e2e-tests | ||||||
|       - name: Install Playwright Browsers |       - name: Install Playwright Browsers | ||||||
|         run: yarn playwright install --with-deps |         run: yarn playwright install --with-deps | ||||||
|  |         working-directory: ./packages/e2e-tests | ||||||
|       - name: Build Automatisch web |       - name: Build Automatisch web | ||||||
|         working-directory: ./packages/web |  | ||||||
|         run: yarn build |         run: yarn build | ||||||
|  |         working-directory: ./packages/web | ||||||
|         env: |         env: | ||||||
|           # Keep this until we clean up warnings in build processes |           # Keep this until we clean up warnings in build processes | ||||||
|           CI: false |           CI: false | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -4,7 +4,6 @@ logs | |||||||
| npm-debug.log* | npm-debug.log* | ||||||
| yarn-debug.log* | yarn-debug.log* | ||||||
| yarn-error.log* | yarn-error.log* | ||||||
| lerna-debug.log* |  | ||||||
| .pnpm-debug.log* | .pnpm-debug.log* | ||||||
|  |  | ||||||
| # Diagnostic reports (https://nodejs.org/api/report.html) | # Diagnostic reports (https://nodejs.org/api/report.html) | ||||||
|   | |||||||
| @@ -11,10 +11,12 @@ WORKDIR /automatisch | |||||||
| # copy the app, note .dockerignore | # copy the app, note .dockerignore | ||||||
| COPY . /automatisch | COPY . /automatisch | ||||||
|  |  | ||||||
| RUN yarn | RUN cd packages/web && yarn | ||||||
|  |  | ||||||
| RUN cd packages/web && yarn build | RUN cd packages/web && yarn build | ||||||
|  |  | ||||||
|  | RUN cd packages/backend && yarn --production | ||||||
|  |  | ||||||
| RUN \ | RUN \ | ||||||
|   rm -rf /usr/local/share/.cache/ && \ |   rm -rf /usr/local/share/.cache/ && \ | ||||||
|   apk del build-dependencies |   apk del build-dependencies | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								lerna.json
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								lerna.json
									
									
									
									
									
								
							| @@ -1,13 +0,0 @@ | |||||||
| { |  | ||||||
|   "packages": [ |  | ||||||
|     "packages/*" |  | ||||||
|   ], |  | ||||||
|   "version": "0.10.0", |  | ||||||
|   "npmClient": "yarn", |  | ||||||
|   "useWorkspaces": true, |  | ||||||
|   "command": { |  | ||||||
|     "add": { |  | ||||||
|       "exact": true |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
							
								
								
									
										32
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,32 +0,0 @@ | |||||||
| { |  | ||||||
|   "name": "@automatisch/root", |  | ||||||
|   "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", |  | ||||||
|     "build:docs": "cd ./packages/docs && yarn install && yarn build" |  | ||||||
|   }, |  | ||||||
|   "workspaces": { |  | ||||||
|     "packages": [ |  | ||||||
|       "packages/*" |  | ||||||
|     ], |  | ||||||
|     "nohoist": [ |  | ||||||
|       "**/babel-loader", |  | ||||||
|       "**/webpack", |  | ||||||
|       "**/@automatisch/web", |  | ||||||
|       "**/ajv" |  | ||||||
|     ] |  | ||||||
|   }, |  | ||||||
|   "devDependencies": { |  | ||||||
|     "eslint": "^8.13.0", |  | ||||||
|     "eslint-config-prettier": "^8.3.0", |  | ||||||
|     "eslint-plugin-prettier": "^4.0.0", |  | ||||||
|     "lerna": "^4.0.0", |  | ||||||
|     "prettier": "^2.5.1" |  | ||||||
|   }, |  | ||||||
|   "publishConfig": { |  | ||||||
|     "access": "public" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -12,6 +12,7 @@ | |||||||
|     "pretest": "APP_ENV=test node ./test/setup/prepare-test-env.js", |     "pretest": "APP_ENV=test node ./test/setup/prepare-test-env.js", | ||||||
|     "test": "APP_ENV=test vitest run", |     "test": "APP_ENV=test vitest run", | ||||||
|     "test:watch": "APP_ENV=test vitest watch", |     "test:watch": "APP_ENV=test vitest watch", | ||||||
|  |     "test:coverage": "yarn test --coverage", | ||||||
|     "lint": "eslint .", |     "lint": "eslint .", | ||||||
|     "db:create": "node ./bin/database/create.js", |     "db:create": "node ./bin/database/create.js", | ||||||
|     "db:seed:user": "node ./bin/database/seed-user.js", |     "db:seed:user": "node ./bin/database/seed-user.js", | ||||||
| @@ -23,8 +24,7 @@ | |||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@bull-board/express": "^3.10.1", |     "@bull-board/express": "^3.10.1", | ||||||
|     "@casl/ability": "^6.5.0", |     "@casl/ability": "^6.5.0", | ||||||
|     "@graphql-tools/graphql-file-loader": "^7.3.4", |     "@faker-js/faker": "^9.2.0", | ||||||
|     "@graphql-tools/load": "^7.5.2", |  | ||||||
|     "@node-saml/passport-saml": "^4.0.4", |     "@node-saml/passport-saml": "^4.0.4", | ||||||
|     "@rudderstack/rudder-sdk-node": "^1.1.2", |     "@rudderstack/rudder-sdk-node": "^1.1.2", | ||||||
|     "@sentry/node": "^7.42.0", |     "@sentry/node": "^7.42.0", | ||||||
| @@ -38,14 +38,13 @@ | |||||||
|     "crypto-js": "^4.1.1", |     "crypto-js": "^4.1.1", | ||||||
|     "debug": "~2.6.9", |     "debug": "~2.6.9", | ||||||
|     "dotenv": "^10.0.0", |     "dotenv": "^10.0.0", | ||||||
|  |     "eslint": "^8.13.0", | ||||||
|  |     "eslint-config-prettier": "^8.3.0", | ||||||
|  |     "eslint-plugin-prettier": "^4.0.0", | ||||||
|     "express": "~4.18.2", |     "express": "~4.18.2", | ||||||
|     "express-async-errors": "^3.1.1", |     "express-async-errors": "^3.1.1", | ||||||
|     "express-basic-auth": "^1.2.1", |     "express-basic-auth": "^1.2.1", | ||||||
|     "express-graphql": "^0.12.0", |  | ||||||
|     "fast-xml-parser": "^4.0.11", |     "fast-xml-parser": "^4.0.11", | ||||||
|     "graphql-middleware": "^6.1.15", |  | ||||||
|     "graphql-shield": "^7.5.0", |  | ||||||
|     "graphql-tools": "^8.2.0", |  | ||||||
|     "handlebars": "^4.7.7", |     "handlebars": "^4.7.7", | ||||||
|     "http-errors": "~1.6.3", |     "http-errors": "~1.6.3", | ||||||
|     "http-proxy-agent": "^7.0.0", |     "http-proxy-agent": "^7.0.0", | ||||||
| @@ -67,6 +66,7 @@ | |||||||
|     "pg": "^8.7.1", |     "pg": "^8.7.1", | ||||||
|     "php-serialize": "^4.0.2", |     "php-serialize": "^4.0.2", | ||||||
|     "pluralize": "^8.0.0", |     "pluralize": "^8.0.0", | ||||||
|  |     "prettier": "^2.5.1", | ||||||
|     "raw-body": "^2.5.2", |     "raw-body": "^2.5.2", | ||||||
|     "showdown": "^2.1.0", |     "showdown": "^2.1.0", | ||||||
|     "uuid": "^9.0.1", |     "uuid": "^9.0.1", | ||||||
| @@ -98,10 +98,11 @@ | |||||||
|     "url": "https://github.com/automatisch/automatisch/issues" |     "url": "https://github.com/automatisch/automatisch/issues" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|  |     "@vitest/coverage-v8": "^2.1.5", | ||||||
|     "node-gyp": "^10.1.0", |     "node-gyp": "^10.1.0", | ||||||
|     "nodemon": "^2.0.13", |     "nodemon": "^2.0.13", | ||||||
|     "supertest": "^6.3.3", |     "supertest": "^6.3.3", | ||||||
|     "vitest": "^1.1.3" |     "vitest": "^2.1.5" | ||||||
|   }, |   }, | ||||||
|   "publishConfig": { |   "publishConfig": { | ||||||
|     "access": "public" |     "access": "public" | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://api.airtable.com', |   apiBaseUrl: 'https://api.airtable.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/airtable/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/airtable/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/airtable/connection', |   authDocUrl: '{DOCS_URL}/apps/airtable/connection', | ||||||
|   primaryColor: 'FFBF00', |   primaryColor: '#FFBF00', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://cloud.appwrite.io', |   apiBaseUrl: 'https://cloud.appwrite.io', | ||||||
|   iconUrl: '{BASE_URL}/apps/appwrite/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/appwrite/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/appwrite/connection', |   authDocUrl: '{DOCS_URL}/apps/appwrite/connection', | ||||||
|   primaryColor: 'FD366E', |   primaryColor: '#FD366E', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   iconUrl: '{BASE_URL}/apps/azure-openai/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/azure-openai/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/azure-openai/connection', |   authDocUrl: '{DOCS_URL}/apps/azure-openai/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://carbone.io', |   baseUrl: 'https://carbone.io', | ||||||
|   apiBaseUrl: 'https://api.carbone.io', |   apiBaseUrl: 'https://api.carbone.io', | ||||||
|   primaryColor: '6f42c1', |   primaryColor: '#6f42c1', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -12,8 +12,8 @@ export default defineApp({ | |||||||
|   baseUrl: 'https://clickup.com', |   baseUrl: 'https://clickup.com', | ||||||
|   apiBaseUrl: 'https://api.clickup.com/api', |   apiBaseUrl: 'https://api.clickup.com/api', | ||||||
|   iconUrl: '{BASE_URL}/apps/clickup/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/clickup/assets/favicon.svg', | ||||||
|   authDocUrl: 'https://automatisch.io/docs/apps/clickup/connection', |   authDocUrl: '{DOCS_URL}/apps/clickup/connection', | ||||||
|   primaryColor: 'FD71AF', |   primaryColor: '#FD71AF', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   iconUrl: '{BASE_URL}/apps/code/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/code/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/code/connection', |   authDocUrl: '{DOCS_URL}/apps/code/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -9,6 +9,6 @@ export default defineApp({ | |||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '001F52', |   primaryColor: '#001F52', | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -9,6 +9,6 @@ export default defineApp({ | |||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '001F52', |   primaryColor: '#001F52', | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://deepl.com', |   baseUrl: 'https://deepl.com', | ||||||
|   apiBaseUrl: 'https://api.deepl.com', |   apiBaseUrl: 'https://api.deepl.com', | ||||||
|   primaryColor: '0d2d45', |   primaryColor: '#0d2d45', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -9,6 +9,6 @@ export default defineApp({ | |||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '001F52', |   primaryColor: '#001F52', | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://discord.com', |   baseUrl: 'https://discord.com', | ||||||
|   apiBaseUrl: 'https://discord.com/api', |   apiBaseUrl: 'https://discord.com/api', | ||||||
|   primaryColor: '5865f2', |   primaryColor: '#5865f2', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   dynamicData, |   dynamicData, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://disqus.com/api', |   apiBaseUrl: 'https://disqus.com/api', | ||||||
|   iconUrl: '{BASE_URL}/apps/disqus/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/disqus/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/disqus/connection', |   authDocUrl: '{DOCS_URL}/apps/disqus/connection', | ||||||
|   primaryColor: '2E9FFF', |   primaryColor: '#2E9FFF', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://dropbox.com', |   baseUrl: 'https://dropbox.com', | ||||||
|   apiBaseUrl: 'https://api.dropboxapi.com', |   apiBaseUrl: 'https://api.dropboxapi.com', | ||||||
|   primaryColor: '0061ff', |   primaryColor: '#0061ff', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -9,6 +9,6 @@ export default defineApp({ | |||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '001F52', |   primaryColor: '#001F52', | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   iconUrl: '{BASE_URL}/apps/flickr/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/flickr/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/flickr/connection', |   authDocUrl: '{DOCS_URL}/apps/flickr/connection', | ||||||
|   docUrl: 'https://automatisch.io/docs/flickr', |   docUrl: 'https://automatisch.io/docs/flickr', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://www.flickr.com/', |   baseUrl: 'https://www.flickr.com/', | ||||||
|   apiBaseUrl: 'https://www.flickr.com/services', |   apiBaseUrl: 'https://www.flickr.com/services', | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://flowers-software.com', |   baseUrl: 'https://flowers-software.com', | ||||||
|   apiBaseUrl: 'https://webapp.flowers-software.com/api', |   apiBaseUrl: 'https://webapp.flowers-software.com/api', | ||||||
|   primaryColor: '02AFC7', |   primaryColor: '#02AFC7', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '001F52', |   primaryColor: '#001F52', | ||||||
|   actions, |   actions, | ||||||
|   dynamicFields, |   dynamicFields, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   iconUrl: '{BASE_URL}/apps/ghost/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/ghost/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/ghost/connection', |   authDocUrl: '{DOCS_URL}/apps/ghost/connection', | ||||||
|   primaryColor: '15171A', |   primaryColor: '#15171A', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://api.github.com', |   apiBaseUrl: 'https://api.github.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/github/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/github/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/github/connection', |   authDocUrl: '{DOCS_URL}/apps/github/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://gitlab.com', |   apiBaseUrl: 'https://gitlab.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/gitlab/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/gitlab/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/gitlab/connection', |   authDocUrl: '{DOCS_URL}/apps/gitlab/connection', | ||||||
|   primaryColor: 'FC6D26', |   primaryColor: '#FC6D26', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://www.googleapis.com/calendar', |   apiBaseUrl: 'https://www.googleapis.com/calendar', | ||||||
|   iconUrl: '{BASE_URL}/apps/google-calendar/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/google-calendar/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/google-calendar/connection', |   authDocUrl: '{DOCS_URL}/apps/google-calendar/connection', | ||||||
|   primaryColor: '448AFF', |   primaryColor: '#448AFF', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://www.googleapis.com/drive', |   apiBaseUrl: 'https://www.googleapis.com/drive', | ||||||
|   iconUrl: '{BASE_URL}/apps/google-drive/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/google-drive/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/google-drive/connection', |   authDocUrl: '{DOCS_URL}/apps/google-drive/connection', | ||||||
|   primaryColor: '1FA463', |   primaryColor: '#1FA463', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://forms.googleapis.com', |   apiBaseUrl: 'https://forms.googleapis.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/google-forms/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/google-forms/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/google-forms/connection', |   authDocUrl: '{DOCS_URL}/apps/google-forms/connection', | ||||||
|   primaryColor: '673AB7', |   primaryColor: '#673AB7', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://sheets.googleapis.com', |   apiBaseUrl: 'https://sheets.googleapis.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/google-sheets/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/google-sheets/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/google-sheets/connection', |   authDocUrl: '{DOCS_URL}/apps/google-sheets/connection', | ||||||
|   primaryColor: '0F9D58', |   primaryColor: '#0F9D58', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://tasks.googleapis.com', |   apiBaseUrl: 'https://tasks.googleapis.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/google-tasks/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/google-tasks/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/google-tasks/connection', |   authDocUrl: '{DOCS_URL}/apps/google-tasks/connection', | ||||||
|   primaryColor: '0066DA', |   primaryColor: '#0066DA', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://app.tryhelix.ai', |   apiBaseUrl: 'https://app.tryhelix.ai', | ||||||
|   iconUrl: '{BASE_URL}/apps/helix/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/helix/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/helix/connection', |   authDocUrl: '{DOCS_URL}/apps/helix/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -9,6 +9,6 @@ export default defineApp({ | |||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://www.hubspot.com', |   baseUrl: 'https://www.hubspot.com', | ||||||
|   apiBaseUrl: 'https://api.hubapi.com', |   apiBaseUrl: 'https://api.hubapi.com', | ||||||
|   primaryColor: 'F95C35', |   primaryColor: '#F95C35', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://invoicing.co/api', |   apiBaseUrl: 'https://invoicing.co/api', | ||||||
|   iconUrl: '{BASE_URL}/apps/invoice-ninja/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/invoice-ninja/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/invoice-ninja/connection', |   authDocUrl: '{DOCS_URL}/apps/invoice-ninja/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -9,11 +9,11 @@ export default defineApp({ | |||||||
|   name: 'Jotform', |   name: 'Jotform', | ||||||
|   key: 'jotform', |   key: 'jotform', | ||||||
|   iconUrl: '{BASE_URL}/apps/jotform/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/jotform/assets/favicon.svg', | ||||||
|   authDocUrl: 'https://automatisch.io/docs/apps/jotform/connection', |   authDocUrl: '{DOCS_URL}/apps/jotform/connection', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://www.jotform.com', |   baseUrl: 'https://www.jotform.com', | ||||||
|   apiBaseUrl: 'https://api.jotform.com', |   apiBaseUrl: 'https://api.jotform.com', | ||||||
|   primaryColor: 'FF6100', |   primaryColor: '#FF6100', | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -12,8 +12,8 @@ export default defineApp({ | |||||||
|   baseUrl: 'https://mailchimp.com', |   baseUrl: 'https://mailchimp.com', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   iconUrl: '{BASE_URL}/apps/mailchimp/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/mailchimp/assets/favicon.svg', | ||||||
|   authDocUrl: 'https://automatisch.io/docs/apps/mailchimp/connection', |   authDocUrl: '{DOCS_URL}/apps/mailchimp/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -7,11 +7,11 @@ export default defineApp({ | |||||||
|   name: 'MailerLite', |   name: 'MailerLite', | ||||||
|   key: 'mailerlite', |   key: 'mailerlite', | ||||||
|   iconUrl: '{BASE_URL}/apps/mailerlite/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/mailerlite/assets/favicon.svg', | ||||||
|   authDocUrl: 'https://automatisch.io/docs/apps/mailerlite/connection', |   authDocUrl: '{DOCS_URL}/apps/mailerlite/connection', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://www.mailerlite.com', |   baseUrl: 'https://www.mailerlite.com', | ||||||
|   apiBaseUrl: 'https://connect.mailerlite.com/api', |   apiBaseUrl: 'https://connect.mailerlite.com/api', | ||||||
|   primaryColor: '09C269', |   primaryColor: '#09C269', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   authDocUrl: '{DOCS_URL}/apps/mattermost/connection', |   authDocUrl: '{DOCS_URL}/apps/mattermost/connection', | ||||||
|   baseUrl: 'https://mattermost.com', |   baseUrl: 'https://mattermost.com', | ||||||
|   apiBaseUrl: '', // there is no cloud version of this app, user always need to provide address of own instance when creating connection |   apiBaseUrl: '', // there is no cloud version of this app, user always need to provide address of own instance when creating connection | ||||||
|   primaryColor: '4a154b', |   primaryColor: '#4a154b', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addXRequestedWithHeader, addAuthHeader], |   beforeRequest: [setBaseUrl, addXRequestedWithHeader, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://api.miro.com', |   apiBaseUrl: 'https://api.miro.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/miro/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/miro/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/miro/connection', |   authDocUrl: '{DOCS_URL}/apps/miro/connection', | ||||||
|   primaryColor: 'F2CA02', |   primaryColor: '#F2CA02', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://api.notion.com', |   apiBaseUrl: 'https://api.notion.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/notion/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/notion/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/notion/connection', |   authDocUrl: '{DOCS_URL}/apps/notion/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader, addNotionVersionHeader], |   beforeRequest: [addAuthHeader, addNotionVersionHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://ntfy.sh', |   baseUrl: 'https://ntfy.sh', | ||||||
|   apiBaseUrl: 'https://ntfy.sh', |   apiBaseUrl: 'https://ntfy.sh', | ||||||
|   primaryColor: '56bda8', |   primaryColor: '#56bda8', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://odoo.com', |   baseUrl: 'https://odoo.com', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '9c5789', |   primaryColor: '#9c5789', | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://api.openai.com', |   apiBaseUrl: 'https://api.openai.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/openai/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/openai/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/openai/connection', |   authDocUrl: '{DOCS_URL}/apps/openai/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   iconUrl: '{BASE_URL}/apps/pipedrive/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/pipedrive/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/pipedrive/connection', |   authDocUrl: '{DOCS_URL}/apps/pipedrive/connection', | ||||||
|   primaryColor: 'FFFFFF', |   primaryColor: '#FFFFFF', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://placetel.de', |   baseUrl: 'https://placetel.de', | ||||||
|   apiBaseUrl: 'https://api.placetel.de', |   apiBaseUrl: 'https://api.placetel.de', | ||||||
|   primaryColor: '069dd9', |   primaryColor: '#069dd9', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '336791', |   primaryColor: '#336791', | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://api.pushover.net', |   apiBaseUrl: 'https://api.pushover.net', | ||||||
|   iconUrl: '{BASE_URL}/apps/pushover/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/pushover/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/pushover/connection', |   authDocUrl: '{DOCS_URL}/apps/pushover/connection', | ||||||
|   primaryColor: '249DF1', |   primaryColor: '#249DF1', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://oauth.reddit.com', |   apiBaseUrl: 'https://oauth.reddit.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/reddit/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/reddit/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/reddit/connection', |   authDocUrl: '{DOCS_URL}/apps/reddit/connection', | ||||||
|   primaryColor: 'FF4500', |   primaryColor: '#FF4500', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://www.remove.bg', |   baseUrl: 'https://www.remove.bg', | ||||||
|   apiBaseUrl: 'https://api.remove.bg/v1.0', |   apiBaseUrl: 'https://api.remove.bg/v1.0', | ||||||
|   primaryColor: '55636c', |   primaryColor: '#55636c', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -9,6 +9,6 @@ export default defineApp({ | |||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: 'ff8800', |   primaryColor: '#ff8800', | ||||||
|   triggers, |   triggers, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://salesforce.com', |   baseUrl: 'https://salesforce.com', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '00A1E0', |   primaryColor: '#00A1E0', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ export default defineApp({ | |||||||
|   authDocUrl: '{DOCS_URL}/apps/scheduler/connection', |   authDocUrl: '{DOCS_URL}/apps/scheduler/connection', | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '0059F7', |   primaryColor: '#0059F7', | ||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   triggers, |   triggers, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   iconUrl: '{BASE_URL}/apps/self-hosted-llm/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/self-hosted-llm/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/self-hosted-llm/connection', |   authDocUrl: '{DOCS_URL}/apps/self-hosted-llm/connection', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://signalwire.com', |   baseUrl: 'https://signalwire.com', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '044cf6', |   primaryColor: '#044cf6', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://slack.com', |   baseUrl: 'https://slack.com', | ||||||
|   apiBaseUrl: 'https://slack.com/api', |   apiBaseUrl: 'https://slack.com/api', | ||||||
|   primaryColor: '4a154b', |   primaryColor: '#4a154b', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '2DAAE1', |   primaryColor: '#2DAAE1', | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://spotify.com', |   baseUrl: 'https://spotify.com', | ||||||
|   apiBaseUrl: 'https://api.spotify.com', |   apiBaseUrl: 'https://api.spotify.com', | ||||||
|   primaryColor: '000000', |   primaryColor: '#000000', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://www.strava.com', |   baseUrl: 'https://www.strava.com', | ||||||
|   apiBaseUrl: 'https://www.strava.com/api', |   apiBaseUrl: 'https://www.strava.com/api', | ||||||
|   primaryColor: 'fc4c01', |   primaryColor: '#fc4c01', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://stripe.com', |   baseUrl: 'https://stripe.com', | ||||||
|   apiBaseUrl: 'https://api.stripe.com', |   apiBaseUrl: 'https://api.stripe.com', | ||||||
|   primaryColor: '635bff', |   primaryColor: '#635bff', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://telegram.org', |   baseUrl: 'https://telegram.org', | ||||||
|   apiBaseUrl: 'https://api.telegram.org', |   apiBaseUrl: 'https://api.telegram.org', | ||||||
|   primaryColor: '2AABEE', |   primaryColor: '#2AABEE', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://todoist.com', |   baseUrl: 'https://todoist.com', | ||||||
|   apiBaseUrl: 'https://api.todoist.com/rest/v2', |   apiBaseUrl: 'https://api.todoist.com/rest/v2', | ||||||
|   primaryColor: 'e44332', |   primaryColor: '#e44332', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   iconUrl: '{BASE_URL}/apps/trello/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/trello/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/trello/connection', |   authDocUrl: '{DOCS_URL}/apps/trello/connection', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   primaryColor: '0079bf', |   primaryColor: '#0079bf', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://twilio.com', |   baseUrl: 'https://twilio.com', | ||||||
|   apiBaseUrl: 'https://api.twilio.com', |   apiBaseUrl: 'https://api.twilio.com', | ||||||
|   primaryColor: 'e1000f', |   primaryColor: '#e1000f', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://twitter.com', |   baseUrl: 'https://twitter.com', | ||||||
|   apiBaseUrl: 'https://api.twitter.com', |   apiBaseUrl: 'https://api.twitter.com', | ||||||
|   primaryColor: '1da1f2', |   primaryColor: '#1da1f2', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://typeform.com', |   baseUrl: 'https://typeform.com', | ||||||
|   apiBaseUrl: 'https://api.typeform.com', |   apiBaseUrl: 'https://api.typeform.com', | ||||||
|   primaryColor: '262627', |   primaryColor: '#262627', | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '39a86d', |   primaryColor: '#39a86d', | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   supportsConnections: false, |   supportsConnections: false, | ||||||
|   baseUrl: '', |   baseUrl: '', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '0059F7', |   primaryColor: '#0059F7', | ||||||
|   actions, |   actions, | ||||||
|   triggers, |   triggers, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ export default { | |||||||
|       key: 'instanceUrl', |       key: 'instanceUrl', | ||||||
|       label: 'WordPress instance URL', |       label: 'WordPress instance URL', | ||||||
|       type: 'string', |       type: 'string', | ||||||
|       required: false, |       required: true, | ||||||
|       readOnly: false, |       readOnly: false, | ||||||
|       value: null, |       value: null, | ||||||
|       placeholder: null, |       placeholder: null, | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ export default defineApp({ | |||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   baseUrl: 'https://wordpress.com', |   baseUrl: 'https://wordpress.com', | ||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   primaryColor: '464342', |   primaryColor: '#464342', | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |   beforeRequest: [setBaseUrl, addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   triggers, |   triggers, | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://api.xero.com', |   apiBaseUrl: 'https://api.xero.com', | ||||||
|   iconUrl: '{BASE_URL}/apps/xero/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/xero/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/xero/connection', |   authDocUrl: '{DOCS_URL}/apps/xero/connection', | ||||||
|   primaryColor: '13B5EA', |   primaryColor: '#13B5EA', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://api.ynab.com/v1', |   apiBaseUrl: 'https://api.ynab.com/v1', | ||||||
|   iconUrl: '{BASE_URL}/apps/you-need-a-budget/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/you-need-a-budget/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/you-need-a-budget/connection', |   authDocUrl: '{DOCS_URL}/apps/you-need-a-budget/connection', | ||||||
|   primaryColor: '19223C', |   primaryColor: '#19223C', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: 'https://www.googleapis.com/youtube', |   apiBaseUrl: 'https://www.googleapis.com/youtube', | ||||||
|   iconUrl: '{BASE_URL}/apps/youtube/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/youtube/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/youtube/connection', |   authDocUrl: '{DOCS_URL}/apps/youtube/connection', | ||||||
|   primaryColor: 'FF0000', |   primaryColor: '#FF0000', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ export default defineApp({ | |||||||
|   apiBaseUrl: '', |   apiBaseUrl: '', | ||||||
|   iconUrl: '{BASE_URL}/apps/zendesk/assets/favicon.svg', |   iconUrl: '{BASE_URL}/apps/zendesk/assets/favicon.svg', | ||||||
|   authDocUrl: '{DOCS_URL}/apps/zendesk/connection', |   authDocUrl: '{DOCS_URL}/apps/zendesk/connection', | ||||||
|   primaryColor: '17494d', |   primaryColor: '#17494d', | ||||||
|   supportsConnections: true, |   supportsConnections: true, | ||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   | |||||||
| @@ -52,7 +52,7 @@ const appConfig = { | |||||||
|   isDev: appEnv === 'development', |   isDev: appEnv === 'development', | ||||||
|   isTest: appEnv === 'test', |   isTest: appEnv === 'test', | ||||||
|   isProd: appEnv === 'production', |   isProd: appEnv === 'production', | ||||||
|   version: '0.13.1', |   version: '0.14.0', | ||||||
|   postgresDatabase: process.env.POSTGRES_DATABASE || 'automatisch_development', |   postgresDatabase: process.env.POSTGRES_DATABASE || 'automatisch_development', | ||||||
|   postgresSchema: process.env.POSTGRES_SCHEMA || 'public', |   postgresSchema: process.env.POSTGRES_SCHEMA || 'public', | ||||||
|   postgresPort: parseInt(process.env.POSTGRES_PORT || '5432'), |   postgresPort: parseInt(process.env.POSTGRES_PORT || '5432'), | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ describe('POST /api/v1/access-tokens', () => { | |||||||
|       }) |       }) | ||||||
|       .expect(422); |       .expect(422); | ||||||
|  |  | ||||||
|     expect(response.body.errors.general).toEqual([ |     expect(response.body.errors.general).toStrictEqual([ | ||||||
|       'Incorrect email or password.', |       'Incorrect email or password.', | ||||||
|     ]); |     ]); | ||||||
|   }); |   }); | ||||||
|   | |||||||
| @@ -83,7 +83,7 @@ describe('POST /api/v1/admin/apps/:appKey/auth-clients', () => { | |||||||
|       .send(appAuthClient) |       .send(appAuthClient) | ||||||
|       .expect(422); |       .expect(422); | ||||||
|  |  | ||||||
|     expect(response.body.meta.type).toEqual('ModelValidation'); |     expect(response.body.meta.type).toStrictEqual('ModelValidation'); | ||||||
|     expect(response.body.errors).toMatchObject({ |     expect(response.body.errors).toMatchObject({ | ||||||
|       name: ["must have required property 'name'"], |       name: ["must have required property 'name'"], | ||||||
|       formattedAuthDefaults: [ |       formattedAuthDefaults: [ | ||||||
|   | |||||||
| @@ -10,11 +10,11 @@ export default async (request, response) => { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| const appConfigParams = (request) => { | const appConfigParams = (request) => { | ||||||
|   const { allowCustomConnection, shared, disabled } = request.body; |   const { customConnectionAllowed, shared, disabled } = request.body; | ||||||
|  |  | ||||||
|   return { |   return { | ||||||
|     key: request.params.appKey, |     key: request.params.appKey, | ||||||
|     allowCustomConnection, |     customConnectionAllowed, | ||||||
|     shared, |     shared, | ||||||
|     disabled, |     disabled, | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ describe('POST /api/v1/admin/apps/:appKey/config', () => { | |||||||
|  |  | ||||||
|   it('should return created app config', async () => { |   it('should return created app config', async () => { | ||||||
|     const appConfig = { |     const appConfig = { | ||||||
|       allowCustomConnection: true, |       customConnectionAllowed: true, | ||||||
|       shared: true, |       shared: true, | ||||||
|       disabled: false, |       disabled: false, | ||||||
|     }; |     }; | ||||||
| @@ -44,7 +44,7 @@ describe('POST /api/v1/admin/apps/:appKey/config', () => { | |||||||
|   it('should return HTTP 422 for already existing app config', async () => { |   it('should return HTTP 422 for already existing app config', async () => { | ||||||
|     const appConfig = { |     const appConfig = { | ||||||
|       key: 'gitlab', |       key: 'gitlab', | ||||||
|       allowCustomConnection: true, |       customConnectionAllowed: true, | ||||||
|       shared: true, |       shared: true, | ||||||
|       disabled: false, |       disabled: false, | ||||||
|     }; |     }; | ||||||
| @@ -59,7 +59,7 @@ describe('POST /api/v1/admin/apps/:appKey/config', () => { | |||||||
|       }) |       }) | ||||||
|       .expect(422); |       .expect(422); | ||||||
|  |  | ||||||
|     expect(response.body.meta.type).toEqual('UniqueViolationError'); |     expect(response.body.meta.type).toStrictEqual('UniqueViolationError'); | ||||||
|     expect(response.body.errors).toMatchObject({ |     expect(response.body.errors).toMatchObject({ | ||||||
|       key: ["'key' must be unique."], |       key: ["'key' must be unique."], | ||||||
|     }); |     }); | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ describe('GET /api/v1/admin/apps/:appKey/auth-clients/:appAuthClientId', () => { | |||||||
|       .expect(200); |       .expect(200); | ||||||
|  |  | ||||||
|     const expectedPayload = getAppAuthClientMock(currentAppAuthClient); |     const expectedPayload = getAppAuthClientMock(currentAppAuthClient); | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should return not found response for not existing app auth client ID', async () => { |   it('should return not found response for not existing app auth client ID', async () => { | ||||||
|   | |||||||
| @@ -39,6 +39,6 @@ describe('GET /api/v1/admin/apps/:appKey/auth-clients', () => { | |||||||
|       appAuthClientOne, |       appAuthClientOne, | ||||||
|     ]); |     ]); | ||||||
|  |  | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -8,16 +8,19 @@ export default async (request, response) => { | |||||||
|     }) |     }) | ||||||
|     .throwIfNotFound(); |     .throwIfNotFound(); | ||||||
|  |  | ||||||
|   await appConfig.$query().patchAndFetch(appConfigParams(request)); |   await appConfig.$query().patchAndFetch({ | ||||||
|  |     ...appConfigParams(request), | ||||||
|  |     key: request.params.appKey, | ||||||
|  |   }); | ||||||
|  |  | ||||||
|   renderObject(response, appConfig); |   renderObject(response, appConfig); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| const appConfigParams = (request) => { | const appConfigParams = (request) => { | ||||||
|   const { allowCustomConnection, shared, disabled } = request.body; |   const { customConnectionAllowed, shared, disabled } = request.body; | ||||||
|  |  | ||||||
|   return { |   return { | ||||||
|     allowCustomConnection, |     customConnectionAllowed, | ||||||
|     shared, |     shared, | ||||||
|     disabled, |     disabled, | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/config', () => { | |||||||
|   it('should return updated app config', async () => { |   it('should return updated app config', async () => { | ||||||
|     const appConfig = { |     const appConfig = { | ||||||
|       key: 'gitlab', |       key: 'gitlab', | ||||||
|       allowCustomConnection: true, |       customConnectionAllowed: true, | ||||||
|       shared: true, |       shared: true, | ||||||
|       disabled: false, |       disabled: false, | ||||||
|     }; |     }; | ||||||
| @@ -34,7 +34,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/config', () => { | |||||||
|     const newAppConfigValues = { |     const newAppConfigValues = { | ||||||
|       shared: false, |       shared: false, | ||||||
|       disabled: true, |       disabled: true, | ||||||
|       allowCustomConnection: false, |       customConnectionAllowed: false, | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     const response = await request(app) |     const response = await request(app) | ||||||
| @@ -55,7 +55,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/config', () => { | |||||||
|     const appConfig = { |     const appConfig = { | ||||||
|       shared: false, |       shared: false, | ||||||
|       disabled: true, |       disabled: true, | ||||||
|       allowCustomConnection: false, |       customConnectionAllowed: false, | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     await request(app) |     await request(app) | ||||||
| @@ -68,7 +68,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/config', () => { | |||||||
|   it('should return HTTP 422 for invalid app config data', async () => { |   it('should return HTTP 422 for invalid app config data', async () => { | ||||||
|     const appConfig = { |     const appConfig = { | ||||||
|       key: 'gitlab', |       key: 'gitlab', | ||||||
|       allowCustomConnection: true, |       customConnectionAllowed: true, | ||||||
|       shared: true, |       shared: true, | ||||||
|       disabled: false, |       disabled: false, | ||||||
|     }; |     }; | ||||||
| @@ -83,7 +83,7 @@ describe('PATCH /api/v1/admin/apps/:appKey/config', () => { | |||||||
|       }) |       }) | ||||||
|       .expect(422); |       .expect(422); | ||||||
|  |  | ||||||
|     expect(response.body.meta.type).toEqual('ModelValidation'); |     expect(response.body.meta.type).toStrictEqual('ModelValidation'); | ||||||
|     expect(response.body.errors).toMatchObject({ |     expect(response.body.errors).toMatchObject({ | ||||||
|       disabled: ['must be boolean'], |       disabled: ['must be boolean'], | ||||||
|     }); |     }); | ||||||
|   | |||||||
| @@ -1,23 +1,28 @@ | |||||||
| import pick from 'lodash/pick.js'; |  | ||||||
| import { renderObject } from '../../../../../helpers/renderer.js'; | import { renderObject } from '../../../../../helpers/renderer.js'; | ||||||
| import Config from '../../../../../models/config.js'; | import Config from '../../../../../models/config.js'; | ||||||
|  |  | ||||||
| export default async (request, response) => { | export default async (request, response) => { | ||||||
|   const config = configParams(request); |   const config = await Config.query().updateFirstOrInsert( | ||||||
|  |     configParams(request) | ||||||
|   await Config.batchUpdate(config); |   ); | ||||||
|  |  | ||||||
|   renderObject(response, config); |   renderObject(response, config); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| const configParams = (request) => { | const configParams = (request) => { | ||||||
|   const updatableConfigurationKeys = [ |   const { | ||||||
|     'logo.svgData', |     logoSvgData, | ||||||
|     'palette.primary.dark', |     palettePrimaryDark, | ||||||
|     'palette.primary.light', |     palettePrimaryLight, | ||||||
|     'palette.primary.main', |     palettePrimaryMain, | ||||||
|     'title', |     title, | ||||||
|   ]; |   } = request.body; | ||||||
|  |  | ||||||
|   return pick(request.body, updatableConfigurationKeys); |   return { | ||||||
|  |     logoSvgData, | ||||||
|  |     palettePrimaryDark, | ||||||
|  |     palettePrimaryLight, | ||||||
|  |     palettePrimaryMain, | ||||||
|  |     title, | ||||||
|  |   }; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ import app from '../../../../../app.js'; | |||||||
| import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js'; | import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js'; | ||||||
| import { createUser } from '../../../../../../test/factories/user.js'; | import { createUser } from '../../../../../../test/factories/user.js'; | ||||||
| import { createRole } from '../../../../../../test/factories/role.js'; | import { createRole } from '../../../../../../test/factories/role.js'; | ||||||
| import { createBulkConfig } from '../../../../../../test/factories/config.js'; | import { updateConfig } from '../../../../../../test/factories/config.js'; | ||||||
| import * as license from '../../../../../helpers/license.ee.js'; | import * as license from '../../../../../helpers/license.ee.js'; | ||||||
|  |  | ||||||
| describe('PATCH /api/v1/admin/config', () => { | describe('PATCH /api/v1/admin/config', () => { | ||||||
| @@ -30,13 +30,13 @@ describe('PATCH /api/v1/admin/config', () => { | |||||||
|  |  | ||||||
|     const appConfig = { |     const appConfig = { | ||||||
|       title, |       title, | ||||||
|       'palette.primary.main': palettePrimaryMain, |       palettePrimaryMain: palettePrimaryMain, | ||||||
|       'palette.primary.dark': palettePrimaryDark, |       palettePrimaryDark: palettePrimaryDark, | ||||||
|       'palette.primary.light': palettePrimaryLight, |       palettePrimaryLight: palettePrimaryLight, | ||||||
|       'logo.svgData': logoSvgData, |       logoSvgData: logoSvgData, | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     await createBulkConfig(appConfig); |     await updateConfig(appConfig); | ||||||
|  |  | ||||||
|     const newTitle = 'Updated title'; |     const newTitle = 'Updated title'; | ||||||
|  |  | ||||||
| @@ -50,8 +50,8 @@ describe('PATCH /api/v1/admin/config', () => { | |||||||
|       .send(newConfigValues) |       .send(newConfigValues) | ||||||
|       .expect(200); |       .expect(200); | ||||||
|  |  | ||||||
|     expect(response.body.data.title).toEqual(newTitle); |     expect(response.body.data.title).toStrictEqual(newTitle); | ||||||
|     expect(response.body.meta.type).toEqual('Object'); |     expect(response.body.meta.type).toStrictEqual('Config'); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should return created config for unexisting config', async () => { |   it('should return created config for unexisting config', async () => { | ||||||
| @@ -67,8 +67,8 @@ describe('PATCH /api/v1/admin/config', () => { | |||||||
|       .send(newConfigValues) |       .send(newConfigValues) | ||||||
|       .expect(200); |       .expect(200); | ||||||
|  |  | ||||||
|     expect(response.body.data.title).toEqual(newTitle); |     expect(response.body.data.title).toStrictEqual(newTitle); | ||||||
|     expect(response.body.meta.type).toEqual('Object'); |     expect(response.body.meta.type).toStrictEqual('Config'); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should return null for deleted config entry', async () => { |   it('should return null for deleted config entry', async () => { | ||||||
| @@ -83,6 +83,6 @@ describe('PATCH /api/v1/admin/config', () => { | |||||||
|       .expect(200); |       .expect(200); | ||||||
|  |  | ||||||
|     expect(response.body.data.title).toBeNull(); |     expect(response.body.data.title).toBeNull(); | ||||||
|     expect(response.body.meta.type).toEqual('Object'); |     expect(response.body.meta.type).toStrictEqual('Config'); | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -27,6 +27,6 @@ describe('GET /api/v1/admin/permissions/catalog', () => { | |||||||
|  |  | ||||||
|     const expectedPayload = await getPermissionsCatalogMock(); |     const expectedPayload = await getPermissionsCatalogMock(); | ||||||
|  |  | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -58,7 +58,7 @@ describe('POST /api/v1/admin/roles', () => { | |||||||
|       ] |       ] | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should return unprocessable entity response for invalid role data', async () => { |   it('should return unprocessable entity response for invalid role data', async () => { | ||||||
|   | |||||||
| @@ -92,21 +92,4 @@ describe('DELETE /api/v1/admin/roles/:roleId', () => { | |||||||
|       }, |       }, | ||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should not delete role and permissions on unsuccessful response', async () => { |  | ||||||
|     const role = await createRole(); |  | ||||||
|     const permission = await createPermission({ roleId: role.id }); |  | ||||||
|     await createUser({ roleId: role.id }); |  | ||||||
|  |  | ||||||
|     await request(app) |  | ||||||
|       .delete(`/api/v1/admin/roles/${role.id}`) |  | ||||||
|       .set('Authorization', token) |  | ||||||
|       .expect(422); |  | ||||||
|  |  | ||||||
|     const refetchedRole = await role.$query(); |  | ||||||
|     const refetchedPermission = await permission.$query(); |  | ||||||
|  |  | ||||||
|     expect(refetchedRole).toStrictEqual(role); |  | ||||||
|     expect(refetchedPermission).toStrictEqual(permission); |  | ||||||
|   }); |  | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ describe('GET /api/v1/admin/roles/:roleId', () => { | |||||||
|       permissionTwo, |       permissionTwo, | ||||||
|     ]); |     ]); | ||||||
|  |  | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should return not found response for not existing role UUID', async () => { |   it('should return not found response for not existing role UUID', async () => { | ||||||
|   | |||||||
| @@ -28,6 +28,6 @@ describe('GET /api/v1/admin/roles', () => { | |||||||
|  |  | ||||||
|     const expectedPayload = await getRolesMock([roleOne, roleTwo]); |     const expectedPayload = await getRolesMock([roleOne, roleTwo]); | ||||||
|  |  | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ export default async (request, response) => { | |||||||
|     .throwIfNotFound(); |     .throwIfNotFound(); | ||||||
|  |  | ||||||
|   const roleMappings = await samlAuthProvider |   const roleMappings = await samlAuthProvider | ||||||
|     .$relatedQuery('samlAuthProvidersRoleMappings') |     .$relatedQuery('roleMappings') | ||||||
|     .orderBy('remote_role_name', 'asc'); |     .orderBy('remote_role_name', 'asc'); | ||||||
|  |  | ||||||
|   renderObject(response, roleMappings); |   renderObject(response, roleMappings); | ||||||
|   | |||||||
| @@ -46,6 +46,6 @@ describe('GET /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mapping | |||||||
|       roleMappingTwo, |       roleMappingTwo, | ||||||
|     ]); |     ]); | ||||||
|  |  | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ describe('GET /api/v1/admin/saml-auth-provider/:samlAuthProviderId', () => { | |||||||
|  |  | ||||||
|     const expectedPayload = await getSamlAuthProviderMock(samlAuthProvider); |     const expectedPayload = await getSamlAuthProviderMock(samlAuthProvider); | ||||||
|  |  | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should return not found response for not existing saml auth provider UUID', async () => { |   it('should return not found response for not existing saml auth provider UUID', async () => { | ||||||
|   | |||||||
| @@ -34,6 +34,6 @@ describe('GET /api/v1/admin/saml-auth-providers', () => { | |||||||
|       samlAuthProviderOne, |       samlAuthProviderOne, | ||||||
|     ]); |     ]); | ||||||
|  |  | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -8,15 +8,14 @@ export default async (request, response) => { | |||||||
|     .findById(samlAuthProviderId) |     .findById(samlAuthProviderId) | ||||||
|     .throwIfNotFound(); |     .throwIfNotFound(); | ||||||
|  |  | ||||||
|   const samlAuthProvidersRoleMappings = |   const roleMappings = await samlAuthProvider.updateRoleMappings( | ||||||
|     await samlAuthProvider.updateRoleMappings( |     roleMappingsParams(request) | ||||||
|       samlAuthProvidersRoleMappingsParams(request) |   ); | ||||||
|     ); |  | ||||||
|  |  | ||||||
|   renderObject(response, samlAuthProvidersRoleMappings); |   renderObject(response, roleMappings); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| const samlAuthProvidersRoleMappingsParams = (request) => { | const roleMappingsParams = (request) => { | ||||||
|   const roleMappings = request.body; |   const roleMappings = request.body; | ||||||
|  |  | ||||||
|   return roleMappings.map(({ roleId, remoteRoleName }) => ({ |   return roleMappings.map(({ roleId, remoteRoleName }) => ({ | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by | |||||||
| import { createRole } from '../../../../../../test/factories/role.js'; | import { createRole } from '../../../../../../test/factories/role.js'; | ||||||
| import { createUser } from '../../../../../../test/factories/user.js'; | import { createUser } from '../../../../../../test/factories/user.js'; | ||||||
| import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js'; | import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js'; | ||||||
| import { createSamlAuthProvidersRoleMapping } from '../../../../../../test/factories/saml-auth-providers-role-mapping.js'; | import { createRoleMapping } from '../../../../../../test/factories/role-mapping.js'; | ||||||
| import createRoleMappingsMock from '../../../../../../test/mocks/rest/api/v1/admin/saml-auth-providers/update-role-mappings.ee.js'; | import createRoleMappingsMock from '../../../../../../test/mocks/rest/api/v1/admin/saml-auth-providers/update-role-mappings.ee.js'; | ||||||
| import * as license from '../../../../../helpers/license.ee.js'; | import * as license from '../../../../../helpers/license.ee.js'; | ||||||
|  |  | ||||||
| @@ -21,12 +21,12 @@ describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappi | |||||||
|  |  | ||||||
|     samlAuthProvider = await createSamlAuthProvider(); |     samlAuthProvider = await createSamlAuthProvider(); | ||||||
|  |  | ||||||
|     await createSamlAuthProvidersRoleMapping({ |     await createRoleMapping({ | ||||||
|       samlAuthProviderId: samlAuthProvider.id, |       samlAuthProviderId: samlAuthProvider.id, | ||||||
|       remoteRoleName: 'Viewer', |       remoteRoleName: 'Viewer', | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     await createSamlAuthProvidersRoleMapping({ |     await createRoleMapping({ | ||||||
|       samlAuthProviderId: samlAuthProvider.id, |       samlAuthProviderId: samlAuthProvider.id, | ||||||
|       remoteRoleName: 'Editor', |       remoteRoleName: 'Editor', | ||||||
|     }); |     }); | ||||||
| @@ -64,7 +64,7 @@ describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappi | |||||||
|  |  | ||||||
|   it('should delete role mappings when given empty role mappings', async () => { |   it('should delete role mappings when given empty role mappings', async () => { | ||||||
|     const existingRoleMappings = await samlAuthProvider.$relatedQuery( |     const existingRoleMappings = await samlAuthProvider.$relatedQuery( | ||||||
|       'samlAuthProvidersRoleMappings' |       'roleMappings' | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     expect(existingRoleMappings.length).toBe(2); |     expect(existingRoleMappings.length).toBe(2); | ||||||
| @@ -149,34 +149,4 @@ describe('PATCH /api/v1/admin/saml-auth-providers/:samlAuthProviderId/role-mappi | |||||||
|       .send(roleMappings) |       .send(roleMappings) | ||||||
|       .expect(404); |       .expect(404); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should not delete existing role mapping when error thrown', async () => { |  | ||||||
|     const roleMappings = [ |  | ||||||
|       { |  | ||||||
|         roleId: userRole.id, |  | ||||||
|         remoteRoleName: { |  | ||||||
|           invalid: 'data', |  | ||||||
|         }, |  | ||||||
|       }, |  | ||||||
|     ]; |  | ||||||
|  |  | ||||||
|     const roleMappingsBeforeRequest = await samlAuthProvider.$relatedQuery( |  | ||||||
|       'samlAuthProvidersRoleMappings' |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     await request(app) |  | ||||||
|       .patch( |  | ||||||
|         `/api/v1/admin/saml-auth-providers/${samlAuthProvider.id}/role-mappings` |  | ||||||
|       ) |  | ||||||
|       .set('Authorization', token) |  | ||||||
|       .send(roleMappings) |  | ||||||
|       .expect(422); |  | ||||||
|  |  | ||||||
|     const roleMappingsAfterRequest = await samlAuthProvider.$relatedQuery( |  | ||||||
|       'samlAuthProvidersRoleMappings' |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     expect(roleMappingsBeforeRequest).toStrictEqual(roleMappingsAfterRequest); |  | ||||||
|     expect(roleMappingsAfterRequest.length).toBe(2); |  | ||||||
|   }); |  | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ describe('GET /api/v1/admin/users/:userId', () => { | |||||||
|       .expect(200); |       .expect(200); | ||||||
|  |  | ||||||
|     const expectedPayload = getUserMock(anotherUser, anotherUserRole); |     const expectedPayload = getUserMock(anotherUser, anotherUserRole); | ||||||
|     expect(response.body).toEqual(expectedPayload); |     expect(response.body).toStrictEqual(expectedPayload); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('should return not found response for not existing user UUID', async () => { |   it('should return not found response for not existing user UUID', async () => { | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user