new-config should include API config

This commit is contained in:
Matthias 2021-03-28 20:19:39 +02:00
parent fc8478111e
commit f6211bc00e
3 changed files with 39 additions and 5 deletions

View File

@ -1,4 +1,5 @@
import logging import logging
import secrets
from pathlib import Path from pathlib import Path
from typing import Any, Dict, List from typing import Any, Dict, List
@ -138,6 +139,32 @@ def ask_user_config() -> Dict[str, Any]:
"message": "Insert Telegram chat id", "message": "Insert Telegram chat id",
"when": lambda x: x['telegram'] "when": lambda x: x['telegram']
}, },
{
"type": "confirm",
"name": "api_server",
"message": "Do you want to enable the Rest API (includes FreqUI)?",
"default": False,
},
{
"type": "text",
"name": "api_server_listen_addr",
"message": "Insert Api server Listen Address (best left untouched default!)",
"default": "127.0.0.1",
"when": lambda x: x['api_server']
},
{
"type": "text",
"name": "api_server_username",
"message": "Insert api-server username",
"default": "freqtrader",
"when": lambda x: x['api_server']
},
{
"type": "text",
"name": "api_server_password",
"message": "Insert api-server password",
"when": lambda x: x['api_server']
},
] ]
answers = prompt(questions) answers = prompt(questions)
@ -145,6 +172,9 @@ def ask_user_config() -> Dict[str, Any]:
# Interrupted questionary sessions return an empty dict. # Interrupted questionary sessions return an empty dict.
raise OperationalException("User interrupted interactive questions.") raise OperationalException("User interrupted interactive questions.")
# Force JWT token to be a random string
answers['api_server_jwt_key'] = secrets.token_hex()
return answers return answers

View File

@ -54,15 +54,15 @@
"chat_id": "{{ telegram_chat_id }}" "chat_id": "{{ telegram_chat_id }}"
}, },
"api_server": { "api_server": {
"enabled": false, "enabled": {{ api_server | lower }},
"listen_ip_address": "127.0.0.1", "listen_ip_address": "{{ api_server_listen_addr | default("127.0.0.1", true) }}",
"listen_port": 8080, "listen_port": 8080,
"verbosity": "error", "verbosity": "error",
"enable_openapi": false, "enable_openapi": false,
"jwt_secret_key": "somethingrandom", "jwt_secret_key": "{{ api_server_jwt_key }}",
"CORS_origins": [], "CORS_origins": [],
"username": "", "username": "{{ api_server_username }}",
"password": "" "password": "{{ api_server_password }}"
}, },
"bot_name": "freqtrade", "bot_name": "freqtrade",
"initial_state": "running", "initial_state": "running",

View File

@ -50,6 +50,10 @@ def test_start_new_config(mocker, caplog, exchange):
'telegram': False, 'telegram': False,
'telegram_token': 'asdf1244', 'telegram_token': 'asdf1244',
'telegram_chat_id': '1144444', 'telegram_chat_id': '1144444',
'api_server': False,
'api_server_listen_addr': '127.0.0.1',
'api_server_username': 'freqtrader',
'api_server_password': 'MoneyMachine',
} }
mocker.patch('freqtrade.commands.build_config_commands.ask_user_config', mocker.patch('freqtrade.commands.build_config_commands.ask_user_config',
return_value=sample_selections) return_value=sample_selections)