n8n/packages/cli/src/public-api/index.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

157 lines
4.3 KiB
TypeScript
Raw Normal View History

import { Container } from 'typedi';
import type { Router } from 'express';
import express from 'express';
import fs from 'fs/promises';
import path from 'path';
import validator from 'validator';
import YAML from 'yamljs';
import type { HttpError } from 'express-openapi-validator/dist/framework/types';
import type { OpenAPIV3 } from 'openapi-types';
import type { JsonObject } from 'swagger-ui-express';
import { License } from '@/license';
import { UserRepository } from '@/databases/repositories/user.repository';
import { UrlService } from '@/services/url.service';
import type { AuthenticatedRequest } from '@/requests';
import { GlobalConfig } from '@n8n/config';
import { EventService } from '@/events/event.service';
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
async function createApiRouter(
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
version: string,
openApiSpecPath: string,
handlersDirectory: string,
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
publicApiEndpoint: string,
): Promise<Router> {
const n8nPath = Container.get(GlobalConfig).path;
const swaggerDocument = YAML.load(openApiSpecPath) as JsonObject;
// add the server depending on the config so the user can interact with the API
// from the Swagger UI
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
swaggerDocument.server = [
{
url: `${Container.get(UrlService).getInstanceBaseUrl()}/${publicApiEndpoint}/${version}}`,
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 apiController = express.Router();
if (!Container.get(GlobalConfig).publicApi.swaggerUiDisabled) {
const { serveFiles, setup } = await import('swagger-ui-express');
const swaggerThemePath = path.join(__dirname, 'swagger-theme.css');
const swaggerThemeCss = await fs.readFile(swaggerThemePath, { encoding: 'utf-8' });
apiController.use(
`/${publicApiEndpoint}/${version}/docs`,
serveFiles(swaggerDocument),
setup(swaggerDocument, {
customCss: swaggerThemeCss,
customSiteTitle: 'n8n Public API UI',
customfavIcon: `${n8nPath}favicon.ico`,
}),
);
}
apiController.get(`/${publicApiEndpoint}/${version}/openapi.yml`, (_, res) => {
res.sendFile(openApiSpecPath);
});
const { middleware: openApiValidatorMiddleware } = await import('express-openapi-validator');
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
apiController.use(
`/${publicApiEndpoint}/${version}`,
express.json(),
openApiValidatorMiddleware({
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
apiSpec: openApiSpecPath,
operationHandlers: handlersDirectory,
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
validateRequests: true,
validateApiSpec: true,
formats: {
email: {
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
type: 'string',
validate: (email: string) => validator.isEmail(email),
},
identifier: {
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
type: 'string',
validate: (identifier: string) =>
validator.isUUID(identifier) || validator.isEmail(identifier),
},
jsonString: {
validate: (data: string) => {
try {
JSON.parse(data);
return true;
} catch (e) {
return false;
}
},
},
},
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
validateSecurity: {
handlers: {
ApiKeyAuth: async (
req: AuthenticatedRequest,
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
_scopes: unknown,
schema: OpenAPIV3.ApiKeySecurityScheme,
): Promise<boolean> => {
const apiKey = req.headers[schema.name.toLowerCase()] as string;
const user = await Container.get(UserRepository).findOne({
where: { apiKey },
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
});
if (!user) return false;
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
Container.get(EventService).emit('public-api-invoked', {
userId: user.id,
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
path: req.path,
method: req.method,
apiVersion: version,
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
});
req.user = user;
return true;
},
},
},
}),
);
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
apiController.use(
(
error: HttpError,
_req: express.Request,
res: express.Response,
_next: express.NextFunction,
) => {
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
return res.status(error.status || 400).json({
message: error.message,
});
},
);
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
return apiController;
}
export const loadPublicApiVersions = async (
publicApiEndpoint: string,
): Promise<{ apiRouters: express.Router[]; apiLatestVersion: number }> => {
const folders = await fs.readdir(__dirname);
const versions = folders.filter((folderName) => folderName.startsWith('v'));
const apiRouters = await Promise.all(
versions.map(async (version) => {
const openApiPath = path.join(__dirname, version, 'openapi.yml');
return await createApiRouter(version, openApiPath, __dirname, publicApiEndpoint);
}),
);
const version = versions.pop()?.charAt(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
return {
apiRouters,
apiLatestVersion: version ? Number(version) : 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
};
};
feat(editor): Add cloud ExecutionsUsage and API blocking using licenses (#6159) * Add ExecutionsUsage component * set $sidebar-expanded-width back to 200px * add days using interpolation * Rename PlanData type to CloudPlanData * Rename Metadata type to PlanMetadata * Make prop block in the update button * Use variable in line-height * Remove progressBarSection class * fix trial expiration calculation * mock expirationDate and fix issue with days left * Remove unnecesary property from class .container * inject component data via props * Check for plan data during app mounting and keep data in the store * Remove mounted hook * redirect when upgrade plan is clicked * Remove computed properties * Remove instance property as it's not needed anymore * Flatten plan object * remove console.log * Add all cloud types within its own namespace * keep redirection inside component * get computed properties back * Improve polling logic * Move cloudData to its own store * Remove commented interfaces * remove cloudPlan from user store * fix imports * update logic for userIsTrialing method * centralize userIsTrialing method * redirect to production change plan page always * Call staging or production cloud api depending on base URL * remove setting store form ExecutionUsage.vue * fix linting issue * Add trial group to PlanMetadata group * Move helpers into the store * make staging url check more specific * make cloud state nullable * fix linting issue * swap mockup date for endpoint * Make getCurrentPlan async * asas * Improvements * small improvements * chore: resolve conflicts * make sure there is data before calculating trial expiration * Fix issue with component not loading on first page load * type safety improvements * apply component ui feedback * fix linting issue * chore: clean up unnecessary change from merge conflict * feat: Block api feature using licenses, show notice page for trial cloud users (#6187) * rename planSpec to plan * Remove instance property as it's not needed anymore * Flatten plan object * remove console.log * feat: disable api using license * feat: add api page * chore: resolve conflicts * chore: resolve conflicts * feat: update and refactor a bit * fix: update endpoints * fix: update endpoints * fix: use host * feat: update copy * fix linting issues --------- Co-authored-by: ricardo <ricardoespinoza105@gmail.com> * add pluralization to days left text --------- Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2023-05-15 14:16:13 -07:00
export function isApiEnabled(): boolean {
return !Container.get(GlobalConfig).publicApi.disabled && !Container.get(License).isAPIDisabled();
feat(editor): Add cloud ExecutionsUsage and API blocking using licenses (#6159) * Add ExecutionsUsage component * set $sidebar-expanded-width back to 200px * add days using interpolation * Rename PlanData type to CloudPlanData * Rename Metadata type to PlanMetadata * Make prop block in the update button * Use variable in line-height * Remove progressBarSection class * fix trial expiration calculation * mock expirationDate and fix issue with days left * Remove unnecesary property from class .container * inject component data via props * Check for plan data during app mounting and keep data in the store * Remove mounted hook * redirect when upgrade plan is clicked * Remove computed properties * Remove instance property as it's not needed anymore * Flatten plan object * remove console.log * Add all cloud types within its own namespace * keep redirection inside component * get computed properties back * Improve polling logic * Move cloudData to its own store * Remove commented interfaces * remove cloudPlan from user store * fix imports * update logic for userIsTrialing method * centralize userIsTrialing method * redirect to production change plan page always * Call staging or production cloud api depending on base URL * remove setting store form ExecutionUsage.vue * fix linting issue * Add trial group to PlanMetadata group * Move helpers into the store * make staging url check more specific * make cloud state nullable * fix linting issue * swap mockup date for endpoint * Make getCurrentPlan async * asas * Improvements * small improvements * chore: resolve conflicts * make sure there is data before calculating trial expiration * Fix issue with component not loading on first page load * type safety improvements * apply component ui feedback * fix linting issue * chore: clean up unnecessary change from merge conflict * feat: Block api feature using licenses, show notice page for trial cloud users (#6187) * rename planSpec to plan * Remove instance property as it's not needed anymore * Flatten plan object * remove console.log * feat: disable api using license * feat: add api page * chore: resolve conflicts * chore: resolve conflicts * feat: update and refactor a bit * fix: update endpoints * fix: update endpoints * fix: use host * feat: update copy * fix linting issues --------- Co-authored-by: ricardo <ricardoespinoza105@gmail.com> * add pluralization to days left text --------- Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2023-05-15 14:16:13 -07:00
}