Skip to content
Snippets Groups Projects
Select Git revision
  • pylint_disable_consider-using-f-string
  • master default protected
  • pw-autocomplete-off
  • redis-rate-limits
  • typehints
  • incremental-sync
  • test_instance_path
  • consistent_strings
  • qol_edits
  • v1.2.x
  • v1.x.x
  • v1.1.x
  • feature_invite_validuntil_minmax
  • Dockerfile
  • v1.0.x
  • roles-recursive-cte
  • v2.2.0
  • v2.1.0
  • v2.0.1
  • v2.0.0
  • v1.2.0
  • v1.1.2
  • v1.1.1
  • v1.0.2
  • v1.1.0
  • v1.0.1
  • v1.0.0
  • v0.3.0
  • v0.2.0
  • v0.1.5
  • v0.1.4
  • v0.1.2
32 results

nginx.include.conf

Blame
  • 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')