Technical Documentation: Server

Dependencies

Isso uses some of the following dependencies:

  • werkzeug – WSGI toolkit

  • itsdangerous – store signed data on untrusted clients

  • misaka – fast Markdown processor written in C, not maintained anymore and optional, being replaced by mistune, see next point

  • mistune – a fast yet powerful Python Markdown parser

  • html5lib – HTML(5) parser and sanitizer

Security

  • HTML sanitization: Isso sanitizes the HTML generated from comment Markdown with bleach. The default renderer (Mistune) also escapes raw HTML in comments.

  • Signed cookies: Isso uses itsdangerous to sign the cookies used for administrator sessions and comment editing.

  • Field length limits: Each submitted comment field is limited to 65535 characters. Some fields like email is limited to 254 characters.

Attention

This section of the Isso documentation is incomplete. Please help by expanding it.

Click the Edit on GitHub button in the top right corner and read the GitHub Issue named Improve & Expand Documentation for further information.

What’s missing?

  • Technologies used (flask, werkzeug, misaka, …)

  • Explain code structure

  • Request handling and HTTP

  • Database handling code

  • Comment schema

  • Comment (Markdown) rendering using misaka and custom extensions

  • Cross-Origin Resource Sharing (CORS)

  • Content Security Policy

  • Future plans: Rewrite/Refactor, SQLAlchemy, MVC

… and other things about the server that should be documented.