# Copyright (C) 2005-2025 Splunk Inc. All Rights Reserved. """Constants shared between the content pack authorship feature""" from splunk.clilib.bundle_paths import make_splunkhome_path from collections import OrderedDict AUTHORSHIP_QUEUE_COLLECTION_URI = \ '/servicesNS/nobody/SA-ITOA/storage/collections/data/itsi_content_pack_authorship' CONTENT_AUTHORSHIP_GET_BULK_FIELDS = [ "create_time", "description", "end_time", "itsi_objects", "_key", "metadata.icon", "mod_source", "mod_timestamp", "_owner", "search_head_id", "splunk_objects", "splunk_server", "status", "start_time", "title", "cp_version", "_user", "_version" ] DEFAULT_ICON = 'icon.png' DEFAULT_IMAGE_PREFIX = 'data:image/png;base64,' DEFAULT_MAIN_SCREENSHOT = 'main_screenshot.png' DEFAULT_METADATA_PATH = make_splunkhome_path( ['etc', 'apps', 'itsi', 'appserver', 'static', 'images', 'content_pack_authorship'] ) DRAFT = 'Draft' QUEUED = 'Queued' GENERATING = 'Generating' GENERATED = 'Generated' FAILED = 'Failed' CONTENT_PACK_PREFIX = 'DA-ITSI-CP-CUST-' CONTENT_PACK_BASE_DIR = make_splunkhome_path(['var', 'itsi', 'content_pack']) AUTHORSHIP_COLLECTION = 'itsi_content_pack_authorship' CONTENT_PACK_NOT_FOUND_MESSAGE = 'Content pack does not exist. Check the logs for details.' CONTENT_PACK_IN_BUILDING_MESSAGE = 'Content pack is currently in Generating status. Try again later.' DEFAULT_CP_VERSION = '1.0.0' CONTENT_PACK_CP_VERSION_ATTR = 'cp_version' MAX_TITLE_SIZE = 100 DEFAULT_DESCRIPTION = 'Default description for this content pack' CONTENT_PACK_DESCRIPTION_ATTR = 'description' MAX_DESCRIPTION_SIZE = 1.6 * (1 << 10) DEFAULT_OVERVIEW = 'Default overview for this content pack' CONTENT_PACK_OVERVIEW_ATTR = 'overview' MAX_OVERVIEW_SIZE = 8 * (1 << 10) NEAP_KVSTORE_PATH = 'servicesNS/nobody/SA-ITOA/storage/collections/data/itsi_notable_event_aggregation_policy/' NOTABLE_EVENT_ACTION_CONF_PATH = 'servicesNS/nobody/SA-ITOA/configs/conf-notable_event_actions' CP_SETTINGS_SPEC_DATA = '''# Copyright (C) 2005-2025 Splunk Inc. All Rights Reserved. # This file contains attributes and values for configuring the custom content pack [cp_built_on] * Defines Splunk and ITSI version used to build the custom content pack splunk_version = * The Splunk version used to build the custom content pack * Default: '' itsi_version = * The ITSI version used to build the custom content pack * Default: '' ''' # Authorship Stages states PENDING = 'pending' RUNNING = 'running' FINISHED = 'finished' # flake8: noqa: E221, E241 # Authorship Stages STAGE_BUILD_QUEUED = 'STAGE_BUILD_QUEUED' STAGE_PARTIAL_BACKUP = 'STAGE_PARTIAL_BACKUP' STAGE_CONVERT_BACKUP = 'STAGE_CONVERT_BACKUP' STAGE_ADD_ITSI_DEPENDENCIES = 'STAGE_ADD_ITSI_DEPENDENCIES' STAGE_ADD_SPLUNK_OBJ = 'STAGE_ADD_SPLUNK_OBJ' STAGE_ADD_SPLUNK_ACL = 'STAGE_ADD_SPLUNK_ACL' STAGE_UPDATE_CONFIGS = 'STAGE_UPDATE_CONFIGS' STAGE_ADD_METADATA = 'STAGE_ADD_METADATA' STAGE_ADD_MANIFEST = 'STAGE_ADD_MANIFEST' STAGE_ADD_VERSION = 'STAGE_ADD_VERSION' STAGE_PACKAGE_CP = 'STAGE_PACKAGE_CP' STAGE_BUILD_COMPLETE = 'STAGE_BUILD_COMPLETE' # STAGE_ID : relative time t AUTHORSHIP_STAGES = OrderedDict({ STAGE_BUILD_QUEUED : 0, STAGE_PARTIAL_BACKUP : 5, STAGE_CONVERT_BACKUP : 30, STAGE_ADD_ITSI_DEPENDENCIES : 15, STAGE_ADD_SPLUNK_OBJ : 5, STAGE_ADD_SPLUNK_ACL : 15, STAGE_UPDATE_CONFIGS : 5, STAGE_ADD_METADATA : 5, STAGE_ADD_MANIFEST : 5, STAGE_ADD_VERSION : 5, STAGE_PACKAGE_CP : 5, STAGE_BUILD_COMPLETE : 5 }) DEFAULT_BUILD_TIMEOUT = 3600 HOUR_IN_SECONDS = 3600