Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs test merge pr #5305

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
352 commits
Select commit Hold shift + click to select a range
d090581
Add LGTM configuration file
DrGFreeman Dec 14, 2019
0262fa3
Remove suppressed LGTM queries excluded by LGTM configuration
DrGFreeman Dec 14, 2019
4c73102
Merge pull request #5074 from zenmonkeykstop/4757-source-urls-in-meta…
rmol Dec 16, 2019
52f7845
Add functional test for duplicate /generate pages
DrGFreeman Dec 17, 2019
fea3125
Added note in source guide to recommend againstcontacting FPF for hel…
zenmonkeykstop Dec 16, 2019
d07e56f
Merge pull request #5076 from DrGFreeman/5020-LTGM-config-file
zenmonkeykstop Dec 17, 2019
684b619
Add offboarding guide for removing users from SecureDrop at your orga…
rocodes Nov 19, 2019
05a2408
Reference off-boarding in Admin guide.
rocodes Nov 28, 2019
9d1102a
Add callout to update admin workstation before running install commands.
rocodes Dec 17, 2019
aec16ed
Merge pull request #5012 from rocodes/4398-docs-admin-offboarding
zenmonkeykstop Dec 17, 2019
a8b2dc6
remove unecessary comment, add comment explaining magic number
petevdp Dec 17, 2019
2bd6679
Merge pull request #5078 from zenmonkeykstop/docs-source-guide-warning
emkll Dec 17, 2019
3c485d0
add tests for submission preferences saved flash
petevdp Dec 18, 2019
925dee3
Hide codename and update message
DrGFreeman Dec 18, 2019
91903f8
correcting linter errors
zenmonkeykstop Dec 18, 2019
4324582
Merge pull request #5046 from petevdp/submission-preferences-confirma…
zenmonkeykstop Dec 18, 2019
32ab477
Add functional test for refreshing /generate page
DrGFreeman Dec 19, 2019
087e114
Replaced server reboot logic with Ansible reboot module.
zenmonkeykstop Dec 17, 2019
b317831
Increased Ansible SSH timeouts from 60s to 120s
zenmonkeykstop Dec 18, 2019
5ec07ab
update staging playbook to use simple reboot
zenmonkeykstop Dec 20, 2019
3ad76be
Merge pull request #5075 from DrGFreeman/4458-codenames-associated-to…
zenmonkeykstop Dec 30, 2019
cb2e346
Update UA regex to match TB9 user agent strings
rocodes Dec 18, 2019
7e11884
Added missing template files to apparmor profile
zenmonkeykstop Jan 3, 2020
0551ea8
Merge pull request #5088 from zenmonkeykstop/5086-add-apparmor-rules
kushaldas Jan 6, 2020
c16af86
bump Tor Browser version to 9.0.2 (9.0.3 is not yet a signed build.)
rocodes Jan 6, 2020
2fbabfe
Updated GUI test setup to use default pip version.
zenmonkeykstop Jan 6, 2020
3ab5609
Merge pull request #5090 from zenmonkeykstop/gui-tests-use-latest-pip
redshiftzero Jan 6, 2020
57a5d68
Merge pull request #5087 from rocodes/5052-purple-tor-bar
zenmonkeykstop Jan 7, 2020
c18e8e8
securedrop-app-code: remove entries copied from securedrop-proxy
redshiftzero Jan 7, 2020
12cf66a
Merge pull request #5092 from freedomofpress/fix-copyright
zenmonkeykstop Jan 9, 2020
844ffc4
Bump Tor Browser from 9.0.2 to 9.0.4
DrGFreeman Jan 14, 2020
0a84efa
Revert Tor Browser download link
DrGFreeman Jan 15, 2020
af095c4
Improve /lookup UX
DrGFreeman Jan 15, 2020
708e498
Merge pull request #5095 from DrGFreeman/5094-tor-browser-9.0.4
zenmonkeykstop Jan 15, 2020
ba38173
Support simultaneous dev containers
rmol Jul 9, 2019
1e66106
Eliminate use of uuid. Support port_prefix in vnc-docker-connect.sh
rmol Jul 25, 2019
03a2fdc
rebased and simplified port prefix logic
zenmonkeykstop Jan 17, 2020
26e3e7b
swapped in a port offset for the port prefix, to allow for moare than…
zenmonkeykstop Jan 17, 2020
818087f
Include second public key required for verifying Ubuntu sha256sums, a…
rocodes Jan 20, 2020
4ead5e6
Updated qubes staging vm names to avoid conflict with workstation vms
zenmonkeykstop Jan 21, 2020
db35065
Merge pull request #5083 from zenmonkeykstop/4364-installer-use-reboo…
rmol Jan 22, 2020
522fa4f
Cache CryptoUtil.getkey (redshiftzero's idea)
rmol Jan 22, 2020
0548e31
Merge pull request #4633 from rmol/concurrent-containers
conorsch Jan 22, 2020
28b1176
Merge pull request #5099 from zenmonkeykstop/5097-rename-staging-vms
conorsch Jan 23, 2020
fceca09
Merge pull request #5098 from rocodes/5082-docs-ubuntu-keyserver
zenmonkeykstop Jan 23, 2020
d04cdd4
app, test: encapsulate FIFO cache and add test
redshiftzero Jan 23, 2020
08ab115
Merge pull request #5100 from freedomofpress/speedy-getkey
redshiftzero Jan 24, 2020
08edfa2
Restore logout button in base.html
DrGFreeman Jan 26, 2020
6de065a
Include more detailed instructions about verifying with two signature…
rocodes Jan 27, 2020
e1c80cd
Merge pull request #5096 from DrGFreeman/5080-lookup-ux
zenmonkeykstop Jan 28, 2020
cff25fb
Removed superfluous hash in docker image names, increased CI docker b…
zenmonkeykstop Jan 31, 2020
723aef7
Merge pull request #5113 from freedomofpress/5112-fix-lint-ci
rmol Jan 31, 2020
cfcd405
added --preserve-tor-config flag to securedrop-admin restore
zenmonkeykstop Jan 27, 2020
d151a30
Merge pull request #5106 from rocodes/5082-docs-ubuntu-fp-update2
zenmonkeykstop Feb 4, 2020
668ed86
remove feature to change codename
Feb 4, 2020
0d96a52
Merge pull request #5119 from creviera/remove-change-codename
redshiftzero Feb 6, 2020
904cfe0
Merge pull request #5115 from zenmonkeykstop/5107-restore-skip-tor
emkll Feb 10, 2020
e197039
updated pip commands in scripts and docs to include --no-deps flag
zenmonkeykstop Jan 31, 2020
bf0ce4f
Merge pull request #5123 from zenmonkeykstop/use-pip-nodeps
rmol Feb 14, 2020
63f88f7
Update builder image
rmol Feb 19, 2020
c6db3ec
Merge pull request #5126 from freedomofpress/update-builder-20200219
redshiftzero Feb 19, 2020
71924ca
Add 1.2.0 to 1.2.1 update guide for workstations
eloquence Feb 19, 2020
9a4d2a1
Merge pull request #5129 from freedomofpress/docs-120-to-121
conorsch Feb 19, 2020
46d78e4
Add 1.2.1 to changelog
rmol Feb 12, 2020
65a4b94
Merge pull request #5131 from freedomofpress/add-1.2.1-changelog
zenmonkeykstop Feb 20, 2020
0bfac09
Update pylint, astroid, mypy
rmol Feb 20, 2020
f4d5be1
Added `testinfra` target to makefile that runs `molecule test`
zenmonkeykstop Feb 3, 2020
a3c8ff9
Updated based on PR review
zenmonkeykstop Feb 21, 2020
16761a3
Update version after 1.2.1
rmol Feb 19, 2020
0166146
Merge pull request #5114 from zenmonkeykstop/2437-add-testinfra-target
conorsch Feb 21, 2020
4958665
Merge pull request #5135 from freedomofpress/fix-version
redshiftzero Feb 21, 2020
fb63b76
Clarify ordering of a few operations in release management docs
rmol Feb 24, 2020
24a0191
Add 1.2.1 upgrade testing boxes
rmol Feb 21, 2020
10ee70a
Merge pull request #5142 from freedomofpress/backport-1.2.1-upgrade-b…
rmol Feb 24, 2020
4895180
Merge pull request #5138 from freedomofpress/update-rm-doc
rmol Feb 24, 2020
bb97849
added optional extra variable to load test data in staging
zenmonkeykstop Feb 24, 2020
41e03e8
documented how to set up staging with test data
zenmonkeykstop Feb 27, 2020
72c4b11
Merge pull request #5143 from zenmonkeykstop/apply-dataset-to-staging
emkll Feb 27, 2020
123fce6
Merge pull request #5133 from freedomofpress/upgrade-pylint-astroid
zenmonkeykstop Mar 6, 2020
cad15e9
updated markupsafe dependency to 1.1.1
zenmonkeykstop Mar 11, 2020
3b688d4
updated admin requiremets to upgrade marksupsafe to >=1.1
zenmonkeykstop Mar 11, 2020
664a0f2
Merge pull request #5151 from zenmonkeykstop/5150-update-markupsafe-v…
redshiftzero Mar 11, 2020
1f20b71
updated TBB version to 9.0.5
zenmonkeykstop Mar 11, 2020
2e430fe
Merge pull request #5154 from zenmonkeykstop/update-tbb-to-9.0.5
redshiftzero Mar 12, 2020
64c6be2
code owners: remove heartsucker (due to inactivity)
redshiftzero Mar 9, 2020
dce6d4b
Merge pull request #5149 from freedomofpress/code-owners
zenmonkeykstop Mar 12, 2020
5dad266
Update psutil to 5.7.0
emkll Mar 13, 2020
5b19b19
adds --allow-unsafe flag to pip-compile and pins setuptools
zenmonkeykstop Mar 13, 2020
33b252c
Update builder image
emkll Mar 13, 2020
3af59e5
Merge pull request #5158 from freedomofpress/update-builder-20200313
zenmonkeykstop Mar 13, 2020
1154df6
Merge pull request #5157 from freedomofpress/psutil-570
zenmonkeykstop Mar 13, 2020
e3650e5
Merge pull request #5159 from zenmonkeykstop/4686-pin-setuptools
emkll Mar 13, 2020
5fa2b49
Add 1.2.1->1.2.2 upgrade guide
eloquence Mar 16, 2020
68168b7
Merge pull request #5164 from freedomofpress/docs-121-to-122
zenmonkeykstop Mar 16, 2020
b3d817b
SecureDrop 1.2.2~rc1
emkll Mar 13, 2020
a197da0
SecureDrop release 1.2.2
zenmonkeykstop Mar 16, 2020
4e75864
Merge pull request #5167 from zenmonkeykstop/update-1.2.2-changes
emkll Mar 18, 2020
b21f8c2
Add upgrade boxes for 1.2.2
emkll Mar 17, 2020
fd3bf71
Merge pull request #5168 from freedomofpress/122-upgrade-boxes
conorsch Mar 20, 2020
118db3c
Improve admin workstation updater GUI error handling
rmol Mar 20, 2020
34408f5
Ignore shellcheck warning 2230
rmol Mar 20, 2020
92772b0
Update TBB version to 9.0.7
prateekj117 Mar 24, 2020
c640df6
Merge pull request #5173 from prateekj117/fix-tor-version
redshiftzero Mar 24, 2020
97470c4
Merge pull request #5171 from freedomofpress/ignore-sc2230
zenmonkeykstop Mar 26, 2020
82cbfe9
chore: s/journalists/team
wbaid Mar 28, 2020
3770689
Merge pull request #5169 from freedomofpress/gui-updater-error-handling
redshiftzero Mar 31, 2020
cd021f3
Update pyyaml to 5.3.1
emkll Apr 1, 2020
1c51f7a
Update urllib to 1.25.8
emkll Apr 1, 2020
5bc25fd
Update pillow to 7.0.0 for test requirements
emkll Apr 1, 2020
ab91a1d
Update safety to 1.8.7
emkll Apr 1, 2020
29dc4ac
Merge pull request #5182 from freedomofpress/5180-5181-update-require…
redshiftzero Apr 1, 2020
efbee45
Fixes #5176 Adds code+test to return replies without a journalist
kushaldas Apr 1, 2020
7b4484d
api: reply with username/uuid for deleted journalist users
redshiftzero Apr 1, 2020
77978fb
Merge pull request #5175 from wbaid/sub-journalists-team
zenmonkeykstop Apr 1, 2020
8576e0b
Merge pull request #5178 from freedomofpress/fix_journalist_api
redshiftzero Apr 1, 2020
7d0f3fb
Rename CryptoUtil.getkey
rmol Apr 1, 2020
e3df3ed
Add caching of source public keys
rmol Apr 1, 2020
5769c23
Add source detail to create-dev-data output
rmol Apr 1, 2020
f40fca2
Fix: CryptoUtil cache cleaning, create-dev-data.py deleted journo
rmol Apr 3, 2020
4330421
Ensure source key caches are primed at Apache startup
rmol Apr 3, 2020
639ecf8
Use Redis for source key caching
rmol Apr 6, 2020
b9a7717
Fix WSGI app init in journalist Apache config
rmol Apr 7, 2020
07e4708
Revert CryptoUtil.get_fingerprint UID matching
rmol Apr 7, 2020
da07ca7
Update grsecurity kernels to 4.14.175
Apr 6, 2020
13147a7
Updates kernel config tests for /boot perms
Apr 8, 2020
5aca092
Rename CryptoUtil Redis keys.
rmol Apr 8, 2020
d3e5c73
Removes old kernel dependencies from metapackage
Apr 8, 2020
b5ee020
Make qa_loader.py nicer for load and workstation testing
rmol Mar 26, 2020
8684a45
fixed qa loader script test
zenmonkeykstop Apr 9, 2020
e3ad82e
updated Tor Browser version
zenmonkeykstop Apr 9, 2020
12bdfc9
Update TBB version to 9.0.9
Apr 9, 2020
9309456
Merge pull request #5188 from freedomofpress/5111-kernels-4.14.175
emkll Apr 9, 2020
a0e2674
Merge pull request #5184 from freedomofpress/add-key-cache
redshiftzero Apr 9, 2020
ed1d137
Fixes VM creation in qubes-staging env
Sep 18, 2019
5965fa4
Checks for admin tooling in qubes-staging env
Feb 14, 2020
99a3e93
Automatically reboot VMs in qubes-staging env
Apr 9, 2020
c82ea11
Updates tor to 0.4.2.7
Apr 13, 2020
6ad1662
Merge pull request #5192 from freedomofpress/5070-update-tor
emkll Apr 14, 2020
1e84901
Merge pull request #5190 from freedomofpress/3936-fix-qubes-staging-env
rmol Apr 14, 2020
0acdd39
- Add logout page and route that directs users to click the New Ident…
rocodes Feb 5, 2020
bba4bb8
Merge pull request #5116 from rocodes/4952-logout-new-identity-tor
zenmonkeykstop Apr 17, 2020
174b29d
Merge pull request #5174 from freedomofpress/qa-loader-overhaul
zenmonkeykstop Apr 17, 2020
45725e7
Update qa_loader for crypto_util changes
rmol Apr 20, 2020
bc06d98
Merge pull request #5200 from freedomofpress/fix-qa-loader-new-reply
zenmonkeykstop Apr 20, 2020
058188b
updated OSSEC version to 3.6.0, built with JIT disabled for grsec kernel
zenmonkeykstop Apr 13, 2020
f02ef6e
nit fixes
zenmonkeykstop Apr 21, 2020
ab8d4a0
Merge pull request #5196 from freedomofpress/upgrade-ossec-3.6.0
emkll Apr 21, 2020
84c5e12
Update Ansible to 2.9.7
rmol Apr 17, 2020
8acff1b
Make ansible_version_check.py a little more flexible
rmol Apr 17, 2020
d249246
Fix tor restart handler naming
rmol Apr 17, 2020
00dc508
Update deprecated ansible_ssh_ variables
rmol Apr 20, 2020
898271e
Fix "no filter named 'changed'" errors
rmol Apr 20, 2020
dca3da8
Use Ansible's new Python interpreter discovery behavior
rmol Apr 22, 2020
d30b79a
Uses python3-requests for OSSEC build
Apr 22, 2020
d9184d5
Changes include -> include_tasks in tor handler
Apr 22, 2020
f5554d2
Fix error message construction in ansible_version_check.py
rmol Apr 23, 2020
3995277
Merge pull request #5199 from freedomofpress/update-ansible
rmol Apr 23, 2020
6a2525f
Update builder image
emkll Apr 28, 2020
dd73b11
Always update cache when downloading python3-requests
emkll Apr 28, 2020
84f2579
Merge pull request #5209 from freedomofpress/update-builder-20200428
zenmonkeykstop Apr 28, 2020
b5ab5ca
Correct message when logged-in source logs in
rmol Apr 30, 2020
bc9e67f
Merge pull request #5216 from freedomofpress/5215-correct-codename-me…
zenmonkeykstop May 1, 2020
4e76867
updated pylint from 2.4.4 to 2.5.0
zenmonkeykstop May 1, 2020
ecf6255
Merge pull request #5219 from freedomofpress/safety-update-pylint
zenmonkeykstop May 4, 2020
fbc7555
Removed submission preference alert from top of config page
zenmonkeykstop May 4, 2020
3f5dd75
Merge pull request #5223 from freedomofpress/5220-remove-unstyled-alert
rmol May 4, 2020
412103d
Use WTForm for source interface submission form
rmol Apr 30, 2020
ec2220c
Merge pull request #5226 from freedomofpress/source-submission-wtform
zenmonkeykstop May 4, 2020
eea2189
Stop calling random.seed in qa_loader.py
rmol May 6, 2020
a0ac934
Updated references to Tails Terminal menu item with 4.6 location
zenmonkeykstop May 7, 2020
746ed02
added version information to docs index page
zenmonkeykstop May 8, 2020
fa767bd
Standardized menu reference styling
zenmonkeykstop May 7, 2020
246dcc5
Merge pull request #5240 from freedomofpress/docs-5234-update-termina…
rmol May 8, 2020
3a54c43
l10n: updated Arabic (ar)
rmol May 11, 2020
c55c01e
l10n: updated Catalan (ca)
rmol May 11, 2020
4670ee8
l10n: updated Czech (cs)
rmol May 11, 2020
a83d3cc
l10n: updated German (de_DE)
rmol May 11, 2020
29ea96f
l10n: updated Greek (el)
rmol May 11, 2020
6f473de
l10n: updated Spanish (es_ES)
rmol May 11, 2020
30701c0
l10n: updated French (fr_FR)
rmol May 11, 2020
e35eced
l10n: updated Hindi (hi)
rmol May 11, 2020
af701b5
l10n: updated Icelandic (is)
rmol May 11, 2020
cf83c8c
l10n: updated Italian (it_IT)
rmol May 11, 2020
4496abe
l10n: updated Norwegian (nb_NO)
rmol May 11, 2020
05755e8
l10n: updated Dutch (nl)
rmol May 11, 2020
83a2870
l10n: updated Portuguese, Brasil (pt_BR)
rmol May 11, 2020
a5d4306
l10n: updated Romanian (ro)
rmol May 11, 2020
451b3e6
l10n: updated Russian (ru)
rmol May 11, 2020
9abff29
l10n: updated Slovak (sk)
rmol May 11, 2020
669611f
l10n: updated Swedish (sv)
rmol May 11, 2020
c594972
l10n: updated Turkish (tr)
rmol May 11, 2020
995bab6
l10n: updated Chinese, Traditional (zh_Hant)
rmol May 11, 2020
2640cbe
updated broken links and outdated Tails terminology
zenmonkeykstop May 11, 2020
0704e10
Merge pull request #5243 from freedomofpress/i18n-merge-1.3.0
zenmonkeykstop May 11, 2020
fcdf7b4
Add 1.2.2->1.3.0 upgrade guide; remove old Xenial docs
eloquence May 11, 2020
22ba7fc
Merge pull request #5242 from freedomofpress/docs-5081-add-version-in…
kushaldas May 12, 2020
1082293
Update Builder
emkll May 12, 2020
96d8b8d
Merge pull request #5250 from freedomofpress/update-builder-20200512
zenmonkeykstop May 12, 2020
1017416
Merge pull request #5248 from freedomofpress/docs-122-to-130
zenmonkeykstop May 12, 2020
c03651e
added Ansible parameter to use legacy password prompt text
zenmonkeykstop May 13, 2020
696b47a
Merge pull request #5255 from freedomofpress/fix-ansible-password-prompt
conorsch May 13, 2020
4205197
Update Builder
emkll May 13, 2020
514b9e9
Merge pull request #5258 from freedomofpress/update-builder-20200513
emkll May 13, 2020
d645318
fix: Only run docs linting/linkcheck tests in master
prateekj117 May 14, 2020
7654549
Correct config syntax
prateekj117 May 14, 2020
5819bcf
SecureDrop 1.3.0~rc1
zenmonkeykstop Apr 24, 2020
ad52e3b
updated changelog with added PRs
zenmonkeykstop Apr 24, 2020
bc3ba65
SecureDrop 1.3.0-rc2
emkll May 5, 2020
d7b9b65
SecureDrop release 1.3.0
zenmonkeykstop May 13, 2020
45ec25a
Merge pull request #5245 from freedomofpress/docs-fix-broken-links
rmol May 18, 2020
e515f68
Rename job to docs-lint-linkcheck
prateekj117 May 18, 2020
b8f5454
Cleanup commit: whitespace
eloquence May 18, 2020
bf9a3fa
Update Qubes references to debian-10, add tip for aufs-dkms
eloquence May 18, 2020
1e6b694
Post-release version bump from 1.3.0 to 1.4.0~rc1
May 18, 2020
d731795
Dev docs: Debian 9 -> Debian "stable"
May 18, 2020
58f26a4
Merge pull request #5269 from freedomofpress/docs-debian-10
rmol May 18, 2020
359fae8
Merge pull request #5268 from creviera/1.3.0-post-release
zenmonkeykstop May 19, 2020
7a2f962
Merge pull request #5236 from freedomofpress/quit-seeding-qa-loader
redshiftzero May 19, 2020
65b58f3
Merge pull request #5266 from prateekj117/fix-master-docs-lint-ci
rmol May 19, 2020
b07e58e
Fix functional test flake at two-factor tooltip check
rmol May 19, 2020
d0d9afb
Merge pull request #5272 from freedomofpress/5271-fix-2fa-tooltip-flake
redshiftzero May 19, 2020
df6942f
Add upgrade boxes for 1.3.0
May 20, 2020
ce9429c
Update signing key expiry date to 20210630
emkll May 21, 2020
1346be8
Merge pull request #5277 from freedomofpress/5274-update-keyring-2020
redshiftzero May 22, 2020
a64fb7c
fix: Proper exception handling of InvalidPasswordLength
prateekj117 May 24, 2020
ee06369
Make deletion of multiple sources asynchronous
rmol May 8, 2020
e0c5ff0
Merge pull request #5257 from freedomofpress/5233-spring-cleaning-sup…
redshiftzero May 26, 2020
37299e7
Merge pull request #5276 from freedomofpress/upgrade-boxes-for-1.3.0
zenmonkeykstop May 26, 2020
0157468
Add tests to check server handles exception correctly
prateekj117 May 27, 2020
7580e98
Merge pull request #5279 from prateekj117/fix-password-exception
zenmonkeykstop May 28, 2020
89eb532
Fixes #5285 upgrades sphinx for developer requirements
kushaldas Jun 2, 2020
35af1fd
Updates pygments
kushaldas Jun 2, 2020
3001741
Updates code block lexer for pygments
kushaldas Jun 2, 2020
214c3ae
Adds back importlib-resources for python < 3.7
kushaldas Jun 2, 2020
7d2eb91
Updates year to 2020
kushaldas Jun 2, 2020
f5b4bad
Upgrades sphinx-rtd-theme to a modern version 🚀
kushaldas Jun 2, 2020
98ba0df
Merge pull request #5286 from freedomofpress/upgrade_sphinx
conorsch Jun 2, 2020
47efdb4
Bump Tor Browser version to 9.5
eloquence Jun 3, 2020
4775539
Merge pull request #5290 from freedomofpress/bump-tbb-to-95
rmol Jun 3, 2020
4f8abad
Update syntax for type annotations
pierwill May 29, 2020
1e39cd2
Merge pull request #5283 from pierwill/pierwill-type-syntax-1
rmol Jun 3, 2020
42222be
Improve nameserver configuration
rmol May 20, 2020
a98dbad
Merge pull request #5288 from freedomofpress/improve-nameserver-confi…
kushaldas Jun 4, 2020
822068e
Add system configuration check script to securedrop-ossec packages
rmol Jun 2, 2020
f9c611b
update make target fetch-tor-packages to download 0.4.3.5
Jun 4, 2020
2cb4e3d
Merge pull request #5287 from freedomofpress/check-config
conorsch Jun 4, 2020
da76696
Merge pull request #5292 from freedomofpress/tor-0.4.3.5
conorsch Jun 4, 2020
efd1121
SecureDrop release 1.4.0-rc1
Jun 5, 2020
ff2daf0
Merge branch 'master' into docs-test-merge-strategy
zenmonkeykstop Jun 9, 2020
2b2fe71
removed lint and related jobs from docs- branch circleci dependencies
zenmonkeykstop Jun 15, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
33 changes: 29 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
name: Run all linters but shellcheck
command: |
fromtag=$(docker images |grep securedrop-test-xenial-py3 |head -n1 |awk '{print $2}')
DOCKER_BUILD_ARGUMENTS="--cache-from securedrop-test-xenial-py3:${fromtag:-latest}" securedrop/bin/dev-shell bash -c "/opt/venvs/securedrop-app-code/bin/pip3 install --require-hashes -r requirements/python3/develop-requirements.txt && make -C .. ansible-config-lint app-lint docs-lint flake8 html-lint typelint yamllint"
DOCKER_BUILD_ARGUMENTS="--cache-from securedrop-test-xenial-py3:${fromtag:-latest}" securedrop/bin/dev-shell bash -c "/opt/venvs/securedrop-app-code/bin/pip3 install --require-hashes -r requirements/python3/develop-requirements.txt && make -C .. ansible-config-lint app-lint flake8 html-lint typelint yamllint"

- run:
name: Run shellcheck
Expand Down Expand Up @@ -277,7 +277,7 @@ jobs:
if ! [[ $BRANCH_MATCH =~ ^found ]]; then echo "Skipping: ${BRANCH_MATCH}"; exit 0; fi
make ci-deb-tests

docs-linkcheck:
docs-lint-linkcheck:
docker:
- image: circleci/python:3.5
steps:
Expand All @@ -297,11 +297,23 @@ workflows:
version: 2
securedrop_ci:
jobs:
- lint
- docs-lint-linkcheck:
filters:
branches:
only:
- master
- /docs-.*/
- lint:
filters:
branches:
ignore:
- master
- /docs-.*/
- app-tests:
filters:
branches:
ignore:
- master
- /docs-.*/
- /i18n-.*/
- /update-builder-.*/
Expand All @@ -311,6 +323,7 @@ workflows:
filters:
branches:
ignore:
- master
- /docs-.*/
- /i18n-.*/
- /update-builder-.*/
Expand All @@ -320,23 +333,35 @@ workflows:
filters:
branches:
ignore:
- master
- /docs-.*/
- /i18n-.*/
- /update-builder-.*/
requires:
- lint
- static-analysis-and-no-known-cves:
filters:
branches:
ignore:
- master
- /docs-.*/
requires:
- lint
- staging-test-with-rebase:
filters:
branches:
ignore:
- master
- /docs-.*/
- /i18n-.*/
requires:
- lint
- translation-tests:
filters:
branches:
ignore:
- master
- /docs-.*/
requires:
- lint
- deb-tests:
Expand Down Expand Up @@ -369,5 +394,5 @@ workflows:
jobs:
- deb-tests
- translation-tests
- docs-linkcheck
- docs-lint-linkcheck
- fetch-tor-debs
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
Expand Down
109 changes: 92 additions & 17 deletions admin/securedrop_admin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"""

import argparse
import ipaddress
import logging
import os
import io
Expand All @@ -33,6 +34,7 @@
import json
import base64
import prompt_toolkit
from prompt_toolkit.document import Document
from prompt_toolkit.validation import Validator, ValidationError
import yaml
from pkg_resources import parse_version
Expand All @@ -48,6 +50,9 @@
EXIT_SUBPROCESS_ERROR = 1
EXIT_INTERRUPT = 2

MAX_NAMESERVERS = 3
LIST_SPLIT_RE = re.compile(r"\s*,\s*|\s+")


class FingerprintException(Exception):
pass
Expand Down Expand Up @@ -83,11 +88,34 @@ def validate(self, document):

class ValidateIP(Validator):
def validate(self, document):
if re.match(r'((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}$', # lgtm [py/regex/unmatchable-dollar] # noqa: E501
document.text):
try:
ipaddress.ip_address(document.text)
return True
raise ValidationError(
message="An IP address must be something like 10.240.20.83")
except ValueError as e:
raise ValidationError(message=str(e))

class ValidateNameservers(Validator):
def validate(self, document):
candidates = LIST_SPLIT_RE.split(document.text)
if len(candidates) > MAX_NAMESERVERS:
raise ValidationError(message="Specify no more than three nameservers.")
try:
all(map(ipaddress.ip_address, candidates))
except ValueError:
raise ValidationError(
message=(
"DNS server(s) should be a space/comma-separated list "
"of up to {} IP addresses"
).format(MAX_NAMESERVERS)
)
return True

@staticmethod
def split_list(text):
"""
Splits a string containing a list of values separated by commas or whitespace.
"""
return LIST_SPLIT_RE.split(text)

class ValidatePath(Validator):
def __init__(self, basedir):
Expand Down Expand Up @@ -273,10 +301,10 @@ def __init__(self, args):
SiteConfig.ValidateNotEmpty(),
None,
lambda config: True],
['dns_server', '8.8.8.8', str,
'DNS server specified during installation',
SiteConfig.ValidateNotEmpty(),
None,
['dns_server', ['8.8.8.8', '8.8.4.4'], list,
'DNS server(s)',
SiteConfig.ValidateNameservers(),
SiteConfig.split_list,
lambda config: True],
['securedrop_app_gpg_public_key', 'SecureDrop.asc', str,
'Local filepath to public key for ' +
Expand Down Expand Up @@ -393,14 +421,15 @@ def __init__(self, args):
lambda config: True],
]

def load_and_update_config(self):
def load_and_update_config(self, validate: bool = True, prompt: bool = True):
if self.exists():
self.config = self.load()
self.config = self.load(validate)

return self.update_config()
return self.update_config(prompt)

def update_config(self):
self.config.update(self.user_prompt_config())
def update_config(self, prompt: bool = True):
if prompt:
self.config.update(self.user_prompt_config())
self.save()
self.validate_gpg_keys()
self.validate_journalist_alert_email()
Expand Down Expand Up @@ -559,10 +588,56 @@ def save(self):
site_config_file,
default_flow_style=False)

def load(self):
def clean_config(self, config: dict) -> dict:
"""
Cleans a loaded config without prompting.

For every variable defined in self.desc, validate its value in
the supplied configuration dictionary, run the value through
its defined transformer, and add the result to a clean version
of the configuration.

If no configuration variable triggers a ValidationError, the
clean configuration will be returned.
"""
clean_config = {}
clean_config.update(config)
for desc in self.desc:
var, default, vartype, prompt, validator, transform, condition = desc
if var in clean_config:
value = clean_config[var]
if isinstance(value, list):
text = " ".join(str(v) for v in value)
elif isinstance(value, bool):
text = "yes" if value else "no"
else:
text = str(value)

if validator is not None:
try:
validator.validate(Document(text))
except ValidationError as e:
sdlog.error(e)
sdlog.error(
'Error loading configuration. '
'Please run "securedrop-admin sdconfig" again.'
)
raise
clean_config[var] = transform(text) if transform else text
return clean_config

def load(self, validate=True):
"""
Loads the site configuration file.

If validate is True, then each configuration variable that has
an entry in self.desc is validated and transformed according
to current specifications.
"""
try:
with io.open(self.args.site_config) as site_config_file:
return yaml.safe_load(site_config_file)
c = yaml.safe_load(site_config_file)
return self.clean_config(c) if validate else c
except IOError:
sdlog.error("Config file missing, re-run with sdconfig")
raise
Expand All @@ -586,7 +661,7 @@ def setup_logger(verbose=False):

def sdconfig(args):
"""Configure SD site settings"""
SiteConfig(args).load_and_update_config()
SiteConfig(args).load_and_update_config(validate=False)
return 0


Expand Down Expand Up @@ -659,7 +734,7 @@ def find_or_generate_new_torv3_keys(args):

def install_securedrop(args):
"""Install/Update SecureDrop"""
SiteConfig(args).load()
SiteConfig(args).load_and_update_config(prompt=False)

sdlog.info("Now installing SecureDrop on remote servers.")
sdlog.info("You will be prompted for the sudo password on the "
Expand Down
5 changes: 3 additions & 2 deletions admin/tests/files/site-specific
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
app_hostname: app
app_ip: 10.20.2.2
dns_server: 8.8.8.8
dns_server:
- 8.8.8.8
monitor_hostname: mon
monitor_ip: 10.20.3.2
ossec_alert_email: la@foo.com
Expand All @@ -13,7 +14,7 @@ securedrop_app_gpg_fingerprint: E99FFE83DF73E72FB6B264ED992D23B392F9E4F2
securedrop_app_gpg_public_key: key.asc
securedrop_app_https_on_source_interface: false
securedrop_supported_locales:
- en
- en_US
smtp_relay: smtp.gmail.com
smtp_relay_port: 587
ssh_users: sd
Expand Down
3 changes: 2 additions & 1 deletion admin/tests/files/site-specific-missing-entries
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
app_hostname: app
app_ip: 10.20.2.2
dns_server: 8.8.8.8
dns_server:
- 8.8.8.8
monitor_hostname: mon
monitor_ip: 10.20.3.2
ossec_alert_email: la@foo.com
Expand Down
27 changes: 20 additions & 7 deletions admin/tests/test_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
OUTPUT1 = '''app_hostname: app
app_ip: 10.20.2.2
daily_reboot_time: 5
dns_server: 8.8.8.8
dns_server:
- 8.8.8.8
- 8.8.4.4
enable_ssh_over_tor: true
journalist_alert_email: ''
journalist_alert_gpg_public_key: ''
Expand Down Expand Up @@ -51,7 +53,9 @@
WHEN_BOTH_TRUE = '''app_hostname: app
app_ip: 10.20.2.2
daily_reboot_time: 5
dns_server: 8.8.8.8
dns_server:
- 8.8.8.8
- 8.8.4.4
enable_ssh_over_tor: true
journalist_alert_email: ''
journalist_alert_gpg_public_key: ''
Expand Down Expand Up @@ -83,7 +87,9 @@
WHEN_ONLY_V2 = '''app_hostname: app
app_ip: 10.20.2.2
daily_reboot_time: 5
dns_server: 8.8.8.8
dns_server:
- 8.8.8.8
- 8.8.4.4
enable_ssh_over_tor: true
journalist_alert_email: ''
journalist_alert_gpg_public_key: ''
Expand Down Expand Up @@ -115,7 +121,9 @@
JOURNALIST_ALERT_OUTPUT = '''app_hostname: app
app_ip: 10.20.2.2
daily_reboot_time: 5
dns_server: 8.8.8.8
dns_server:
- 8.8.8.8
- 8.8.4.4
enable_ssh_over_tor: true
journalist_alert_email: test@gmail.com
journalist_alert_gpg_public_key: sd_admin_test.pub
Expand Down Expand Up @@ -147,7 +155,9 @@
HTTPS_OUTPUT = '''app_hostname: app
app_ip: 10.20.2.2
daily_reboot_time: 5
dns_server: 8.8.8.8
dns_server:
- 8.8.8.8
- 8.8.4.4
enable_ssh_over_tor: true
journalist_alert_email: test@gmail.com
journalist_alert_gpg_public_key: sd_admin_test.pub
Expand Down Expand Up @@ -229,8 +239,8 @@ def verify_hostname_mon_prompt(child):


def verify_dns_prompt(child):
child.expect(rb'DNS server specified during installation\:', timeout=2)
assert ANSI_ESCAPE.sub('', child.buffer.decode("utf-8")).strip() == '8.8.8.8' # noqa: E501
child.expect(rb'DNS server\(s\):', timeout=2)
assert ANSI_ESCAPE.sub('', child.buffer.decode("utf-8")).strip() == '8.8.8.8 8.8.4.4' # noqa: E501


def verify_app_gpg_key_prompt(child):
Expand Down Expand Up @@ -674,6 +684,7 @@ def test_sdconfig_enable_https_on_source_interface():

@pytest.fixture
def securedrop_git_repo(tmpdir):
cwd = os.getcwd()
os.chdir(str(tmpdir))
# Clone the SecureDrop repository into the temp directory.
cmd = ['git', 'clone',
Expand All @@ -698,6 +709,8 @@ def securedrop_git_repo(tmpdir):
# It means the coverage file may not exist, don't error
pass

os.chdir(cwd)


def set_reliable_keyserver(gpgdir):
# If gpg.conf doesn't exist, create it and set a reliable default
Expand Down