n8n/packages/cli/test/integration/publicApi/workflows.test.ts

1272 lines
34 KiB
TypeScript
Raw Normal View History

import express from 'express';
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
import { ActiveWorkflowRunner, Db } from '../../../src';
import config from '../../../config';
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
import { Role } from '../../../src/databases/entities/Role';
import { randomApiKey } from '../shared/random';
import * as utils from '../shared/utils';
import * as testDb from '../shared/testDb';
import { TagEntity } from '../../../src/databases/entities/TagEntity';
let app: express.Application;
let testDbName = '';
let globalOwnerRole: Role;
let globalMemberRole: Role;
let workflowOwnerRole: Role;
let workflowRunner: ActiveWorkflowRunner.ActiveWorkflowRunner;
jest.mock('../../../src/telemetry');
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
beforeAll(async () => {
app = await utils.initTestServer({ endpointGroups: ['publicApi'], applyAuth: false });
const initResult = await testDb.init();
testDbName = initResult.testDbName;
2022-06-30 06:53:56 -07:00
const [fetchedGlobalOwnerRole, fetchedGlobalMemberRole, fetchedWorkflowOwnerRole] =
await testDb.getAllRoles();
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
globalOwnerRole = fetchedGlobalOwnerRole;
globalMemberRole = fetchedGlobalMemberRole;
workflowOwnerRole = fetchedWorkflowOwnerRole;
utils.initTestTelemetry();
utils.initTestLogger();
2022-06-30 04:43:50 -07:00
utils.initConfigFile();
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
await utils.initNodeTypes();
workflowRunner = await utils.initActiveWorkflowRunner();
});
beforeEach(async () => {
feat(editor): Add data pinning functionality (#3511) * feat: Design system color improvements and button component redesign. * feat: Added button focus state and unit tests. * refactor: Aligned n8n-button usage inside of editor-ui. * test: Updated snapshots. * refactor: Extracted focus outline width into scss variable. * fix: Fixed select input border-radius. * refactor: Removed element-ui references in button. * fix: Fixed scss variable imports. * feat: Added color-neutral variable story. * fix: Fixed color-secondary variable definition. * feat: Added color-white story. * test: Updated button snapshot. * feat: Replaced zoom buttons with new n8n-icon-button. * feat: Added stories for float utilities. * chore: Updated color shades generation code for later use. * chore: Removed color-white code. * chore: Updated story properties for button components. * fix: Added el-button fallback for places where el-button is not replaceable (messagebox). * feat: Reverted to css modules. Replaced el-button with n8n-button at application level. * test: Updated button snapshot. * fix: Fixed element-ui locally referenced buttons (via components: {}). * fix: Updated colors. Removed irrelevant validation. Added ElButton override component. * test: Updated button override snapshot. * fix: Various button adjustments and fixes. * fix: Updated button disabled state. * test: Updated snapshots. * fix: Consolidated css variables changes. * Data pinning (#3512) * refactor: Aligned n8n-button usage inside of editor-ui. * feat: Added edit data button on json hover. * feat: Extracted code editor into separate form component. * feat: Added edit data button on json hover. * feat: Added pinData and edit mode methods. * :fire: Remove conflict markers * :pencil2: Update i18n keys * :zap: Add JSON validation * :card_file_box: Add `pinData` column to `workflow_entity` * :blue_book: Tighten type * :zap: Make `pinData` column nullable * :zap: Adjust workflow endpoints for pin data * :blue_book: Improve types * :pencil2: Improve wording * Inject pindata into items flow (#3420) * :zap: Inject pin data - Second approach * :fire: Remove unneeded lint exception * feat: Added edit data button on json hover. * feat: Extracted code editor into separate form component. * feat: Added edit data button on json hover. * fix: Fixed rebase conflicts. * :rewind: Undo button change * :bug: Fix runNode call Adjust per update in bdb84130d687811d65337ff6b025e7cb0eae8256 * :test_tube: Fix workflow tests * :bug: More merge conflict fixes * feat: Added pin/unpin button and store mutations. * feat: Size check. Various design and ux improvements. * :zap: Add transformer * :zap: Hoist pin data * :zap: Adjust endpoints for hoisted pin data * :blue_book: Expand interface * :bug: Fix stray array * :shirt: Fix build * :shirt: Add lint exception * :shirt: Fix header * :art: Add color secondary tints * :sparkles: Create `HeaderMessage` component * :zap: Adjust `InfoTip` component * :sparkles: Add `HeaderMessage` to `RunData` * :bug: Fix console error * :shirt: Fix lint * :zap: Consolidate `HeaderMessage` and `Callout` * :rewind: Undo `InfoTip` changes * :fire: Remove duplicate icons * :zap: Simplify template * :art: Change cursor for action text * :shirt: Fix lint * :zap: Add URL * :bug: Fix handler name * :zap: Use constant * :recycle: Refactor per feedback * fix: Various fixes after data pinning relocation. * fix: Added store mutation for setting pinned data. * feat: Added pinned state for workflow canvas node. * fix: Fixed workflow saving. * fix: Removed pinData hoisting (no longer necessary). * feat: Added canPinData flag to hide for input pane and binary data. Fixed unpin and execute flow. * :zap: Fixes for canvas pin data (#3587) * :zap: Fixes for canvas pin data * :blue_book: Rename type * :test_tube: Fix unrelated Public API test * :fire: Remove logging * feat: Updated pinData mixin to no longer include extra fields. * :zap: Output same pindata for every run * :art: Fix cropping * :fire: Remove unrelated logging * feat: Moved edit button next to pin button. * feat: Changed data to be inserted for empty state. * chore: Changed invalid editor output translation. * feat: Added error line reporting on JSON Validation. * feat: Migrated pinData edit mode to store. * chore: Merged duplicate node border color condition. * feat: Moved pin data validation to mixin. Added check before closing ndv modal. * fix: Changed pinned data size calculation to discard active node pin data. * feat: Added support for rename and delete node with pin data. * feat: Simplified editing state. Fixed edit mode in input panel after store migration. * feat: Various data pinning improvements. * fix: Fixed callout link underline. * refactor: Added support for both string and objects for data size check. * feat: Added disabled node check for input panel. Fixed monaco editor resizing. * fix: Fixed edit mode footer size. * :zap: Fix pindata items per run * :shirt: Remove unneeded exception * refactor: Added isValidPinData() helper method. * refactor: Changed how string size in bytes in calculated.g * refactor: Updated pinData mixin interface. * refactor: Merged filter and reduce in pinDataSize calculation. * fix: Changed code-editor to correct type. * fix: Added insert test data message to trigger nodes. * feat: Disabled data pinning for multiple output nodes. * refactor: Updated ndv.input.disabled translation to include node name. * refactor: Aligned n8n-button usage inside of editor-ui. * feat: Added edit data button on json hover. * feat: Extracted code editor into separate form component. * feat: Added edit data button on json hover. * feat: Added pinData and edit mode methods. * :fire: Remove conflict markers * :pencil2: Update i18n keys * :zap: Add JSON validation * :card_file_box: Add `pinData` column to `workflow_entity` * :blue_book: Tighten type * :zap: Make `pinData` column nullable * :zap: Adjust workflow endpoints for pin data * :blue_book: Improve types * :pencil2: Improve wording * Inject pindata into items flow (#3420) * :zap: Inject pin data - Second approach * :fire: Remove unneeded lint exception * feat: Added edit data button on json hover. * feat: Extracted code editor into separate form component. * feat: Added edit data button on json hover. * fix: Fixed rebase conflicts. * :rewind: Undo button change * :bug: Fix runNode call Adjust per update in bdb84130d687811d65337ff6b025e7cb0eae8256 * :test_tube: Fix workflow tests * :bug: More merge conflict fixes * feat: Added pin/unpin button and store mutations. * feat: Size check. Various design and ux improvements. * :zap: Add transformer * :zap: Hoist pin data * :zap: Adjust endpoints for hoisted pin data * :blue_book: Expand interface * :bug: Fix stray array * :shirt: Fix build * :art: Add color secondary tints * :sparkles: Create `HeaderMessage` component * :zap: Adjust `InfoTip` component * :sparkles: Add `HeaderMessage` to `RunData` * :bug: Fix console error * :shirt: Fix lint * :zap: Consolidate `HeaderMessage` and `Callout` * :rewind: Undo `InfoTip` changes * :fire: Remove duplicate icons * :zap: Simplify template * :art: Change cursor for action text * :shirt: Fix lint * :zap: Add URL * :bug: Fix handler name * :zap: Use constant * :recycle: Refactor per feedback * fix: Various fixes after data pinning relocation. * fix: Added store mutation for setting pinned data. * feat: Added pinned state for workflow canvas node. * :zap: Fixes for canvas pin data (#3587) * :zap: Fixes for canvas pin data * :blue_book: Rename type * :test_tube: Fix unrelated Public API test * :fire: Remove logging * feat: Updated pinData mixin to no longer include extra fields. * fix: Removed pinData hoisting (no longer necessary). * chore: Merged duplicate node border color condition. * :zap: Output same pindata for every run * :art: Fix cropping * :bug: Fix excess closing template tag * fix: Removed rogue template tag after merge. * fix: Fixed code-editor resizing when moving ndv panel. * feat: Added node duplication pin data. * :zap: Implement telemetry * :recycle: Add clarifications from call * fix: Fixed run data header height. * feat: Removed border from pin data callout. * feat: Added line-break before 'or insert pin data'. * feat: Changed enterEditMode to always insert test data if there's no execution data. * feat: Removed copy output tooltip. * feat: Removed unpin tooltip. * fix: Removed thumbtack icon rotation. * fix: Removed run info from Edit Output title. * feat: Hid edit and pin buttons when editing. * feat: Updated monaco code-editor padding and borders. * feat: Progress on pinData error message format * feat: Updated copy feature to work without any selected value. * feat: Moved save and cancel buttons. Cleared notifications on save. * feat: Changed pin data beforeClosing confirm text. * feat: Closing ndv when discarding or saving pindata on close. * feat: Added split in batches node to pin data denylist. * fix: Added missing margin-bottom to webhook node. * feat: Moved thumbtack icon to the right, replacing the checkmark. * fix: Hid pagination while editing. * feat: Added pin data discovery flow. * feat: Changed pin data discovery flow to avoid tooltip glitching. * fix: Changed copy selection to copy all input data. * feat: Updated pin data validation error message for unexpected single quotes. * fix: Replaced :manual='true' prop with manual shorthand. * fix: Removed unused variable. * chore: Renamed translation key to node.discovery.pinData. * refactor: Extracted isPinDataNodeType to pinData mixin. * fix: Updated watch condition to improve performance. * refactor: Renamed some pin data variables and methods as per review. * fix: Added partial translation for JSON.parse pin data error messages. * chore: Temporarily disabled failing unit test. * :test_tube: Fix data pinning workflow retrieval test * :fire: Remove unused imports * :fire: Remove leftover line * :zap: Skip pindata node issues on BE * :zap: Skip pindata node issues on FE * :zap: Hide `RunInfo` for pindata node * :zap: Hide purple banner in edit output mode * feat: Updated data pinning discoverability flow. * fix: Fixed paginated data pinning. * fix: Disabled pin data in read only mode. * :bug: Fix runtime error with non-array * fix: Loading pin data when opening execution. * :zap: Adjust stale data warning for pinned data * :zap: Skip auth in endpoint * :zap: Mark start node for pinned trigger * :pencil2: Comment on passthrough * :fire: Remove comment * Final pindata metrics changes (#3673) * :bug: Fix `pinData` tracked as `0` * :zap: Add `is_pinned` to `nodesGraph` * :blue_book: Extend `IWorkflowBase` * :zap: Handle `pinData` being `undefined` * :zap: Add `data_pinning_tooltip_presented` * :recycle: Refactor to remove circular dependency * fix: Added pin data handling when importing workflow. (#3698) * :fire: Remove helper from WorkflowExecute * :zap: Add logic for single pinned trigger * :shirt: Remove lint exception * fix: Added pin data handling in importWorkflowExact. * N8N-4077 data pinning discoverability part 2 (#3701) * fix: Fixed pin data discovery tooltip position when moving canvas. * feat: Updated data pinning discovery tooltip copy. * Fix data pinning build (#3702) * :zap: Disable edit button for disabled node * :zap: Ensure disabled pinned nodes are passthrough * :bug: Fix JSON key unfurling in edit mode * :zap: Improve implementation * :bug: Fix console error * fix: Fixed copying pinned output data. (#3715) * Fix pinning for webhook responding with output from last node (#3719) * fix: Fixed entering edit mode after refresh. * fix: Fixed type error during build. * fix: RunData import formatting. * chore: Updated pin data types. * fix: Added missing type to stringSizeInBytes. Co-authored-by: Iván Ovejero <ivov.src@gmail.com> * fix: Showing pin data without executing the node only in output pane. * fix: Updated no data message when previous node not executed. * feat: Added expression input and evaluation for pin data nodes without execution. * chore: Fixed linting issues and removed remnant console.log(). * chore: Undone package-lock changes. * fix: Removed pin data store changes. * fix: Created a new object using vuex runExecutionData. * fix: Fixed bug appearing when adding a new node after executing. * fix: Fix editor-ui build * feat: Added green node connectors when having pin data output. * chore: Fixed linting errors. * fix: Added pin data eventBus unsubscribe. * fix: Added pin data color check after adding a connection. * :art: Add pindata styles Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2022-07-20 08:50:39 -07:00
await testDb.truncate(
['SharedCredentials', 'SharedWorkflow', 'Tag', 'User', 'Workflow', 'Credentials'],
testDbName,
);
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
config.set('userManagement.disabled', false);
config.set('userManagement.isInstanceOwnerSetUp', true);
});
afterEach(async () => {
await workflowRunner.removeAll();
});
afterAll(async () => {
await testDb.terminate(testDbName);
});
test('GET /workflows should fail due to missing API Key', async () => {
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.get('/workflows');
expect(response.statusCode).toBe(401);
});
test('GET /workflows should fail due to invalid API Key', async () => {
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
owner.apiKey = 'abcXYZ';
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.get('/workflows');
expect(response.statusCode).toBe(401);
});
test('GET /workflows should return all owned workflows', async () => {
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
await Promise.all([
testDb.createWorkflow({}, member),
testDb.createWorkflow({}, member),
testDb.createWorkflow({}, member),
]);
const response = await authAgent.get('/workflows');
expect(response.statusCode).toBe(200);
expect(response.body.data.length).toBe(3);
expect(response.body.nextCursor).toBeNull();
for (const workflow of response.body.data) {
const {
id,
connections,
active,
staticData,
nodes,
settings,
name,
createdAt,
updatedAt,
tags,
} = workflow;
expect(id).toBeDefined();
expect(name).toBeDefined();
expect(connections).toBeDefined();
expect(active).toBe(false);
expect(staticData).toBeDefined();
expect(nodes).toBeDefined();
expect(tags).toBeDefined();
expect(settings).toBeDefined();
expect(createdAt).toBeDefined();
expect(updatedAt).toBeDefined();
}
});
test('GET /workflows should return all owned workflows with pagination', async () => {
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
await Promise.all([
testDb.createWorkflow({}, member),
testDb.createWorkflow({}, member),
testDb.createWorkflow({}, member),
]);
const response = await authAgent.get('/workflows?limit=1');
expect(response.statusCode).toBe(200);
expect(response.body.data.length).toBe(1);
expect(response.body.nextCursor).not.toBeNull();
const response2 = await authAgent.get(`/workflows?limit=1&cursor=${response.body.nextCursor}`);
expect(response2.statusCode).toBe(200);
expect(response2.body.data.length).toBe(1);
expect(response2.body.nextCursor).not.toBeNull();
expect(response2.body.nextCursor).not.toBe(response.body.nextCursor);
const responses = [...response.body.data, ...response2.body.data];
for (const workflow of responses) {
const {
id,
connections,
active,
staticData,
nodes,
settings,
name,
createdAt,
updatedAt,
tags,
} = workflow;
expect(id).toBeDefined();
expect(name).toBeDefined();
expect(connections).toBeDefined();
expect(active).toBe(false);
expect(staticData).toBeDefined();
expect(nodes).toBeDefined();
expect(tags).toBeDefined();
expect(settings).toBeDefined();
expect(createdAt).toBeDefined();
expect(updatedAt).toBeDefined();
}
// check that we really received a different result
expect(response.body.data[0].id).toBeLessThan(response2.body.data[0].id);
});
test('GET /workflows should return all owned workflows filtered by tag', async () => {
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
const tag = await testDb.createTag({});
const [workflow] = await Promise.all([
testDb.createWorkflow({ tags: [tag] }, member),
testDb.createWorkflow({}, member),
]);
const response = await authAgent.get(`/workflows?tags=${tag.name}`);
expect(response.statusCode).toBe(200);
expect(response.body.data.length).toBe(1);
const {
id,
connections,
active,
staticData,
nodes,
settings,
name,
createdAt,
updatedAt,
tags: wfTags,
} = response.body.data[0];
expect(id).toBe(workflow.id);
expect(name).toBeDefined();
expect(connections).toBeDefined();
expect(active).toBe(false);
expect(staticData).toBeDefined();
expect(nodes).toBeDefined();
expect(settings).toBeDefined();
expect(createdAt).toBeDefined();
expect(updatedAt).toBeDefined();
expect(wfTags.length).toBe(1);
expect(wfTags[0].id).toBe(tag.id);
});
test('GET /workflows should return all owned workflows filtered by tags', async () => {
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
const tags = await Promise.all([await testDb.createTag({}), await testDb.createTag({})]);
const tagNames = tags.map((tag) => tag.name).join(',');
const [workflow1, workflow2] = await Promise.all([
testDb.createWorkflow({ tags }, member),
testDb.createWorkflow({ tags }, member),
testDb.createWorkflow({}, member),
testDb.createWorkflow({ tags: [tags[0]] }, member),
testDb.createWorkflow({ tags: [tags[1]] }, member),
]);
const response = await authAgent.get(`/workflows?tags=${tagNames}`);
expect(response.statusCode).toBe(200);
expect(response.body.data.length).toBe(2);
for (const workflow of response.body.data) {
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt } =
workflow;
expect(id).toBeDefined();
expect([workflow1.id, workflow2.id].includes(id)).toBe(true);
expect(name).toBeDefined();
expect(connections).toBeDefined();
expect(active).toBe(false);
expect(staticData).toBeDefined();
expect(nodes).toBeDefined();
expect(settings).toBeDefined();
expect(createdAt).toBeDefined();
expect(updatedAt).toBeDefined();
expect(workflow.tags.length).toBe(2);
workflow.tags.forEach((tag: TagEntity) => {
expect(tags.some((savedTag) => savedTag.id === tag.id)).toBe(true);
});
}
});
test('GET /workflows should return all workflows for owner', async () => {
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const member = await testDb.createUser({ globalRole: globalMemberRole });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
await Promise.all([
testDb.createWorkflow({}, owner),
testDb.createWorkflow({}, member),
testDb.createWorkflow({}, owner),
testDb.createWorkflow({}, member),
testDb.createWorkflow({}, owner),
]);
const response = await authOwnerAgent.get('/workflows');
expect(response.statusCode).toBe(200);
expect(response.body.data.length).toBe(5);
expect(response.body.nextCursor).toBeNull();
for (const workflow of response.body.data) {
const {
id,
connections,
active,
staticData,
nodes,
settings,
name,
createdAt,
updatedAt,
tags,
} = workflow;
expect(id).toBeDefined();
expect(name).toBeDefined();
expect(connections).toBeDefined();
expect(active).toBe(false);
expect(staticData).toBeDefined();
expect(nodes).toBeDefined();
expect(tags).toBeDefined();
expect(settings).toBeDefined();
expect(createdAt).toBeDefined();
expect(updatedAt).toBeDefined();
}
});
test('GET /workflows/:id should fail due to missing API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
owner.apiKey = null;
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.get(`/workflows/2`);
expect(response.statusCode).toBe(401);
});
test('GET /workflows/:id should fail due to invalid API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
owner.apiKey = 'abcXYZ';
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.get(`/workflows/2`);
expect(response.statusCode).toBe(401);
});
2022-06-30 06:53:56 -07:00
test('GET /workflows/:id should fail due to non-existing workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.get(`/workflows/2`);
expect(response.statusCode).toBe(404);
});
test('GET /workflows/:id should retrieve workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
// create and assign workflow to owner
const workflow = await testDb.createWorkflow({}, member);
const response = await authAgent.get(`/workflows/${workflow.id}`);
expect(response.statusCode).toBe(200);
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt, tags } =
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
response.body;
expect(id).toEqual(workflow.id);
expect(name).toEqual(workflow.name);
expect(connections).toEqual(workflow.connections);
expect(active).toBe(false);
expect(staticData).toEqual(workflow.staticData);
expect(nodes).toEqual(workflow.nodes);
expect(tags).toEqual([]);
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
expect(settings).toEqual(workflow.settings);
expect(createdAt).toEqual(workflow.createdAt.toISOString());
expect(updatedAt).toEqual(workflow.updatedAt.toISOString());
});
test('GET /workflows/:id should retrieve non-owned workflow for owner', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const member = await testDb.createUser({ globalRole: globalMemberRole });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
// create and assign workflow to owner
const workflow = await testDb.createWorkflow({}, member);
const response = await authOwnerAgent.get(`/workflows/${workflow.id}`);
expect(response.statusCode).toBe(200);
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt } =
response.body;
expect(id).toEqual(workflow.id);
expect(name).toEqual(workflow.name);
expect(connections).toEqual(workflow.connections);
expect(active).toBe(false);
expect(staticData).toEqual(workflow.staticData);
expect(nodes).toEqual(workflow.nodes);
expect(settings).toEqual(workflow.settings);
expect(createdAt).toEqual(workflow.createdAt.toISOString());
expect(updatedAt).toEqual(workflow.updatedAt.toISOString());
});
test('DELETE /workflows/:id should fail due to missing API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.delete(`/workflows/2`);
expect(response.statusCode).toBe(401);
});
test('DELETE /workflows/:id should fail due to invalid API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
owner.apiKey = 'abcXYZ';
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.delete(`/workflows/2`);
expect(response.statusCode).toBe(401);
});
2022-06-30 06:53:56 -07:00
test('DELETE /workflows/:id should fail due to non-existing workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.delete(`/workflows/2`);
expect(response.statusCode).toBe(404);
});
test('DELETE /workflows/:id should delete the workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
// create and assign workflow to owner
const workflow = await testDb.createWorkflow({}, member);
const response = await authAgent.delete(`/workflows/${workflow.id}`);
expect(response.statusCode).toBe(200);
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt } =
response.body;
expect(id).toEqual(workflow.id);
expect(name).toEqual(workflow.name);
expect(connections).toEqual(workflow.connections);
expect(active).toBe(false);
expect(staticData).toEqual(workflow.staticData);
expect(nodes).toEqual(workflow.nodes);
expect(settings).toEqual(workflow.settings);
expect(createdAt).toEqual(workflow.createdAt.toISOString());
expect(updatedAt).toEqual(workflow.updatedAt.toISOString());
// make sure the workflow actually deleted from the db
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
workflow,
});
expect(sharedWorkflow).toBeUndefined();
});
test('DELETE /workflows/:id should delete non-owned workflow when owner', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const member = await testDb.createUser({ globalRole: globalMemberRole });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
// create and assign workflow to owner
const workflow = await testDb.createWorkflow({}, member);
const response = await authAgent.delete(`/workflows/${workflow.id}`);
expect(response.statusCode).toBe(200);
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt } =
response.body;
expect(id).toEqual(workflow.id);
expect(name).toEqual(workflow.name);
expect(connections).toEqual(workflow.connections);
expect(active).toBe(false);
expect(staticData).toEqual(workflow.staticData);
expect(nodes).toEqual(workflow.nodes);
expect(settings).toEqual(workflow.settings);
expect(createdAt).toEqual(workflow.createdAt.toISOString());
expect(updatedAt).toEqual(workflow.updatedAt.toISOString());
// make sure the workflow actually deleted from the db
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
workflow,
});
expect(sharedWorkflow).toBeUndefined();
});
test('POST /workflows/:id/activate should fail due to missing API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post(`/workflows/2/activate`);
expect(response.statusCode).toBe(401);
});
test('POST /workflows/:id/activate should fail due to invalid API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
owner.apiKey = 'abcXYZ';
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post(`/workflows/2/activate`);
expect(response.statusCode).toBe(401);
});
2022-06-30 06:53:56 -07:00
test('POST /workflows/:id/activate should fail due to non-existing workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post(`/workflows/2/activate`);
expect(response.statusCode).toBe(404);
});
test('POST /workflows/:id/activate should fail due to trying to activate a workflow without a trigger', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const workflow = await testDb.createWorkflow({}, owner);
const response = await authOwnerAgent.post(`/workflows/${workflow.id}/activate`);
expect(response.statusCode).toBe(400);
});
test('POST /workflows/:id/activate should set workflow as active', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
const workflow = await testDb.createWorkflowWithTrigger({}, member);
const response = await authAgent.post(`/workflows/${workflow.id}/activate`);
expect(response.statusCode).toBe(200);
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt } =
response.body;
expect(id).toEqual(workflow.id);
expect(name).toEqual(workflow.name);
expect(connections).toEqual(workflow.connections);
expect(active).toBe(true);
expect(staticData).toEqual(workflow.staticData);
expect(nodes).toEqual(workflow.nodes);
expect(settings).toEqual(workflow.settings);
expect(createdAt).toEqual(workflow.createdAt.toISOString());
expect(updatedAt).toEqual(workflow.updatedAt.toISOString());
// check whether the workflow is on the database
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: member,
workflow,
},
relations: ['workflow'],
});
expect(sharedWorkflow?.workflow.active).toBe(true);
// check whether the workflow is on the active workflow runner
expect(await workflowRunner.isActive(workflow.id.toString())).toBe(true);
});
test('POST /workflows/:id/activate should set non-owned workflow as active when owner', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const member = await testDb.createUser({ globalRole: globalMemberRole });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const workflow = await testDb.createWorkflowWithTrigger({}, member);
const response = await authAgent.post(`/workflows/${workflow.id}/activate`);
expect(response.statusCode).toBe(200);
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt } =
response.body;
expect(id).toEqual(workflow.id);
expect(name).toEqual(workflow.name);
expect(connections).toEqual(workflow.connections);
expect(active).toBe(true);
expect(staticData).toEqual(workflow.staticData);
expect(nodes).toEqual(workflow.nodes);
expect(settings).toEqual(workflow.settings);
expect(createdAt).toEqual(workflow.createdAt.toISOString());
expect(updatedAt).toEqual(workflow.updatedAt.toISOString());
// check whether the workflow is on the database
const sharedOwnerWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: owner,
workflow,
},
});
expect(sharedOwnerWorkflow).toBeUndefined();
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: member,
workflow,
},
relations: ['workflow'],
});
expect(sharedWorkflow?.workflow.active).toBe(true);
// check whether the workflow is on the active workflow runner
expect(await workflowRunner.isActive(workflow.id.toString())).toBe(true);
});
test('POST /workflows/:id/deactivate should fail due to missing API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post(`/workflows/2/deactivate`);
expect(response.statusCode).toBe(401);
});
test('POST /workflows/:id/deactivate should fail due to invalid API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
owner.apiKey = 'abcXYZ';
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post(`/workflows/2/deactivate`);
expect(response.statusCode).toBe(401);
});
2022-06-30 06:53:56 -07:00
test('POST /workflows/:id/deactivate should fail due to non-existing workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post(`/workflows/2/deactivate`);
expect(response.statusCode).toBe(404);
});
test('POST /workflows/:id/deactivate should deactivate workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
const workflow = await testDb.createWorkflowWithTrigger({}, member);
await authAgent.post(`/workflows/${workflow.id}/activate`);
const workflowDeactivationResponse = await authAgent.post(`/workflows/${workflow.id}/deactivate`);
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt } =
workflowDeactivationResponse.body;
expect(id).toEqual(workflow.id);
expect(name).toEqual(workflow.name);
expect(connections).toEqual(workflow.connections);
expect(active).toBe(false);
expect(staticData).toEqual(workflow.staticData);
expect(nodes).toEqual(workflow.nodes);
expect(settings).toEqual(workflow.settings);
expect(createdAt).toBeDefined();
expect(updatedAt).toBeDefined();
// get the workflow after it was deactivated
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: member,
workflow,
},
relations: ['workflow'],
});
// check whether the workflow is deactivated in the database
expect(sharedWorkflow?.workflow.active).toBe(false);
expect(await workflowRunner.isActive(workflow.id.toString())).toBe(false);
});
test('POST /workflows/:id/deactivate should deactivate non-owned workflow when owner', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const member = await testDb.createUser({ globalRole: globalMemberRole });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const workflow = await testDb.createWorkflowWithTrigger({}, member);
await authAgent.post(`/workflows/${workflow.id}/activate`);
const workflowDeactivationResponse = await authAgent.post(`/workflows/${workflow.id}/deactivate`);
const { id, connections, active, staticData, nodes, settings, name, createdAt, updatedAt } =
workflowDeactivationResponse.body;
expect(id).toEqual(workflow.id);
expect(name).toEqual(workflow.name);
expect(connections).toEqual(workflow.connections);
expect(active).toBe(false);
expect(staticData).toEqual(workflow.staticData);
expect(nodes).toEqual(workflow.nodes);
expect(settings).toEqual(workflow.settings);
expect(createdAt).toBeDefined();
expect(updatedAt).toBeDefined();
// check whether the workflow is deactivated in the database
const sharedOwnerWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: owner,
workflow,
},
});
expect(sharedOwnerWorkflow).toBeUndefined();
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: member,
workflow,
},
relations: ['workflow'],
});
expect(sharedWorkflow?.workflow.active).toBe(false);
expect(await workflowRunner.isActive(workflow.id.toString())).toBe(false);
});
test('POST /workflows should fail due to missing API Key', async () => {
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post('/workflows');
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
expect(response.statusCode).toBe(401);
});
test('POST /workflows should fail due to invalid API Key', async () => {
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
owner.apiKey = 'abcXYZ';
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post('/workflows');
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
expect(response.statusCode).toBe(401);
});
test('POST /workflows should fail due to invalid body', async () => {
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.post('/workflows').send({});
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
expect(response.statusCode).toBe(400);
});
test('POST /workflows should create workflow', async () => {
const member = await testDb.createUser({ globalRole: globalMemberRole, apiKey: randomApiKey() });
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
const payload = {
name: 'testing',
nodes: [
{
id: 'uuid-1234',
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
parameters: {},
name: 'Start',
type: 'n8n-nodes-base.start',
typeVersion: 1,
position: [240, 300],
},
],
connections: {},
staticData: null,
settings: {
saveExecutionProgress: true,
saveManualExecutions: true,
saveDataErrorExecution: 'all',
saveDataSuccessExecution: 'all',
executionTimeout: 3600,
timezone: 'America/New_York',
},
};
const response = await authAgent.post('/workflows').send(payload);
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
expect(response.statusCode).toBe(200);
const { id, name, nodes, connections, staticData, active, settings, createdAt, updatedAt } =
response.body;
expect(id).toBeDefined();
expect(name).toBe(payload.name);
expect(connections).toEqual(payload.connections);
expect(settings).toEqual(payload.settings);
expect(staticData).toEqual(payload.staticData);
expect(nodes).toEqual(payload.nodes);
expect(active).toBe(false);
expect(createdAt).toBeDefined();
expect(updatedAt).toEqual(createdAt);
// check if created workflow in DB
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: member,
workflow: response.body,
},
relations: ['workflow', 'role'],
});
expect(sharedWorkflow?.workflow.name).toBe(name);
expect(sharedWorkflow?.workflow.createdAt.toISOString()).toBe(createdAt);
expect(sharedWorkflow?.role).toEqual(workflowOwnerRole);
});
test('PUT /workflows/:id should fail due to missing API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.put(`/workflows/1`);
expect(response.statusCode).toBe(401);
});
test('PUT /workflows/:id should fail due to invalid API Key', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
owner.apiKey = 'abcXYZ';
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.put(`/workflows/1`).send({});
expect(response.statusCode).toBe(401);
});
2022-06-30 06:53:56 -07:00
test('PUT /workflows/:id should fail due to non-existing workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.put(`/workflows/1`).send({
name: 'testing',
nodes: [
{
id: 'uuid-1234',
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
parameters: {},
name: 'Start',
type: 'n8n-nodes-base.start',
typeVersion: 1,
position: [240, 300],
},
],
connections: {},
staticData: null,
settings: {
saveExecutionProgress: true,
saveManualExecutions: true,
saveDataErrorExecution: 'all',
saveDataSuccessExecution: 'all',
executionTimeout: 3600,
timezone: 'America/New_York',
},
});
expect(response.statusCode).toBe(404);
});
test('PUT /workflows/:id should fail due to invalid body', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const authOwnerAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const response = await authOwnerAgent.put(`/workflows/1`).send({
nodes: [
{
id: 'uuid-1234',
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
parameters: {},
name: 'Start',
type: 'n8n-nodes-base.start',
typeVersion: 1,
position: [240, 300],
},
],
connections: {},
staticData: null,
settings: {
saveExecutionProgress: true,
saveManualExecutions: true,
saveDataErrorExecution: 'all',
saveDataSuccessExecution: 'all',
executionTimeout: 3600,
timezone: 'America/New_York',
},
});
expect(response.statusCode).toBe(400);
});
test('PUT /workflows/:id should update workflow', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const member = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const workflow = await testDb.createWorkflow({}, member);
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: member,
version: 1,
});
const payload = {
name: 'name updated',
nodes: [
{
id: 'uuid-1234',
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
parameters: {},
name: 'Start',
type: 'n8n-nodes-base.start',
typeVersion: 1,
position: [240, 300],
},
{
id: 'uuid-1234',
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
parameters: {},
name: 'Cron',
type: 'n8n-nodes-base.cron',
typeVersion: 1,
position: [400, 300],
},
],
connections: {},
staticData: '{"id":1}',
settings: {
saveExecutionProgress: false,
saveManualExecutions: false,
saveDataErrorExecution: 'all',
saveDataSuccessExecution: 'all',
executionTimeout: 3600,
timezone: 'America/New_York',
},
};
const response = await authAgent.put(`/workflows/${workflow.id}`).send(payload);
const { id, name, nodes, connections, staticData, active, settings, createdAt, updatedAt } =
response.body;
expect(response.statusCode).toBe(200);
expect(id).toBe(workflow.id);
expect(name).toBe(payload.name);
expect(connections).toEqual(payload.connections);
expect(settings).toEqual(payload.settings);
expect(staticData).toMatchObject(JSON.parse(payload.staticData));
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
expect(nodes).toEqual(payload.nodes);
expect(active).toBe(false);
expect(createdAt).toBe(workflow.createdAt.toISOString());
expect(updatedAt).not.toBe(workflow.updatedAt.toISOString());
// check updated workflow in DB
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: member,
workflow: response.body,
},
relations: ['workflow'],
});
expect(sharedWorkflow?.workflow.name).toBe(payload.name);
expect(sharedWorkflow?.workflow.updatedAt.getTime()).toBeGreaterThan(
workflow.updatedAt.getTime(),
);
});
test('PUT /workflows/:id should update non-owned workflow if owner', async () => {
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
const owner = await testDb.createUser({ globalRole: globalOwnerRole, apiKey: randomApiKey() });
const member = await testDb.createUser({ globalRole: globalMemberRole });
const workflow = await testDb.createWorkflow({}, member);
const authAgent = utils.createAgent(app, {
apiPath: 'public',
auth: true,
user: owner,
version: 1,
});
const payload = {
name: 'name owner updated',
nodes: [
{
id: 'uuid-1',
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
parameters: {},
name: 'Start',
type: 'n8n-nodes-base.start',
typeVersion: 1,
position: [240, 300],
},
{
id: 'uuid-2',
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
parameters: {},
name: 'Cron',
type: 'n8n-nodes-base.cron',
typeVersion: 1,
position: [400, 300],
},
],
connections: {},
staticData: '{"id":1}',
settings: {
saveExecutionProgress: false,
saveManualExecutions: false,
saveDataErrorExecution: 'all',
saveDataSuccessExecution: 'all',
executionTimeout: 3600,
timezone: 'America/New_York',
},
};
const response = await authAgent.put(`/workflows/${workflow.id}`).send(payload);
const { id, name, nodes, connections, staticData, active, settings, createdAt, updatedAt } =
response.body;
expect(response.statusCode).toBe(200);
expect(id).toBe(workflow.id);
expect(name).toBe(payload.name);
expect(connections).toEqual(payload.connections);
expect(settings).toEqual(payload.settings);
expect(staticData).toMatchObject(JSON.parse(payload.staticData));
feat: Add n8n Public API (#3064) * :sparkles: Inicial setup * :zap: Add authentication handler * :zap: Add GET /users route * :zap: Improvements * :shirt: Fix linting issues * :zap: Add GET /users/:identifier endpoint * :zap: Add POST /users endpoint * :zap: Add DELETE /users/:identifier endpoint * :zap: Return error using express native functions * :shirt: Fix linting issue * :zap: Possibility to add custom middleware * :zap: Refactor POST /users * :zap: Refactor DELETE /users * :zap: Improve cleaning function * :zap: Refactor GET /users and /users/:identifier * :zap: Add API spec to route * :zap: Add raw option to response helper * :bug: Fix issue adding custom middleware * :zap: Enable includeRole parameter in GET /users/:identifier * :zap: Fix linting issues after merge * :zap: Add missing config variable * :zap: General improvements :zap: asasas * :zap: Add POST /users tests * Debug public API tests * Fix both sets of tests * :zap: Improvements * :zap: Load api versions dynamically * :zap: Add endpoints to UM to create/delete an API Key * :zap: Add index to apiKey column * :shirt: Fix linting issue * :zap: Clean open api spec * :zap: Improvements * :zap: Skip tests * :bug: Fix bug with test * :zap: Fix issue with the open api spec * :zap: Fix merge issue * :zap: Move token enpoints from /users to /me * :zap: Apply feedback to openapi.yml * :zap: Improvements to api-key endpoints * :bug: Fix test to suport API dynamic loading * :zap: Expose swagger ui in GET /{version}/docs * :zap: Allow to disable public api via env variable * :zap: Change handlers structure * 🚧 WIP create credential, delete credential complete * :bug: fix route for creating api key * :zap: return api key of authenticated user * :zap: Expose public api activation to the settings * ⬆️ Update package-lock.json file * :zap: Add execution resource * :zap: Fix linting issues * 🛠 conditional public api endpoints excluding * ⚡️ create credential complete * :sparkles: Added n8n-card component. Added spacing utility classes. * :recycle: Made use of n8n-card in existing components. * :sparkles: Added api key setup view. * :sparkles: Added api keys get/create/delete actions. * :sparkles: Added public api permissions handling. * :recycle: Temporarily disabling card tests. * :recycle: Changed translations. Storing api key only in component. * :sparkles: Added utilities storybook entry * :recycle: Changed default value for generic copy input. * 🧹 clean up createCredential * :zap: Add workflow resource to openapi spec * :bug: Fix naming with env variable * :zap: Allow multifile openapi spec * :zap: Add POST /workflows/:workflowId/activate * fix up view, fix issues * remove delete api key modal * remove unused prop * clean up store api * remove getter * remove unused dispatch * fix component size to match * use existing components * match figma closely * fix bug when um is disabled in sidebar * set copy input color * remove unused import * :zap: Remove css path * :zap: Add POST /workflows/:workflowId/desactivate * :zap: Add POST /workflows * Revert ":zap: Remove css path" a3d0a71719834ef37c88c23c83dfe662e96185aa * attempt to fix docker image issue * revert dockerfile test * disable public api * disable api differently * Revert "disable api differently" b70e29433e45934975e41ffdc32e288988aba9b0 * Revert "disable public api" 886e5164fb4135c164f77561bdb4427e5cd44ac1 * remove unused box * :zap: PUT /workflows/:workflowId * :zap: Refactor workflow endpoints * :zap: Refactor executions endpoints * :zap: Fix typo * ✅ add credentials tests * ✅ adjust users tests * update text * add try it out link * :zap: Add delete, getAll and get to the workflow resource * address spacing comments * ⚡️ apply correct structure * :zap: Add missing test to user resource and fix some issues * :zap: Add workflow tests * :zap: Add missing workflow tests and fix some issues * :zap: Executions tests * :zap: finish execution tests * :zap: Validate credentials data depending on type * ⚡️ implement review comments * 👕 fix lint issues * :zap: Add apiKey to sanatizeUser * :zap: Fix issues with spec and tests * :zap: Add new structure * :zap: Validate credentials type and properties * :zap: Make all endpoints except /users independent on UM * :zap: Add instance base path to swagger UI * :zap: Remove testing endpoints * :zap: Fix issue with openapi tags * :zap: Add endpoint GET /credentialTypes/:id/schema * :bug: Fix issue adding json middleware to public api * :zap: Add API playground path to FE * :zap: Add telemetry and external hooks * :bug: Fix issue with user tests * :zap: Move /credentialTypes under /credentials * :zap: Add test to GET /credentials/schema/:id * 🛠 refactor schema naming * :zap: Add DB migrations asas * ✅ add tests for crd apiKey * :sparkles: Added API View telemetry events. * :zap: Remove rsync from the building process as it is missing on alpine base image * :zap: add missing BE telemetry events * :bug: Fix credential tests * :zap: address outstanding feedback * :hammer: Remove move:openapi script * :arrow_up: update dependency * :arrow_up: update package-lock.json * :shirt: Fix linting issue * :bug: Fix package.json issue * 🐛 fix migrations and tests * 🐛 fix typos + naming * 🚧 WIP fixing tests * :zap: Add json schema validation * :zap: Add missing fields to node schema * :zap: Add limit max upper limit * :zap: Rename id paths * :bug: Fix tests * Add package-lock.jsonto custom dockerfile * ⬆️ Update package-lock.json * :bug: Fix issue with build * ✏️ add beta label to api view * :fire: Remove user endpoints * :zap: Add schema examples to GET /credentials/schema/:id * :fire: Remove user endpoints tests * :bug: Fix tests * 🎨 adapt points from design review * 🔥 remove unnecessary text-align * ⚡️ update UI * :bug: Fix issue with executions filter * :zap: Add tags filter to GET /workflows * :zap: Add missing error messages * ✅ add and update public api tests * ✅ add tests for owner activiating/deactivating non-owned wfs * 🧪 add tests for filter for tags * 🧪 add tests for more filter params * 🐛 fix inclusion of tags * 🛠 enhance readability * ⚡️ small refactorings * 💄 improving readability/naming * :zap: Set API latest version dinamically * Add comments to toJsonSchema function * :zap: Fix issue * :zap: Make execution data usable * :zap: Fix validation issue * :zap: Rename data field and change parameter and options * :bug: Fix issue parameter "detailsFieldFormat" not resolving correctly * Skip executions tests * skip workflow failing test * Rename details property to data * :zap: Add includeData parameter * :bug: Fix issue with openapi spec * :bug: Fix linting issue * :zap: Fix execution schema Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 11:53:12 -07:00
expect(nodes).toEqual(payload.nodes);
expect(active).toBe(false);
expect(createdAt).toBe(workflow.createdAt.toISOString());
expect(updatedAt).not.toBe(workflow.updatedAt.toISOString());
// check updated workflow in DB
const sharedOwnerWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: owner,
workflow: response.body,
},
});
expect(sharedOwnerWorkflow).toBeUndefined();
const sharedWorkflow = await Db.collections.SharedWorkflow.findOne({
where: {
user: member,
workflow: response.body,
},
relations: ['workflow', 'role'],
});
expect(sharedWorkflow?.workflow.name).toBe(payload.name);
expect(sharedWorkflow?.workflow.updatedAt.getTime()).toBeGreaterThan(
workflow.updatedAt.getTime(),
);
expect(sharedWorkflow?.role).toEqual(workflowOwnerRole);
});