diff --git a/archivebox/core/views.py b/archivebox/core/views.py
index 128de658..02f67ffa 100644
--- a/archivebox/core/views.py
+++ b/archivebox/core/views.py
@@ -39,6 +39,7 @@ from ..config import (
USER_CONFIG,
SAVE_ARCHIVE_DOT_ORG,
PREVIEW_ORIGINALS,
+ CONSTANTS,
)
from ..logging_util import printable_filesize
from ..main import add
@@ -502,6 +503,8 @@ class HealthCheckView(View):
def find_config_section(key: str) -> str:
+ if key in CONSTANTS:
+ return 'CONSTANT'
matching_sections = [
name for name, opts in CONFIG_SCHEMA.items() if key in opts
]
@@ -550,20 +553,33 @@ def live_config_list_view(request: HttpRequest, **kwargs) -> TableContext:
rows['Key'].append(ItemLink(key, key=key))
rows['Type'].append(mark_safe(f'{find_config_type(key)}
'))
rows['Value'].append(mark_safe(f'{CONFIG[key]}
') if key_is_safe(key) else '******** (redacted)')
- rows['Default'].append(mark_safe(f'{find_config_default(key) or "See here..."}
'))
+ rows['Default'].append(mark_safe(f'{find_config_default(key) or "See here..."}
'))
# rows['Documentation'].append(mark_safe(f'Wiki: {key}'))
rows['Aliases'].append(', '.join(CONFIG_SCHEMA[section][key].get('aliases', [])))
section = 'DYNAMIC'
for key in DYNAMIC_CONFIG_SCHEMA.keys():
+ if key in CONSTANTS:
+ continue
rows['Section'].append(section) # section.replace('_', ' ').title().replace(' Config', '')
rows['Key'].append(ItemLink(key, key=key))
rows['Type'].append(mark_safe(f'{find_config_type(key)}
'))
rows['Value'].append(mark_safe(f'{CONFIG[key]}
') if key_is_safe(key) else '******** (redacted)')
- rows['Default'].append(mark_safe(f'{find_config_default(key) or "See here..."}
'))
+ rows['Default'].append(mark_safe(f'{find_config_default(key) or "See here..."}
'))
# rows['Documentation'].append(mark_safe(f'Wiki: {key}'))
rows['Aliases'].append(ItemLink(key, key=key) if key in USER_CONFIG else '')
+ section = 'CONSTANT'
+ for key in CONSTANTS.keys():
+ rows['Section'].append(section) # section.replace('_', ' ').title().replace(' Config', '')
+ rows['Key'].append(ItemLink(key, key=key))
+ rows['Type'].append(mark_safe(f'{find_config_type(key)}
'))
+ rows['Value'].append(mark_safe(f'{CONFIG[key]}
') if key_is_safe(key) else '******** (redacted)')
+ rows['Default'].append(mark_safe(f'{find_config_default(key) or "See here..."}
'))
+ # rows['Documentation'].append(mark_safe(f'Wiki: {key}'))
+ rows['Aliases'].append(ItemLink(key, key=key) if key in USER_CONFIG else '')
+
+
return TableContext(
title="Computed Configuration Values",
table=rows,
@@ -576,12 +592,20 @@ def live_config_value_view(request: HttpRequest, key: str, **kwargs) -> ItemCont
aliases = USER_CONFIG.get(key, {}).get("aliases", [])
+ if key in CONSTANTS:
+ section_header = mark_safe(f'[CONSTANTS] {key}
(read-only, hardcoded by ArchiveBox)')
+ elif key in USER_CONFIG:
+ section_header = mark_safe(f'data / ArchiveBox.conf [{find_config_section(key)}] {key}
')
+ else:
+ section_header = mark_safe(f'[DYNAMIC CONFIG] {key}
(read-only, calculated at runtime)')
+
+
return ItemContext(
slug=key,
title=key,
data=[
{
- "name": mark_safe(f'data / ArchiveBox.conf [{find_config_section(key)}] {key}
' if key in USER_CONFIG else f'[DYNAMIC CONFIG] {key}
(calculated at runtime)'),
+ "name": section_header,
"description": None,
"fields": {
'Key': key,
@@ -596,14 +620,16 @@ def live_config_value_view(request: HttpRequest, key: str, **kwargs) -> ItemCont
'''),
'Type': mark_safe(f'''
-
+
See full definition in archivebox/config.py
...
'''),
'Value': mark_safe(f'''
{'Value is redacted for your security. (Passwords, secrets, API tokens, etc. cannot be viewed in the Web UI)
' if not key_is_safe(key) else ''}
- Default:
- {find_config_default(key) or 'See 1here...'}
+
+ Default:
+
+ {find_config_default(key) or '↗️ See in ArchiveBox source code...'}