Version: 0.5

django-taxii-services 0.5 Documentation

django-taxii-services is an installable Django app that:

  1. Demonstrates 100% of TAXII 1.0 and TAXII 1.1 functionality
  2. Enables rapid prototyping of TAXII applications (if you’re using Django, that is)
  3. Enables 3rd party developers to extend built-in functionality

Contents:

Version: 0.5

Getting Started

This page gives an introduction to django-taxii-services and how to use it. Please note that this page is being actively worked on and feedback is welcome (taxii@mitre.org).

Note that the GitHub repository is named django-taxii-services, but once installed, the library is imported using the import taxii_services statement.

Installation

There are two options for installation:

  1. pip install taxii_services --upgrade
  2. Download the latest zip from https://pypi.python.org/pypi/taxii-services

Local YETI Deployment

This information is now available here: http://yeti.readthedocs.org/en/latest/getting_started.html

Version: 0.5

Handlers

This page has documentation for two concepts specific to django-taxii-services: QueryHandlers and MessageHandlers.

MessageHandlers

In django-taxii-services, MessageHandlers are how a TAXII Service handles a request and creates a response. Each TAXII Service can have one message handler per message exchange.

The base_taxii_handlers.MessageHandler class is the base class for all TAXII Message Handlers and has a single extension point – the ‘handle_message’ function. Implementers who wish to have the most power over their MessageHandler should extend MessageHandler and implement the ‘handle_message’ function. Implementers can also re-use django-taxii-service’s built-in TAXII Message Handlers for less power, but more work already done for them.

Built-in TAXII Message Handlers have two goals: first, to provide correct functionality for the TAXII Message Exchange they support; second, to provide an extensible/reusable class where implementers can make (hopefully) simple modification(s) to a built-in MessageHandler to achieve functionality specific to their needs. Note that all built-in TAXII Message Handlers extend the base_taxii_handlers.MessageHandler class. To meet the second goal of extensibility/reusability, some built-in TAXII Message Handlers have extension points in addition to the ‘handle_message’ function. These extension points (functions) are called by the ‘handle_message’ function of the built-in TAXII Message Handler as part of the workflow for handling that message. One example of this is the ‘save_content_block’ method of the InboxMessage11Handler, which allows implementers to override just the InboxMessage11Handler’s default logic for saving content without needing to re-implement the rest of the handler’s processing logic.

QueryHandlers

(TODO: Write this)

Version: 0.5

Release Notes

0.5 (2017-11-20)

  • #46 - Convert longs to ints (@AdamTheAnalyst)
  • #44 - Use absolute imports (@gtback)
  • #40 - Return full URLs in <Address> elements (@jasenj1)
  • #30 - Drop support for Python 2.6 (@gtback)
  • Start to align repository with other projects

0.4 (2015-03-26)

TODO: Fill this in

0.3 (2014-11-12)

TODO: Fill this in

0.2

The structure of Message Handlers and Query Handlers were significantly reorganized:

  • Message Handlers used to be in base_taxii_handlers.py and taxii_handlers.py. They are now in the message_handlers module, which consists of the following files:
  • base_handlers.py - Contains the BaseMessageHandler class. All Message Handler classes inherit from this class
  • collection_information_request_handlers.py - Contains all Collection/Feed Information Request Handlers (TAXII 1.0 and 1.1)
  • discovery_request_handlers.py - Contains all Discovery Request Handlers (TAXII 1.0 and 1.1)
  • inbox_message_handlers.py - Contains all Inbox Message Handlers (TAXII 1.0 and 1.1)
  • poll_fulfillment_request_handlers.py - Contains the Poll Fullfillment Request Handler (TAXII 1.1)
  • poll_request_handlers.py - Contains all Poll Request Handlers (TAXII 1.0 and 1.1)
  • subscription_request_handlers.py - Contains all Subscription Handlers (TAXII 1.0 and 1.1)

Note that each Message Handler, or BaseMessageHandler, can be extended and customized for custom TAXII Message Handling

  • Query Handlers used to be in base_taxii_handlers.py and has been moved to the query_handlers module, which consists of the following files:
  • base_handlers.py - Contains the BaseQueryHandler and BaseXmlQueryHandler class. The BaseXmlQueryHandler class is a general TAXII Query to XPath mapping class
  • stix_xml_111_handler.py - Contains an incomplete STIX 1.1.1 Query Handler that is a subclass of BaseXmlQueryHandler.

Closed issues:

Other changes

  • Quite a few PEP8 changes
  • Added testing and test content (see: test/)

0.1.2

The dependencies are now listed correctly, making it easier for people to use django-taxii-services

0.1.1

There was a critical bug in 0.1 that was somehow missed. (#13). This bug fix release is simply to fix that bug.

0.1

0.1 is the first version of django-taxii-services. Please note that since the version number is below 1.0, the API is unstable and may change in a future minor release.

The intent of this release is to gauge interest for django-taxii-services and determine whether it makes sense to keep working on future versions.

The major items accomplished in this release are:

  • Established core concepts, paradigms, and structures of the library
  • Set the technical direction of MessageHandler extension points
  • Baseline API documentation: http://taxii-services.readthedocs.org/en/latest/index.html
  • YETI 2.0a (An experimental release of YETI) now uses django-taxii-services.

There are some notable/major TBDs in this release of django-taxii-services:

Indices and tables