dtSpark 1.0.8__tar.gz → 1.0.9__tar.gz
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.
- {dtspark-1.0.8 → dtspark-1.0.9}/PKG-INFO +1 -1
- dtspark-1.0.9/src/dtSpark/_version.txt +1 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/core/application.py +48 -47
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark.egg-info/PKG-INFO +1 -1
- dtspark-1.0.8/src/dtSpark/_version.txt +0 -1
- {dtspark-1.0.8 → dtspark-1.0.9}/LICENSE +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/MANIFEST.in +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/README.md +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/pyproject.toml +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/setup.cfg +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/setup.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/_description.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/_full_name.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/_licence.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/_metadata.yaml +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/_name.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/aws/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/aws/authentication.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/aws/bedrock.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/aws/costs.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/aws/pricing.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/cli_interface.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/conversation_manager.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/core/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/core/context_compaction.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/daemon/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/daemon/__main__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/daemon/action_monitor.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/daemon/daemon_app.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/daemon/daemon_manager.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/daemon/execution_coordinator.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/daemon/pid_file.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/autonomous_actions.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/backends.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/connection.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/conversations.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/credential_prompt.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/files.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/mcp_ops.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/messages.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/schema.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/tool_permissions.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/database/usage.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/files/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/files/manager.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/launch.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/limits/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/limits/costs.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/limits/tokens.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/llm/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/llm/anthropic_direct.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/llm/base.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/llm/context_limits.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/llm/manager.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/llm/ollama.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/mcp_integration/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/mcp_integration/manager.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/mcp_integration/tool_selector.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/resources/config.yaml.template +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/safety/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/safety/llm_service.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/safety/patterns.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/safety/prompt_inspector.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/safety/violation_logger.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/scheduler/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/scheduler/creation_tools.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/scheduler/execution_queue.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/scheduler/executor.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/scheduler/manager.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/tools/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/tools/builtin.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/auth.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/dependencies.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/endpoints/__init__.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/endpoints/autonomous_actions.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/endpoints/chat.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/endpoints/conversations.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/endpoints/main_menu.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/endpoints/streaming.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/server.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/session.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/ssl_utils.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/static/css/dark-theme.css +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/static/js/actions.js +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/static/js/chat.js +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/static/js/main.js +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/static/js/sse-client.js +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/templates/actions.html +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/templates/base.html +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/templates/chat.html +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/templates/conversations.html +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/templates/goodbye.html +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/templates/login.html +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/templates/main_menu.html +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/templates/new_conversation.html +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark/web/web_interface.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark.egg-info/SOURCES.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark.egg-info/dependency_links.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark.egg-info/entry_points.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark.egg-info/not-zip-safe +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark.egg-info/requires.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/src/dtSpark.egg-info/top_level.txt +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/README.md +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/debug_bulk_api.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/diagnose_aws_costs.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_builtin_tools.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_builtin_tools_integration.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_bulk_pricing.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_filesystem_tools.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_mcp_server.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_ollama_context.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_ollama_conversation.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_ollama_integration.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_pricing_integration.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_prompt_inspection.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_status_indicator.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_tool_selector.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_web_auth.py +0 -0
- {dtspark-1.0.8 → dtspark-1.0.9}/tests/test_web_session.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.0.9
|
|
@@ -124,6 +124,7 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
124
124
|
if value is not None:
|
|
125
125
|
return value
|
|
126
126
|
|
|
127
|
+
|
|
127
128
|
# Fallback: Navigate the dict manually
|
|
128
129
|
parts = key.split('.')
|
|
129
130
|
if len(parts) > 1:
|
|
@@ -1258,10 +1259,6 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
1258
1259
|
from dtSpark.cli_interface import CLIInterface
|
|
1259
1260
|
cli = CLIInterface()
|
|
1260
1261
|
|
|
1261
|
-
# Initialize secrets manager for storing sensitive credentials
|
|
1262
|
-
from dtPyAppFramework.settings import Settings
|
|
1263
|
-
secret_manager = Settings().secret_manager
|
|
1264
|
-
|
|
1265
1262
|
# Display SPARK splash screen
|
|
1266
1263
|
cli.print_splash_screen(
|
|
1267
1264
|
full_name=full_name(),
|
|
@@ -1283,10 +1280,23 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
1283
1280
|
))
|
|
1284
1281
|
cli.console.print()
|
|
1285
1282
|
|
|
1286
|
-
# Destination:
|
|
1287
|
-
|
|
1288
|
-
|
|
1283
|
+
# Destination: depends on CONTAINER_MODE environment variable
|
|
1284
|
+
container_mode = os.environ.get('CONTAINER_MODE', '').lower() == 'true'
|
|
1285
|
+
if container_mode:
|
|
1286
|
+
# Container mode: use working directory
|
|
1287
|
+
dest_config_dir = os.path.join(os.getcwd(), 'config')
|
|
1288
|
+
secrets_dir = os.getcwd()
|
|
1289
|
+
else:
|
|
1290
|
+
# Normal mode: use user data directory
|
|
1291
|
+
user_data_path = ApplicationPaths().usr_data_root_path
|
|
1292
|
+
dest_config_dir = os.path.join(user_data_path, 'config')
|
|
1293
|
+
secrets_dir = user_data_path
|
|
1294
|
+
|
|
1289
1295
|
dest_config = os.path.join(dest_config_dir, 'config.yaml')
|
|
1296
|
+
secrets_file = os.path.join(secrets_dir, 'secrets.yaml')
|
|
1297
|
+
|
|
1298
|
+
# Collection for secrets to be written to secrets.yaml
|
|
1299
|
+
secrets_to_store = []
|
|
1290
1300
|
|
|
1291
1301
|
cli.print_info(f"Configuration will be created at: {dest_config}")
|
|
1292
1302
|
cli.console.print()
|
|
@@ -1398,7 +1408,7 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
1398
1408
|
)
|
|
1399
1409
|
|
|
1400
1410
|
cli.console.print()
|
|
1401
|
-
cli.console.print("[dim]AWS Credentials (stored
|
|
1411
|
+
cli.console.print("[dim]AWS Credentials (will be stored in secrets.yaml for secure ingestion):[/dim]")
|
|
1402
1412
|
|
|
1403
1413
|
# Access Key ID (not typically considered secret, but mask anyway for consistency)
|
|
1404
1414
|
aws_access_key_id_input = Prompt.ask(
|
|
@@ -1406,9 +1416,8 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
1406
1416
|
default=""
|
|
1407
1417
|
)
|
|
1408
1418
|
if aws_access_key_id_input:
|
|
1409
|
-
|
|
1419
|
+
secrets_to_store.append({"name": "aws_access_key_id", "value": aws_access_key_id_input})
|
|
1410
1420
|
aws_access_key_id = "SEC/aws_access_key_id"
|
|
1411
|
-
cli.print_success("✓ AWS access key ID securely stored in secrets manager")
|
|
1412
1421
|
|
|
1413
1422
|
# Secret Access Key (sensitive - mask input)
|
|
1414
1423
|
aws_secret_access_key_input = Prompt.ask(
|
|
@@ -1417,9 +1426,8 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
1417
1426
|
password=True
|
|
1418
1427
|
)
|
|
1419
1428
|
if aws_secret_access_key_input:
|
|
1420
|
-
|
|
1429
|
+
secrets_to_store.append({"name": "aws_secret_access_key", "value": aws_secret_access_key_input})
|
|
1421
1430
|
aws_secret_access_key = "SEC/aws_secret_access_key"
|
|
1422
|
-
cli.print_success("✓ AWS secret access key securely stored in secrets manager")
|
|
1423
1431
|
|
|
1424
1432
|
# Session Token (only for session auth)
|
|
1425
1433
|
if aws_auth_method == "session":
|
|
@@ -1430,9 +1438,8 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
1430
1438
|
password=True
|
|
1431
1439
|
)
|
|
1432
1440
|
if aws_session_token_input:
|
|
1433
|
-
|
|
1441
|
+
secrets_to_store.append({"name": "aws_session_token", "value": aws_session_token_input})
|
|
1434
1442
|
aws_session_token = "SEC/aws_session_token"
|
|
1435
|
-
cli.print_success("✓ AWS session token securely stored in secrets manager")
|
|
1436
1443
|
|
|
1437
1444
|
cli.console.print()
|
|
1438
1445
|
enable_cost_tracking = Confirm.ask(
|
|
@@ -1475,11 +1482,10 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
1475
1482
|
password=True
|
|
1476
1483
|
)
|
|
1477
1484
|
|
|
1478
|
-
# Store API key in secrets
|
|
1485
|
+
# Store API key in secrets.yaml if provided
|
|
1479
1486
|
if anthropic_api_key_input:
|
|
1480
|
-
|
|
1487
|
+
secrets_to_store.append({"name": "anthropic_api_key", "value": anthropic_api_key_input})
|
|
1481
1488
|
anthropic_api_key = "SEC/anthropic_api_key"
|
|
1482
|
-
cli.print_success("✓ Anthropic API key securely stored in secrets manager")
|
|
1483
1489
|
else:
|
|
1484
1490
|
anthropic_api_key = ""
|
|
1485
1491
|
|
|
@@ -1538,23 +1544,21 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
1538
1544
|
cli.console.print("[dim]Leave username/password empty (null) to be prompted on startup (more secure)[/dim]")
|
|
1539
1545
|
db_username_input = Prompt.ask("Database username (or press Enter for null)", default="")
|
|
1540
1546
|
|
|
1541
|
-
# Store database username in secrets
|
|
1547
|
+
# Store database username in secrets.yaml if provided
|
|
1542
1548
|
if db_username_input:
|
|
1543
1549
|
secret_key = f"db_{database_type}_username"
|
|
1544
|
-
|
|
1550
|
+
secrets_to_store.append({"name": secret_key, "value": db_username_input})
|
|
1545
1551
|
db_username = f"SEC/{secret_key}"
|
|
1546
|
-
cli.print_success(f"✓ Database username securely stored in secrets manager")
|
|
1547
1552
|
else:
|
|
1548
1553
|
db_username = "null"
|
|
1549
1554
|
|
|
1550
1555
|
db_password_input = Prompt.ask("Database password (or press Enter for null)", default="", password=True)
|
|
1551
1556
|
|
|
1552
|
-
# Store database password in secrets
|
|
1557
|
+
# Store database password in secrets.yaml if provided
|
|
1553
1558
|
if db_password_input:
|
|
1554
1559
|
secret_key = f"db_{database_type}_password"
|
|
1555
|
-
|
|
1560
|
+
secrets_to_store.append({"name": secret_key, "value": db_password_input})
|
|
1556
1561
|
db_password = f"SEC/{secret_key}"
|
|
1557
|
-
cli.print_success(f"✓ Database password securely stored in secrets manager")
|
|
1558
1562
|
else:
|
|
1559
1563
|
db_password = "null"
|
|
1560
1564
|
|
|
@@ -2098,37 +2102,34 @@ class AWSBedrockCLI(AbstractApp):
|
|
|
2098
2102
|
f.write(config_content)
|
|
2099
2103
|
|
|
2100
2104
|
cli.console.print()
|
|
2101
|
-
cli.print_success(
|
|
2105
|
+
cli.print_success("✓ Configuration file created successfully!")
|
|
2102
2106
|
cli.console.print()
|
|
2103
2107
|
cli.print_info(f"Location: {dest_config}")
|
|
2104
2108
|
cli.console.print()
|
|
2105
2109
|
|
|
2106
|
-
#
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
if database_type != "sqlite":
|
|
2118
|
-
if db_username.startswith("SEC/"):
|
|
2119
|
-
secrets_stored.append(f"• {database_type.upper()} database username")
|
|
2120
|
-
if db_password.startswith("SEC/"):
|
|
2121
|
-
secrets_stored.append(f"• {database_type.upper()} database password")
|
|
2122
|
-
|
|
2123
|
-
if secrets_stored:
|
|
2110
|
+
# Write secrets.yaml if there are secrets to store
|
|
2111
|
+
if secrets_to_store:
|
|
2112
|
+
import yaml
|
|
2113
|
+
secrets_yaml_content = {"secrets": secrets_to_store}
|
|
2114
|
+
|
|
2115
|
+
# Ensure secrets directory exists
|
|
2116
|
+
os.makedirs(secrets_dir, exist_ok=True)
|
|
2117
|
+
|
|
2118
|
+
with open(secrets_file, 'w', encoding='utf-8') as f:
|
|
2119
|
+
yaml.dump(secrets_yaml_content, f, default_flow_style=False, sort_keys=False)
|
|
2120
|
+
|
|
2124
2121
|
cli.console.print()
|
|
2125
2122
|
cli.print_separator("─")
|
|
2126
|
-
cli.console.print("[bold green]Secrets
|
|
2127
|
-
for secret in
|
|
2128
|
-
cli.console.print(f" {secret}")
|
|
2123
|
+
cli.console.print("[bold green]Secrets Written to secrets.yaml:[/bold green]")
|
|
2124
|
+
for secret in secrets_to_store:
|
|
2125
|
+
cli.console.print(f" • {secret['name']}")
|
|
2126
|
+
cli.console.print()
|
|
2127
|
+
cli.print_info(f"Location: {secrets_file}")
|
|
2128
|
+
cli.console.print()
|
|
2129
|
+
cli.console.print("[dim]On next application startup, secrets will be automatically[/dim]")
|
|
2130
|
+
cli.console.print("[dim]ingested into the secrets manager and secrets.yaml will be deleted.[/dim]")
|
|
2129
2131
|
cli.console.print()
|
|
2130
|
-
cli.console.print("[dim]
|
|
2131
|
-
cli.console.print("[dim]referenced in config.yaml as SEC/<key_name> for security.[/dim]")
|
|
2132
|
+
cli.console.print("[dim]Secrets are referenced in config.yaml as SEC/<key_name>.[/dim]")
|
|
2132
2133
|
cli.print_separator("─")
|
|
2133
2134
|
cli.console.print()
|
|
2134
2135
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.0.8
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|