Source code for datacatalog.settings

import os
# from funcy import distinct, remove
from .helpers import fix_assets_path, array_from_string, parse_boolean, int_or_none, set_from_string
from .organization import *
from .callbacks import *
from .crypt import *
from .debug import *
from .identifiers import *
from .jsonschema import *
from .mongo import *

[docs]def all_settings(): from types import ModuleType settings = {} for name, item in globals().iteritems(): if not callable(item) and not name.startswith("__") and not isinstance(item, ModuleType): settings[name] = item return settings
# TODO - Add code and a build target that walks settings to generate an example Dockerfile w envs # TypedUUID # UUID_NAMESPACE = uuid3(NAMESPACE_DNS, DNS_DOMAIN) # Managed storage defaults STORAGE_SYSTEM = os.environ.get( 'CATALOG_STORAGE_SYSTEM', TACC_PRIMARY_STORAGE_SYSTEM) STORAGE_MANAGED_VERSION = os.environ.get( 'CATALOG_STORAGE_MANAGED_VERSION', 'v2') TAPIS_ANY_AUTHENTICATED_USERNAME = 'world' TAPIS_UNAUTHENTICATED_USERNAME = 'public' # Managed stores UPLOADS_ROOT = os.environ.get('CATALOG_UPLOADS_ROOT', 'uploads') UPLOADS_SYSTEM = os.environ.get('CATALOG_UPLOADS_SYSTEM', STORAGE_SYSTEM) UPLOADS_VERSION = os.environ.get('CATALOG_UPLOADS_VERSION', STORAGE_MANAGED_VERSION) PRODUCTS_ROOT = os.environ.get('CATALOG_PRODUCTS_ROOT', 'products') PRODUCTS_SYSTEM = os.environ.get('CATALOG_PRODUCTS_SYSTEM', STORAGE_SYSTEM) PRODUCTS_VERSION = os.environ.get('CATALOG_PRODUCTS_VERSION', STORAGE_MANAGED_VERSION) REFERENCES_ROOT = os.environ.get('CATALOG_REFERENCES_ROOT', 'references') REFERENCES_SYSTEM = os.environ.get('CATALOG_PREFERENCES_SYSTEM', STORAGE_SYSTEM) REFERENCES_VERSION = os.environ.get('CATALOG_REFERENCES_VERSION', STORAGE_MANAGED_VERSION) # Path naming preferences UNICODE_PATHS = parse_boolean(os.environ.get('CATALOG_UNICODE_PATHS', '0')) # Contents of record._admin.source RECORDS_SOURCE = os.environ.get('CATALOG_RECORDS_SOURCE', 'testing') # Prefix for minting file.id strings FILE_ID_PREFIX = os.environ.get('CATALOG_FILE_ID_PREFIX', 'file.tacc') + '.' LOG_LEVEL = os.environ.get('CATALOG_LOG_LEVEL', 'NOTSET') LOG_FIXITY_ERRORS = parse_boolean(os.environ.get('CATALOG_LOG_FIXITY_ERRORS', '0')) LOG_UPDATES = parse_boolean(os.environ.get('CATALOG_LOG_UPDATES', '1')) LOG_VERBOSE = parse_boolean(os.environ.get( 'CATALOG_LOG_VERBOSE', '0')) # Maximum number of MAX_INDEX_FILTERS = int(os.environ.get('CATALOG_MAX_INDEX_FILTERS', '100')) MAX_INDEX_PATTERNS = int(os.environ.get('CATALOG_MAX_INDEX_PATTERNS', '512')) # Python JSONschema Objects Cache PJS_CACHE_MAX_AGE = int(os.environ.get('CATALOG_PJS_CACHE_MAX_AGE', '3600')) PJS_CACHE_DIR = os.environ.get('CATALOG_PJS_CACHE_DIR', None)