Version: 0.6.dev0
django-taxii-services 0.6.dev0 Documentation¶
django-taxii-services is an installable Django app that:
- Demonstrates 100% of TAXII 1.0 and TAXII 1.1 functionality
- Enables rapid prototyping of TAXII applications (if you’re using Django, that is)
- Enables 3rd party developers to extend built-in functionality
Contents:
Version: 0.6.dev0
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:
pip install taxii_services --upgrade
- 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.6.dev0
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.6.dev0
Release Notes¶
0.5 (2017-11-20)¶
- #46 - Convert
longs
toints
(@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:
- #16 - https://github.com/TAXIIProject/django-taxii-services/issues/16
- #17 - https://github.com/TAXIIProject/django-taxii-services/issues/17
- #24 - https://github.com/TAXIIProject/django-taxii-services/issues/24
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:
- Non-API documentation (We tried to get API documentation at least usable)
- Logging (https://github.com/TAXIIProject/django-taxii-services/issues/5)
- Testing (https://github.com/TAXIIProject/django-taxii-services/issues/3)
- QueryHandlers need to be fleshed out more (https://github.com/TAXIIProject/django-taxii-services/issues/6)
- Many portions of the library are experimental and untested