@n8n-as-code/skills 2.2.4 → 2.2.6

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.
@@ -5,7 +5,7 @@ description: Use when the user explicitly wants to create, edit, validate, sync,
5
5
 
6
6
  # n8n Architect
7
7
 
8
- Use this skill for all n8n-as-code work: workspace readiness, migration, environments, managed local instances, tunnels, workflow authoring, validation, sync, push, and pull.
8
+ Use this skill for all n8n-as-code work: workspace readiness, environments, managed local instances, tunnels, workflow authoring, validation, sync, push, and pull.
9
9
 
10
10
  Use `{{N8NAC_CMD}}` as the primary interface. Use `{{N8N_MANAGER_CMD}}` only for local managed runtime lifecycle, tunnels, and workflow presentation commands that are explicitly exposed by n8n-manager.
11
11
 
@@ -30,41 +30,15 @@ Use `{{N8NAC_CMD}}` as the primary interface. Use `{{N8N_MANAGER_CMD}}` only for
30
30
 
31
31
  ## Workspace Readiness
32
32
 
33
- Use the unified migration preflight before resolving the effective environment. The dry-run is safe and reports whether any workspace migration is required:
33
+ Resolve the effective environment through the backend before workflow work:
34
34
 
35
35
  ```bash
36
- {{N8NAC_CMD}} workspace migrate --json
37
36
  {{N8NAC_CMD}} env status --json
38
37
  ```
39
38
 
40
- - Treat `workspace migrate --json` as the source of migration need.
41
- - Treat `env status --json` as the source of effective workspace readiness only after migration is not required or has been applied.
39
+ - Treat `env status --json` as the source of effective workspace readiness.
42
40
  - Do not infer readiness from raw files, generated agent docs, or directory names.
43
- - If migration is required, do not edit config files by hand or continue with environment/workflow work until it has been applied or explicitly deferred by the user.
44
-
45
- ## Migration
46
-
47
- Migration is one user-facing command. Do not reason about internal migration phases directly; summarize the report `operations` array when explaining what will change.
48
-
49
- 1. Run the dry-run first:
50
-
51
- ```bash
52
- {{N8NAC_CMD}} workspace migrate --json
53
- ```
54
-
55
- 2. If the dry-run reports `status: "dry-run"`, `required: true`, or otherwise indicates pending changes, stop and ask once before applying it. Do not run `workspace migrate --write` unless the user already directly requested applying migration.
56
- 3. After confirmation, apply migration and re-check readiness:
57
-
58
- ```bash
59
- {{N8NAC_CMD}} workspace migrate --write
60
- {{N8NAC_CMD}} workspace migrate --json
61
- {{N8NAC_CMD}} env status --json
62
- ```
63
-
64
- - Do not run `workspace migrate --write` without explicit confirmation unless the user already directly requested applying migration.
65
- - When reporting a dry-run, summarize the unified `operations` list and ask for exactly one confirmation for `{{N8NAC_CMD}} workspace migrate --write`.
66
- - Do not ask separately for different operation types. `{{N8NAC_CMD}} workspace migrate --write` applies the required migration as one operation.
67
- - Do not run environment, workflow, or setup commands while `workspace migrate --json` still reports migration required.
41
+ - If `env status --json` fails because the workspace is not configured, use `env add`, `env auth set`, and `env use` to create or select a V4 workspace environment.
68
42
  - Managed local instances remain machine-global runtime resources.
69
43
  - Workspace environments remain workspace-scoped and are managed through `{{N8NAC_CMD}} env ...`.
70
44
 
@@ -72,14 +46,12 @@ Migration is one user-facing command. Do not reason about internal migration pha
72
46
 
73
47
  1. `cd` to the context root.
74
48
  2. Run `{{N8NAC_CMD}} update-ai`, then read `AGENTS.md`.
75
- 3. Run `{{N8NAC_CMD}} workspace migrate --json`.
76
- 4. If migration is required, stop and ask for confirmation before `{{N8NAC_CMD}} workspace migrate --write` unless the user already requested applying migration.
77
- 5. Run `{{N8NAC_CMD}} env status --json` after migration is not required or has been applied.
78
- 6. If the context root is not ready, inspect managed local instances with `{{N8N_MANAGER_CMD}} instance list`.
79
- 7. Reuse an existing environment or managed local instance when suitable.
80
- 8. If no suitable environment exists, stop and ask the user whether they want to connect a remote n8n URL or create/reuse a managed local n8n instance. Do not create infrastructure by default. If the user chooses a managed local instance, ask separately whether they want a public tunnel.
81
- 9. Ask for host/API key only for an explicitly remote n8n environment.
82
- 10. Configure the environment with:
49
+ 3. Run `{{N8NAC_CMD}} env status --json`.
50
+ 4. If the context root is not ready, inspect managed local instances with `{{N8N_MANAGER_CMD}} instance list`.
51
+ 5. Reuse an existing environment or managed local instance when suitable.
52
+ 6. If no suitable environment exists, stop and ask the user whether they want to connect a remote n8n URL or create/reuse a managed local n8n instance. Do not create infrastructure by default. If the user chooses a managed local instance, ask separately whether they want a public tunnel.
53
+ 7. Ask for host/API key only for an explicitly remote n8n environment.
54
+ 8. Configure the environment with:
83
55
 
84
56
  ```bash
85
57
  {{N8NAC_CMD}} env add <name> --base-url <url> --workflows-path workflows/<name>
@@ -94,7 +66,7 @@ For a managed local instance:
94
66
  {{N8NAC_CMD}} env use Local
95
67
  ```
96
68
 
97
- 11. Run `{{N8NAC_CMD}} update-ai` after changing environments when the facade does not do it automatically.
69
+ 9. Run `{{N8NAC_CMD}} update-ai` after changing environments when the facade does not do it automatically.
98
70
 
99
71
  ## Environments
100
72
 
@@ -1,7 +1,7 @@
1
1
  {
2
- "generatedAt": "2026-06-02T09:13:02.151Z",
2
+ "generatedAt": "2026-06-05T14:48:59.533Z",
3
3
  "n8nVersion": "unknown",
4
- "sourceFileCount": 434,
4
+ "sourceFileCount": 436,
5
5
  "scanDirectories": [
6
6
  "/home/runner/work/n8n-as-code/n8n-as-code/.n8n-cache/packages/nodes-base/dist/credentials",
7
7
  "/home/runner/work/n8n-as-code/n8n-as-code/.n8n-cache/packages/@n8n/nodes-langchain/dist/credentials"
@@ -2401,7 +2401,7 @@
2401
2401
  {
2402
2402
  "typeName": "bitbucketAccessTokenApi",
2403
2403
  "displayName": "Bitbucket Access Token API",
2404
- "documentationUrl": "bitbuckettokenapi",
2404
+ "documentationUrl": "bitbucket",
2405
2405
  "properties": [
2406
2406
  {
2407
2407
  "displayName": "Email",
@@ -8533,6 +8533,95 @@
8533
8533
  }
8534
8534
  ]
8535
8535
  },
8536
+ {
8537
+ "typeName": "gumroadOAuth2Api",
8538
+ "displayName": "Gumroad OAuth2 API",
8539
+ "documentationUrl": "gumroad",
8540
+ "properties": [
8541
+ {
8542
+ "displayName": "Grant Type",
8543
+ "name": "grantType",
8544
+ "type": "hidden",
8545
+ "default": "authorizationCode"
8546
+ },
8547
+ {
8548
+ "displayName": "Authorization URL",
8549
+ "name": "authUrl",
8550
+ "type": "hidden",
8551
+ "default": "https://gumroad.com/oauth/authorize",
8552
+ "required": true
8553
+ },
8554
+ {
8555
+ "displayName": "Access Token URL",
8556
+ "name": "accessTokenUrl",
8557
+ "type": "hidden",
8558
+ "default": "https://gumroad.com/oauth/token",
8559
+ "required": true
8560
+ },
8561
+ {
8562
+ "displayName": "Auth URI Query Parameters",
8563
+ "name": "authQueryParameters",
8564
+ "type": "hidden",
8565
+ "default": ""
8566
+ },
8567
+ {
8568
+ "displayName": "Authentication",
8569
+ "name": "authentication",
8570
+ "type": "hidden",
8571
+ "default": "body"
8572
+ },
8573
+ {
8574
+ "displayName": "Custom Scopes",
8575
+ "name": "customScopes",
8576
+ "type": "boolean",
8577
+ "default": false,
8578
+ "description": "Define custom scopes"
8579
+ },
8580
+ {
8581
+ "displayName": "The default scopes needed for the node to work are already set. If you change these the node may not function correctly.",
8582
+ "name": "customScopesNotice",
8583
+ "type": "notice",
8584
+ "default": "",
8585
+ "displayOptions": {
8586
+ "show": {
8587
+ "customScopes": [
8588
+ true
8589
+ ]
8590
+ }
8591
+ }
8592
+ },
8593
+ {
8594
+ "displayName": "Enabled Scopes",
8595
+ "name": "enabledScopes",
8596
+ "type": "string",
8597
+ "displayOptions": {
8598
+ "show": {
8599
+ "customScopes": [
8600
+ true
8601
+ ]
8602
+ }
8603
+ },
8604
+ "default": "view_sales",
8605
+ "description": "Space-separated list of scopes that should be enabled"
8606
+ },
8607
+ {
8608
+ "displayName": "Scope",
8609
+ "name": "scope",
8610
+ "type": "hidden",
8611
+ "default": "={{$self[\"customScopes\"] ? $self[\"enabledScopes\"] : \"view_sales\"}}"
8612
+ }
8613
+ ],
8614
+ "source": "n8n-cache",
8615
+ "sourcePath": "/.n8n-cache/packages/nodes-base/dist/credentials/GumroadOAuth2Api.credentials.js",
8616
+ "usedByNodes": [
8617
+ {
8618
+ "nodeName": "gumroadTrigger",
8619
+ "nodeType": "n8n-nodes-base.gumroadTrigger",
8620
+ "nodeDisplayName": "Gumroad Trigger",
8621
+ "required": true
8622
+ }
8623
+ ]
8624
+ },
8536
8625
  {
8537
8626
  "typeName": "haloPSAApi",
8538
8627
  "displayName": "HaloPSA API",
@@ -15217,6 +15306,24 @@
15217
15306
  }
15218
15307
  },
15219
15308
  "doNotInherit": true
15309
+ },
15310
+ {
15311
+ "displayName": "Inline JWKS in Client Registration",
15312
+ "name": "inlineJwks",
15313
+ "type": "boolean",
15314
+ "default": false,
15315
+ "description": "Whether to send the public keys directly in the dynamic client registration payload instead of advertising a JWKS URI. Enable this when the IdP cannot reach this instance (e.g. when self-hosted behind a firewall).",
15316
+ "displayOptions": {
15317
+ "show": {
15318
+ "jweEnabled": [
15319
+ true
15320
+ ],
15321
+ "useDynamicClientRegistration": [
15322
+ true
15323
+ ]
15324
+ }
15325
+ },
15326
+ "doNotInherit": true
15220
15327
  }
15221
15328
  ],
15222
15329
  "source": "n8n-cache",
@@ -15241,6 +15348,12 @@
15241
15348
  "displayName": "Odoo API",
15242
15349
  "documentationUrl": "odoo",
15243
15350
  "properties": [
15351
+ {
15352
+ "displayName": "⚠️ The /jsonrpc endpoint used by this credential is deprecated and will be removed in Odoo 22 (fall 2028) and Odoo Online 21.1 (winter 2027). Migrate to the API Key credential when upgrading to Odoo 19+. <a href=\"https://www.odoo.com/documentation/19.0/developer/reference/external_rpc_api.html\" target=\"_blank\">Learn more</a>",
15353
+ "name": "deprecationNotice",
15354
+ "type": "notice",
15355
+ "default": ""
15356
+ },
15244
15357
  {
15245
15358
  "displayName": "Site URL",
15246
15359
  "name": "url",
@@ -15291,6 +15404,61 @@
15291
15404
  }
15292
15405
  ]
15293
15406
  },
15407
+ {
15408
+ "typeName": "odooApiKeyApi",
15409
+ "displayName": "Odoo API (API Key)",
15410
+ "documentationUrl": "odoo",
15411
+ "properties": [
15412
+ {
15413
+ "displayName": "Requires Odoo 19+ and a Custom pricing plan (not available on One App Free or Standard). Uses the /json/2 External JSON-2 API. <a href=\"https://www.odoo.com/documentation/19.0/developer/reference/external_api.html\" target=\"_blank\">Learn more</a>",
15414
+ "name": "apiNotice",
15415
+ "type": "notice",
15416
+ "default": ""
15417
+ },
15418
+ {
15419
+ "displayName": "Site URL",
15420
+ "name": "url",
15421
+ "type": "string",
15422
+ "default": "",
15423
+ "placeholder": "https://my-organization.odoo.com",
15424
+ "required": true
15425
+ },
15426
+ {
15427
+ "displayName": "Database Name",
15428
+ "name": "db",
15429
+ "type": "string",
15430
+ "default": "",
15431
+ "description": "Leave blank to auto-detect from the Site URL (e.g. my-organization). Required for self-hosted instances with multiple databases."
15432
+ },
15433
+ {
15434
+ "displayName": "API Key",
15435
+ "name": "apiKey",
15436
+ "type": "string",
15437
+ "default": "",
15438
+ "typeOptions": {
15439
+ "password": true
15440
+ },
15441
+ "required": true,
15442
+ "description": "Generate an API key in Odoo at Settings &gt; Technical &gt; API Keys. Requires Odoo 19+."
15443
+ }
15444
+ ],
15445
+ "source": "n8n-cache",
15446
+ "sourcePath": "/.n8n-cache/packages/nodes-base/dist/credentials/OdooApiKeyApi.credentials.js",
15447
+ "usedByNodes": [
15448
+ {
15449
+ "nodeName": "odoo",
15450
+ "nodeType": "n8n-nodes-base.odoo",
15451
+ "nodeDisplayName": "Odoo",
15452
+ "required": true
15453
+ },
15454
+ {
15455
+ "nodeName": "odooTool",
15456
+ "nodeType": "n8n-nodes-base.odooTool",
15457
+ "nodeDisplayName": "Odoo Tool",
15458
+ "required": true
15459
+ }
15460
+ ]
15461
+ },
15294
15462
  {
15295
15463
  "typeName": "oktaApi",
15296
15464
  "displayName": "Okta API",
@@ -15934,6 +16102,18 @@
15934
16102
  "nodeDisplayName": "Oracle Database",
15935
16103
  "required": true
15936
16104
  },
16105
+ {
16106
+ "nodeName": "embeddingsOracleDb",
16107
+ "nodeType": "@n8n/n8n-nodes-langchain.embeddingsOracleDb",
16108
+ "nodeDisplayName": "Embeddings Oracle Database",
16109
+ "required": true
16110
+ },
16111
+ {
16112
+ "nodeName": "vectorStoreOracleDBVector",
16113
+ "nodeType": "@n8n/n8n-nodes-langchain.vectorStoreOracleDBVector",
16114
+ "nodeDisplayName": "Oracle Database Vector Store",
16115
+ "required": true
16116
+ },
15937
16117
  {
15938
16118
  "nodeName": "oracleDatabaseTool",
15939
16119
  "nodeType": "n8n-nodes-base.oracleDatabaseTool",