mirror of
https://github.com/n8n-io/n8n.git
synced 2026-10-19 16:55:02 +02:00
A subscription is a cron expression, a timezone and a set of inputs, provisioned as one durable job owned by the subscription rather than by any node. Creating one records consent in the same transaction: a schedule is the only reason the grant exists, so asking twice would be asking the same question twice. Two stores have to agree — the rows here and the jobs the scheduler runs from — and nothing keeps them in step, so every path deprovisions before it deletes and treats a failed provision as a reason to put the row back rather than leave the two disagreeing. The handler proves again everything a live request would have proved: that the person still exists and is enabled, still consents, and may still execute the workflow. None of those is an error when it fails — consent gets withdrawn and access gets removed in the ordinary course of things — so the occurrence reports no dispatch. It loads the subscriber with their role, since there is no authenticated request to take a fully-loaded user from and the access check reads the scopes it carries. Identity is minted per occurrence rather than stored: the token is short-lived by design, and one written at subscribe time would be long expired by the first run. The occurrence's dedup key means a redelivered task recognises the execution a previous delivery already created. `RunnerBindingService` now reads the binding row instead of an in-memory map. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| agents | ||
| ai-node-sdk | ||
| ai-utilities | ||
| ai-workflow-builder.ee | ||
| api-types | ||
| backend-common | ||
| backend-network | ||
| backend-test-utils | ||
| benchmark | ||
| blob-storage | ||
| chat-hub | ||
| cli | ||
| client-oauth2 | ||
| codemirror-lang | ||
| codemirror-lang-html | ||
| codemirror-lang-sql | ||
| computer-use | ||
| config | ||
| constants | ||
| crdt | ||
| create-node | ||
| db | ||
| decorators | ||
| di | ||
| engine | ||
| errors | ||
| eslint-config | ||
| eslint-plugin-community-nodes | ||
| expression-runtime | ||
| extension-sdk | ||
| imap | ||
| instance-ai | ||
| json-schema-to-zod | ||
| local-gateway | ||
| mcp-apps | ||
| mcp-browser | ||
| mcp-browser-extension | ||
| node-cli | ||
| node-engine-compatibility | ||
| nodes-langchain | ||
| permissions | ||
| scan-community-package | ||
| scheduler | ||
| stylelint-config | ||
| syslog-client | ||
| task-runner | ||
| task-runner-python | ||
| telemetry | ||
| tournament | ||
| typeorm | ||
| typescript-config | ||
| utils | ||
| vitest-config | ||
| workflow-sdk | ||