From 87af3cd6c914985773c0bb85fcc95cd9344e6733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Such=C3=A1nek?= Date: Mon, 9 Sep 2024 09:44:58 +0200 Subject: [PATCH 1/2] fix: Fix libexpat vulnerabilities (update base Docker image) --- packages/dsw-data-seeder/Dockerfile | 4 ++-- packages/dsw-document-worker/Dockerfile | 4 ++-- packages/dsw-mailer/Dockerfile | 4 ++-- packages/dsw-tdk/Dockerfile | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/dsw-data-seeder/Dockerfile b/packages/dsw-data-seeder/Dockerfile index 110a822f..56c4d874 100644 --- a/packages/dsw-data-seeder/Dockerfile +++ b/packages/dsw-data-seeder/Dockerfile @@ -1,4 +1,4 @@ -FROM datastewardshipwizard/python-base:4.9.1-3.11-basic as builder +FROM datastewardshipwizard/python-base:4.10.1-3.11-basic as builder WORKDIR /app @@ -15,7 +15,7 @@ RUN python -m pip wheel --no-cache-dir --wheel-dir=/app/wheels -r /app/packages/ && python -m pip wheel --no-cache-dir --no-deps --wheel-dir=/app/wheels /app/packages/dsw-data-seeder -FROM datastewardshipwizard/python-base:4.9.1-3.11-basic +FROM datastewardshipwizard/python-base:4.10.1-3.11-basic ENV APPLICATION_CONFIG_PATH /app/config/application.yml ENV WORKDIR_PATH /home/user/data diff --git a/packages/dsw-document-worker/Dockerfile b/packages/dsw-document-worker/Dockerfile index b2fe6a8f..b710a085 100644 --- a/packages/dsw-document-worker/Dockerfile +++ b/packages/dsw-document-worker/Dockerfile @@ -1,4 +1,4 @@ -FROM datastewardshipwizard/python-base:4.9.1-3.11-docworker as builder +FROM datastewardshipwizard/python-base:4.10.1-3.11-docworker as builder ARG TARGETARCH @@ -17,7 +17,7 @@ RUN python -m pip wheel --wheel-dir=/app/wheels -r /app/packages/dsw-document-wo && python -m pip wheel --no-deps --wheel-dir=/app/wheels /app/packages/dsw-document-worker/addons/* \ && python -m pip wheel --no-deps --wheel-dir=/app/wheels /app/packages/dsw-document-worker -FROM datastewardshipwizard/python-base:4.9.1-3.11-docworker +FROM datastewardshipwizard/python-base:4.10.1-3.11-docworker ENV APPLICATION_CONFIG_PATH /app/config/application.yml ENV WORKDIR_PATH /tmp/docworker diff --git a/packages/dsw-mailer/Dockerfile b/packages/dsw-mailer/Dockerfile index 01501acb..49a9708a 100644 --- a/packages/dsw-mailer/Dockerfile +++ b/packages/dsw-mailer/Dockerfile @@ -1,4 +1,4 @@ -FROM datastewardshipwizard/python-base:4.9.1-3.11-basic as builder +FROM datastewardshipwizard/python-base:4.10.1-3.11-basic as builder WORKDIR /app @@ -10,7 +10,7 @@ RUN python -m pip wheel --no-cache-dir --wheel-dir=/app/wheels -r /app/packages/ && python -m pip wheel --no-cache-dir --no-deps --wheel-dir=/app/wheels /app/packages/dsw-database \ && python -m pip wheel --no-cache-dir --no-deps --wheel-dir=/app/wheels /app/packages/dsw-mailer -FROM datastewardshipwizard/python-base:4.9.1-3.11-basic +FROM datastewardshipwizard/python-base:4.10.1-3.11-basic ENV APPLICATION_CONFIG_PATH /app/config/application.yml ENV WORKDIR_PATH /home/user/templates diff --git a/packages/dsw-tdk/Dockerfile b/packages/dsw-tdk/Dockerfile index af0f0c3a..7f103f45 100644 --- a/packages/dsw-tdk/Dockerfile +++ b/packages/dsw-tdk/Dockerfile @@ -1,4 +1,4 @@ -FROM datastewardshipwizard/python-base:4.9.1-3.11-basic as builder +FROM datastewardshipwizard/python-base:4.10.1-3.11-basic as builder WORKDIR /app @@ -8,7 +8,7 @@ RUN python -m pip wheel --no-cache-dir --wheel-dir=/app/wheels -r /app/packages/ && python -m pip wheel --no-cache-dir --no-deps --wheel-dir=/app/wheels /app/packages/dsw-tdk -FROM datastewardshipwizard/python-base:4.9.1-3.11-basic +FROM datastewardshipwizard/python-base:4.10.1-3.11-basic ENV PATH "/home/user/.local/bin:$PATH" From a4955f60a3828fcab3d0cbf478969339e8d42639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Such=C3=A1nek?= Date: Mon, 9 Sep 2024 09:57:57 +0200 Subject: [PATCH 2/2] Hotfix 4.10.3 --- packages/dsw-command-queue/CHANGELOG.md | 5 +++++ packages/dsw-command-queue/pyproject.toml | 4 ++-- packages/dsw-config/CHANGELOG.md | 5 +++++ packages/dsw-config/pyproject.toml | 2 +- packages/dsw-data-seeder/CHANGELOG.md | 7 +++++++ packages/dsw-data-seeder/dsw/data_seeder/consts.py | 2 +- packages/dsw-data-seeder/pyproject.toml | 10 +++++----- packages/dsw-database/CHANGELOG.md | 5 +++++ packages/dsw-database/pyproject.toml | 4 ++-- packages/dsw-document-worker/CHANGELOG.md | 7 +++++++ .../dsw-document-worker/dsw/document_worker/consts.py | 2 +- packages/dsw-document-worker/pyproject.toml | 10 +++++----- packages/dsw-mailer/CHANGELOG.md | 7 +++++++ packages/dsw-mailer/dsw/mailer/consts.py | 2 +- packages/dsw-mailer/pyproject.toml | 8 ++++---- packages/dsw-models/CHANGELOG.md | 5 +++++ packages/dsw-models/pyproject.toml | 2 +- packages/dsw-storage/CHANGELOG.md | 5 +++++ packages/dsw-storage/pyproject.toml | 4 ++-- packages/dsw-tdk/CHANGELOG.md | 7 +++++++ packages/dsw-tdk/dsw/tdk/consts.py | 2 +- packages/dsw-tdk/pyproject.toml | 2 +- 22 files changed, 80 insertions(+), 27 deletions(-) diff --git a/packages/dsw-command-queue/CHANGELOG.md b/packages/dsw-command-queue/CHANGELOG.md index 0ef1ce95..f4c19523 100644 --- a/packages/dsw-command-queue/CHANGELOG.md +++ b/packages/dsw-command-queue/CHANGELOG.md @@ -8,6 +8,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [4.10.3] + +Released for version consistency with other DSW tools. + ## [4.10.2] Released for version consistency with other DSW tools. @@ -246,3 +250,4 @@ Released for version consistency with other DSW tools. [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-command-queue/pyproject.toml b/packages/dsw-command-queue/pyproject.toml index cdf9cac2..49e08fdd 100644 --- a/packages/dsw-command-queue/pyproject.toml +++ b/packages/dsw-command-queue/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-command-queue' -version = "4.10.2" +version = "4.10.3" description = 'Library for working with command queue and persistent commands' readme = 'README.md' keywords = ['dsw', 'subscriber', 'publisher', 'database', 'queue', 'processing'] @@ -25,7 +25,7 @@ classifiers = [ requires-python = '>=3.10, <4' dependencies = [ # DSW - "dsw-database==4.10.2", + "dsw-database==4.10.3", ] [project.urls] diff --git a/packages/dsw-config/CHANGELOG.md b/packages/dsw-config/CHANGELOG.md index 5ddb7843..6e4f3da1 100644 --- a/packages/dsw-config/CHANGELOG.md +++ b/packages/dsw-config/CHANGELOG.md @@ -8,6 +8,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [4.10.3] + +Released for version consistency with other DSW tools. + ## [4.10.2] Released for version consistency with other DSW tools. @@ -258,3 +262,4 @@ Released for version consistency with other DSW tools. [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-config/pyproject.toml b/packages/dsw-config/pyproject.toml index df061722..a613b745 100644 --- a/packages/dsw-config/pyproject.toml +++ b/packages/dsw-config/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-config' -version = "4.10.2" +version = "4.10.3" description = 'Library for DSW config manipulation' readme = 'README.md' keywords = ['dsw', 'config', 'yaml', 'parser'] diff --git a/packages/dsw-data-seeder/CHANGELOG.md b/packages/dsw-data-seeder/CHANGELOG.md index f26ac665..4d5af92d 100644 --- a/packages/dsw-data-seeder/CHANGELOG.md +++ b/packages/dsw-data-seeder/CHANGELOG.md @@ -8,6 +8,12 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [4.10.3] + +### Changed + +- Updated to newer Docker base image due to vulnerabilities (CVE-2024-45490)[https://nvd.nist.gov/vuln/detail/CVE-2024-45490], (CVE-2024-45491)[https://nvd.nist.gov/vuln/detail/CVE-2024-45491], (CVE-2024-45492)[https://nvd.nist.gov/vuln/detail/CVE-2024-45492] + ## [4.10.2] Released for version consistency with other DSW tools. @@ -302,3 +308,4 @@ Released for version consistency with other DSW tools. [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-data-seeder/dsw/data_seeder/consts.py b/packages/dsw-data-seeder/dsw/data_seeder/consts.py index e26f1a65..2b2608f5 100644 --- a/packages/dsw-data-seeder/dsw/data_seeder/consts.py +++ b/packages/dsw-data-seeder/dsw/data_seeder/consts.py @@ -6,7 +6,7 @@ DEFAULT_PLACEHOLDER = '<<|TENANT-ID|>>' NULL_UUID = '00000000-0000-0000-0000-000000000000' PROG_NAME = 'dsw-data-seeder' -VERSION = '4.10.2' +VERSION = '4.10.3' VAR_APP_CONFIG_PATH = 'APPLICATION_CONFIG_PATH' VAR_WORKDIR_PATH = 'WORKDIR_PATH' diff --git a/packages/dsw-data-seeder/pyproject.toml b/packages/dsw-data-seeder/pyproject.toml index 8ab9ba6a..6b906d2b 100644 --- a/packages/dsw-data-seeder/pyproject.toml +++ b/packages/dsw-data-seeder/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-data-seeder' -version = "4.10.2" +version = "4.10.3" description = 'Worker for seeding DSW data' readme = 'README.md' keywords = ['data', 'database', 'seed', 'storage'] @@ -29,10 +29,10 @@ dependencies = [ 'sentry-sdk', 'tenacity', # DSW - "dsw-command-queue==4.10.2", - "dsw-config==4.10.2", - "dsw-database==4.10.2", - "dsw-storage==4.10.2", + "dsw-command-queue==4.10.3", + "dsw-config==4.10.3", + "dsw-database==4.10.3", + "dsw-storage==4.10.3", ] [project.urls] diff --git a/packages/dsw-database/CHANGELOG.md b/packages/dsw-database/CHANGELOG.md index 5d47cd5b..e06080aa 100644 --- a/packages/dsw-database/CHANGELOG.md +++ b/packages/dsw-database/CHANGELOG.md @@ -8,6 +8,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [4.10.3] + +Released for version consistency with other DSW tools. + ## [4.10.2] Released for version consistency with other DSW tools. @@ -269,3 +273,4 @@ Released for version consistency with other DSW tools. [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-database/pyproject.toml b/packages/dsw-database/pyproject.toml index 7ce274e7..4272e7f4 100644 --- a/packages/dsw-database/pyproject.toml +++ b/packages/dsw-database/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-database' -version = "4.10.2" +version = "4.10.3" description = 'Library for managing DSW database' readme = 'README.md' keywords = ['dsw', 'database'] @@ -26,7 +26,7 @@ dependencies = [ 'psycopg[binary]', 'tenacity', # DSW - "dsw-config==4.10.2", + "dsw-config==4.10.3", ] [project.urls] diff --git a/packages/dsw-document-worker/CHANGELOG.md b/packages/dsw-document-worker/CHANGELOG.md index 4cfb0bd6..3b2d2da6 100644 --- a/packages/dsw-document-worker/CHANGELOG.md +++ b/packages/dsw-document-worker/CHANGELOG.md @@ -8,6 +8,12 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [4.10.3] + +### Changed + +- Updated to newer Docker base image due to vulnerabilities (CVE-2024-45490)[https://nvd.nist.gov/vuln/detail/CVE-2024-45490], (CVE-2024-45491)[https://nvd.nist.gov/vuln/detail/CVE-2024-45491], (CVE-2024-45492)[https://nvd.nist.gov/vuln/detail/CVE-2024-45492] + ## [4.10.2] Released for version consistency with other DSW tools. @@ -324,3 +330,4 @@ Released for version consistency with other DSW tools. [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-document-worker/dsw/document_worker/consts.py b/packages/dsw-document-worker/dsw/document_worker/consts.py index 2c4f435e..3a63ed3f 100644 --- a/packages/dsw-document-worker/dsw/document_worker/consts.py +++ b/packages/dsw-document-worker/dsw/document_worker/consts.py @@ -6,7 +6,7 @@ EXIT_SUCCESS = 0 NULL_UUID = '00000000-0000-0000-0000-000000000000' PROG_NAME = 'docworker' -VERSION = '4.10.2' +VERSION = '4.10.3' VAR_APP_CONFIG_PATH = 'APPLICATION_CONFIG_PATH' VAR_WORKDIR_PATH = 'WORKDIR_PATH' diff --git a/packages/dsw-document-worker/pyproject.toml b/packages/dsw-document-worker/pyproject.toml index 2241c722..f5d09764 100644 --- a/packages/dsw-document-worker/pyproject.toml +++ b/packages/dsw-document-worker/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-document-worker' -version = "4.10.2" +version = "4.10.3" description = 'Worker for assembling and transforming documents' readme = 'README.md' keywords = ['documents', 'generation', 'jinja2', 'pandoc', 'worker'] @@ -38,10 +38,10 @@ dependencies = [ 'weasyprint', 'XlsxWriter', # DSW - "dsw-command-queue==4.10.2", - "dsw-config==4.10.2", - "dsw-database==4.10.2", - "dsw-storage==4.10.2", + "dsw-command-queue==4.10.3", + "dsw-config==4.10.3", + "dsw-database==4.10.3", + "dsw-storage==4.10.3", ] [project.urls] diff --git a/packages/dsw-mailer/CHANGELOG.md b/packages/dsw-mailer/CHANGELOG.md index 7576cca2..b6425c38 100644 --- a/packages/dsw-mailer/CHANGELOG.md +++ b/packages/dsw-mailer/CHANGELOG.md @@ -8,6 +8,12 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [4.10.3] + +### Changed + +- Updated to newer Docker base image due to vulnerabilities (CVE-2024-45490)[https://nvd.nist.gov/vuln/detail/CVE-2024-45490], (CVE-2024-45491)[https://nvd.nist.gov/vuln/detail/CVE-2024-45491], (CVE-2024-45492)[https://nvd.nist.gov/vuln/detail/CVE-2024-45492] + ## [4.10.2] Released for version consistency with other DSW tools. @@ -278,3 +284,4 @@ Released for version consistency with other DSW tools. [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-mailer/dsw/mailer/consts.py b/packages/dsw-mailer/dsw/mailer/consts.py index d47153cd..6ce57616 100644 --- a/packages/dsw-mailer/dsw/mailer/consts.py +++ b/packages/dsw-mailer/dsw/mailer/consts.py @@ -5,7 +5,7 @@ DEFAULT_ENCODING = 'utf-8' NULL_UUID = '00000000-0000-0000-0000-000000000000' PROG_NAME = 'dsw-mailer' -VERSION = '4.10.2' +VERSION = '4.10.3' VAR_APP_CONFIG_PATH = 'APPLICATION_CONFIG_PATH' VAR_WORKDIR_PATH = 'WORKDIR_PATH' diff --git a/packages/dsw-mailer/pyproject.toml b/packages/dsw-mailer/pyproject.toml index 30f71e5b..bbbef36c 100644 --- a/packages/dsw-mailer/pyproject.toml +++ b/packages/dsw-mailer/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-mailer' -version = "4.10.2" +version = "4.10.3" description = 'Worker for sending email notifications' readme = 'README.md' keywords = ['email', 'jinja2', 'notification', 'template'] @@ -33,9 +33,9 @@ dependencies = [ 'sentry-sdk', 'tenacity', # DSW - "dsw-command-queue==4.10.2", - "dsw-config==4.10.2", - "dsw-database==4.10.2", + "dsw-command-queue==4.10.3", + "dsw-config==4.10.3", + "dsw-database==4.10.3", ] [project.urls] diff --git a/packages/dsw-models/CHANGELOG.md b/packages/dsw-models/CHANGELOG.md index 21c9afb6..0926ed6d 100644 --- a/packages/dsw-models/CHANGELOG.md +++ b/packages/dsw-models/CHANGELOG.md @@ -8,6 +8,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [4.10.3] + +Released for version consistency with other DSW tools. + ## [4.10.2] Released for version consistency with other DSW tools. @@ -175,3 +179,4 @@ Released for version consistency with other DSW tools. [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-models/pyproject.toml b/packages/dsw-models/pyproject.toml index a1cc9d15..9c7fa441 100644 --- a/packages/dsw-models/pyproject.toml +++ b/packages/dsw-models/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-models' -version = "4.10.2" +version = "4.10.3" description = 'Library with DSW models and basic IO operations' readme = 'README.md' keywords = ['dsw', 'config', 'yaml', 'parser'] diff --git a/packages/dsw-storage/CHANGELOG.md b/packages/dsw-storage/CHANGELOG.md index b5e39f0b..95a820b1 100644 --- a/packages/dsw-storage/CHANGELOG.md +++ b/packages/dsw-storage/CHANGELOG.md @@ -8,6 +8,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [4.10.3] + +Released for version consistency with other DSW tools. + ## [4.10.2] Released for version consistency with other DSW tools. @@ -242,3 +246,4 @@ Released for version consistency with other DSW tools. [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-storage/pyproject.toml b/packages/dsw-storage/pyproject.toml index 495d957d..2c8c9a66 100644 --- a/packages/dsw-storage/pyproject.toml +++ b/packages/dsw-storage/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-storage' -version = "4.10.2" +version = "4.10.3" description = 'Library for managing DSW S3 storage' readme = 'README.md' keywords = ['dsw', 's3', 'bucket', 'storage'] @@ -26,7 +26,7 @@ dependencies = [ 'minio', 'tenacity', # DSW - "dsw-config==4.10.2", + "dsw-config==4.10.3", ] [project.urls] diff --git a/packages/dsw-tdk/CHANGELOG.md b/packages/dsw-tdk/CHANGELOG.md index 7ce3a4b2..a699830d 100644 --- a/packages/dsw-tdk/CHANGELOG.md +++ b/packages/dsw-tdk/CHANGELOG.md @@ -8,6 +8,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [4.10.3] + +### Changed + +- Updated to newer Docker base image due to vulnerabilities (CVE-2024-45490)[https://nvd.nist.gov/vuln/detail/CVE-2024-45490], (CVE-2024-45491)[https://nvd.nist.gov/vuln/detail/CVE-2024-45491], (CVE-2024-45492)[https://nvd.nist.gov/vuln/detail/CVE-2024-45492] + ## [4.10.2] Released for version consistency with other DSW tools. @@ -468,3 +474,4 @@ Initial DSW Template Development Kit (versioned as part of the [DSW platform](ht [4.10.0]: /../../tree/v4.10.0 [4.10.1]: /../../tree/v4.10.1 [4.10.2]: /../../tree/v4.10.2 +[4.10.3]: /../../tree/v4.10.3 diff --git a/packages/dsw-tdk/dsw/tdk/consts.py b/packages/dsw-tdk/dsw/tdk/consts.py index 73f62b3b..f67df9dc 100644 --- a/packages/dsw-tdk/dsw/tdk/consts.py +++ b/packages/dsw-tdk/dsw/tdk/consts.py @@ -3,7 +3,7 @@ import re APP = 'dsw-tdk' -VERSION = '4.10.2' +VERSION = '4.10.3' METAMODEL_VERSION = 14 REGEX_SEMVER = re.compile(r'^[0-9]+\.[0-9]+\.[0-9]+$') diff --git a/packages/dsw-tdk/pyproject.toml b/packages/dsw-tdk/pyproject.toml index 82efe66b..49e8042e 100644 --- a/packages/dsw-tdk/pyproject.toml +++ b/packages/dsw-tdk/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'dsw-tdk' -version = "4.10.2" +version = "4.10.3" description = 'Data Stewardship Wizard Template Development Toolkit' readme = 'README.md' keywords = ['documents', 'dsw', 'jinja2', 'template', 'toolkit']