Project Structure

  • data/ (text files containing data for use by syntribos tests)
  • doc/source/ (Sphinx documentation files)
  • examples/ (example syntribos request templates, config files)
    • configs/ (example syntribos configs)
    • templates/ (examples request templates)
  • scripts/ (helper Python scripts for managing the project)
    • (Python file for creating/updating the README.rst)
  • syntribos/ (core syntribos code)
    • clients/ (clients for making calls, e.g. HTTP)
      • http/ (clients for making HTTP requests)
    • checks/ (for analyzing an HTTP response and returning a signal if
      it detects something that it knows about)
    • extensions/ (extensions that can be called in request templates)
      • identity/ (extension for interacting with keystone/Identity)
      • random_data/ (extension for generating random test data)
      • cinder/ (extension for interacting with cinder/Block Storage)
      • glance/ (extension for interacting with glance/Image)
      • neutron/ (extension for interacting with neutron/Network)
      • nova/ (extension for interacting with nova/Compute)
    • formatters/ (output formatters, e.g. JSON, XML/XUnit)
    • tests/ (location of tests that syntribos can run against a target)
      • auth/ (tests related to authentication/authorization)
      • fuzz/ (tests that “fuzz” API requests)
      • debug/ (internal syntribos tests, these will not be included in a
        normal run of syntribos)
      • headers/ (tests related to insecure HTTP headers)
      • transport_layer/ (tests related to SSL and TLS vulnerabilities)
    • utils/ (utility methods)
  • tests/unit/ (unit tests for testing syntribos itself)