Select Git revision
nginx.include.conf
Forked from
uffd / uffd
Source project has a limited visibility.
list_all_settings.py 1.67 KiB
import click
import json
import requests
# From library/zammad.py
setting_secrets = [
'check_mk_token',
'monitoring_token',
'cti_token',
'placetel_token',
'sipgate_token',
'import_freshdesk_endpoint_key',
'import_otrs_endpoint_key',
'import_zendesk_endpoint_key',
'import_kayako_endpoint_password',
'import_otrs_password',
'es_password',
'proxy_password',
]
@click.command(help='List available settings for zammad')
@click.option('--api-url', required=True)
@click.option('--api-token', required=True) # Use environment variable ZAMMAD_API_TOKEN!
@click.option('--ipv4', '-4', is_flag=True, help='Force IPv4')
def main(api_url, api_token, ipv4):
if ipv4:
requests.packages.urllib3.util.connection.HAS_IPV6 = False
session = requests.Session()
session.headers['Authorization'] = 'Token token=' + api_token
resp = session.get(f'{api_url}/api/v1/settings')
resp.raise_for_status()
settings_by_area = {}
for setting in resp.json():
settings_by_area.setdefault(setting['area'], []).append(setting)
for area, settings in sorted(settings_by_area.items(), key=lambda item: item[0]):
print(f'# === {area} ===')
for setting in sorted(settings, key=lambda setting: setting['name']):
name = setting['name']
default = json.dumps(setting["state_initial"]["value"])
if name in setting_secrets:
default = '<hidden>' if default else '<empty>'
elif name == 'system_id':
default = '<randomly chosen>'
description = setting['description'].replace('\n', '\n# ')
if not description or description == '-':
description = setting['title']
print(f'# {description}')
print(f'{name}: {default}')
print()
if __name__ == '__main__':
main(auto_envvar_prefix='ZAMMAD')