Skip to content

Repository map

Cory Francis Myers edited this page Nov 9, 2022 · 2 revisions

tree -L 1

Path Description
├── admin Tails-specific code, invoked by securedrop-admin
├── build Directory used for storing built packages
├── changelog.md History of changes to the project
├── .circleci Configuration for continous integration with CircleCI
├── codecov.yml Configuration for the Codecov metrics tool
├── CONTRIBUTING.md How to contribute to SecureDrop
├── devops Scripts used primarily for CI and demo.securedrop.org
├── .dockerignore Files Docker is not supposed to copy by default
├── .editorconfig Configuration presets for text editors
├── install_files Ansible playbooks and related files used in installing SecureDrop from the Admin Workstation
├── .flake8 flake8 linter configuration
├── .git-blame-ignore-revs Commits to ignore (f.e. mass code changes) when executing git blame
├── .githooks Git hooks installed by make add-hooks
├── .github GitHub metadata and issue/PR templates
├── .gitignore Files git is not supposed to track by default
├── journalist_gui The graphical SecureDrop updater
├── junit Empty directory used for storing test results in CI
├── LICENSE Copyright statement and software license
├── .lgtm.yml Configuration for lgtm.com GitHub integration
├── Makefile Shortcuts for working in this repository (run make help for details)
├── .mailmap Email address to name map used by git
├── molecule Infrastructure for CI and QA
├── mypy.ini Configuration for the mypy linter
├── project.json Configuration shared among FPF projects
├── pyproject.toml Configuration for Python tools
├── README.md About this project
├── securedrop SecureDrop Web applications—see next section
├── securedrop-admin Wrapper script for the "securedrop-admin" directory
├── SECURITY.md How to report security issues
├── SOURCE_OFFER Information on getting GPL-licensed code from FPF
├── tails_files Templates used for setting up new Admin and Journalist Workstations
├── test-results The results of the test suite run via make test
├── update_version.sh Maintainer's tool for incrementing versions during releases
└── .yamllint yamllint linter configuration file

SecureDrop Web applications

tree -L 1 -a securedrop

Path Description
├── alembic Migration scripts for upgrading and downgrading the SQLite database
├── alembic.ini Configuration for the Alembic migration tool
├── babel.cfg Configuration for the Babel localization helper
├── bin Scripts used primarily for development and CI
├── codecov.yml Configuration for the Codecov metrics tool
├── config.py.example Template for SecureDrop config.py
├── COPYING Software license
├── .coveragerc Configuration for the coverage metrics tool
├── db.py SQLAlchemy wrapper for the SQLite database
├── debian Configuration for building Debian packages
├── dictionaries Lists of adjectives and nouns for generating two-word designation for sources
├── dockerfiles Configuration for containers used for development, CI, and demo.securedrop.org
├── .dockerignore Files Docker is not supposed to copy by default
├── encryption.py Helper for interacting with GPG
├── execution.py Helper for interacting with threads
├── .gitignore Files git is not supposed to track by default
├── i18n.json Localisation metadata, which languages SecureDrop supports
├── i18n.py Helper for determining which languages to offer and serve to users
├── i18n_tool.py Maintainer's tool for updating translations
├── journalist_app Journalist Interface (JI) web application code
├── journalist.py Helper for serving the Journalist Interface
├── journalist_templates Journalist Interface (JI) Jinja2 templates
├── loaddata.py Load dummy test data into a development environment
├── management Custom commands available via manage.py
├── manage.py CLI tool for interacting with the SecureDrop Web apps and database
├── models.py SQLAlchemy ORM definitions for the SQLite database
├── passphrases.py Helper for generating diceware passphrases
├── .pylint-dictionary Dictionary of valid words for the Pylint linter
├── pylintrc Configuration for the Pylint linter
├── request_that_secures_file_uploads.py Helper for receiving file uploads securely
├── requirements Pinned dependencies
├── rm.py Secure deletion/shredding functions
├── scripts Scripts invoked by the development environment as well as systemd services in /debian/app-code/lib/systemd/system/
├── sdconfig.py
├── secure_tempfile.py Temporary files encrypted on-the-fly
├── server_os.py Server metadata returned by the API
├── setup.py Setuptools config file
├── source_app Source Interface (SI) web application code
├── source.py Helper for serving the Source Interface
├── source_templates Source Interface (SI) Jinja2 templates
├── source_user.py Source authentication
├── specialstrings.py Dummy data for loaddata.py
├── static Static web resources served to both sources and journalists
├── store.py Helpers for saving and deleting files
├── template_filters.py Custom helper functions for use in Jinja2 templates
├── tests Unit and integration tests
├── translations gettext templates (.pot), catalogs (.po), and machine objects (.mo) for translations
├── upload-screenshots.py Localisation helper, associating strings in weblate with screenshots
├── version.py SecureDrop version readable from Python
├── .well-known
├── wordlists Word lists used for diceware password generation
└── worker.py Redis Worker/Queue functions
Clone this wiki locally