TAXII server implementation in Python from EclecticIQ

eclecticiq, updated 🕥 2023-01-11 15:17:18

OpenTAXII

TAXII server implementation in Python from EclecticIQ.

OpenTAXII is a robust Python implementation of TAXII Services that delivers rich feature set and friendly pythonic API built on top of well designed application.

OpenTAXII is guaranteed to be compatible with Cabby, TAXII client library.

Source | Documentation | Information | Download

Build status Coverage Status Documentation Status

State of the project

We have made the decision to consider this project feature-complete. It means we still maintain it, however we focus only on bug fixes. Still, we’re very open to external contributions - if you know how to fix an issue and you can open a PR, we will be very grateful.

Getting started

See the documentation.

Getting started with OpenTAXII using Docker

OpenTAXII can also be run using docker. This guide assumes that you have access to a local or remote docker server, and won't go into the setup of docker.

To get a default (development) instance using docker

bash $ docker run -d -p 9000:9000 eclecticiq/opentaxii

To have the instance preloaded with example data, see the documentation on docker volumes.

NOTE: OpenTAXII is now accessible through port 9000, with data stored locally in a SQLite databases optionally using services/collections/accounts defined in data-configuration.yml

More documentation on running OpenTAXII in a container is found in the OpenTAXII Docker Documentation.

Feedback

You are encouraged to provide feedback by commenting on open issues or sending us email at opentaxii@eclecticiq.com

Issues

CI feature: integrate pull request preview environments

opened on 2023-01-24 10:28:20 by waveywaves

I would like to support OpenTAXII by implementing Uffizzi preview environments. Disclaimer: I work on Uffizzi.

Uffizzi is a Open Source full stack previews engine and our platform is available completely free for OpenTAXII (and all open source projects). This will provide maintainers with preview environments of every PR in the cloud, which enables faster iterations and reduces time to merge. You can see the open source repos which are currently using Uffizzi over here

Uffizzi is purpose-built for the task of previewing PRs and it integrates with your workflow to deploy preview environments in the background without any manual steps for maintainers or contributors.

We can go ahead and create an Initial PoC for you right away if you think there is value in this proposal.

Fix for “Object of type UUID is not JSON serializable” exception for TAXII2

opened on 2023-01-11 15:17:17 by andrewbeard

Multiple taxii2 endpoints (pretty much anything that prints an id) cause an exception when trying to convert an object that contains UUID to json. This is a minimal fix that handles the UUID encoding by converting to a string first on json conversion.

Taxii2 config docs and defaults

opened on 2023-01-09 18:52:50 by andrewbeard

There are a couple fields used for the taxii2 implementation that aren't described in the configurations docs, making setup a little harder than it should be. There are also a couple fields that are required (otherwise the server throws a 500 error) that aren't described as such.

While I was at it I figured rather than making setting a value for public_discovery required I'd just set it to a default of False. Right now discovery doesn't work at all (throws an error) unless the user explicitly sets an option, so False seemed like a safe default.

How to configure Opentaxii to use TAXII2

opened on 2022-12-14 17:03:21 by Tyrell20

Hello, I am facing an issue to configure opentaxii to use taxii2. Below my configuration file:

default.yml `---

domain: "myserver.com:9000"

support_basic_auth: yes return_server_error_details: no

auth_api: class: opentaxii.auth.sqldb.SQLDatabaseAPI parameters: db_connection: sqlite:////tmp/auth.db create_tables: yes secret: SECRET-STRING-NEEDS-TO-BE-CHANGED token_ttl_secs: 3600

taxii1:

taxii2: persistence_api: class: opentaxii.persistence.sqldb.SQLDatabaseAPI parameters: db_connection: sqlite:////tmp/data.db create_tables: yes

logging: opentaxii: info root: info `

data-configuration.yml (version 1 tested) `apiroots: - id: test_api_root default: true title: Test API Root description: Main API Root is_public: true

collections: - id: collection api_root_id: test_api_root title: Main Collection description: Main collection Information is_public: true is_public_write: true

accounts: - username: test password: test permissions: collection-a: modify - username: admin password: admin is_admin: yes `

*data-configuration.yml* (version 2 tested)

`---

domain: myserver.com:9000

services: - id: inbox type: inbox address: /services/inbox description: Inbox Service destination_collection_required: yes accept_all_content: yes authentication_required: yes supported_content: - urn:stix.mitre.org:json:2.1 protocol_bindings: - urn:taxii.mitre.org:protocol:http:1.0

- id: discovery
  type: discovery
  address: /services/discovery
  description: Discovery Service
  advertised_services:
    - inbox
    - discovery
    - collection_management
    - poll
  protocol_bindings:
    - urn:taxii.mitre.org:protocol:http:1.0

- id: collection_management
  type: collection_management
  address: /services/collection-management
  description: Collection Management Service
  protocol_bindings:
    - urn:taxii.mitre.org:protocol:http:1.0
 - id: poll
  type: poll
  address: /services/poll
  description: Poll Service
  subscription_required: no
  max_result_count: 100
  max_result_size: 10
  authentication_required: yes
  protocol_bindings:
    - urn:taxii.mitre.org:protocol:http:1.0

collections: - name: test available: true accept_all_content: true supported_content: - urn:stix.mitre.org:json:2.1 service_ids: - inbox - collection_management - poll

accounts: - username: test password: test permissions: test: modify `

With both data-configuration.yml the command: opentaxii-sync-data opentaxii/data-configuration.yml do not work, reporting the error: AttributeError: 'NoneType' object has no attribute 'persistence'

Starting server with gunicorn: gunicorn opentaxii.http:app --bind myserver.com:9000 --config python:opentaxii.http does not show any error. Trying to query the server via taxii2-client I obtained the error below: requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http://myserver.com:9000/taxii2/

Could you please help me to validate the configuration files e and how can I start and use the taxii2 on opentaxii?

Add api root to taxii2 server

opened on 2022-10-14 16:20:14 by gzerphISA

I'm having trouble with the syntax in the data-configuration.yml file in order to implement an api-root on the system. I have the taxii2 server up and responding but cannot get an api-root to show in the system.

Please let me know what I'm doing wrong as I'm getting lost in the documentation.

Thank you,

data-config yml `apiroots: - id: test_api_root default: true title: Test API Root description: Main API Root is_public: true

collections: - id: collection-a api_root_id: test_api_root title: Main Collection description: Main collection Information is_public: true is_public_write: true

accounts: - username: test password: test permissions: collection-a: modify - username: admin password: admin is_admin: yes`

opentaxii yml `---

domain: "localhost:9000"

support_basic_auth: yes return_server_error_details: no

auth_api: class: opentaxii.auth.sqldb.SQLDatabaseAPI parameters: db_connection: sqlite:////tmp/auth.db create_tables: yes secret: SECRET-STRING-NEEDS-TO-BE-CHANGED token_ttl_secs: 3600

taxii2: allow_custom_properties: true contact: [email protected] description: TAXII2 Server max_content_length: 2048 persistence_api: class: opentaxii.persistence.sqldb.Taxii2SQLDatabaseAPI parameters: create_tables: true db_connection: sqlite:////tmp/data.db public_discovery: true title: Taxii2.1 Service

logging: opentaxii: info root: info`

Processing message Loop error

opened on 2022-10-07 11:45:22 by 00gxd14g

{"service_id": "poll_a", "message_id": "771fc879-c5b2-470e-bcf0-6812bc9ee8d0", "message_type": "Poll_Request", "message_version": "urn:taxii.mitre.org:message:xml:1.1", "event": "Processing message", "logger": "opentaxii.taxii.services.poll.PollService", "level": "debug", "timestamp": "2022-10-07T11:43:59.266374Z"}

everything works normally, there is no problem, but when opentaxii is started with gunicorn, "Processing message" loops and this message comes up forever, is there any way to stop this process?

Releases

0.9.3 2022-10-11 13:45:32

Changelog

0.9.3 (2022-10-11)

  • Add public write support.

0.9.2 (2022-08-26)

  • Improve readability and navigation of docs (#238 <https://github.com/eclecticiq/OpenTAXII/pull/238> thanks @zed-eiq <https://github.com/zed-eiq> for the improvement).

0.9.1 (2022-07-11)

  • Implement raise_unauthorized for taxii2, this was missing and lead to 500 errors.

0.9.0 (2022-06-13)

  • Allow custom properties. This can be disabled by config option allow_custom_properties

0.8.0 (2022-06-05)

  • Nest details inside taxii2 job and allow counts without details

0.7.0 (2022-05-27)

  • Nest taxii2 endpoints under /taxii2/

0.6.0 (2022-05-25)

  • Add public_discovery option to taxii2 config
  • Add support for publicly readable taxii 2 api roots

0.5.0 (2022-05-24)

  • Add support for publicly readable taxii 2 collections

0.4.0 (2022-05-20)

  • Move next_param handling into OpenTAXII2PersistenceAPI

0.3.0 (2022-04-13)

  • Implement taxii2.1 support

0.3.0a4 (2022-04-13)

  • Merge changes from 0.2.4 maintenance release

0.3.0a3 (2022-01-21)

  • Fix bug that prevented booting with only taxii1 config (#217 <https://github.com/eclecticiq/OpenTAXII/issues/217> thanks @azurekid <https://github.com/azurekid> for the report)

0.3.0a2 (2021-12-27)

  • Merge changes from 0.2.3 maintenance release

0.3.0a1

  • Add python 3.10 support

0.3.0a0

  • Enablement for future taxii2 implementation
  • Fix documentation build issues

0.2.4 (2022-04-13)

  • Make sure werkzeug <2.1 and >=2.1 work correctly with auth system

0.2.3 (2021-12-22)

  • Fix bug in multithreaded use of sqlite (#210 <https://github.com/eclecticiq/OpenTAXII/issues/210> thanks @rohits144 <https://github.com/rohits144> for the report)

0.2.2 (2021-11-05)

  • Fix readthedocs build

0.2.1 (2021-11-03)

  • Add tests for python 3.6, 3.7, 3.8, 3.9, pypy
  • Add tests for sqlite, mysql, mariadb, postgresql
  • Fix bug that broke delete_content_blocks when using mysql on sqlalchemy 1.3
  • Docs: Add db schema diagram
  • Docs: Clarify how to get default data in a default (development) docker instance
  • Fix implicit routing in TAXII 1.1 Inboxes
  • Update jwt usage to pyjwt >= 2.0 (thanks @SanyaKapoor <https://github.com/SanyaKapoor>_)

0.2.0 (2020-06-30)

  • Enforce UTC usage in datetime fields in SQL DB Persistence API.
  • Fix for #114 <https://github.com/eclecticiq/OpenTAXII/issues/114>_: reintroduce opentaxii-create-account CLI command.
  • Fix for #153 <https://github.com/eclecticiq/OpenTAXII/issues/152>_: check if user can modify a collection before advertising it over inbox service.
  • Multiple coding style fixes.
  • Various documentation updates.

0.1.12 (2019-03-06)

  • Remove unnecessary print statements.

0.1.11 (2019-02-13)

  • Make JSON logging consistent when the application is run via Gunicorn.
  • Set acceptable_destination key in status details instead of extended headers
  • Allow passing engine_parameters to SQLDatabaseAPI for those who want to customize SQLAlchemy engine parameters.
  • Require recent version of lxml for security reasons.
  • Various test and Docker infrastructure improvements.

0.1.10 (2018-06-03)

  • Replace separate service/collection/account creation process with single opentaxii-sync-data CLI command.
  • Persistence and Auth APIs extended with missing CRUD methods, that are used by opentaxii-sync-data.
  • Read/modify collection level ACL added.
  • DB models for default implementation of Persistence API and Auth API were changed. No automatic migration code is provided (sorry!), so upgrading might require manual DB migration.
  • Drop python2.7 from testing scope.
  • Various bug fixes and improvements.

0.1.9 (2017-06-19)

  • libtaxii <https://github.com/TAXIIProject/libtaxii>_ dependency upgraded to 1.1.111.
  • Various bug fixes and improvements (thanks to @bjigmp <https://github.com/bjigmp>, @chorsley <https://github.com/chorsley>, @rjprins <https://github.com/rjprins>_).

0.1.8 (2017-02-21)

  • Ability to enable/disable "huge trees" support in XML parser. Configuration property xml_parser_supports_huge_tree set to yes or true will disable security restrictions and force XML parser to support very deep trees and very long text content.
  • Adjust SQL Persistence API implemetation so it works smoothly with MySQL backend.
  • Use Python 3.5 instead of Python 3.4 for tests.

0.1.7 (2016-10-18)

  • Minor fixes.
  • Dependencies were changed from hard-pinned to more flexible.
  • Example of production DB configuration added to docs.

0.1.6 (2016-06-01)

  • Python 3.4 compatibility of the codebase. Tox configuration extended with python 3.4 environment run.
  • Flake8 full style compatibility. Flake8 check added to Tox configuration.
  • SQLAlchemy session scope issue fixed (related to #38 <https://github.com/EclecticIQ/OpenTAXII/issues/38>_).
  • opentaxii-delete-blocks CLI command added (related to #45 <https://github.com/EclecticIQ/OpenTAXII/issues/45>_).
  • delete_content_blocks method added <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-6814849ac352b2b74132f8fa52e0ec4eR213>_ to Persistence API.
  • Collection's name is required <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-ce3f7b939e5c540480ac655aef32c513R116>_ to be unique in default SQL DB Auth API implementation.

0.1.5 (2016-03-15)

  • Fix for the issue with persistence backend returning None instead of InboxMessage object

0.1.4 (2016-02-25)

  • Hard-coded dependencies in setup.py removed.

0.1.3 (2016-02-25)

  • Versions of dependencies are pinned.
  • Code adjusted for a new version of anyconfig <https://pypi.python.org/pypi/anyconfig>_ API.
  • Test for configuration loading added.

0.1.2 (2015-07-24)

  • Docker configuration added.
  • Health check endpoint added.
  • Basic authentication support added.
  • Temporary workaround for Issue #191 <https://github.com/TAXIIProject/libtaxii/issues/191>_.
  • Method get_domain in Persistence API returns domain value configured for service_id. If nothing returned, value set in configuration file will be used.
  • Performance optimisations.
  • Bug fixes and style improvements.

0.1.1 (2015-04-08)

  • Alias for Root Logger added to logging configuration.
  • Context object in a request scope that holds account and token added.
  • Support for OPTIONS HTTP request to enable auto version negotiation added.
  • Documentation improved.

0.1.0 (2015-03-31)

  • Initial release

0.9.2 2022-08-26 12:57:28

Changelog

0.9.2 (2022-08-26)

  • Improve readability and navigation of docs (#238 <https://github.com/eclecticiq/OpenTAXII/pull/238> thanks @zed-eiq <https://github.com/zed-eiq> for the improvement).

0.9.1 (2022-07-11)

  • Implement raise_unauthorized for taxii2, this was missing and lead to 500 errors.

0.9.0 (2022-06-13)

  • Allow custom properties. This can be disabled by config option allow_custom_properties

0.8.0 (2022-06-05)

  • Nest details inside taxii2 job and allow counts without details

0.7.0 (2022-05-27)

  • Nest taxii2 endpoints under /taxii2/

0.6.0 (2022-05-25)

  • Add public_discovery option to taxii2 config
  • Add support for publicly readable taxii 2 api roots

0.5.0 (2022-05-24)

  • Add support for publicly readable taxii 2 collections

0.4.0 (2022-05-20)

  • Move next_param handling into OpenTAXII2PersistenceAPI

0.3.0 (2022-04-13)

  • Implement taxii2.1 support

0.3.0a4 (2022-04-13)

  • Merge changes from 0.2.4 maintenance release

0.3.0a3 (2022-01-21)

  • Fix bug that prevented booting with only taxii1 config (#217 <https://github.com/eclecticiq/OpenTAXII/issues/217> thanks @azurekid <https://github.com/azurekid> for the report)

0.3.0a2 (2021-12-27)

  • Merge changes from 0.2.3 maintenance release

0.3.0a1

  • Add python 3.10 support

0.3.0a0

  • Enablement for future taxii2 implementation
  • Fix documentation build issues

0.2.4 (2022-04-13)

  • Make sure werkzeug <2.1 and >=2.1 work correctly with auth system

0.2.3 (2021-12-22)

  • Fix bug in multithreaded use of sqlite (#210 <https://github.com/eclecticiq/OpenTAXII/issues/210> thanks @rohits144 <https://github.com/rohits144> for the report)

0.2.2 (2021-11-05)

  • Fix readthedocs build

0.2.1 (2021-11-03)

  • Add tests for python 3.6, 3.7, 3.8, 3.9, pypy
  • Add tests for sqlite, mysql, mariadb, postgresql
  • Fix bug that broke delete_content_blocks when using mysql on sqlalchemy 1.3
  • Docs: Add db schema diagram
  • Docs: Clarify how to get default data in a default (development) docker instance
  • Fix implicit routing in TAXII 1.1 Inboxes
  • Update jwt usage to pyjwt >= 2.0 (thanks @SanyaKapoor <https://github.com/SanyaKapoor>_)

0.2.0 (2020-06-30)

  • Enforce UTC usage in datetime fields in SQL DB Persistence API.
  • Fix for #114 <https://github.com/eclecticiq/OpenTAXII/issues/114>_: reintroduce opentaxii-create-account CLI command.
  • Fix for #153 <https://github.com/eclecticiq/OpenTAXII/issues/152>_: check if user can modify a collection before advertising it over inbox service.
  • Multiple coding style fixes.
  • Various documentation updates.

0.1.12 (2019-03-06)

  • Remove unnecessary print statements.

0.1.11 (2019-02-13)

  • Make JSON logging consistent when the application is run via Gunicorn.
  • Set acceptable_destination key in status details instead of extended headers
  • Allow passing engine_parameters to SQLDatabaseAPI for those who want to customize SQLAlchemy engine parameters.
  • Require recent version of lxml for security reasons.
  • Various test and Docker infrastructure improvements.

0.1.10 (2018-06-03)

  • Replace separate service/collection/account creation process with single opentaxii-sync-data CLI command.
  • Persistence and Auth APIs extended with missing CRUD methods, that are used by opentaxii-sync-data.
  • Read/modify collection level ACL added.
  • DB models for default implementation of Persistence API and Auth API were changed. No automatic migration code is provided (sorry!), so upgrading might require manual DB migration.
  • Drop python2.7 from testing scope.
  • Various bug fixes and improvements.

0.1.9 (2017-06-19)

  • libtaxii <https://github.com/TAXIIProject/libtaxii>_ dependency upgraded to 1.1.111.
  • Various bug fixes and improvements (thanks to @bjigmp <https://github.com/bjigmp>, @chorsley <https://github.com/chorsley>, @rjprins <https://github.com/rjprins>_).

0.1.8 (2017-02-21)

  • Ability to enable/disable "huge trees" support in XML parser. Configuration property xml_parser_supports_huge_tree set to yes or true will disable security restrictions and force XML parser to support very deep trees and very long text content.
  • Adjust SQL Persistence API implemetation so it works smoothly with MySQL backend.
  • Use Python 3.5 instead of Python 3.4 for tests.

0.1.7 (2016-10-18)

  • Minor fixes.
  • Dependencies were changed from hard-pinned to more flexible.
  • Example of production DB configuration added to docs.

0.1.6 (2016-06-01)

  • Python 3.4 compatibility of the codebase. Tox configuration extended with python 3.4 environment run.
  • Flake8 full style compatibility. Flake8 check added to Tox configuration.
  • SQLAlchemy session scope issue fixed (related to #38 <https://github.com/EclecticIQ/OpenTAXII/issues/38>_).
  • opentaxii-delete-blocks CLI command added (related to #45 <https://github.com/EclecticIQ/OpenTAXII/issues/45>_).
  • delete_content_blocks method added <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-6814849ac352b2b74132f8fa52e0ec4eR213>_ to Persistence API.
  • Collection's name is required <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-ce3f7b939e5c540480ac655aef32c513R116>_ to be unique in default SQL DB Auth API implementation.

0.1.5 (2016-03-15)

  • Fix for the issue with persistence backend returning None instead of InboxMessage object

0.1.4 (2016-02-25)

  • Hard-coded dependencies in setup.py removed.

0.1.3 (2016-02-25)

  • Versions of dependencies are pinned.
  • Code adjusted for a new version of anyconfig <https://pypi.python.org/pypi/anyconfig>_ API.
  • Test for configuration loading added.

0.1.2 (2015-07-24)

  • Docker configuration added.
  • Health check endpoint added.
  • Basic authentication support added.
  • Temporary workaround for Issue #191 <https://github.com/TAXIIProject/libtaxii/issues/191>_.
  • Method get_domain in Persistence API returns domain value configured for service_id. If nothing returned, value set in configuration file will be used.
  • Performance optimisations.
  • Bug fixes and style improvements.

0.1.1 (2015-04-08)

  • Alias for Root Logger added to logging configuration.
  • Context object in a request scope that holds account and token added.
  • Support for OPTIONS HTTP request to enable auto version negotiation added.
  • Documentation improved.

0.1.0 (2015-03-31)

  • Initial release

0.9.1 2022-07-11 20:27:01

Changelog

0.9.1 (2022-07-11)

  • Implement raise_unauthorized for taxii2, this was missing and lead to 500 errors.

0.9.0 (2022-06-13)

  • Allow custom properties. This can be disabled by config option allow_custom_properties

0.8.0 (2022-06-05)

  • Nest details inside taxii2 job and allow counts without details

0.7.0 (2022-05-27)

  • Nest taxii2 endpoints under /taxii2/

0.6.0 (2022-05-25)

  • Add public_discovery option to taxii2 config
  • Add support for publicly readable taxii 2 api roots

0.5.0 (2022-05-24)

  • Add support for publicly readable taxii 2 collections

0.4.0 (2022-05-20)

  • Move next_param handling into OpenTAXII2PersistenceAPI

0.3.0 (2022-04-13)

  • Implement taxii2.1 support

0.3.0a4 (2022-04-13)

  • Merge changes from 0.2.4 maintenance release

0.3.0a3 (2022-01-21)

  • Fix bug that prevented booting with only taxii1 config (#217 <https://github.com/eclecticiq/OpenTAXII/issues/217> thanks @azurekid <https://github.com/azurekid> for the report)

0.3.0a2 (2021-12-27)

  • Merge changes from 0.2.3 maintenance release

0.3.0a1

  • Add python 3.10 support

0.3.0a0

  • Enablement for future taxii2 implementation
  • Fix documentation build issues

0.2.4 (2022-04-13)

  • Make sure werkzeug <2.1 and >=2.1 work correctly with auth system

0.2.3 (2021-12-22)

  • Fix bug in multithreaded use of sqlite (#210 <https://github.com/eclecticiq/OpenTAXII/issues/210> thanks @rohits144 <https://github.com/rohits144> for the report)

0.2.2 (2021-11-05)

  • Fix readthedocs build

0.2.1 (2021-11-03)

  • Add tests for python 3.6, 3.7, 3.8, 3.9, pypy
  • Add tests for sqlite, mysql, mariadb, postgresql
  • Fix bug that broke delete_content_blocks when using mysql on sqlalchemy 1.3
  • Docs: Add db schema diagram
  • Docs: Clarify how to get default data in a default (development) docker instance
  • Fix implicit routing in TAXII 1.1 Inboxes
  • Update jwt usage to pyjwt >= 2.0 (thanks @SanyaKapoor <https://github.com/SanyaKapoor>_)

0.2.0 (2020-06-30)

  • Enforce UTC usage in datetime fields in SQL DB Persistence API.
  • Fix for #114 <https://github.com/eclecticiq/OpenTAXII/issues/114>_: reintroduce opentaxii-create-account CLI command.
  • Fix for #153 <https://github.com/eclecticiq/OpenTAXII/issues/152>_: check if user can modify a collection before advertising it over inbox service.
  • Multiple coding style fixes.
  • Various documentation updates.

0.1.12 (2019-03-06)

  • Remove unnecessary print statements.

0.1.11 (2019-02-13)

  • Make JSON logging consistent when the application is run via Gunicorn.
  • Set acceptable_destination key in status details instead of extended headers
  • Allow passing engine_parameters to SQLDatabaseAPI for those who want to customize SQLAlchemy engine parameters.
  • Require recent version of lxml for security reasons.
  • Various test and Docker infrastructure improvements.

0.1.10 (2018-06-03)

  • Replace separate service/collection/account creation process with single opentaxii-sync-data CLI command.
  • Persistence and Auth APIs extended with missing CRUD methods, that are used by opentaxii-sync-data.
  • Read/modify collection level ACL added.
  • DB models for default implementation of Persistence API and Auth API were changed. No automatic migration code is provided (sorry!), so upgrading might require manual DB migration.
  • Drop python2.7 from testing scope.
  • Various bug fixes and improvements.

0.1.9 (2017-06-19)

  • libtaxii <https://github.com/TAXIIProject/libtaxii>_ dependency upgraded to 1.1.111.
  • Various bug fixes and improvements (thanks to @bjigmp <https://github.com/bjigmp>, @chorsley <https://github.com/chorsley>, @rjprins <https://github.com/rjprins>_).

0.1.8 (2017-02-21)

  • Ability to enable/disable "huge trees" support in XML parser. Configuration property xml_parser_supports_huge_tree set to yes or true will disable security restrictions and force XML parser to support very deep trees and very long text content.
  • Adjust SQL Persistence API implemetation so it works smoothly with MySQL backend.
  • Use Python 3.5 instead of Python 3.4 for tests.

0.1.7 (2016-10-18)

  • Minor fixes.
  • Dependencies were changed from hard-pinned to more flexible.
  • Example of production DB configuration added to docs.

0.1.6 (2016-06-01)

  • Python 3.4 compatibility of the codebase. Tox configuration extended with python 3.4 environment run.
  • Flake8 full style compatibility. Flake8 check added to Tox configuration.
  • SQLAlchemy session scope issue fixed (related to #38 <https://github.com/EclecticIQ/OpenTAXII/issues/38>_).
  • opentaxii-delete-blocks CLI command added (related to #45 <https://github.com/EclecticIQ/OpenTAXII/issues/45>_).
  • delete_content_blocks method added <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-6814849ac352b2b74132f8fa52e0ec4eR213>_ to Persistence API.
  • Collection's name is required <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-ce3f7b939e5c540480ac655aef32c513R116>_ to be unique in default SQL DB Auth API implementation.

0.1.5 (2016-03-15)

  • Fix for the issue with persistence backend returning None instead of InboxMessage object

0.1.4 (2016-02-25)

  • Hard-coded dependencies in setup.py removed.

0.1.3 (2016-02-25)

  • Versions of dependencies are pinned.
  • Code adjusted for a new version of anyconfig <https://pypi.python.org/pypi/anyconfig>_ API.
  • Test for configuration loading added.

0.1.2 (2015-07-24)

  • Docker configuration added.
  • Health check endpoint added.
  • Basic authentication support added.
  • Temporary workaround for Issue #191 <https://github.com/TAXIIProject/libtaxii/issues/191>_.
  • Method get_domain in Persistence API returns domain value configured for service_id. If nothing returned, value set in configuration file will be used.
  • Performance optimisations.
  • Bug fixes and style improvements.

0.1.1 (2015-04-08)

  • Alias for Root Logger added to logging configuration.
  • Context object in a request scope that holds account and token added.
  • Support for OPTIONS HTTP request to enable auto version negotiation added.
  • Documentation improved.

0.1.0 (2015-03-31)

  • Initial release

0.9.0 2022-06-13 14:42:47

Changelog

0.9.0 (2022-06-13)

  • Allow custom properties. This can be disabled by config option allow_custom_properties

0.8.0 (2022-06-05)

  • Nest details inside taxii2 job and allow counts without details

0.7.0 (2022-05-27)

  • Nest taxii2 endpoints under /taxii2/

0.6.0 (2022-05-25)

  • Add public_discovery option to taxii2 config
  • Add support for publicly readable taxii 2 api roots

0.5.0 (2022-05-24)

  • Add support for publicly readable taxii 2 collections

0.4.0 (2022-05-20)

  • Move next_param handling into OpenTAXII2PersistenceAPI

0.3.0 (2022-04-13)

  • Implement taxii2.1 support

0.3.0a4 (2022-04-13)

  • Merge changes from 0.2.4 maintenance release

0.3.0a3 (2022-01-21)

  • Fix bug that prevented booting with only taxii1 config (#217 <https://github.com/eclecticiq/OpenTAXII/issues/217> thanks @azurekid <https://github.com/azurekid> for the report)

0.3.0a2 (2021-12-27)

  • Merge changes from 0.2.3 maintenance release

0.3.0a1

  • Add python 3.10 support

0.3.0a0

  • Enablement for future taxii2 implementation
  • Fix documentation build issues

0.2.4 (2022-04-13)

  • Make sure werkzeug <2.1 and >=2.1 work correctly with auth system

0.2.3 (2021-12-22)

  • Fix bug in multithreaded use of sqlite (#210 <https://github.com/eclecticiq/OpenTAXII/issues/210> thanks @rohits144 <https://github.com/rohits144> for the report)

0.2.2 (2021-11-05)

  • Fix readthedocs build

0.2.1 (2021-11-03)

  • Add tests for python 3.6, 3.7, 3.8, 3.9, pypy
  • Add tests for sqlite, mysql, mariadb, postgresql
  • Fix bug that broke delete_content_blocks when using mysql on sqlalchemy 1.3
  • Docs: Add db schema diagram
  • Docs: Clarify how to get default data in a default (development) docker instance
  • Fix implicit routing in TAXII 1.1 Inboxes
  • Update jwt usage to pyjwt >= 2.0 (thanks @SanyaKapoor <https://github.com/SanyaKapoor>_)

0.2.0 (2020-06-30)

  • Enforce UTC usage in datetime fields in SQL DB Persistence API.
  • Fix for #114 <https://github.com/eclecticiq/OpenTAXII/issues/114>_: reintroduce opentaxii-create-account CLI command.
  • Fix for #153 <https://github.com/eclecticiq/OpenTAXII/issues/152>_: check if user can modify a collection before advertising it over inbox service.
  • Multiple coding style fixes.
  • Various documentation updates.

0.1.12 (2019-03-06)

  • Remove unnecessary print statements.

0.1.11 (2019-02-13)

  • Make JSON logging consistent when the application is run via Gunicorn.
  • Set acceptable_destination key in status details instead of extended headers
  • Allow passing engine_parameters to SQLDatabaseAPI for those who want to customize SQLAlchemy engine parameters.
  • Require recent version of lxml for security reasons.
  • Various test and Docker infrastructure improvements.

0.1.10 (2018-06-03)

  • Replace separate service/collection/account creation process with single opentaxii-sync-data CLI command.
  • Persistence and Auth APIs extended with missing CRUD methods, that are used by opentaxii-sync-data.
  • Read/modify collection level ACL added.
  • DB models for default implementation of Persistence API and Auth API were changed. No automatic migration code is provided (sorry!), so upgrading might require manual DB migration.
  • Drop python2.7 from testing scope.
  • Various bug fixes and improvements.

0.1.9 (2017-06-19)

  • libtaxii <https://github.com/TAXIIProject/libtaxii>_ dependency upgraded to 1.1.111.
  • Various bug fixes and improvements (thanks to @bjigmp <https://github.com/bjigmp>, @chorsley <https://github.com/chorsley>, @rjprins <https://github.com/rjprins>_).

0.1.8 (2017-02-21)

  • Ability to enable/disable "huge trees" support in XML parser. Configuration property xml_parser_supports_huge_tree set to yes or true will disable security restrictions and force XML parser to support very deep trees and very long text content.
  • Adjust SQL Persistence API implemetation so it works smoothly with MySQL backend.
  • Use Python 3.5 instead of Python 3.4 for tests.

0.1.7 (2016-10-18)

  • Minor fixes.
  • Dependencies were changed from hard-pinned to more flexible.
  • Example of production DB configuration added to docs.

0.1.6 (2016-06-01)

  • Python 3.4 compatibility of the codebase. Tox configuration extended with python 3.4 environment run.
  • Flake8 full style compatibility. Flake8 check added to Tox configuration.
  • SQLAlchemy session scope issue fixed (related to #38 <https://github.com/EclecticIQ/OpenTAXII/issues/38>_).
  • opentaxii-delete-blocks CLI command added (related to #45 <https://github.com/EclecticIQ/OpenTAXII/issues/45>_).
  • delete_content_blocks method added <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-6814849ac352b2b74132f8fa52e0ec4eR213>_ to Persistence API.
  • Collection's name is required <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-ce3f7b939e5c540480ac655aef32c513R116>_ to be unique in default SQL DB Auth API implementation.

0.1.5 (2016-03-15)

  • Fix for the issue with persistence backend returning None instead of InboxMessage object

0.1.4 (2016-02-25)

  • Hard-coded dependencies in setup.py removed.

0.1.3 (2016-02-25)

  • Versions of dependencies are pinned.
  • Code adjusted for a new version of anyconfig <https://pypi.python.org/pypi/anyconfig>_ API.
  • Test for configuration loading added.

0.1.2 (2015-07-24)

  • Docker configuration added.
  • Health check endpoint added.
  • Basic authentication support added.
  • Temporary workaround for Issue #191 <https://github.com/TAXIIProject/libtaxii/issues/191>_.
  • Method get_domain in Persistence API returns domain value configured for service_id. If nothing returned, value set in configuration file will be used.
  • Performance optimisations.
  • Bug fixes and style improvements.

0.1.1 (2015-04-08)

  • Alias for Root Logger added to logging configuration.
  • Context object in a request scope that holds account and token added.
  • Support for OPTIONS HTTP request to enable auto version negotiation added.
  • Documentation improved.

0.1.0 (2015-03-31)

  • Initial release

0.8.0 2022-06-05 14:56:33

Changelog

0.8.0 (2022-06-05)

  • Nest details inside taxii2 job and allow counts without details

0.7.0 (2022-05-27)

  • Nest taxii2 endpoints under /taxii2/

0.6.0 (2022-05-25)

  • Add public_discovery option to taxii2 config
  • Add support for publicly readable taxii 2 api roots

0.5.0 (2022-05-24)

  • Add support for publicly readable taxii 2 collections

0.4.0 (2022-05-20)

  • Move next_param handling into OpenTAXII2PersistenceAPI

0.3.0 (2022-04-13)

  • Implement taxii2.1 support

0.3.0a4 (2022-04-13)

  • Merge changes from 0.2.4 maintenance release

0.3.0a3 (2022-01-21)

  • Fix bug that prevented booting with only taxii1 config (#217 <https://github.com/eclecticiq/OpenTAXII/issues/217> thanks @azurekid <https://github.com/azurekid> for the report)

0.3.0a2 (2021-12-27)

  • Merge changes from 0.2.3 maintenance release

0.3.0a1

  • Add python 3.10 support

0.3.0a0

  • Enablement for future taxii2 implementation
  • Fix documentation build issues

0.2.4 (2022-04-13)

  • Make sure werkzeug <2.1 and >=2.1 work correctly with auth system

0.2.3 (2021-12-22)

  • Fix bug in multithreaded use of sqlite (#210 <https://github.com/eclecticiq/OpenTAXII/issues/210> thanks @rohits144 <https://github.com/rohits144> for the report)

0.2.2 (2021-11-05)

  • Fix readthedocs build

0.2.1 (2021-11-03)

  • Add tests for python 3.6, 3.7, 3.8, 3.9, pypy
  • Add tests for sqlite, mysql, mariadb, postgresql
  • Fix bug that broke delete_content_blocks when using mysql on sqlalchemy 1.3
  • Docs: Add db schema diagram
  • Docs: Clarify how to get default data in a default (development) docker instance
  • Fix implicit routing in TAXII 1.1 Inboxes
  • Update jwt usage to pyjwt >= 2.0 (thanks @SanyaKapoor <https://github.com/SanyaKapoor>_)

0.2.0 (2020-06-30)

  • Enforce UTC usage in datetime fields in SQL DB Persistence API.
  • Fix for #114 <https://github.com/eclecticiq/OpenTAXII/issues/114>_: reintroduce opentaxii-create-account CLI command.
  • Fix for #153 <https://github.com/eclecticiq/OpenTAXII/issues/152>_: check if user can modify a collection before advertising it over inbox service.
  • Multiple coding style fixes.
  • Various documentation updates.

0.1.12 (2019-03-06)

  • Remove unnecessary print statements.

0.1.11 (2019-02-13)

  • Make JSON logging consistent when the application is run via Gunicorn.
  • Set acceptable_destination key in status details instead of extended headers
  • Allow passing engine_parameters to SQLDatabaseAPI for those who want to customize SQLAlchemy engine parameters.
  • Require recent version of lxml for security reasons.
  • Various test and Docker infrastructure improvements.

0.1.10 (2018-06-03)

  • Replace separate service/collection/account creation process with single opentaxii-sync-data CLI command.
  • Persistence and Auth APIs extended with missing CRUD methods, that are used by opentaxii-sync-data.
  • Read/modify collection level ACL added.
  • DB models for default implementation of Persistence API and Auth API were changed. No automatic migration code is provided (sorry!), so upgrading might require manual DB migration.
  • Drop python2.7 from testing scope.
  • Various bug fixes and improvements.

0.1.9 (2017-06-19)

  • libtaxii <https://github.com/TAXIIProject/libtaxii>_ dependency upgraded to 1.1.111.
  • Various bug fixes and improvements (thanks to @bjigmp <https://github.com/bjigmp>, @chorsley <https://github.com/chorsley>, @rjprins <https://github.com/rjprins>_).

0.1.8 (2017-02-21)

  • Ability to enable/disable "huge trees" support in XML parser. Configuration property xml_parser_supports_huge_tree set to yes or true will disable security restrictions and force XML parser to support very deep trees and very long text content.
  • Adjust SQL Persistence API implemetation so it works smoothly with MySQL backend.
  • Use Python 3.5 instead of Python 3.4 for tests.

0.1.7 (2016-10-18)

  • Minor fixes.
  • Dependencies were changed from hard-pinned to more flexible.
  • Example of production DB configuration added to docs.

0.1.6 (2016-06-01)

  • Python 3.4 compatibility of the codebase. Tox configuration extended with python 3.4 environment run.
  • Flake8 full style compatibility. Flake8 check added to Tox configuration.
  • SQLAlchemy session scope issue fixed (related to #38 <https://github.com/EclecticIQ/OpenTAXII/issues/38>_).
  • opentaxii-delete-blocks CLI command added (related to #45 <https://github.com/EclecticIQ/OpenTAXII/issues/45>_).
  • delete_content_blocks method added <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-6814849ac352b2b74132f8fa52e0ec4eR213>_ to Persistence API.
  • Collection's name is required <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-ce3f7b939e5c540480ac655aef32c513R116>_ to be unique in default SQL DB Auth API implementation.

0.1.5 (2016-03-15)

  • Fix for the issue with persistence backend returning None instead of InboxMessage object

0.1.4 (2016-02-25)

  • Hard-coded dependencies in setup.py removed.

0.1.3 (2016-02-25)

  • Versions of dependencies are pinned.
  • Code adjusted for a new version of anyconfig <https://pypi.python.org/pypi/anyconfig>_ API.
  • Test for configuration loading added.

0.1.2 (2015-07-24)

  • Docker configuration added.
  • Health check endpoint added.
  • Basic authentication support added.
  • Temporary workaround for Issue #191 <https://github.com/TAXIIProject/libtaxii/issues/191>_.
  • Method get_domain in Persistence API returns domain value configured for service_id. If nothing returned, value set in configuration file will be used.
  • Performance optimisations.
  • Bug fixes and style improvements.

0.1.1 (2015-04-08)

  • Alias for Root Logger added to logging configuration.
  • Context object in a request scope that holds account and token added.
  • Support for OPTIONS HTTP request to enable auto version negotiation added.
  • Documentation improved.

0.1.0 (2015-03-31)

  • Initial release

0.7.0 2022-05-27 18:00:00

Changelog

0.7.0 (2022-05-27)

  • Nest taxii2 endpoints under /taxii2/

0.6.0 (2022-05-25)

  • Add public_discovery option to taxii2 config
  • Add support for publicly readable taxii 2 api roots

0.5.0 (2022-05-24)

  • Add support for publicly readable taxii 2 collections

0.4.0 (2022-05-20)

  • Move next_param handling into OpenTAXII2PersistenceAPI

0.3.0 (2022-04-13)

  • Implement taxii2.1 support

0.3.0a4 (2022-04-13)

  • Merge changes from 0.2.4 maintenance release

0.3.0a3 (2022-01-21)

  • Fix bug that prevented booting with only taxii1 config (#217 <https://github.com/eclecticiq/OpenTAXII/issues/217> thanks @azurekid <https://github.com/azurekid> for the report)

0.3.0a2 (2021-12-27)

  • Merge changes from 0.2.3 maintenance release

0.3.0a1

  • Add python 3.10 support

0.3.0a0

  • Enablement for future taxii2 implementation
  • Fix documentation build issues

0.2.4 (2022-04-13)

  • Make sure werkzeug <2.1 and >=2.1 work correctly with auth system

0.2.3 (2021-12-22)

  • Fix bug in multithreaded use of sqlite (#210 <https://github.com/eclecticiq/OpenTAXII/issues/210> thanks @rohits144 <https://github.com/rohits144> for the report)

0.2.2 (2021-11-05)

  • Fix readthedocs build

0.2.1 (2021-11-03)

  • Add tests for python 3.6, 3.7, 3.8, 3.9, pypy
  • Add tests for sqlite, mysql, mariadb, postgresql
  • Fix bug that broke delete_content_blocks when using mysql on sqlalchemy 1.3
  • Docs: Add db schema diagram
  • Docs: Clarify how to get default data in a default (development) docker instance
  • Fix implicit routing in TAXII 1.1 Inboxes
  • Update jwt usage to pyjwt >= 2.0 (thanks @SanyaKapoor <https://github.com/SanyaKapoor>_)

0.2.0 (2020-06-30)

  • Enforce UTC usage in datetime fields in SQL DB Persistence API.
  • Fix for #114 <https://github.com/eclecticiq/OpenTAXII/issues/114>_: reintroduce opentaxii-create-account CLI command.
  • Fix for #153 <https://github.com/eclecticiq/OpenTAXII/issues/152>_: check if user can modify a collection before advertising it over inbox service.
  • Multiple coding style fixes.
  • Various documentation updates.

0.1.12 (2019-03-06)

  • Remove unnecessary print statements.

0.1.11 (2019-02-13)

  • Make JSON logging consistent when the application is run via Gunicorn.
  • Set acceptable_destination key in status details instead of extended headers
  • Allow passing engine_parameters to SQLDatabaseAPI for those who want to customize SQLAlchemy engine parameters.
  • Require recent version of lxml for security reasons.
  • Various test and Docker infrastructure improvements.

0.1.10 (2018-06-03)

  • Replace separate service/collection/account creation process with single opentaxii-sync-data CLI command.
  • Persistence and Auth APIs extended with missing CRUD methods, that are used by opentaxii-sync-data.
  • Read/modify collection level ACL added.
  • DB models for default implementation of Persistence API and Auth API were changed. No automatic migration code is provided (sorry!), so upgrading might require manual DB migration.
  • Drop python2.7 from testing scope.
  • Various bug fixes and improvements.

0.1.9 (2017-06-19)

  • libtaxii <https://github.com/TAXIIProject/libtaxii>_ dependency upgraded to 1.1.111.
  • Various bug fixes and improvements (thanks to @bjigmp <https://github.com/bjigmp>, @chorsley <https://github.com/chorsley>, @rjprins <https://github.com/rjprins>_).

0.1.8 (2017-02-21)

  • Ability to enable/disable "huge trees" support in XML parser. Configuration property xml_parser_supports_huge_tree set to yes or true will disable security restrictions and force XML parser to support very deep trees and very long text content.
  • Adjust SQL Persistence API implemetation so it works smoothly with MySQL backend.
  • Use Python 3.5 instead of Python 3.4 for tests.

0.1.7 (2016-10-18)

  • Minor fixes.
  • Dependencies were changed from hard-pinned to more flexible.
  • Example of production DB configuration added to docs.

0.1.6 (2016-06-01)

  • Python 3.4 compatibility of the codebase. Tox configuration extended with python 3.4 environment run.
  • Flake8 full style compatibility. Flake8 check added to Tox configuration.
  • SQLAlchemy session scope issue fixed (related to #38 <https://github.com/EclecticIQ/OpenTAXII/issues/38>_).
  • opentaxii-delete-blocks CLI command added (related to #45 <https://github.com/EclecticIQ/OpenTAXII/issues/45>_).
  • delete_content_blocks method added <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-6814849ac352b2b74132f8fa52e0ec4eR213>_ to Persistence API.
  • Collection's name is required <https://github.com/EclecticIQ/OpenTAXII/commit/dc6fddc27a98e8450c7e05e583b2bfb741f6e197#diff-ce3f7b939e5c540480ac655aef32c513R116>_ to be unique in default SQL DB Auth API implementation.

0.1.5 (2016-03-15)

  • Fix for the issue with persistence backend returning None instead of InboxMessage object

0.1.4 (2016-02-25)

  • Hard-coded dependencies in setup.py removed.

0.1.3 (2016-02-25)

  • Versions of dependencies are pinned.
  • Code adjusted for a new version of anyconfig <https://pypi.python.org/pypi/anyconfig>_ API.
  • Test for configuration loading added.

0.1.2 (2015-07-24)

  • Docker configuration added.
  • Health check endpoint added.
  • Basic authentication support added.
  • Temporary workaround for Issue #191 <https://github.com/TAXIIProject/libtaxii/issues/191>_.
  • Method get_domain in Persistence API returns domain value configured for service_id. If nothing returned, value set in configuration file will be used.
  • Performance optimisations.
  • Bug fixes and style improvements.

0.1.1 (2015-04-08)

  • Alias for Root Logger added to logging configuration.
  • Context object in a request scope that holds account and token added.
  • Support for OPTIONS HTTP request to enable auto version negotiation added.
  • Documentation improved.

0.1.0 (2015-03-31)

  • Initial release
EclecticIQ

EclecticIQ is a global provider of threat intelligence, hunting and response technology and services.

GitHub Repository

taxii stix cti python taxii-server threatintel threat-sharing cyber-threat-intelligence