n8n 2.0.3 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/active-executions.js +7 -1
- package/dist/active-executions.js.map +1 -1
- package/dist/active-workflow-manager.d.ts +0 -1
- package/dist/active-workflow-manager.js +5 -8
- package/dist/active-workflow-manager.js.map +1 -1
- package/dist/auth/auth.service.js +1 -7
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/base-command.js +1 -2
- package/dist/commands/base-command.js.map +1 -1
- package/dist/commands/start.js +3 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/user-management/reset.js +1 -1
- package/dist/commands/user-management/reset.js.map +1 -1
- package/dist/commands/worker.js +3 -0
- package/dist/commands/worker.js.map +1 -1
- package/dist/concurrency/concurrency-control.service.js +2 -1
- package/dist/concurrency/concurrency-control.service.js.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +0 -1
- package/dist/controllers/ai.controller.d.ts +3 -0
- package/dist/controllers/ai.controller.js +2 -1
- package/dist/controllers/ai.controller.js.map +1 -1
- package/dist/controllers/api-keys.controller.js +5 -0
- package/dist/controllers/api-keys.controller.js.map +1 -1
- package/dist/controllers/e2e.controller.d.ts +1 -0
- package/dist/controllers/e2e.controller.js +10 -11
- package/dist/controllers/e2e.controller.js.map +1 -1
- package/dist/controllers/invitation.controller.d.ts +3 -1
- package/dist/controllers/invitation.controller.js +6 -7
- package/dist/controllers/invitation.controller.js.map +1 -1
- package/dist/controllers/oauth/oauth1-credential.controller.d.ts +6 -3
- package/dist/controllers/oauth/oauth1-credential.controller.js +39 -57
- package/dist/controllers/oauth/oauth1-credential.controller.js.map +1 -1
- package/dist/controllers/oauth/oauth2-credential.controller.d.ts +8 -5
- package/dist/controllers/oauth/oauth2-credential.controller.js +41 -179
- package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
- package/dist/controllers/owner.controller.d.ts +4 -10
- package/dist/controllers/owner.controller.js +6 -42
- package/dist/controllers/owner.controller.js.map +1 -1
- package/dist/controllers/project.controller.d.ts +4 -0
- package/dist/credentials/credential-resolution-provider.interface.d.ts +12 -0
- package/dist/credentials/credential-resolution-provider.interface.js +3 -0
- package/dist/credentials/credential-resolution-provider.interface.js.map +1 -0
- package/dist/credentials/credentials-finder.service.d.ts +4 -0
- package/dist/credentials/credentials-finder.service.js +3 -0
- package/dist/credentials/credentials-finder.service.js.map +1 -1
- package/dist/credentials/credentials.controller.d.ts +12 -4
- package/dist/credentials/credentials.controller.js +9 -6
- package/dist/credentials/credentials.controller.js.map +1 -1
- package/dist/credentials/credentials.service.d.ts +13 -0
- package/dist/credentials/credentials.service.ee.d.ts +9 -2
- package/dist/credentials/credentials.service.ee.js +4 -1
- package/dist/credentials/credentials.service.ee.js.map +1 -1
- package/dist/credentials/credentials.service.js +10 -6
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/credentials/dynamic-credential-storage.interface.d.ts +11 -0
- package/dist/credentials/dynamic-credential-storage.interface.js +3 -0
- package/dist/credentials/dynamic-credential-storage.interface.js.map +1 -0
- package/dist/credentials/dynamic-credentials-proxy.d.ts +14 -0
- package/dist/credentials/dynamic-credentials-proxy.js +50 -0
- package/dist/credentials/dynamic-credentials-proxy.js.map +1 -0
- package/dist/credentials-helper.d.ts +5 -2
- package/dist/credentials-helper.js +25 -7
- package/dist/credentials-helper.js.map +1 -1
- package/dist/environments.ee/source-control/source-control-import.service.ee.js.map +1 -1
- package/dist/environments.ee/source-control/source-control-status.service.ee.d.ts +2 -2
- package/dist/environments.ee/source-control/source-control.controller.ee.d.ts +4 -4
- package/dist/environments.ee/source-control/source-control.service.ee.d.ts +2 -2
- package/dist/environments.ee/source-control/source-control.service.ee.js +67 -39
- package/dist/environments.ee/source-control/source-control.service.ee.js.map +1 -1
- package/dist/errors/single-webhook-trigger.error.d.ts +4 -0
- package/dist/errors/single-webhook-trigger.error.js +11 -0
- package/dist/errors/single-webhook-trigger.error.js.map +1 -0
- package/dist/eventbus/event-message-classes/index.d.ts +2 -2
- package/dist/eventbus/event-message-classes/index.js +1 -0
- package/dist/eventbus/event-message-classes/index.js.map +1 -1
- package/dist/events/maps/relay.event-map.d.ts +6 -1
- package/dist/events/relays/log-streaming.event-relay.d.ts +1 -0
- package/dist/events/relays/log-streaming.event-relay.js +12 -0
- package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
- package/dist/events/relays/telemetry.event-relay.js +14 -3
- package/dist/events/relays/telemetry.event-relay.js.map +1 -1
- package/dist/execution-lifecycle/execution-lifecycle-hooks.d.ts +2 -2
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js +15 -3
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
- package/dist/license.d.ts +6 -0
- package/dist/license.js +27 -0
- package/dist/license.js.map +1 -1
- package/dist/load-nodes-and-credentials.d.ts +2 -0
- package/dist/load-nodes-and-credentials.js +97 -86
- package/dist/load-nodes-and-credentials.js.map +1 -1
- package/dist/modules/breaking-changes/rules/index.d.ts +1 -1
- package/dist/modules/breaking-changes/rules/v2/index.d.ts +2 -1
- package/dist/modules/breaking-changes/rules/v2/index.js +2 -0
- package/dist/modules/breaking-changes/rules/v2/index.js.map +1 -1
- package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.js +2 -1
- package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.js.map +1 -1
- package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.d.ts +3 -3
- package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.js +11 -4
- package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.js.map +1 -1
- package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.d.ts +11 -0
- package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.js +63 -0
- package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.js.map +1 -0
- package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.d.ts +3 -0
- package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.js +15 -2
- package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.js.map +1 -1
- package/dist/modules/breaking-changes/rules/v2/task-runners.rule.d.ts +3 -2
- package/dist/modules/breaking-changes/rules/v2/task-runners.rule.js +11 -2
- package/dist/modules/breaking-changes/rules/v2/task-runners.rule.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-agent.entity.d.ts +4 -3
- package/dist/modules/chat-hub/chat-hub-agent.entity.js +4 -0
- package/dist/modules/chat-hub/chat-hub-agent.entity.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-agent.service.d.ts +5 -21
- package/dist/modules/chat-hub/chat-hub-agent.service.js +17 -11
- package/dist/modules/chat-hub/chat-hub-agent.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-credentials.service.js +4 -2
- package/dist/modules/chat-hub/chat-hub-credentials.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-message.entity.js +1 -1
- package/dist/modules/chat-hub/chat-hub-message.entity.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-session.entity.d.ts +2 -0
- package/dist/modules/chat-hub/chat-hub-session.entity.js +6 -1
- package/dist/modules/chat-hub/chat-hub-session.entity.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub-workflow.service.d.ts +17 -4
- package/dist/modules/chat-hub/chat-hub-workflow.service.js +161 -31
- package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.attachment.service.d.ts +2 -0
- package/dist/modules/chat-hub/chat-hub.attachment.service.js +12 -0
- package/dist/modules/chat-hub/chat-hub.attachment.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.constants.d.ts +7 -3
- package/dist/modules/chat-hub/chat-hub.constants.js +468 -10
- package/dist/modules/chat-hub/chat-hub.constants.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.controller.d.ts +3 -1
- package/dist/modules/chat-hub/chat-hub.controller.js +7 -14
- package/dist/modules/chat-hub/chat-hub.controller.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.models.service.d.ts +35 -0
- package/dist/modules/chat-hub/chat-hub.models.service.js +640 -0
- package/dist/modules/chat-hub/chat-hub.models.service.js.map +1 -0
- package/dist/modules/chat-hub/chat-hub.module.js +0 -8
- package/dist/modules/chat-hub/chat-hub.module.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.service.d.ts +13 -26
- package/dist/modules/chat-hub/chat-hub.service.js +162 -760
- package/dist/modules/chat-hub/chat-hub.service.js.map +1 -1
- package/dist/modules/chat-hub/chat-hub.types.d.ts +27 -6
- package/dist/modules/chat-hub/chat-hub.types.js +11 -3
- package/dist/modules/chat-hub/chat-hub.types.js.map +1 -1
- package/dist/modules/chat-hub/chat-session.repository.js +17 -2
- package/dist/modules/chat-hub/chat-session.repository.js.map +1 -1
- package/dist/modules/chat-hub/context-limits.js +62 -5
- package/dist/modules/chat-hub/context-limits.js.map +1 -1
- package/dist/modules/data-table/data-table-column.repository.d.ts +15 -0
- package/dist/modules/data-table/data-table-column.repository.js +33 -17
- package/dist/modules/data-table/data-table-column.repository.js.map +1 -1
- package/dist/modules/data-table/data-table-ddl.service.d.ts +1 -0
- package/dist/modules/data-table/data-table-ddl.service.js +5 -0
- package/dist/modules/data-table/data-table-ddl.service.js.map +1 -1
- package/dist/modules/data-table/data-table-rows.repository.js +1 -1
- package/dist/modules/data-table/data-table-rows.repository.js.map +1 -1
- package/dist/modules/data-table/data-table.controller.d.ts +16 -1
- package/dist/modules/data-table/data-table.controller.js +39 -35
- package/dist/modules/data-table/data-table.controller.js.map +1 -1
- package/dist/modules/data-table/data-table.repository.d.ts +4 -1
- package/dist/modules/data-table/data-table.repository.js +12 -2
- package/dist/modules/data-table/data-table.repository.js.map +1 -1
- package/dist/modules/data-table/data-table.service.d.ts +13 -1
- package/dist/modules/data-table/data-table.service.js +13 -1
- package/dist/modules/data-table/data-table.service.js.map +1 -1
- package/dist/modules/data-table/errors/data-table-column-not-found.error.d.ts +2 -2
- package/dist/modules/data-table/errors/data-table-column-not-found.error.js +3 -5
- package/dist/modules/data-table/errors/data-table-column-not-found.error.js.map +1 -1
- package/dist/modules/data-table/errors/data-table-not-found.error.d.ts +2 -2
- package/dist/modules/data-table/errors/data-table-not-found.error.js +3 -5
- package/dist/modules/data-table/errors/data-table-not-found.error.js.map +1 -1
- package/dist/modules/data-table/utils/sql-utils.d.ts +1 -0
- package/dist/modules/data-table/utils/sql-utils.js +10 -0
- package/dist/modules/data-table/utils/sql-utils.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.d.ts +9 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.js +42 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.d.ts +9 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.js +141 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.d.ts +2 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.js +5 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.d.ts +7 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.js +7 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.d.ts +78 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js +223 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.d.ts +37 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js +160 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.d.ts +13 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.js +17 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.d.ts +2 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.js +5 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.d.ts +103 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js +174 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.d.ts +9 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.js +56 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.d.ts +5 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.js +3 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.d.ts +28 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.js +86 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.d.ts +16 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js +172 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.d.ts +8 -0
- package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.js +33 -0
- package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.d.ts +11 -0
- package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.js +60 -0
- package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.d.ts +5 -0
- package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.js +26 -0
- package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.d.ts +5 -0
- package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.js +26 -0
- package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.d.ts +9 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +61 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.d.ts +6 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +91 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.d.ts +6 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.js +12 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.d.ts +4 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.js +11 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.d.ts +6 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.js +12 -0
- package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.d.ts +11 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.js +64 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.d.ts +22 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +150 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.d.ts +33 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js +118 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.d.ts +18 -0
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js +94 -0
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.d.ts +20 -0
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +146 -0
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/index.d.ts +5 -0
- package/dist/modules/dynamic-credentials.ee/services/index.js +22 -0
- package/dist/modules/dynamic-credentials.ee/services/index.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/shared-fields.d.ts +2 -0
- package/dist/modules/dynamic-credentials.ee/services/shared-fields.js +13 -0
- package/dist/modules/dynamic-credentials.ee/services/shared-fields.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/workflow-status.controller.d.ts +8 -0
- package/dist/modules/dynamic-credentials.ee/workflow-status.controller.js +62 -0
- package/dist/modules/dynamic-credentials.ee/workflow-status.controller.js.map +1 -0
- package/dist/modules/external-secrets.ee/external-secrets-manager.ee.js +40 -24
- package/dist/modules/external-secrets.ee/external-secrets-manager.ee.js.map +1 -1
- package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +2 -2
- package/dist/modules/insights/insights-collection.service.d.ts +2 -0
- package/dist/modules/insights/insights-collection.service.js +30 -6
- package/dist/modules/insights/insights-collection.service.js.map +1 -1
- package/dist/modules/insights/insights.service.d.ts +1 -1
- package/dist/modules/workflow-index/workflow-index.service.js +17 -10
- package/dist/modules/workflow-index/workflow-index.service.js.map +1 -1
- package/dist/oauth/oauth.service.d.ts +52 -0
- package/dist/oauth/oauth.service.js +417 -0
- package/dist/oauth/oauth.service.js.map +1 -0
- package/dist/oauth/types.d.ts +28 -0
- package/dist/oauth/types.js +16 -0
- package/dist/oauth/types.js.map +1 -0
- package/dist/public-api/v1/handlers/credentials/credentials.service.js +6 -8
- package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js +2 -1
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +4 -0
- package/dist/requests.d.ts +1 -0
- package/dist/scaling/job-processor.js +8 -2
- package/dist/scaling/job-processor.js.map +1 -1
- package/dist/scaling/worker-status.service.ee.js +20 -2
- package/dist/scaling/worker-status.service.ee.js.map +1 -1
- package/dist/server.js +5 -3
- package/dist/server.js.map +1 -1
- package/dist/services/ai-workflow-builder.service.d.ts +1 -0
- package/dist/services/ai-workflow-builder.service.js +5 -3
- package/dist/services/ai-workflow-builder.service.js.map +1 -1
- package/dist/services/ai.service.js +3 -0
- package/dist/services/ai.service.js.map +1 -1
- package/dist/services/cache/cache.service.d.ts +1 -0
- package/dist/services/cache/cache.service.js +4 -0
- package/dist/services/cache/cache.service.js.map +1 -1
- package/dist/services/frontend.service.d.ts +6 -4
- package/dist/services/frontend.service.js +14 -9
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/ownership.service.d.ts +13 -3
- package/dist/services/ownership.service.js +59 -4
- package/dist/services/ownership.service.js.map +1 -1
- package/dist/services/project.service.ee.js +1 -1
- package/dist/services/project.service.ee.js.map +1 -1
- package/dist/services/public-api-key.service.d.ts +1 -0
- package/dist/services/public-api-key.service.js +8 -0
- package/dist/services/public-api-key.service.js.map +1 -1
- package/dist/services/user.service.d.ts +4 -3
- package/dist/services/user.service.js +50 -4
- package/dist/services/user.service.js.map +1 -1
- package/dist/telemetry/index.js +1 -0
- package/dist/telemetry/index.js.map +1 -1
- package/dist/webhooks/test-webhook-registrations.service.d.ts +5 -3
- package/dist/webhooks/test-webhook-registrations.service.js +25 -6
- package/dist/webhooks/test-webhook-registrations.service.js.map +1 -1
- package/dist/webhooks/test-webhooks.d.ts +1 -0
- package/dist/webhooks/test-webhooks.js +17 -10
- package/dist/webhooks/test-webhooks.js.map +1 -1
- package/dist/webhooks/waiting-forms.js +2 -0
- package/dist/webhooks/waiting-forms.js.map +1 -1
- package/dist/webhooks/webhook-helpers.js +12 -3
- package/dist/webhooks/webhook-helpers.js.map +1 -1
- package/dist/workflow-execute-additional-data.d.ts +2 -1
- package/dist/workflow-execute-additional-data.js +5 -3
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-runner.js +1 -0
- package/dist/workflow-runner.js.map +1 -1
- package/dist/workflows/workflow-execution.service.js +3 -0
- package/dist/workflows/workflow-execution.service.js.map +1 -1
- package/dist/workflows/workflow-history/workflow-history.service.d.ts +1 -1
- package/dist/workflows/workflow-history/workflow-history.service.js +2 -1
- package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
- package/dist/workflows/workflow.request.d.ts +2 -0
- package/dist/workflows/workflow.service.d.ts +2 -0
- package/dist/workflows/workflow.service.js +4 -2
- package/dist/workflows/workflow.service.js.map +1 -1
- package/dist/workflows/workflows.controller.js +13 -11
- package/dist/workflows/workflows.controller.js.map +1 -1
- package/package.json +19 -19
- package/templates/form-trigger-completion.handlebars +1 -4
- package/templates/form-trigger.handlebars +1 -2
- package/dist/controllers/oauth/abstract-oauth.controller.d.ts +0 -47
- package/dist/controllers/oauth/abstract-oauth.controller.js +0 -185
- package/dist/controllers/oauth/abstract-oauth.controller.js.map +0 -1
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.OAuthCredentialResolver = void 0;
|
|
16
|
+
const backend_common_1 = require("@n8n/backend-common");
|
|
17
|
+
const decorators_1 = require("@n8n/decorators");
|
|
18
|
+
const n8n_core_1 = require("n8n-core");
|
|
19
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
20
|
+
const zod_1 = __importDefault(require("zod"));
|
|
21
|
+
const oauth2_introspection_identifier_1 = require("./identifiers/oauth2-introspection-identifier");
|
|
22
|
+
const oauth2_userinfo_identifier_1 = require("./identifiers/oauth2-userinfo-identifier");
|
|
23
|
+
const dynamic_credential_entry_storage_1 = require("./storage/dynamic-credential-entry-storage");
|
|
24
|
+
const OAuthCredentialResolverOptionsSchema = zod_1.default.discriminatedUnion('validation', [
|
|
25
|
+
oauth2_introspection_identifier_1.OAuth2IntrospectionOptionsSchema,
|
|
26
|
+
oauth2_userinfo_identifier_1.OAuth2UserInfoOptionsSchema,
|
|
27
|
+
]);
|
|
28
|
+
let OAuthCredentialResolver = class OAuthCredentialResolver {
|
|
29
|
+
constructor(logger, oAuth2TokenIntrospectionIdentifier, oAuth2UserInfoIdentifier, storage, cipher) {
|
|
30
|
+
this.logger = logger;
|
|
31
|
+
this.oAuth2TokenIntrospectionIdentifier = oAuth2TokenIntrospectionIdentifier;
|
|
32
|
+
this.oAuth2UserInfoIdentifier = oAuth2UserInfoIdentifier;
|
|
33
|
+
this.storage = storage;
|
|
34
|
+
this.cipher = cipher;
|
|
35
|
+
this.metadata = {
|
|
36
|
+
name: 'credential-resolver.oauth2-1.0',
|
|
37
|
+
description: 'OAuth2 based credential resolver',
|
|
38
|
+
displayName: 'OAuth2 Resolver',
|
|
39
|
+
options: [
|
|
40
|
+
{
|
|
41
|
+
displayName: 'Metadata URL',
|
|
42
|
+
name: 'metadataUri',
|
|
43
|
+
type: 'string',
|
|
44
|
+
required: true,
|
|
45
|
+
default: '',
|
|
46
|
+
placeholder: 'https://auth.example.com/.well-known/openid-configuration',
|
|
47
|
+
description: 'OAuth2 server metadata endpoint URL',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
displayName: 'Validation Method',
|
|
51
|
+
name: 'validation',
|
|
52
|
+
type: 'options',
|
|
53
|
+
options: [
|
|
54
|
+
{
|
|
55
|
+
name: 'OAuth2 Token Introspection',
|
|
56
|
+
value: 'oauth2-introspection',
|
|
57
|
+
description: 'Validate token via OAuth2 Token Introspection Endpoint',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'OAuth2 UserInfo Endpoint',
|
|
61
|
+
value: 'oauth2-userinfo',
|
|
62
|
+
description: 'Validate token via OAuth2 UserInfo Endpoint',
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
default: 'oauth2-introspection',
|
|
66
|
+
description: 'Validation method to use for token validation',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
displayName: 'Client ID',
|
|
70
|
+
name: 'clientId',
|
|
71
|
+
type: 'string',
|
|
72
|
+
default: '',
|
|
73
|
+
description: 'OAuth2 client ID for introspection',
|
|
74
|
+
displayOptions: {
|
|
75
|
+
hide: {
|
|
76
|
+
validation: ['oauth2-userinfo'],
|
|
77
|
+
},
|
|
78
|
+
show: {
|
|
79
|
+
validation: ['oauth2-introspection'],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
displayName: 'Client Secret',
|
|
85
|
+
name: 'clientSecret',
|
|
86
|
+
type: 'string',
|
|
87
|
+
default: '',
|
|
88
|
+
typeOptions: { password: true },
|
|
89
|
+
description: 'OAuth2 client secret for introspection',
|
|
90
|
+
displayOptions: {
|
|
91
|
+
hide: {
|
|
92
|
+
validation: ['oauth2-userinfo'],
|
|
93
|
+
},
|
|
94
|
+
show: {
|
|
95
|
+
validation: ['oauth2-introspection'],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
displayName: 'Subject Claim',
|
|
101
|
+
name: 'subjectClaim',
|
|
102
|
+
type: 'string',
|
|
103
|
+
default: 'sub',
|
|
104
|
+
description: 'Token claim to use as subject identifier',
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
async getSecret(credentialId, context, handle) {
|
|
110
|
+
const parsedOptions = await this.parseOptions(handle.configuration);
|
|
111
|
+
const key = await this.resolveIdentifier(context, parsedOptions);
|
|
112
|
+
const data = await this.storage.getCredentialData(credentialId, key, handle.resolverId, parsedOptions);
|
|
113
|
+
if (!data) {
|
|
114
|
+
throw new decorators_1.CredentialResolverDataNotFoundError();
|
|
115
|
+
}
|
|
116
|
+
const plaintext = this.cipher.decrypt(data);
|
|
117
|
+
try {
|
|
118
|
+
const secret = (0, n8n_workflow_1.jsonParse)(plaintext);
|
|
119
|
+
return secret;
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
this.logger.error('Failed to parse decrypted credential data', { error });
|
|
123
|
+
throw new decorators_1.CredentialResolverDataNotFoundError();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async setSecret(credentialId, context, data, handle) {
|
|
127
|
+
const parsedOptions = await this.parseOptions(handle.configuration);
|
|
128
|
+
const key = await this.resolveIdentifier(context, parsedOptions);
|
|
129
|
+
const encryptedData = this.cipher.encrypt(data);
|
|
130
|
+
await this.storage.setCredentialData(credentialId, key, handle.resolverId, encryptedData, parsedOptions);
|
|
131
|
+
}
|
|
132
|
+
async deleteSecret(credentialId, context, handle) {
|
|
133
|
+
const parsedOptions = await this.parseOptions(handle.configuration);
|
|
134
|
+
const key = await this.resolveIdentifier(context, parsedOptions);
|
|
135
|
+
await this.storage.deleteCredentialData(credentialId, key, handle.resolverId, parsedOptions);
|
|
136
|
+
}
|
|
137
|
+
async parseOptions(options) {
|
|
138
|
+
const result = await OAuthCredentialResolverOptionsSchema.safeParseAsync(options);
|
|
139
|
+
if (result.error) {
|
|
140
|
+
this.logger.error('Invalid options provided to OAuthCredentialResolver', {
|
|
141
|
+
error: result.error,
|
|
142
|
+
});
|
|
143
|
+
throw new decorators_1.CredentialResolverValidationError(`Invalid options for OAuthCredentialResolver: ${result.error.message}`);
|
|
144
|
+
}
|
|
145
|
+
return result.data;
|
|
146
|
+
}
|
|
147
|
+
async validateOptions(options) {
|
|
148
|
+
const [identifier, parsedOptions] = await this.getIdentifier(options);
|
|
149
|
+
await identifier.validateOptions(parsedOptions);
|
|
150
|
+
}
|
|
151
|
+
async getIdentifier(options) {
|
|
152
|
+
const parsedOptions = await this.parseOptions(options);
|
|
153
|
+
if (parsedOptions.validation === 'oauth2-introspection') {
|
|
154
|
+
return [this.oAuth2TokenIntrospectionIdentifier, parsedOptions];
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
return [this.oAuth2UserInfoIdentifier, parsedOptions];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
async resolveIdentifier(context, options) {
|
|
161
|
+
const [identifier, parsedOptions] = await this.getIdentifier(options);
|
|
162
|
+
return await identifier.resolve(context, parsedOptions);
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
exports.OAuthCredentialResolver = OAuthCredentialResolver;
|
|
166
|
+
exports.OAuthCredentialResolver = OAuthCredentialResolver = __decorate([
|
|
167
|
+
(0, decorators_1.CredentialResolver)(),
|
|
168
|
+
__metadata("design:paramtypes", [backend_common_1.Logger,
|
|
169
|
+
oauth2_introspection_identifier_1.OAuth2TokenIntrospectionIdentifier,
|
|
170
|
+
oauth2_userinfo_identifier_1.OAuth2UserInfoIdentifier,
|
|
171
|
+
dynamic_credential_entry_storage_1.DynamicCredentialEntryStorage,
|
|
172
|
+
n8n_core_1.Cipher])
|
|
173
|
+
], OAuthCredentialResolver);
|
|
174
|
+
//# sourceMappingURL=oauth-credential-resolver.js.map
|
package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-credential-resolver.js","sourceRoot":"","sources":["../../../../src/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ICredentialEntriesStorage } from './storage-interface';
|
|
2
|
+
import { DynamicCredentialEntryRepository } from '../../database/repositories/dynamic-credential-entry.repository';
|
|
3
|
+
export declare class DynamicCredentialEntryStorage implements ICredentialEntriesStorage {
|
|
4
|
+
private readonly dynamicCredentialEntryRepository;
|
|
5
|
+
constructor(dynamicCredentialEntryRepository: DynamicCredentialEntryRepository);
|
|
6
|
+
getCredentialData(credentialId: string, subjectId: string, resolverId: string, _: Record<string, unknown>): Promise<string | null>;
|
|
7
|
+
setCredentialData(credentialId: string, subjectId: string, resolverId: string, data: string, _: Record<string, unknown>): Promise<void>;
|
|
8
|
+
deleteCredentialData(credentialId: string, subjectId: string, resolverId: string, _: Record<string, unknown>): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DynamicCredentialEntryStorage = void 0;
|
|
13
|
+
const di_1 = require("@n8n/di");
|
|
14
|
+
const dynamic_credential_entry_1 = require("../../database/entities/dynamic-credential-entry");
|
|
15
|
+
const dynamic_credential_entry_repository_1 = require("../../database/repositories/dynamic-credential-entry.repository");
|
|
16
|
+
let DynamicCredentialEntryStorage = class DynamicCredentialEntryStorage {
|
|
17
|
+
constructor(dynamicCredentialEntryRepository) {
|
|
18
|
+
this.dynamicCredentialEntryRepository = dynamicCredentialEntryRepository;
|
|
19
|
+
}
|
|
20
|
+
async getCredentialData(credentialId, subjectId, resolverId, _) {
|
|
21
|
+
const entry = await this.dynamicCredentialEntryRepository.findOne({
|
|
22
|
+
where: {
|
|
23
|
+
credentialId,
|
|
24
|
+
subjectId,
|
|
25
|
+
resolverId,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
return entry?.data ?? null;
|
|
29
|
+
}
|
|
30
|
+
async setCredentialData(credentialId, subjectId, resolverId, data, _) {
|
|
31
|
+
let entry = await this.dynamicCredentialEntryRepository.findOne({
|
|
32
|
+
where: { credentialId, subjectId, resolverId },
|
|
33
|
+
});
|
|
34
|
+
if (!entry) {
|
|
35
|
+
entry = new dynamic_credential_entry_1.DynamicCredentialEntry();
|
|
36
|
+
entry.credentialId = credentialId;
|
|
37
|
+
entry.subjectId = subjectId;
|
|
38
|
+
entry.resolverId = resolverId;
|
|
39
|
+
}
|
|
40
|
+
entry.data = data;
|
|
41
|
+
await this.dynamicCredentialEntryRepository.save(entry);
|
|
42
|
+
}
|
|
43
|
+
async deleteCredentialData(credentialId, subjectId, resolverId, _) {
|
|
44
|
+
await this.dynamicCredentialEntryRepository.delete({
|
|
45
|
+
credentialId,
|
|
46
|
+
subjectId,
|
|
47
|
+
resolverId,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
exports.DynamicCredentialEntryStorage = DynamicCredentialEntryStorage;
|
|
52
|
+
exports.DynamicCredentialEntryStorage = DynamicCredentialEntryStorage = __decorate([
|
|
53
|
+
(0, di_1.Service)(),
|
|
54
|
+
__metadata("design:paramtypes", [dynamic_credential_entry_repository_1.DynamicCredentialEntryRepository])
|
|
55
|
+
], DynamicCredentialEntryStorage);
|
|
56
|
+
//# sourceMappingURL=dynamic-credential-entry-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-credential-entry-storage.js","sourceRoot":"","sources":["../../../../../src/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAGlC,+FAA0F;AAC1F,yHAAmH;AAG5G,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACzC,YACkB,gCAAkE;QAAlE,qCAAgC,GAAhC,gCAAgC,CAAkC;IACjF,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CACtB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,CAA0B;QAE1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC;YACjE,KAAK,EAAE;gBACN,YAAY;gBACZ,SAAS;gBACT,UAAU;aACV;SACD,CAAC,CAAC;QAEH,OAAO,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,IAAY,EACZ,CAA0B;QAE1B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC;YAC/D,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,IAAI,iDAAsB,EAAE,CAAC;YACrC,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;YAClC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,CAA0B;QAE1B,MAAM,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC;YAClD,YAAY;YACZ,SAAS;YACT,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAxDY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,YAAO,GAAE;qCAG2C,sEAAgC;GAFxE,6BAA6B,CAwDzC"}
|
package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export interface ICredentialEntriesStorage {
|
|
2
|
+
getCredentialData(credentialId: string, subjectId: string, resolverId: string, storageOptions: Record<string, unknown>): Promise<string | null>;
|
|
3
|
+
setCredentialData(credentialId: string, subjectId: string, resolverId: string, data: string, storageOptions: Record<string, unknown>): Promise<void>;
|
|
4
|
+
deleteCredentialData?(credentialId: string, subjectId: string, resolverId: string, storageOptions: Record<string, unknown>): Promise<void>;
|
|
5
|
+
}
|
package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-interface.js","sourceRoot":"","sources":["../../../../../src/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.ts"],"names":[],"mappings":""}
|
package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Logger } from '@n8n/backend-common';
|
|
2
|
+
import { CredentialResolverConfiguration, CredentialResolverHandle, ICredentialResolver } from '@n8n/decorators';
|
|
3
|
+
import { ICredentialContext, ICredentialDataDecryptedObject } from 'n8n-workflow';
|
|
4
|
+
export declare class StubCredentialResolver implements ICredentialResolver {
|
|
5
|
+
private readonly logger;
|
|
6
|
+
private secretsStore;
|
|
7
|
+
constructor(logger: Logger);
|
|
8
|
+
metadata: {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
displayName: string;
|
|
12
|
+
options: {
|
|
13
|
+
displayName: string;
|
|
14
|
+
name: string;
|
|
15
|
+
type: "string";
|
|
16
|
+
default: string;
|
|
17
|
+
placeholder: string;
|
|
18
|
+
description: string;
|
|
19
|
+
}[];
|
|
20
|
+
};
|
|
21
|
+
private generateKey;
|
|
22
|
+
getSecret(credentialId: string, context: ICredentialContext, handle: CredentialResolverHandle): Promise<ICredentialDataDecryptedObject>;
|
|
23
|
+
setSecret(credentialId: string, context: ICredentialContext, data: ICredentialDataDecryptedObject, handle: CredentialResolverHandle): Promise<void>;
|
|
24
|
+
deleteSecret(credentialId: string, context: ICredentialContext, handle: CredentialResolverHandle): Promise<void>;
|
|
25
|
+
private parseOptions;
|
|
26
|
+
validateOptions(options: CredentialResolverConfiguration): Promise<void>;
|
|
27
|
+
validateIdentity(_identity: string, _handle: CredentialResolverHandle): Promise<void>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.StubCredentialResolver = void 0;
|
|
16
|
+
const backend_common_1 = require("@n8n/backend-common");
|
|
17
|
+
const decorators_1 = require("@n8n/decorators");
|
|
18
|
+
const zod_1 = __importDefault(require("zod"));
|
|
19
|
+
const StubOptionsSchema = zod_1.default.object({
|
|
20
|
+
prefix: zod_1.default.string().default(''),
|
|
21
|
+
});
|
|
22
|
+
let StubCredentialResolver = class StubCredentialResolver {
|
|
23
|
+
constructor(logger) {
|
|
24
|
+
this.logger = logger;
|
|
25
|
+
this.secretsStore = new Map();
|
|
26
|
+
this.metadata = {
|
|
27
|
+
name: 'credential-resolver.stub-1.0',
|
|
28
|
+
description: 'A stub credential resolver for testing purposes',
|
|
29
|
+
displayName: 'Stub Resolver',
|
|
30
|
+
options: [
|
|
31
|
+
{
|
|
32
|
+
displayName: 'Prefix',
|
|
33
|
+
name: 'prefix',
|
|
34
|
+
type: 'string',
|
|
35
|
+
default: '',
|
|
36
|
+
placeholder: 'Optional prefix for stored credentials',
|
|
37
|
+
description: 'An optional prefix to namespace stored credentials (useful for testing)',
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
generateKey(credentialId, context, options) {
|
|
43
|
+
return `${options.prefix}:${credentialId}:${context.identity}`;
|
|
44
|
+
}
|
|
45
|
+
async getSecret(credentialId, context, handle) {
|
|
46
|
+
const parsedOptions = await this.parseOptions(handle.configuration);
|
|
47
|
+
const key = this.generateKey(credentialId, context, parsedOptions);
|
|
48
|
+
const secret = this.secretsStore.get(key);
|
|
49
|
+
if (!secret) {
|
|
50
|
+
throw new decorators_1.CredentialResolverDataNotFoundError();
|
|
51
|
+
}
|
|
52
|
+
return secret;
|
|
53
|
+
}
|
|
54
|
+
async setSecret(credentialId, context, data, handle) {
|
|
55
|
+
const parsedOptions = await this.parseOptions(handle.configuration);
|
|
56
|
+
const key = this.generateKey(credentialId, context, parsedOptions);
|
|
57
|
+
this.secretsStore.set(key, data);
|
|
58
|
+
}
|
|
59
|
+
async deleteSecret(credentialId, context, handle) {
|
|
60
|
+
const parsedOptions = await this.parseOptions(handle.configuration);
|
|
61
|
+
const key = this.generateKey(credentialId, context, parsedOptions);
|
|
62
|
+
this.secretsStore.delete(key);
|
|
63
|
+
}
|
|
64
|
+
async parseOptions(options) {
|
|
65
|
+
const result = await StubOptionsSchema.safeParseAsync(options);
|
|
66
|
+
if (result.error) {
|
|
67
|
+
this.logger.error('Invalid options provided to StubCredentialResolver', {
|
|
68
|
+
error: result.error,
|
|
69
|
+
});
|
|
70
|
+
throw new decorators_1.CredentialResolverValidationError(`Invalid options for StubCredentialResolver: ${result.error.message}`);
|
|
71
|
+
}
|
|
72
|
+
return result.data;
|
|
73
|
+
}
|
|
74
|
+
async validateOptions(options) {
|
|
75
|
+
await this.parseOptions(options);
|
|
76
|
+
}
|
|
77
|
+
async validateIdentity(_identity, _handle) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.StubCredentialResolver = StubCredentialResolver;
|
|
82
|
+
exports.StubCredentialResolver = StubCredentialResolver = __decorate([
|
|
83
|
+
(0, decorators_1.CredentialResolver)(),
|
|
84
|
+
__metadata("design:paramtypes", [backend_common_1.Logger])
|
|
85
|
+
], StubCredentialResolver);
|
|
86
|
+
//# sourceMappingURL=stub-credential-resolver.js.map
|
package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub-credential-resolver.js","sourceRoot":"","sources":["../../../../src/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CreateCredentialResolverDto, CredentialResolver, UpdateCredentialResolverDto, CredentialResolverType } from '@n8n/api-types';
|
|
2
|
+
import { AuthenticatedRequest } from '@n8n/db';
|
|
3
|
+
import { Response } from 'express';
|
|
4
|
+
import { DynamicCredentialResolverService } from './services/credential-resolver.service';
|
|
5
|
+
export declare class CredentialResolversController {
|
|
6
|
+
private readonly service;
|
|
7
|
+
constructor(service: DynamicCredentialResolverService);
|
|
8
|
+
listResolvers(_req: AuthenticatedRequest, _res: Response): Promise<CredentialResolver[]>;
|
|
9
|
+
listResolverTypes(_req: AuthenticatedRequest, _res: Response): CredentialResolverType[];
|
|
10
|
+
createResolver(_req: AuthenticatedRequest, _res: Response, dto: CreateCredentialResolverDto): Promise<CredentialResolver>;
|
|
11
|
+
getResolver(_req: AuthenticatedRequest, _res: Response, id: string): Promise<CredentialResolver>;
|
|
12
|
+
updateResolver(_req: AuthenticatedRequest, _res: Response, id: string, dto: UpdateCredentialResolverDto): Promise<CredentialResolver>;
|
|
13
|
+
deleteResolver(_req: AuthenticatedRequest, _res: Response, id: string): Promise<{
|
|
14
|
+
success: true;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CredentialResolversController = void 0;
|
|
16
|
+
const api_types_1 = require("@n8n/api-types");
|
|
17
|
+
const decorators_1 = require("@n8n/decorators");
|
|
18
|
+
const bad_request_error_1 = require("../../errors/response-errors/bad-request.error");
|
|
19
|
+
const internal_server_error_1 = require("../../errors/response-errors/internal-server.error");
|
|
20
|
+
const not_found_error_1 = require("../../errors/response-errors/not-found.error");
|
|
21
|
+
const credential_resolver_not_found_error_1 = require("./errors/credential-resolver-not-found.error");
|
|
22
|
+
const credential_resolver_service_1 = require("./services/credential-resolver.service");
|
|
23
|
+
let CredentialResolversController = class CredentialResolversController {
|
|
24
|
+
constructor(service) {
|
|
25
|
+
this.service = service;
|
|
26
|
+
}
|
|
27
|
+
async listResolvers(_req, _res) {
|
|
28
|
+
try {
|
|
29
|
+
return api_types_1.credentialResolversSchema.parse(await this.service.findAll());
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
if (e instanceof Error) {
|
|
33
|
+
throw new internal_server_error_1.InternalServerError(e.message, e);
|
|
34
|
+
}
|
|
35
|
+
throw e;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
listResolverTypes(_req, _res) {
|
|
39
|
+
try {
|
|
40
|
+
const types = this.service.getAvailableTypes();
|
|
41
|
+
return api_types_1.credentialResolverTypesSchema.parse(types.map((t) => t.metadata));
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
if (e instanceof Error) {
|
|
45
|
+
throw new internal_server_error_1.InternalServerError(e.message, e);
|
|
46
|
+
}
|
|
47
|
+
throw e;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async createResolver(_req, _res, dto) {
|
|
51
|
+
try {
|
|
52
|
+
const createdResolver = await this.service.create({
|
|
53
|
+
name: dto.name,
|
|
54
|
+
type: dto.type,
|
|
55
|
+
config: dto.config,
|
|
56
|
+
});
|
|
57
|
+
return api_types_1.credentialResolverSchema.parse(createdResolver);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
if (e instanceof decorators_1.CredentialResolverValidationError) {
|
|
61
|
+
throw new bad_request_error_1.BadRequestError(e.message);
|
|
62
|
+
}
|
|
63
|
+
if (e instanceof Error) {
|
|
64
|
+
throw new internal_server_error_1.InternalServerError(e.message, e);
|
|
65
|
+
}
|
|
66
|
+
throw e;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async getResolver(_req, _res, id) {
|
|
70
|
+
try {
|
|
71
|
+
return api_types_1.credentialResolverSchema.parse(await this.service.findById(id));
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
if (e instanceof credential_resolver_not_found_error_1.DynamicCredentialResolverNotFoundError) {
|
|
75
|
+
throw new not_found_error_1.NotFoundError(e.message);
|
|
76
|
+
}
|
|
77
|
+
if (e instanceof Error) {
|
|
78
|
+
throw new internal_server_error_1.InternalServerError(e.message, e);
|
|
79
|
+
}
|
|
80
|
+
throw e;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async updateResolver(_req, _res, id, dto) {
|
|
84
|
+
try {
|
|
85
|
+
return api_types_1.credentialResolverSchema.parse(await this.service.update(id, {
|
|
86
|
+
type: dto.type,
|
|
87
|
+
name: dto.name,
|
|
88
|
+
config: dto.config,
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
if (e instanceof credential_resolver_not_found_error_1.DynamicCredentialResolverNotFoundError) {
|
|
93
|
+
throw new not_found_error_1.NotFoundError(e.message);
|
|
94
|
+
}
|
|
95
|
+
if (e instanceof decorators_1.CredentialResolverValidationError) {
|
|
96
|
+
throw new bad_request_error_1.BadRequestError(e.message);
|
|
97
|
+
}
|
|
98
|
+
if (e instanceof Error) {
|
|
99
|
+
throw new internal_server_error_1.InternalServerError(e.message, e);
|
|
100
|
+
}
|
|
101
|
+
throw e;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async deleteResolver(_req, _res, id) {
|
|
105
|
+
try {
|
|
106
|
+
await this.service.delete(id);
|
|
107
|
+
return { success: true };
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
if (e instanceof credential_resolver_not_found_error_1.DynamicCredentialResolverNotFoundError) {
|
|
111
|
+
throw new not_found_error_1.NotFoundError(e.message);
|
|
112
|
+
}
|
|
113
|
+
if (e instanceof Error) {
|
|
114
|
+
throw new internal_server_error_1.InternalServerError(e.message, e);
|
|
115
|
+
}
|
|
116
|
+
throw e;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
exports.CredentialResolversController = CredentialResolversController;
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, decorators_1.Get)('/'),
|
|
123
|
+
(0, decorators_1.GlobalScope)('credentialResolver:list'),
|
|
124
|
+
__metadata("design:type", Function),
|
|
125
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
126
|
+
__metadata("design:returntype", Promise)
|
|
127
|
+
], CredentialResolversController.prototype, "listResolvers", null);
|
|
128
|
+
__decorate([
|
|
129
|
+
(0, decorators_1.Get)('/types'),
|
|
130
|
+
(0, decorators_1.GlobalScope)('credentialResolver:list'),
|
|
131
|
+
__metadata("design:type", Function),
|
|
132
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
133
|
+
__metadata("design:returntype", Array)
|
|
134
|
+
], CredentialResolversController.prototype, "listResolverTypes", null);
|
|
135
|
+
__decorate([
|
|
136
|
+
(0, decorators_1.Post)('/'),
|
|
137
|
+
(0, decorators_1.GlobalScope)('credentialResolver:create'),
|
|
138
|
+
__param(2, decorators_1.Body),
|
|
139
|
+
__metadata("design:type", Function),
|
|
140
|
+
__metadata("design:paramtypes", [Object, Object, api_types_1.CreateCredentialResolverDto]),
|
|
141
|
+
__metadata("design:returntype", Promise)
|
|
142
|
+
], CredentialResolversController.prototype, "createResolver", null);
|
|
143
|
+
__decorate([
|
|
144
|
+
(0, decorators_1.Get)('/:id'),
|
|
145
|
+
(0, decorators_1.GlobalScope)('credentialResolver:read'),
|
|
146
|
+
__param(2, (0, decorators_1.Param)('id')),
|
|
147
|
+
__metadata("design:type", Function),
|
|
148
|
+
__metadata("design:paramtypes", [Object, Object, String]),
|
|
149
|
+
__metadata("design:returntype", Promise)
|
|
150
|
+
], CredentialResolversController.prototype, "getResolver", null);
|
|
151
|
+
__decorate([
|
|
152
|
+
(0, decorators_1.Patch)('/:id'),
|
|
153
|
+
(0, decorators_1.GlobalScope)('credentialResolver:update'),
|
|
154
|
+
__param(2, (0, decorators_1.Param)('id')),
|
|
155
|
+
__param(3, decorators_1.Body),
|
|
156
|
+
__metadata("design:type", Function),
|
|
157
|
+
__metadata("design:paramtypes", [Object, Object, String, api_types_1.UpdateCredentialResolverDto]),
|
|
158
|
+
__metadata("design:returntype", Promise)
|
|
159
|
+
], CredentialResolversController.prototype, "updateResolver", null);
|
|
160
|
+
__decorate([
|
|
161
|
+
(0, decorators_1.Delete)('/:id'),
|
|
162
|
+
(0, decorators_1.GlobalScope)('credentialResolver:delete'),
|
|
163
|
+
__param(2, (0, decorators_1.Param)('id')),
|
|
164
|
+
__metadata("design:type", Function),
|
|
165
|
+
__metadata("design:paramtypes", [Object, Object, String]),
|
|
166
|
+
__metadata("design:returntype", Promise)
|
|
167
|
+
], CredentialResolversController.prototype, "deleteResolver", null);
|
|
168
|
+
exports.CredentialResolversController = CredentialResolversController = __decorate([
|
|
169
|
+
(0, decorators_1.RestController)('/credential-resolvers'),
|
|
170
|
+
__metadata("design:paramtypes", [credential_resolver_service_1.DynamicCredentialResolverService])
|
|
171
|
+
], CredentialResolversController);
|
|
172
|
+
//# sourceMappingURL=credential-resolvers.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-resolvers.controller.js","sourceRoot":"","sources":["../../../src/modules/dynamic-credentials.ee/credential-resolvers.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WithTimestampsAndStringId } from '@n8n/db';
|
|
2
|
+
import type { CredentialResolverConfiguration } from '@n8n/decorators';
|
|
3
|
+
export declare class DynamicCredentialResolver extends WithTimestampsAndStringId {
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
config: string;
|
|
7
|
+
decryptedConfig?: CredentialResolverConfiguration;
|
|
8
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DynamicCredentialResolver = void 0;
|
|
13
|
+
const db_1 = require("@n8n/db");
|
|
14
|
+
const typeorm_1 = require("@n8n/typeorm");
|
|
15
|
+
let DynamicCredentialResolver = class DynamicCredentialResolver extends db_1.WithTimestampsAndStringId {
|
|
16
|
+
};
|
|
17
|
+
exports.DynamicCredentialResolver = DynamicCredentialResolver;
|
|
18
|
+
__decorate([
|
|
19
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 128 }),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], DynamicCredentialResolver.prototype, "name", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 128 }),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], DynamicCredentialResolver.prototype, "type", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, typeorm_1.Column)({ type: 'text' }),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], DynamicCredentialResolver.prototype, "config", void 0);
|
|
30
|
+
exports.DynamicCredentialResolver = DynamicCredentialResolver = __decorate([
|
|
31
|
+
(0, typeorm_1.Entity)()
|
|
32
|
+
], DynamicCredentialResolver);
|
|
33
|
+
//# sourceMappingURL=credential-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-resolver.js","sourceRoot":"","sources":["../../../../../src/modules/dynamic-credentials.ee/database/entities/credential-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAoD;AAEpD,0CAA8C;AAGvC,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,8BAAyB;CAYvE,CAAA;AAZY,8DAAyB;AAErC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;uDAC5B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;uDAC5B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yDACV;oCARH,yBAAyB;IADrC,IAAA,gBAAM,GAAE;GACI,yBAAyB,CAYrC"}
|