n8n 2.16.0 → 2.17.0
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/README.md +1 -1
- package/dist/active-workflow-manager.d.ts +3 -1
- package/dist/active-workflow-manager.js +37 -4
- package/dist/active-workflow-manager.js.map +1 -1
- package/dist/auth/auth.service.d.ts +5 -2
- package/dist/auth/auth.service.js +10 -6
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/base-command.js +8 -2
- package/dist/commands/base-command.js.map +1 -1
- package/dist/commands/start.d.ts +1 -0
- package/dist/commands/start.js +7 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +5 -1
- package/dist/constants.js.map +1 -1
- package/dist/controllers/ai.controller.d.ts +11 -2
- package/dist/controllers/ai.controller.js +54 -2
- package/dist/controllers/ai.controller.js.map +1 -1
- package/dist/controllers/auth.controller.js +1 -1
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/e2e.controller.js +3 -0
- package/dist/controllers/e2e.controller.js.map +1 -1
- package/dist/controllers/me.controller.d.ts +1 -0
- package/dist/controllers/me.controller.js +12 -0
- package/dist/controllers/me.controller.js.map +1 -1
- package/dist/controllers/project.controller.d.ts +3 -1
- package/dist/controllers/project.controller.js +9 -2
- package/dist/controllers/project.controller.js.map +1 -1
- package/dist/controllers/role.controller.d.ts +6 -4
- package/dist/controllers/role.controller.js +28 -8
- package/dist/controllers/role.controller.js.map +1 -1
- package/dist/controllers/users.controller.d.ts +4 -1
- package/dist/controllers/users.controller.js +8 -2
- package/dist/controllers/users.controller.js.map +1 -1
- package/dist/credentials/credentials.controller.js +3 -0
- package/dist/credentials/credentials.controller.js.map +1 -1
- package/dist/credentials/credentials.service.d.ts +3 -2
- package/dist/credentials/credentials.service.js +21 -10
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/credentials/validation.js +2 -2
- package/dist/credentials/validation.js.map +1 -1
- package/dist/credentials-helper.d.ts +3 -1
- package/dist/credentials-helper.js +14 -2
- package/dist/credentials-helper.js.map +1 -1
- package/dist/eventbus/event-message-classes/index.d.ts +2 -2
- package/dist/eventbus/event-message-classes/index.js +7 -0
- package/dist/eventbus/event-message-classes/index.js.map +1 -1
- package/dist/events/maps/relay.event-map.d.ts +92 -0
- package/dist/events/relays/log-streaming.event-relay.d.ts +7 -0
- package/dist/events/relays/log-streaming.event-relay.js +87 -2
- package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
- package/dist/events/relays/telemetry.event-relay.d.ts +5 -0
- package/dist/events/relays/telemetry.event-relay.js +58 -5
- package/dist/events/relays/telemetry.event-relay.js.map +1 -1
- package/dist/execution-lifecycle/execution-lifecycle-hooks.d.ts +1 -1
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js +22 -9
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
- package/dist/instance-settings-loader/instance-settings-loader.service.d.ts +9 -0
- package/dist/instance-settings-loader/instance-settings-loader.service.js +36 -0
- package/dist/instance-settings-loader/instance-settings-loader.service.js.map +1 -0
- package/dist/instance-settings-loader/loaders/owner.instance-settings-loader.d.ts +10 -0
- package/dist/instance-settings-loader/loaders/owner.instance-settings-loader.js +72 -0
- package/dist/instance-settings-loader/loaders/owner.instance-settings-loader.js.map +1 -0
- package/dist/modules/chat-hub/stream-capturer.js +3 -0
- package/dist/modules/chat-hub/stream-capturer.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.d.ts +2 -2
- package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.d.ts +5 -2
- package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.js +10 -3
- package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.js.map +1 -1
- package/dist/modules/external-secrets.ee/secrets-providers-connections.controller.ee.js +5 -5
- package/dist/modules/external-secrets.ee/secrets-providers-connections.controller.ee.js.map +1 -1
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.d.ts +6 -6
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js +14 -9
- package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js.map +1 -1
- package/dist/modules/external-secrets.ee/secrets-providers-project.controller.ee.js +3 -3
- package/dist/modules/external-secrets.ee/secrets-providers-project.controller.ee.js.map +1 -1
- package/dist/modules/instance-ai/eval/api-docs.d.ts +1 -0
- package/dist/modules/instance-ai/eval/api-docs.js +78 -0
- package/dist/modules/instance-ai/eval/api-docs.js.map +1 -0
- package/dist/modules/instance-ai/eval/execution.service.d.ts +25 -0
- package/dist/modules/instance-ai/eval/execution.service.js +291 -0
- package/dist/modules/instance-ai/eval/execution.service.js.map +1 -0
- package/dist/modules/instance-ai/eval/mock-handler.d.ts +9 -0
- package/dist/modules/instance-ai/eval/mock-handler.js +264 -0
- package/dist/modules/instance-ai/eval/mock-handler.js.map +1 -0
- package/dist/modules/instance-ai/eval/node-config.d.ts +2 -0
- package/dist/modules/instance-ai/eval/node-config.js +15 -0
- package/dist/modules/instance-ai/eval/node-config.js.map +1 -0
- package/dist/modules/instance-ai/eval/pin-data-generator.d.ts +12 -0
- package/dist/modules/instance-ai/eval/pin-data-generator.js +301 -0
- package/dist/modules/instance-ai/eval/pin-data-generator.js.map +1 -0
- package/dist/modules/instance-ai/eval/request-sanitizer.d.ts +3 -0
- package/dist/modules/instance-ai/eval/request-sanitizer.js +50 -0
- package/dist/modules/instance-ai/eval/request-sanitizer.js.map +1 -0
- package/dist/modules/instance-ai/eval/workflow-analysis.d.ts +16 -0
- package/dist/modules/instance-ai/eval/workflow-analysis.js +217 -0
- package/dist/modules/instance-ai/eval/workflow-analysis.js.map +1 -0
- package/dist/modules/instance-ai/filesystem/index.d.ts +0 -1
- package/dist/modules/instance-ai/filesystem/index.js +1 -3
- package/dist/modules/instance-ai/filesystem/index.js.map +1 -1
- package/dist/modules/instance-ai/filesystem/local-gateway.js +1 -1
- package/dist/modules/instance-ai/instance-ai-memory.service.d.ts +11 -7
- package/dist/modules/instance-ai/instance-ai-memory.service.js +21 -41
- package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +4 -0
- package/dist/modules/instance-ai/instance-ai-settings.service.js +26 -6
- package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +8 -3
- package/dist/modules/instance-ai/instance-ai.adapter.service.js +189 -35
- package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.controller.d.ts +10 -11
- package/dist/modules/instance-ai/instance-ai.controller.js +101 -44
- package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.module.d.ts +1 -2
- package/dist/modules/instance-ai/instance-ai.module.js +4 -5
- package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.service.d.ts +9 -8
- package/dist/modules/instance-ai/instance-ai.service.js +189 -61
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/modules/instance-ai/internal-messages.js +1 -1
- package/dist/modules/instance-ai/internal-messages.js.map +1 -1
- package/dist/modules/instance-ai/proxy-token-manager.d.ts +15 -0
- package/dist/modules/instance-ai/proxy-token-manager.js +64 -0
- package/dist/modules/instance-ai/proxy-token-manager.js.map +1 -0
- package/dist/modules/instance-ai/snapshot-pruning.service.d.ts +4 -1
- package/dist/modules/instance-ai/snapshot-pruning.service.js +18 -6
- package/dist/modules/instance-ai/snapshot-pruning.service.js.map +1 -1
- package/dist/modules/instance-ai/storage/db-snapshot-storage.d.ts +4 -0
- package/dist/modules/instance-ai/storage/db-snapshot-storage.js +25 -0
- package/dist/modules/instance-ai/storage/db-snapshot-storage.js.map +1 -1
- package/dist/modules/instance-ai/storage/typeorm-memory-storage.js +1 -1
- package/dist/modules/instance-ai/storage/typeorm-memory-storage.js.map +1 -1
- package/dist/modules/instance-ai/web-research/brave-search.d.ts +1 -1
- package/dist/modules/instance-ai/web-research/brave-search.js +2 -1
- package/dist/modules/instance-ai/web-research/brave-search.js.map +1 -1
- package/dist/modules/instance-version-history/database/entities/instance-version-history.entity.d.ts +7 -0
- package/dist/modules/instance-version-history/database/entities/instance-version-history.entity.js +37 -0
- package/dist/modules/instance-version-history/database/entities/instance-version-history.entity.js.map +1 -0
- package/dist/modules/instance-version-history/database/repositories/instance-version-history.repository.d.ts +5 -0
- package/dist/modules/instance-version-history/database/repositories/instance-version-history.repository.js +26 -0
- package/dist/modules/instance-version-history/database/repositories/instance-version-history.repository.js.map +1 -0
- package/dist/modules/instance-version-history/instance-version-history.controller.d.ts +26 -0
- package/dist/modules/instance-version-history/instance-version-history.controller.js +85 -0
- package/dist/modules/instance-version-history/instance-version-history.controller.js.map +1 -0
- package/dist/modules/instance-version-history/instance-version-history.module.d.ts +5 -0
- package/dist/modules/instance-version-history/instance-version-history.module.js +60 -0
- package/dist/modules/instance-version-history/instance-version-history.module.js.map +1 -0
- package/dist/modules/instance-version-history/instance-version-history.service.d.ts +18 -0
- package/dist/modules/instance-version-history/instance-version-history.service.js +120 -0
- package/dist/modules/instance-version-history/instance-version-history.service.js.map +1 -0
- package/dist/modules/instance-version-history/instance-version-history.types.d.ts +12 -0
- package/dist/modules/instance-version-history/instance-version-history.types.js +27 -0
- package/dist/modules/instance-version-history/instance-version-history.types.js.map +1 -0
- package/dist/modules/provisioning.ee/provisioning.service.ee.d.ts +5 -2
- package/dist/modules/provisioning.ee/provisioning.service.ee.js +55 -11
- package/dist/modules/provisioning.ee/provisioning.service.ee.js.map +1 -1
- package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.d.ts +7 -5
- package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js +40 -10
- package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js.map +1 -1
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.d.ts +3 -1
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js +1 -0
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js.map +1 -1
- package/dist/modules/provisioning.ee/role-resolver-types.d.ts +14 -2
- package/dist/modules/provisioning.ee/role-resolver.service.ee.js +16 -6
- package/dist/modules/provisioning.ee/role-resolver.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-context.factory.d.ts +12 -0
- package/dist/modules/source-control.ee/source-control-context.factory.js +112 -0
- package/dist/modules/source-control.ee/source-control-context.factory.js.map +1 -0
- package/dist/modules/source-control.ee/source-control-export.service.ee.d.ts +2 -2
- package/dist/modules/source-control.ee/source-control-export.service.ee.js +9 -11
- package/dist/modules/source-control.ee/source-control-export.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-git.service.ee.js +3 -3
- package/dist/modules/source-control.ee/source-control-git.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +6 -4
- package/dist/modules/source-control.ee/source-control-import.service.ee.js +29 -85
- package/dist/modules/source-control.ee/source-control-import.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-scoped.service.d.ts +4 -4
- package/dist/modules/source-control.ee/source-control-scoped.service.js +9 -40
- package/dist/modules/source-control.ee/source-control-scoped.service.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-status.service.ee.d.ts +3 -1
- package/dist/modules/source-control.ee/source-control-status.service.ee.js +99 -59
- package/dist/modules/source-control.ee/source-control-status.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control.service.ee.d.ts +3 -1
- package/dist/modules/source-control.ee/source-control.service.ee.js +6 -4
- package/dist/modules/source-control.ee/source-control.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/types/source-control-context.d.ts +12 -4
- package/dist/modules/source-control.ee/types/source-control-context.js +32 -6
- package/dist/modules/source-control.ee/types/source-control-context.js.map +1 -1
- package/dist/modules/sso-saml/saml.controller.ee.d.ts +2 -3
- package/dist/modules/sso-saml/saml.controller.ee.js +3 -15
- package/dist/modules/sso-saml/saml.controller.ee.js.map +1 -1
- package/dist/modules/token-exchange/controllers/embed-auth.controller.d.ts +5 -1
- package/dist/modules/token-exchange/controllers/embed-auth.controller.js +50 -11
- package/dist/modules/token-exchange/controllers/embed-auth.controller.js.map +1 -1
- package/dist/modules/token-exchange/{token-exchange.controller.d.ts → controllers/token-exchange.controller.d.ts} +1 -1
- package/dist/modules/token-exchange/{token-exchange.controller.js → controllers/token-exchange.controller.js} +50 -5
- package/dist/modules/token-exchange/controllers/token-exchange.controller.js.map +1 -0
- package/dist/modules/token-exchange/database/entities/trusted-key-source.entity.d.ts +10 -0
- package/dist/modules/token-exchange/database/entities/trusted-key-source.entity.js +45 -0
- package/dist/modules/token-exchange/database/entities/trusted-key-source.entity.js.map +1 -0
- package/dist/modules/token-exchange/database/entities/trusted-key.entity.d.ts +9 -0
- package/dist/modules/token-exchange/database/entities/trusted-key.entity.js +43 -0
- package/dist/modules/token-exchange/database/entities/trusted-key.entity.js.map +1 -0
- package/dist/modules/token-exchange/database/repositories/trusted-key-source.repository.d.ts +5 -0
- package/dist/modules/token-exchange/database/repositories/trusted-key-source.repository.js +26 -0
- package/dist/modules/token-exchange/database/repositories/trusted-key-source.repository.js.map +1 -0
- package/dist/modules/token-exchange/database/repositories/trusted-key.repository.d.ts +7 -0
- package/dist/modules/token-exchange/database/repositories/trusted-key.repository.js +32 -0
- package/dist/modules/token-exchange/database/repositories/trusted-key.repository.js.map +1 -0
- package/dist/modules/token-exchange/services/identity-resolution.service.d.ts +20 -2
- package/dist/modules/token-exchange/services/identity-resolution.service.js +178 -4
- package/dist/modules/token-exchange/services/identity-resolution.service.js.map +1 -1
- package/dist/modules/token-exchange/services/jti-cleanup.service.js +1 -1
- package/dist/modules/token-exchange/services/jti-cleanup.service.js.map +1 -1
- package/dist/modules/token-exchange/services/jwks-resolver.d.ts +30 -0
- package/dist/modules/token-exchange/services/jwks-resolver.js +190 -0
- package/dist/modules/token-exchange/services/jwks-resolver.js.map +1 -0
- package/dist/modules/token-exchange/services/scoped-jwt.strategy.d.ts +12 -0
- package/dist/modules/token-exchange/services/scoped-jwt.strategy.js +92 -0
- package/dist/modules/token-exchange/services/scoped-jwt.strategy.js.map +1 -0
- package/dist/modules/token-exchange/services/token-exchange.service.d.ts +18 -4
- package/dist/modules/token-exchange/services/token-exchange.service.js +65 -6
- package/dist/modules/token-exchange/services/token-exchange.service.js.map +1 -1
- package/dist/modules/token-exchange/services/trusted-key.service.d.ts +40 -6
- package/dist/modules/token-exchange/services/trusted-key.service.js +374 -32
- package/dist/modules/token-exchange/services/trusted-key.service.js.map +1 -1
- package/dist/modules/token-exchange/token-exchange.config.d.ts +4 -0
- package/dist/modules/token-exchange/token-exchange.config.js +20 -0
- package/dist/modules/token-exchange/token-exchange.config.js.map +1 -1
- package/dist/modules/token-exchange/token-exchange.module.js +7 -2
- package/dist/modules/token-exchange/token-exchange.module.js.map +1 -1
- package/dist/modules/token-exchange/token-exchange.schemas.d.ts +35 -5
- package/dist/modules/token-exchange/token-exchange.schemas.js +16 -7
- package/dist/modules/token-exchange/token-exchange.schemas.js.map +1 -1
- package/dist/modules/token-exchange/token-exchange.types.d.ts +5 -2
- package/dist/modules/token-exchange/token-exchange.types.js +2 -0
- package/dist/modules/token-exchange/token-exchange.types.js.map +1 -1
- package/dist/oauth/oauth.service.d.ts +1 -0
- package/dist/oauth/oauth.service.js +39 -2
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/public-api/index.js +32 -4
- package/dist/public-api/index.js.map +1 -1
- package/dist/public-api/types.d.ts +11 -1
- package/dist/public-api/v1/handlers/community-packages/community-packages.handler.d.ts +1 -0
- package/dist/public-api/v1/handlers/community-packages/community-packages.handler.js +5 -5
- package/dist/public-api/v1/handlers/community-packages/community-packages.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js +7 -12
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/credentials/credentials.service.d.ts +3 -4
- package/dist/public-api/v1/handlers/credentials/credentials.service.js +21 -33
- package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
- package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js +5 -5
- package/dist/public-api/v1/handlers/data-tables/data-tables.rows.handler.js +5 -5
- package/dist/public-api/v1/handlers/executions/executions.handler.js +8 -8
- package/dist/public-api/v1/handlers/insights/insights.handler.d.ts +6 -0
- package/dist/public-api/v1/handlers/insights/insights.handler.js +57 -0
- package/dist/public-api/v1/handlers/insights/insights.handler.js.map +1 -0
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js +14 -35
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/workflows/workflows.service.d.ts +6 -4
- package/dist/public-api/v1/handlers/workflows/workflows.service.js +7 -15
- package/dist/public-api/v1/handlers/workflows/workflows.service.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +322 -7
- package/dist/public-api/v1/shared/middlewares/global.middleware.d.ts +1 -1
- package/dist/public-api/v1/shared/middlewares/global.middleware.js +19 -8
- package/dist/public-api/v1/shared/middlewares/global.middleware.js.map +1 -1
- package/dist/security-audit/risk-reporters/credentials-risk-reporter.d.ts +2 -3
- package/dist/security-audit/risk-reporters/credentials-risk-reporter.js +2 -5
- package/dist/security-audit/risk-reporters/credentials-risk-reporter.js.map +1 -1
- package/dist/services/ai-gateway.service.d.ts +44 -0
- package/dist/services/ai-gateway.service.js +228 -0
- package/dist/services/ai-gateway.service.js.map +1 -0
- package/dist/services/api-key-auth.strategy.d.ts +10 -0
- package/dist/services/api-key-auth.strategy.js +71 -0
- package/dist/services/api-key-auth.strategy.js.map +1 -0
- package/dist/services/frontend.service.js +7 -0
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/import.service.d.ts +1 -0
- package/dist/services/import.service.js +25 -2
- package/dist/services/import.service.js.map +1 -1
- package/dist/services/ownership.service.d.ts +4 -1
- package/dist/services/ownership.service.js +11 -5
- 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/pruning/workflow-history-compaction.service.js +4 -4
- package/dist/services/pruning/workflow-history-compaction.service.js.map +1 -1
- package/dist/services/public-api-key.service.d.ts +6 -13
- package/dist/services/public-api-key.service.js +12 -80
- package/dist/services/public-api-key.service.js.map +1 -1
- package/dist/services/user.service.js +6 -0
- package/dist/services/user.service.js.map +1 -1
- package/dist/utils/validate-redirect-url.d.ts +1 -0
- package/dist/utils/validate-redirect-url.js +17 -0
- package/dist/utils/validate-redirect-url.js.map +1 -0
- package/dist/webhooks/webhook-form-data.js +6 -2
- package/dist/webhooks/webhook-form-data.js.map +1 -1
- package/dist/webhooks/webhook.service.js +19 -4
- package/dist/webhooks/webhook.service.js.map +1 -1
- package/dist/workflow-execute-additional-data.js +2 -0
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-helpers.d.ts +1 -0
- package/dist/workflow-helpers.js +21 -0
- package/dist/workflow-helpers.js.map +1 -1
- package/dist/workflow-runner.js +25 -1
- package/dist/workflow-runner.js.map +1 -1
- package/dist/workflows/workflow-creation.service.d.ts +8 -5
- package/dist/workflows/workflow-creation.service.js +36 -17
- package/dist/workflows/workflow-creation.service.js.map +1 -1
- package/dist/workflows/workflow.service.ee.js +4 -1
- package/dist/workflows/workflow.service.ee.js.map +1 -1
- package/dist/workflows/workflow.service.js +4 -1
- package/dist/workflows/workflow.service.js.map +1 -1
- package/dist/workflows/workflows.controller.d.ts +2 -2
- package/package.json +25 -26
- package/dist/modules/instance-ai/filesystem/local-fs-provider.d.ts +0 -26
- package/dist/modules/instance-ai/filesystem/local-fs-provider.js +0 -321
- package/dist/modules/instance-ai/filesystem/local-fs-provider.js.map +0 -1
- package/dist/modules/token-exchange/token-exchange.controller.js.map +0 -1
- package/dist/modules/token-exchange/token-exchange.service.d.ts +0 -9
- package/dist/modules/token-exchange/token-exchange.service.js +0 -66
- package/dist/modules/token-exchange/token-exchange.service.js.map +0 -1
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import type { User } from '@n8n/db';
|
|
1
|
+
import type { Project, User } from '@n8n/db';
|
|
2
|
+
import type { RemoteResourceOwner } from './resource-owner';
|
|
2
3
|
export declare class SourceControlContext {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
readonly user: User;
|
|
5
|
+
readonly authorizedProjects: Project[];
|
|
6
|
+
readonly accessibleWorkflowIds: string[];
|
|
7
|
+
private readonly _hasAccessToAllProjects;
|
|
8
|
+
private readonly authorizedProjectIds;
|
|
9
|
+
private readonly authorizedProjectsByTeamId;
|
|
10
|
+
private readonly authorizedProjectsByOwnerEmail;
|
|
11
|
+
constructor(user: User, authorizedProjects: Project[], accessibleWorkflowIds: string[]);
|
|
6
12
|
hasAccessToAllProjects(): boolean;
|
|
13
|
+
canAccessProject(projectId: string): boolean;
|
|
14
|
+
findAuthorizedProjectByOwner(owner: RemoteResourceOwner): Project | undefined;
|
|
7
15
|
}
|
|
@@ -3,14 +3,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SourceControlContext = void 0;
|
|
4
4
|
const permissions_1 = require("@n8n/permissions");
|
|
5
5
|
class SourceControlContext {
|
|
6
|
-
constructor(
|
|
7
|
-
this.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
constructor(user, authorizedProjects, accessibleWorkflowIds) {
|
|
7
|
+
this.user = user;
|
|
8
|
+
this.authorizedProjects = authorizedProjects;
|
|
9
|
+
this.accessibleWorkflowIds = accessibleWorkflowIds;
|
|
10
|
+
this.authorizedProjectsByTeamId = new Map();
|
|
11
|
+
this.authorizedProjectsByOwnerEmail = new Map();
|
|
12
|
+
this._hasAccessToAllProjects = (0, permissions_1.hasGlobalScope)(this.user, 'project:update');
|
|
13
|
+
this.authorizedProjectIds = new Set(this.authorizedProjects.map((project) => project.id));
|
|
14
|
+
for (const project of this.authorizedProjects) {
|
|
15
|
+
if (project.type === 'team') {
|
|
16
|
+
this.authorizedProjectsByTeamId.set(project.id, project);
|
|
17
|
+
}
|
|
18
|
+
if (project.type === 'personal') {
|
|
19
|
+
const ownerEmail = project.projectRelations?.find((relation) => relation.role.slug === permissions_1.PROJECT_OWNER_ROLE_SLUG)?.user?.email;
|
|
20
|
+
if (ownerEmail) {
|
|
21
|
+
this.authorizedProjectsByOwnerEmail.set(ownerEmail, project);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
11
25
|
}
|
|
12
26
|
hasAccessToAllProjects() {
|
|
13
|
-
return
|
|
27
|
+
return this._hasAccessToAllProjects;
|
|
28
|
+
}
|
|
29
|
+
canAccessProject(projectId) {
|
|
30
|
+
return this._hasAccessToAllProjects || this.authorizedProjectIds.has(projectId);
|
|
31
|
+
}
|
|
32
|
+
findAuthorizedProjectByOwner(owner) {
|
|
33
|
+
if (typeof owner === 'string') {
|
|
34
|
+
return this.authorizedProjectsByOwnerEmail.get(owner);
|
|
35
|
+
}
|
|
36
|
+
if (owner.type === 'personal') {
|
|
37
|
+
return this.authorizedProjectsByOwnerEmail.get(owner.personalEmail);
|
|
38
|
+
}
|
|
39
|
+
return this.authorizedProjectsByTeamId.get(owner.teamId);
|
|
14
40
|
}
|
|
15
41
|
}
|
|
16
42
|
exports.SourceControlContext = SourceControlContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-control-context.js","sourceRoot":"","sources":["../../../../src/modules/source-control.ee/types/source-control-context.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"source-control-context.js","sourceRoot":"","sources":["../../../../src/modules/source-control.ee/types/source-control-context.ts"],"names":[],"mappings":";;;AACA,kDAA2E;AAI3E,MAAa,oBAAoB;IAShC,YACU,IAAU,EACV,kBAA6B,EAC7B,qBAA+B;QAF/B,SAAI,GAAJ,IAAI,CAAM;QACV,uBAAkB,GAAlB,kBAAkB,CAAW;QAC7B,0BAAqB,GAArB,qBAAqB,CAAU;QAPxB,+BAA0B,GAAG,IAAI,GAAG,EAAmB,CAAC;QAExD,mCAA8B,GAAG,IAAI,GAAG,EAAmB,CAAC;QAO5E,IAAI,CAAC,uBAAuB,GAAG,IAAA,4BAAc,EAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC3E,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1F,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAChD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,qCAAuB,CAC5D,EAAE,IAAI,EAAE,KAAK,CAAC;gBACf,IAAI,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,sBAAsB;QACrB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACrC,CAAC;IAED,gBAAgB,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjF,CAAC;IAED,4BAA4B,CAAC,KAA0B;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACD;AAhDD,oDAgDC"}
|
|
@@ -31,6 +31,7 @@ export declare class SamlController {
|
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
relayState: string;
|
|
34
|
+
metadata?: string | undefined;
|
|
34
35
|
mapping?: {
|
|
35
36
|
email: string;
|
|
36
37
|
firstName: string;
|
|
@@ -39,7 +40,6 @@ export declare class SamlController {
|
|
|
39
40
|
n8nInstanceRole?: string | undefined;
|
|
40
41
|
n8nProjectRoles?: string[] | undefined;
|
|
41
42
|
} | undefined;
|
|
42
|
-
metadata?: string | undefined;
|
|
43
43
|
metadataUrl?: string | undefined;
|
|
44
44
|
loginEnabled?: boolean | undefined;
|
|
45
45
|
loginLabel?: string | undefined;
|
|
@@ -61,6 +61,7 @@ export declare class SamlController {
|
|
|
61
61
|
};
|
|
62
62
|
};
|
|
63
63
|
relayState: string;
|
|
64
|
+
metadata?: string | undefined;
|
|
64
65
|
mapping?: {
|
|
65
66
|
email: string;
|
|
66
67
|
firstName: string;
|
|
@@ -69,7 +70,6 @@ export declare class SamlController {
|
|
|
69
70
|
n8nInstanceRole?: string | undefined;
|
|
70
71
|
n8nProjectRoles?: string[] | undefined;
|
|
71
72
|
} | undefined;
|
|
72
|
-
metadata?: string | undefined;
|
|
73
73
|
metadataUrl?: string | undefined;
|
|
74
74
|
loginEnabled?: boolean | undefined;
|
|
75
75
|
loginLabel?: string | undefined;
|
|
@@ -84,5 +84,4 @@ export declare class SamlController {
|
|
|
84
84
|
}>, res: Response): Promise<string | Response<any, Record<string, any>>>;
|
|
85
85
|
configTestPost(_req: AuthenticatedRequest, res: Response, payload: SamlPreferences): Promise<string | Response<any, Record<string, any>>>;
|
|
86
86
|
private handleInitSSO;
|
|
87
|
-
private validateRedirectUrl;
|
|
88
87
|
}
|
|
@@ -26,6 +26,7 @@ const auth_error_1 = require("../../errors/response-errors/auth.error");
|
|
|
26
26
|
const event_service_1 = require("../../events/event.service");
|
|
27
27
|
const response_helper_1 = require("../../response-helper");
|
|
28
28
|
const url_service_1 = require("../../services/url.service");
|
|
29
|
+
const validate_redirect_url_1 = require("../../utils/validate-redirect-url");
|
|
29
30
|
const sso_helpers_1 = require("../../sso.ee/sso-helpers");
|
|
30
31
|
const saml_enabled_middleware_1 = require("./middleware/saml-enabled-middleware");
|
|
31
32
|
const saml_helpers_1 = require("./saml-helpers");
|
|
@@ -98,7 +99,7 @@ let SamlController = class SamlController {
|
|
|
98
99
|
}
|
|
99
100
|
else {
|
|
100
101
|
const safeRedirectUrl = payload.RelayState
|
|
101
|
-
?
|
|
102
|
+
? (0, validate_redirect_url_1.validateRedirectUrl)(payload.RelayState)
|
|
102
103
|
: '/';
|
|
103
104
|
return res.redirect(this.urlService.getInstanceBaseUrl() + safeRedirectUrl);
|
|
104
105
|
}
|
|
@@ -140,7 +141,7 @@ let SamlController = class SamlController {
|
|
|
140
141
|
}
|
|
141
142
|
catch {
|
|
142
143
|
}
|
|
143
|
-
return await this.handleInitSSO(res,
|
|
144
|
+
return await this.handleInitSSO(res, (0, validate_redirect_url_1.validateRedirectUrl)(redirectUrl));
|
|
144
145
|
}
|
|
145
146
|
async configTestPost(_req, res, payload) {
|
|
146
147
|
return await this.handleInitSSO(res, (0, service_provider_ee_1.getServiceProviderConfigTestReturnUrl)(), payload);
|
|
@@ -165,19 +166,6 @@ let SamlController = class SamlController {
|
|
|
165
166
|
throw new auth_error_1.AuthError('SAML redirect failed, please check your SAML configuration.');
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
|
-
validateRedirectUrl(redirectUrl) {
|
|
169
|
-
if (typeof redirectUrl !== 'string' || redirectUrl.trim() === '') {
|
|
170
|
-
return '/';
|
|
171
|
-
}
|
|
172
|
-
const trimmed = redirectUrl.trim();
|
|
173
|
-
if (!trimmed.startsWith('/')) {
|
|
174
|
-
return '/';
|
|
175
|
-
}
|
|
176
|
-
if (trimmed.startsWith('//')) {
|
|
177
|
-
return '/';
|
|
178
|
-
}
|
|
179
|
-
return trimmed;
|
|
180
|
-
}
|
|
181
169
|
};
|
|
182
170
|
exports.SamlController = SamlController;
|
|
183
171
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saml.controller.ee.js","sourceRoot":"","sources":["../../../src/modules/sso-saml/saml.controller.ee.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"saml.controller.ee.js","sourceRoot":"","sources":["../../../src/modules/sso-saml/saml.controller.ee.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { EmbedLoginBodyDto, EmbedLoginQueryDto } from '@n8n/api-types';
|
|
2
2
|
import type { Response } from 'express';
|
|
3
3
|
import { AuthService } from '../../../auth/auth.service';
|
|
4
|
+
import { EventService } from '../../../events/event.service';
|
|
4
5
|
import { AuthlessRequest } from '../../../requests';
|
|
5
6
|
import { UrlService } from '../../../services/url.service';
|
|
6
7
|
import { TokenExchangeService } from '../services/token-exchange.service';
|
|
8
|
+
import { TokenExchangeConfig } from '../token-exchange.config';
|
|
7
9
|
export declare class EmbedAuthController {
|
|
10
|
+
private readonly config;
|
|
8
11
|
private readonly tokenExchangeService;
|
|
9
12
|
private readonly authService;
|
|
10
13
|
private readonly urlService;
|
|
11
|
-
|
|
14
|
+
private readonly eventService;
|
|
15
|
+
constructor(config: TokenExchangeConfig, tokenExchangeService: TokenExchangeService, authService: AuthService, urlService: UrlService, eventService: EventService);
|
|
12
16
|
getLogin(req: AuthlessRequest, res: Response, query: EmbedLoginQueryDto): Promise<void>;
|
|
13
17
|
postLogin(req: AuthlessRequest, res: Response, body: EmbedLoginBodyDto): Promise<void>;
|
|
14
18
|
private handleLogin;
|
|
@@ -17,31 +17,65 @@ const api_types_1 = require("@n8n/api-types");
|
|
|
17
17
|
const constants_1 = require("@n8n/constants");
|
|
18
18
|
const decorators_1 = require("@n8n/decorators");
|
|
19
19
|
const auth_service_1 = require("../../../auth/auth.service");
|
|
20
|
+
const event_service_1 = require("../../../events/event.service");
|
|
20
21
|
const url_service_1 = require("../../../services/url.service");
|
|
22
|
+
const validate_redirect_url_1 = require("../../../utils/validate-redirect-url");
|
|
21
23
|
const token_exchange_service_1 = require("../services/token-exchange.service");
|
|
24
|
+
const token_exchange_config_1 = require("../token-exchange.config");
|
|
25
|
+
const di_1 = require("@n8n/di");
|
|
26
|
+
const configService = di_1.Container.get(token_exchange_config_1.TokenExchangeConfig);
|
|
22
27
|
let EmbedAuthController = class EmbedAuthController {
|
|
23
|
-
constructor(tokenExchangeService, authService, urlService) {
|
|
28
|
+
constructor(config, tokenExchangeService, authService, urlService, eventService) {
|
|
29
|
+
this.config = config;
|
|
24
30
|
this.tokenExchangeService = tokenExchangeService;
|
|
25
31
|
this.authService = authService;
|
|
26
32
|
this.urlService = urlService;
|
|
33
|
+
this.eventService = eventService;
|
|
27
34
|
}
|
|
28
35
|
async getLogin(req, res, query) {
|
|
29
|
-
|
|
36
|
+
if (!this.config.embedEnabled) {
|
|
37
|
+
res.status(501).json({
|
|
38
|
+
error: 'server_error',
|
|
39
|
+
error_description: 'Embed login is not enabled on this instance',
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
return await this.handleLogin(query.token, req, res, query.redirectTo);
|
|
30
44
|
}
|
|
31
45
|
async postLogin(req, res, body) {
|
|
32
|
-
|
|
46
|
+
if (!this.config.embedEnabled) {
|
|
47
|
+
res.status(501).json({
|
|
48
|
+
error: 'server_error',
|
|
49
|
+
error_description: 'Embed login is not enabled on this instance',
|
|
50
|
+
});
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
return await this.handleLogin(body.token, req, res, body.redirectTo);
|
|
33
54
|
}
|
|
34
|
-
async handleLogin(subjectToken, req, res) {
|
|
35
|
-
const user = await this.tokenExchangeService.embedLogin(subjectToken);
|
|
36
|
-
this.authService.issueCookie(res, user, true, req.browserId
|
|
37
|
-
|
|
55
|
+
async handleLogin(subjectToken, req, res, redirect) {
|
|
56
|
+
const { user, subject, issuer, kid } = await this.tokenExchangeService.embedLogin(subjectToken);
|
|
57
|
+
this.authService.issueCookie(res, user, true, req.browserId, true, {
|
|
58
|
+
sameSite: 'none',
|
|
59
|
+
secure: true,
|
|
60
|
+
});
|
|
61
|
+
this.eventService.emit('embed-login', {
|
|
62
|
+
subject,
|
|
63
|
+
issuer,
|
|
64
|
+
kid,
|
|
65
|
+
clientIp: req.ip ?? 'unknown',
|
|
66
|
+
});
|
|
67
|
+
const safePath = (0, validate_redirect_url_1.validateRedirectUrl)(redirect ?? '');
|
|
68
|
+
res.redirect(this.urlService.getInstanceBaseUrl() + safePath);
|
|
38
69
|
}
|
|
39
70
|
};
|
|
40
71
|
exports.EmbedAuthController = EmbedAuthController;
|
|
41
72
|
__decorate([
|
|
42
73
|
(0, decorators_1.Get)('/', {
|
|
43
74
|
skipAuth: true,
|
|
44
|
-
ipRateLimit: {
|
|
75
|
+
ipRateLimit: {
|
|
76
|
+
limit: configService.rateLimitEmbedLogin,
|
|
77
|
+
windowMs: 1 * constants_1.Time.minutes.toMilliseconds,
|
|
78
|
+
},
|
|
45
79
|
}),
|
|
46
80
|
__param(2, decorators_1.Query),
|
|
47
81
|
__metadata("design:type", Function),
|
|
@@ -51,7 +85,10 @@ __decorate([
|
|
|
51
85
|
__decorate([
|
|
52
86
|
(0, decorators_1.Post)('/', {
|
|
53
87
|
skipAuth: true,
|
|
54
|
-
ipRateLimit: {
|
|
88
|
+
ipRateLimit: {
|
|
89
|
+
limit: configService.rateLimitEmbedLogin,
|
|
90
|
+
windowMs: 1 * constants_1.Time.minutes.toMilliseconds,
|
|
91
|
+
},
|
|
55
92
|
}),
|
|
56
93
|
__param(2, decorators_1.Body),
|
|
57
94
|
__metadata("design:type", Function),
|
|
@@ -60,8 +97,10 @@ __decorate([
|
|
|
60
97
|
], EmbedAuthController.prototype, "postLogin", null);
|
|
61
98
|
exports.EmbedAuthController = EmbedAuthController = __decorate([
|
|
62
99
|
(0, decorators_1.RestController)('/auth/embed'),
|
|
63
|
-
__metadata("design:paramtypes", [
|
|
100
|
+
__metadata("design:paramtypes", [token_exchange_config_1.TokenExchangeConfig,
|
|
101
|
+
token_exchange_service_1.TokenExchangeService,
|
|
64
102
|
auth_service_1.AuthService,
|
|
65
|
-
url_service_1.UrlService
|
|
103
|
+
url_service_1.UrlService,
|
|
104
|
+
event_service_1.EventService])
|
|
66
105
|
], EmbedAuthController);
|
|
67
106
|
//# sourceMappingURL=embed-auth.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed-auth.controller.js","sourceRoot":"","sources":["../../../../src/modules/token-exchange/controllers/embed-auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8CAAuE;AACvE,8CAAsC;AACtC,gDAAyE;AAGzE,sDAAkD;
|
|
1
|
+
{"version":3,"file":"embed-auth.controller.js","sourceRoot":"","sources":["../../../../src/modules/token-exchange/controllers/embed-auth.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,11 +14,14 @@ const constants_1 = require("@n8n/constants");
|
|
|
14
14
|
const decorators_1 = require("@n8n/decorators");
|
|
15
15
|
const di_1 = require("@n8n/di");
|
|
16
16
|
const n8n_core_1 = require("n8n-core");
|
|
17
|
-
const event_service_1 = require("../../events/event.service");
|
|
18
17
|
const zod_1 = require("zod");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
18
|
+
const auth_error_1 = require("../../../errors/response-errors/auth.error");
|
|
19
|
+
const bad_request_error_1 = require("../../../errors/response-errors/bad-request.error");
|
|
20
|
+
const event_service_1 = require("../../../events/event.service");
|
|
21
|
+
const token_exchange_service_1 = require("../services/token-exchange.service");
|
|
22
|
+
const token_exchange_config_1 = require("../token-exchange.config");
|
|
23
|
+
const token_exchange_schemas_1 = require("../token-exchange.schemas");
|
|
24
|
+
const configService = di_1.Container.get(token_exchange_config_1.TokenExchangeConfig);
|
|
22
25
|
let TokenExchangeController = class TokenExchangeController {
|
|
23
26
|
constructor() {
|
|
24
27
|
this.config = di_1.Container.get(token_exchange_config_1.TokenExchangeConfig);
|
|
@@ -73,6 +76,45 @@ let TokenExchangeController = class TokenExchangeController {
|
|
|
73
76
|
});
|
|
74
77
|
}
|
|
75
78
|
catch (error) {
|
|
79
|
+
if (error instanceof auth_error_1.AuthError) {
|
|
80
|
+
this.eventService.emit('token-exchange-failed', {
|
|
81
|
+
subject: '',
|
|
82
|
+
failureReason: error.message,
|
|
83
|
+
grantType: parsed.data.grant_type,
|
|
84
|
+
clientIp,
|
|
85
|
+
});
|
|
86
|
+
res.status(400).json({
|
|
87
|
+
error: 'invalid_grant',
|
|
88
|
+
error_description: 'Token exchange failed',
|
|
89
|
+
});
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (error instanceof bad_request_error_1.BadRequestError) {
|
|
93
|
+
this.eventService.emit('token-exchange-failed', {
|
|
94
|
+
subject: '',
|
|
95
|
+
failureReason: error.message,
|
|
96
|
+
grantType: parsed.data.grant_type,
|
|
97
|
+
clientIp,
|
|
98
|
+
});
|
|
99
|
+
res.status(400).json({
|
|
100
|
+
error: 'invalid_request',
|
|
101
|
+
error_description: error.message,
|
|
102
|
+
});
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (error instanceof zod_1.ZodError) {
|
|
106
|
+
this.eventService.emit('token-exchange-failed', {
|
|
107
|
+
subject: '',
|
|
108
|
+
failureReason: 'invalid_claims',
|
|
109
|
+
grantType: parsed.data.grant_type,
|
|
110
|
+
clientIp,
|
|
111
|
+
});
|
|
112
|
+
res.status(400).json({
|
|
113
|
+
error: 'invalid_request',
|
|
114
|
+
error_description: 'Token claims validation failed',
|
|
115
|
+
});
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
76
118
|
this.errorReporter.error(error instanceof Error ? error : new Error(String(error)));
|
|
77
119
|
this.eventService.emit('token-exchange-failed', {
|
|
78
120
|
subject: '',
|
|
@@ -91,7 +133,10 @@ exports.TokenExchangeController = TokenExchangeController;
|
|
|
91
133
|
__decorate([
|
|
92
134
|
(0, decorators_1.Post)('/token', {
|
|
93
135
|
skipAuth: true,
|
|
94
|
-
ipRateLimit: {
|
|
136
|
+
ipRateLimit: {
|
|
137
|
+
limit: configService.rateLimitTokenExchange,
|
|
138
|
+
windowMs: 1 * constants_1.Time.minutes.toMilliseconds,
|
|
139
|
+
},
|
|
95
140
|
}),
|
|
96
141
|
__metadata("design:type", Function),
|
|
97
142
|
__metadata("design:paramtypes", [Object, Object]),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-exchange.controller.js","sourceRoot":"","sources":["../../../../src/modules/token-exchange/controllers/token-exchange.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { WithTimestamps } from '@n8n/db';
|
|
2
|
+
import type { TrustedKeySourceStatus, TrustedKeySourceType } from '../../token-exchange.schemas';
|
|
3
|
+
export declare class TrustedKeySourceEntity extends WithTimestamps {
|
|
4
|
+
id: string;
|
|
5
|
+
type: TrustedKeySourceType;
|
|
6
|
+
config: string;
|
|
7
|
+
status: TrustedKeySourceStatus;
|
|
8
|
+
lastError: string | null;
|
|
9
|
+
lastRefreshedAt: Date | null;
|
|
10
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
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.TrustedKeySourceEntity = void 0;
|
|
13
|
+
const db_1 = require("@n8n/db");
|
|
14
|
+
const typeorm_1 = require("@n8n/typeorm");
|
|
15
|
+
let TrustedKeySourceEntity = class TrustedKeySourceEntity extends db_1.WithTimestamps {
|
|
16
|
+
};
|
|
17
|
+
exports.TrustedKeySourceEntity = TrustedKeySourceEntity;
|
|
18
|
+
__decorate([
|
|
19
|
+
(0, typeorm_1.PrimaryColumn)('varchar', { length: 36 }),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], TrustedKeySourceEntity.prototype, "id", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 32 }),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], TrustedKeySourceEntity.prototype, "type", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, typeorm_1.Column)('text'),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], TrustedKeySourceEntity.prototype, "config", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 32, default: 'pending' }),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], TrustedKeySourceEntity.prototype, "status", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
36
|
+
__metadata("design:type", Object)
|
|
37
|
+
], TrustedKeySourceEntity.prototype, "lastError", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, db_1.DateTimeColumn)({ nullable: true }),
|
|
40
|
+
__metadata("design:type", Object)
|
|
41
|
+
], TrustedKeySourceEntity.prototype, "lastRefreshedAt", void 0);
|
|
42
|
+
exports.TrustedKeySourceEntity = TrustedKeySourceEntity = __decorate([
|
|
43
|
+
(0, typeorm_1.Entity)('trusted_key_source')
|
|
44
|
+
], TrustedKeySourceEntity);
|
|
45
|
+
//# sourceMappingURL=trusted-key-source.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trusted-key-source.entity.js","sourceRoot":"","sources":["../../../../../src/modules/token-exchange/database/entities/trusted-key-source.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAyD;AACzD,0CAA6D;AAKtD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,mBAAc;CAkBzD,CAAA;AAlBY,wDAAsB;AAElC;IADC,IAAA,uBAAa,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;kDAC9B;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;oDACb;AAG3B;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;sDACA;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;;sDAC7B;AAG/B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDAChB;AAGzB;IADC,IAAA,mBAAc,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DACN;iCAjBjB,sBAAsB;IADlC,IAAA,gBAAM,EAAC,oBAAoB,CAAC;GAChB,sBAAsB,CAkBlC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Relation } from '@n8n/typeorm';
|
|
2
|
+
import { TrustedKeySourceEntity } from './trusted-key-source.entity';
|
|
3
|
+
export declare class TrustedKeyEntity {
|
|
4
|
+
sourceId: string;
|
|
5
|
+
kid: string;
|
|
6
|
+
data: string;
|
|
7
|
+
createdAt: Date;
|
|
8
|
+
source: Relation<TrustedKeySourceEntity>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
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.TrustedKeyEntity = void 0;
|
|
13
|
+
const db_1 = require("@n8n/db");
|
|
14
|
+
const typeorm_1 = require("@n8n/typeorm");
|
|
15
|
+
const trusted_key_source_entity_1 = require("./trusted-key-source.entity");
|
|
16
|
+
let TrustedKeyEntity = class TrustedKeyEntity {
|
|
17
|
+
};
|
|
18
|
+
exports.TrustedKeyEntity = TrustedKeyEntity;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, typeorm_1.PrimaryColumn)('varchar', { length: 36 }),
|
|
21
|
+
__metadata("design:type", String)
|
|
22
|
+
], TrustedKeyEntity.prototype, "sourceId", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, typeorm_1.PrimaryColumn)('varchar', { length: 255 }),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], TrustedKeyEntity.prototype, "kid", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, typeorm_1.Column)('text'),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], TrustedKeyEntity.prototype, "data", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, db_1.DateTimeColumn)(),
|
|
33
|
+
__metadata("design:type", Date)
|
|
34
|
+
], TrustedKeyEntity.prototype, "createdAt", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, typeorm_1.ManyToOne)(() => trusted_key_source_entity_1.TrustedKeySourceEntity, { onDelete: 'CASCADE' }),
|
|
37
|
+
(0, typeorm_1.JoinColumn)({ name: 'sourceId' }),
|
|
38
|
+
__metadata("design:type", Object)
|
|
39
|
+
], TrustedKeyEntity.prototype, "source", void 0);
|
|
40
|
+
exports.TrustedKeyEntity = TrustedKeyEntity = __decorate([
|
|
41
|
+
(0, typeorm_1.Entity)('trusted_key')
|
|
42
|
+
], TrustedKeyEntity);
|
|
43
|
+
//# sourceMappingURL=trusted-key.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trusted-key.entity.js","sourceRoot":"","sources":["../../../../../src/modules/token-exchange/database/entities/trusted-key.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAyC;AAEzC,0CAAoF;AAEpF,2EAAqE;AAG9D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAgB5B,CAAA;AAhBY,4CAAgB;AAE5B;IADC,IAAA,uBAAa,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;kDACxB;AAGjB;IADC,IAAA,uBAAa,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;6CAC9B;AAGZ;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;8CACF;AAGb;IADC,IAAA,mBAAc,GAAE;8BACN,IAAI;mDAAC;AAIhB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kDAAsB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAChE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;;gDACQ;2BAf7B,gBAAgB;IAD5B,IAAA,gBAAM,EAAC,aAAa,CAAC;GACT,gBAAgB,CAgB5B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DataSource, Repository } from '@n8n/typeorm';
|
|
2
|
+
import { TrustedKeySourceEntity } from '../entities/trusted-key-source.entity';
|
|
3
|
+
export declare class TrustedKeySourceRepository extends Repository<TrustedKeySourceEntity> {
|
|
4
|
+
constructor(dataSource: DataSource);
|
|
5
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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.TrustedKeySourceRepository = void 0;
|
|
13
|
+
const di_1 = require("@n8n/di");
|
|
14
|
+
const typeorm_1 = require("@n8n/typeorm");
|
|
15
|
+
const trusted_key_source_entity_1 = require("../entities/trusted-key-source.entity");
|
|
16
|
+
let TrustedKeySourceRepository = class TrustedKeySourceRepository extends typeorm_1.Repository {
|
|
17
|
+
constructor(dataSource) {
|
|
18
|
+
super(trusted_key_source_entity_1.TrustedKeySourceEntity, dataSource.manager);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.TrustedKeySourceRepository = TrustedKeySourceRepository;
|
|
22
|
+
exports.TrustedKeySourceRepository = TrustedKeySourceRepository = __decorate([
|
|
23
|
+
(0, di_1.Service)(),
|
|
24
|
+
__metadata("design:paramtypes", [typeorm_1.DataSource])
|
|
25
|
+
], TrustedKeySourceRepository);
|
|
26
|
+
//# sourceMappingURL=trusted-key-source.repository.js.map
|
package/dist/modules/token-exchange/database/repositories/trusted-key-source.repository.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trusted-key-source.repository.js","sourceRoot":"","sources":["../../../../../src/modules/token-exchange/database/repositories/trusted-key-source.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAClC,0CAAsD;AAEtD,qFAA+E;AAGxE,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,oBAAkC;IACjF,YAAY,UAAsB;QACjC,KAAK,CAAC,kDAAsB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CACD,CAAA;AAJY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,YAAO,GAAE;qCAEe,oBAAU;GADtB,0BAA0B,CAItC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DataSource, Repository } from '@n8n/typeorm';
|
|
2
|
+
import { TrustedKeyEntity } from '../entities/trusted-key.entity';
|
|
3
|
+
export declare class TrustedKeyRepository extends Repository<TrustedKeyEntity> {
|
|
4
|
+
constructor(dataSource: DataSource);
|
|
5
|
+
findBySourceAndKid(sourceId: string, kid: string): Promise<TrustedKeyEntity | null>;
|
|
6
|
+
findAllByKid(kid: string): Promise<TrustedKeyEntity[]>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.TrustedKeyRepository = void 0;
|
|
13
|
+
const di_1 = require("@n8n/di");
|
|
14
|
+
const typeorm_1 = require("@n8n/typeorm");
|
|
15
|
+
const trusted_key_entity_1 = require("../entities/trusted-key.entity");
|
|
16
|
+
let TrustedKeyRepository = class TrustedKeyRepository extends typeorm_1.Repository {
|
|
17
|
+
constructor(dataSource) {
|
|
18
|
+
super(trusted_key_entity_1.TrustedKeyEntity, dataSource.manager);
|
|
19
|
+
}
|
|
20
|
+
async findBySourceAndKid(sourceId, kid) {
|
|
21
|
+
return await this.findOneBy({ sourceId, kid });
|
|
22
|
+
}
|
|
23
|
+
async findAllByKid(kid) {
|
|
24
|
+
return await this.findBy({ kid });
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
exports.TrustedKeyRepository = TrustedKeyRepository;
|
|
28
|
+
exports.TrustedKeyRepository = TrustedKeyRepository = __decorate([
|
|
29
|
+
(0, di_1.Service)(),
|
|
30
|
+
__metadata("design:paramtypes", [typeorm_1.DataSource])
|
|
31
|
+
], TrustedKeyRepository);
|
|
32
|
+
//# sourceMappingURL=trusted-key.repository.js.map
|