feat(n8n-sandbox): expose shared API key in install form
Test / test (pull_request) Canceled after 0s
Test / test (pull_request) Canceled after 0s
This commit is contained in:
@@ -65,6 +65,18 @@ describe("each app should have a valid config.json", async () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe("n8n-sandbox installation secrets", () => {
|
||||||
|
test("exposes the shared API key as a password field", async () => {
|
||||||
|
const fileContent = await getFile('n8n-sandbox', 'config.json')
|
||||||
|
const config = JSON.parse(fileContent || '{}')
|
||||||
|
const apiKey = config.form_fields?.find((field: { env_variable?: string }) => field.env_variable === 'SANDBOX_API_KEYS')
|
||||||
|
|
||||||
|
expect(apiKey?.type).toBe('password')
|
||||||
|
expect(apiKey?.required).toBe(true)
|
||||||
|
expect(apiKey?.min).toBeGreaterThanOrEqual(48)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe("modern compose files preserve runtime semantics", () => {
|
describe("modern compose files preserve runtime semantics", () => {
|
||||||
test("n8n-sandbox keeps its one-shot certificate service", async () => {
|
test("n8n-sandbox keeps its one-shot certificate service", async () => {
|
||||||
const fileContent = await getFile('n8n-sandbox', 'docker-compose.yml')
|
const fileContent = await getFile('n8n-sandbox', 'docker-compose.yml')
|
||||||
|
|||||||
@@ -18,11 +18,11 @@
|
|||||||
"supported_architectures": ["amd64", "arm64"],
|
"supported_architectures": ["amd64", "arm64"],
|
||||||
"form_fields": [
|
"form_fields": [
|
||||||
{
|
{
|
||||||
"type": "random",
|
"type": "password",
|
||||||
"encoding": "hex",
|
|
||||||
"min": 48,
|
"min": 48,
|
||||||
"label": "Cle API sandbox (SANDBOX_API_KEYS)",
|
"max": 128,
|
||||||
"hint": "A recopier dans l'app n8n : N8N_SANDBOX_SERVICE_API_KEY. Plusieurs cles possibles, separees par des virgules.",
|
"label": "Clé API partagée avec n8n (SANDBOX_API_KEYS)",
|
||||||
|
"hint": "Choisir une clé forte, puis recopier cette même valeur dans N8N_SANDBOX_SERVICE_API_KEY dans les paramètres de l'app n8n officielle.",
|
||||||
"required": true,
|
"required": true,
|
||||||
"env_variable": "SANDBOX_API_KEYS"
|
"env_variable": "SANDBOX_API_KEYS"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Sandbox auto-hébergé pour l'**AI Assistant** de n8n (setup « Self-host the sa
|
|||||||
|
|
||||||
## Après l'installation
|
## Après l'installation
|
||||||
|
|
||||||
Dans l'app **n8n** (paramètres ou `app.env`), ajouter :
|
Lors de l'installation, choisir une clé forte dans le champ **Clé API partagée avec n8n**. Dans l'app officielle **n8n** (paramètres ou `app.env`), ajouter le bloc suivant en recopiant cette même clé :
|
||||||
|
|
||||||
```
|
```
|
||||||
N8N_ENABLED_MODULES=instance-ai
|
N8N_ENABLED_MODULES=instance-ai
|
||||||
@@ -18,7 +18,8 @@ N8N_INSTANCE_AI_SANDBOX_ENABLED=true
|
|||||||
N8N_INSTANCE_AI_SANDBOX_PROVIDER=n8n-sandbox
|
N8N_INSTANCE_AI_SANDBOX_PROVIDER=n8n-sandbox
|
||||||
N8N_INSTANCE_AI_SANDBOX_IMAGE=n8nio/n8n-sandbox-service-sandbox:1.3.0
|
N8N_INSTANCE_AI_SANDBOX_IMAGE=n8nio/n8n-sandbox-service-sandbox:1.3.0
|
||||||
N8N_SANDBOX_SERVICE_URL=http://sandbox-api:8080
|
N8N_SANDBOX_SERVICE_URL=http://sandbox-api:8080
|
||||||
N8N_SANDBOX_SERVICE_API_KEY=<valeur du champ « Clé API sandbox »>
|
N8N_SANDBOX_SERVICE_API_KEY=<même valeur que « Clé API partagée avec n8n »>
|
||||||
|
N8N_PROXY_HOPS=1
|
||||||
```
|
```
|
||||||
|
|
||||||
Puis redémarrer n8n et vérifier depuis son conteneur :
|
Puis redémarrer n8n et vérifier depuis son conteneur :
|
||||||
|
|||||||
Reference in New Issue
Block a user