Outgoing feed - Mount point upload#

Note

This article describes how to configure outgoing feeds for a particular feed source. To see how to configure outgoing feeds in general, see Create and configure outgoing feeds.

Specifications

Transport type

Mount point upload

Content type

  • Advanced Entities CSV (IC 3.3.0 and newer)

  • Advanced Observables CSV (IC 3.3.0 and newer)

  • ArcSight CEF

  • EclecticIQ Entities CSV

  • EclecticIQ HTML Report

  • EclecticIQ HTML Report Digest

  • EclecticIQ JSON

  • EclecticIQ Observables CSV

  • EclecticIQ PDF

  • PAN-OS External Dynamic List

  • Plain text value

  • STIX 1.2

  • STIX 2.1

For more information, see Configure content types.

Description

The feed publishes entities and observables in the selected content type to the specified destination location on a local or network unit. Each time the outgoing feed task runs, it generates a data package containing zero or more entities, depending on the outgoing feed update strategy, and on the feed data source containing data that match the feed configuration.

Configure the outgoing feed#

  1. Create or edit an outgoing feed.

  2. From the Transport type drop-down menu, select Mount point upload.

  3. From the Content type drop-down menu, select the appropriate content type for the data you want to publish through the outgoing feed.
    The selected content type for the feed should match the source data format.
    This can vary, depending on the dataset source(s) you retrieve the data from.

  4. From the Datasets drop-down menu, select one or more existing datasets to use as sources to populate the outgoing feed content.
    For the feed not to be empty, at least one selected dataset should contain entities and observables in the same format as the configured content type for the feed.

  5. From the Update strategy drop-down menu, select the preferred method to populate the outgoing feed with data before publishing it.
    Update strategies help define how content is aggregated and packaged for publication when an outgoing feed task runs:

    • Append: every time the outgoing feed task runs, it fetches only new, unpublished data to generate the content for publication.
      The published packages contain only new entities and observables ingested in the platform after the previous execution of the outgoing feed.

    • Replace: every time the outgoing feed task runs, it fetches new and existing data to generate the content for publication.
      The published packages contain new and existing entities and observables included also in the previous execution of the outgoing feed.

    • Diff : this option is available only for the EclecticIQ Entities CSV and EclecticIQ Observables CSV content types. Every time the outgoing feed task runs, new data is compared against existing data to identify any differences between the two datasets:

      • At entity level: any entities added to or removed from the set, if EclecticIQ Entities CSV is the designated content type for the feed.

      • At observable level: any observable added to or removed from the entities in the set, if EclecticIQ Observables CSV is the designated content type for the feed.

      Depending on the selected CSV content option, each row in the CSV output contains information about one entity being added or removed, or one observable being added or removed.
      An extra diff column is added to the output CSV to indicate if a row, and therefore either an entity or an observable, has been added to or removed from the set.
      This option enables identifying changes in a feed between two executions without downloading the whole feed every time.

      Note

      Update strategies help define how content is aggregated and packaged for publication when an outgoing feed task runs:

      Update strategies rely on the last_updated_at database field to identify entities whose timestamp value was updated since the previous execution of the outgoing feed.
      Entities with a more recent timestamp value compared to the previous execution of the outgoing feed are packaged and included in the published content of the outgoing feed.

      • Changes to the data section of an entity create a new version of the entity.
        They also add a new log entry to the entity history to record the changes.

      • Changes to the meta section of an entity do not create a new version of the entity.
        However, they do update the timestamp value of the last_update_at database field.

  6. In the Mount point path field, enter the path to the local or network unit to save the outgoing feed content to, so as to make it available for retrieval.
    Example: /media/feeds/outgoing/folder.

  7. Select the Include documents attached to entities checkbox to include in the outgoing feed content also any attachments to the published entities such as MS Word documents or PDF files.

  8. To store your changes, click Save; to discard them, click Cancel.

View and retrieve outgoing feed content#

  1. In the top navigation bar click Data configuration > Outgoing feeds.

  2. In the Outgoing feeds view, click anywhere in the row corresponding to the outgoing feed whose content you want to view or retrieve.

  3. In the selected outgoing feed detail pane, click the Created packages tab.

  4. In the Created packages tab, under the Download column header, click the name of a package to download it, and to save it to a target location.

Whitelist mount point paths#

Warning

Explicitly whitelist mount point paths to make them accessible to incoming and to outgoing feeds.
If you do not whitelist the mount point path an incoming or an outgoing feed should access to retrieve data for ingestion or for publication, the feed will not be able to fetch or to publish any content.

The /etc/eclecticiq/platform_settings.py configuration file includes dedicated mount point whitelists for ingestion – incoming feeds – and for dissemination – outgoing feeds.

settings.py (sourced from EIQ platform-backend)

Author

Rutger Prins

Commit

ab323b23ebb93fde6c62b124f6823579957bd1d5

Timestamp

August, 27, 2021 08:57 AM

Full path

eiq/platform/settings.py

Title

Merge branch ‘ext-commons-update-2.10.x’ into ‘release-2.10.x’

Description

Extension Commons update 2.10.x See merge request engineering/platform-backend!6075

# Directories that can be accessed from mount point feeds. POLL is for incoming
# feeds, PUSH is for outgoing feeds. Example: ["/mnt/", "/media/"]
MOUNT_POINT_POLL_ALLOWED_DIRECTORIES: Sequence[str] = []
MOUNT_POINT_PUSH_ALLOWED_DIRECTORIES: Sequence[str] = []
  • MOUNT_POINT_POLL_ALLOWED_DIRECTORIES is a list of allowed mount point paths that incoming feeds can access to fetch data from.

  • MOUNT_POINT_PUSH_ALLOWED_DIRECTORIES is a list of allowed mount point paths that outgoing feeds can access to publish data to.

To whitelist a mount point path:

  1. Open the configuration file:

    sudo vi /etc/eclecticiq/platform_settings.py
    
  2. Look for MOUNT_POINT_POLL_ALLOWED_DIRECTORIES to make network locations accessible to incoming feeds, or for for MOUNT_POINT_PUSH_ALLOWED_DIRECTORIES to make network locations accessible to outgoing feeds.
    Both parameters are lists that take valid directory paths as list elements.
    Each path in the list points to a location that incoming feeds can access to fetch the data to be ingested, or that outgoing feeds can access to publish the content of a feed run.
    Incoming and outgoing feeds can access files and directories inside the specified locations, based on the configured access rights of the available assets and resources.

  3. Add as many paths to each list as necessary, then save the file and exit.
    Example:

    # Whitelist specific dirs; specific file types; everything inside subdirs of a dir
    MOUNT_POINT_PUSH_ALLOWED_DIRECTORIES = [ "/mnt/", "/media/", "/media/data/" ]
    :::