Tooling

The development environment is described in Programming Environment, however the CdEDB also has several specialised utility scripts, which can be found in the bin subdirectory.

  • analyze_timing.py: Check performance by utilizing the test suite.

  • check.py: The entrypoint to our testing facilities, take a look at Running tests for more details.

  • count_wikipedia_german.py: Generate word lists from large text corpora (used for password strength estimation).

  • create_sample_data_json.py: Generate a json file from the current database state. Take a look into the Test Suite for more details.

  • create_sample_data_sql.py: Generate a SQL file from an input JSON file. Take a look into the Test Suite for more details.

  • escape_fuzzing.py: Do a brute-force attempt to find an XSS vulnerability. It is recommended to execute this using check.py, see XSS tests.

  • evolution-trial.sh: Check a set of database evolutions for fitness.

  • extract_msgstr.py: Prepare i18n-data for spell-checking.

  • isolated-evolution.sh: Launch a one-time use container for testing a set of database evolutions (like evolution-trial.sh, but more thorough).

  • isolated-test.sh: Launch a one-time use container running the test suite.

There is also a development server running at port 5000 which bypasses Apache and provides an interactive traceback explorer including a console in which expressions can be evaluated in the respective namespace. Take care to start the interactive debugger as user www-cde.

To access the ldap server from a local vm, it is currently necessary to manually switch from TLS to plain TCP connections by removing the ssl parameter during server creation in ldap/main.py: Tools like ldapsearch (from ldap-utils package) or ApacheDirectoryStudio seems to do not work properly if the certificate name differs from the hostname which is used to access the ldap server. If those tools are used within the vm, everything works fine.

It is also reasonable to increase the debug level in ldap/main.py from WARNING to DEBUG.