46 Commits

Author SHA1 Message Date
Jan Sandbrink 294611cc59 Add SSRF filter for HTTPX
Filtering in front of HTTPX calls is less secure, because it's vulnerable to
DNS rebinding. In addition to that it's also duplicate work, because all affected
callsites would have to make sure to "remember" SSRF filtering.

This SSRF filter is inspired by the original HTTPX SSRF Filter, but using our custom
IP address matcher that allows to configure safe IP addresses or ranges.
2026-06-03 09:56:48 +02:00
Marcello Rocha 954d142395 Disable persistent connections as it is starting an infinite loop. Needs more investigation 2026-03-02 18:37:41 +01:00
Marcello Rocha d4e841cfce Update HTTPX configs and plugin loading according to the new docs for Client Credentials, Bearer and Basic auth 2026-03-02 18:27:57 +01:00
Jan Sandbrink 78f16799c3 Indicate user-agent in requests made by OpenProject.httpx
This should be a best-practice, as it allows administrators
to properly recognize traffic originating from an OpenProject
installation.
2025-11-20 15:51:10 +01:00
Ivan Kuchin 4911b8a149 remove years from copyrights (except for COPYRIGHT file) 2024-07-31 15:02:49 +02:00
Pavel Balashou df36334e8b Do not cache HTTPX session object in tests. 2024-04-30 09:05:12 +02:00
Pavel Balashou 341e557721 [#54293] Reenable HTTPX persistent connections.
https://community.openproject.org/work_packages/54293
2024-04-30 09:05:12 +02:00
Eric Schubert d9d7f98257 [fix] remove caching httpx sessions for reuse
- reused session caused under certain circumstances http request to fail
- reusing sessions was mandatory for persistent connections, but those
  are not used anymore
2024-03-28 12:48:27 +01:00
ulferts 3e6a89a922 Merge remote-tracking branch 'origin/release/13.4' into dev 2024-03-25 12:17:48 +01:00
Pavel Balashou a0c6d06d68 Disable httpx persistent connection plugin.
Due to it does not work properly with at least some nextlcoud installations.
2024-03-22 16:18:59 +01:00
Christophe Bliard 1ae177c2a8 Merge branch 'release/13.4' into dev 2024-03-21 17:22:20 +01:00
Pavel Balashou 0386fcebae Set operation and request httpx timeouts. 2024-03-21 12:00:13 +01:00
ulferts 3b2121f733 Revert "Merge remote-tracking branch 'origin/release/13.4' into dev"
This reverts commit 40b2bbeb09, reversing
changes made to b4c6cb17cc.
2024-03-21 11:31:17 +01:00
Ivan Kuchin 7787e457a3 Revert "Merge branch 'dev' into release/13.4"
This reverts commit a901541269, reversing
changes made to e573ca00b7.
2024-03-20 20:19:08 +01:00
Eric Schubert c88999f137 [#53368] added unit test for storage authentication 2024-03-20 11:05:31 +01:00
Pavel Balashou 30b462bd12 [#52921] Configure HTTPX timeouts.
https://community.openproject.org/work_packages/52921

- Configure HTTPX timeouts
- Reuse HTTPX session though lifetime of a process.
- Enable HTTPX persistent connections(with reusage of HTTPX session it should work as expected)
- Add HTTPXApsignal plugin to HTTPX if Appsignal enabled to track external requests. [Sample](https://appsignal.com/openproject-gmbh/sites/65d5f46a83eb679274de83f9/performance/incidents/30/samples/65d5f46a83eb679274de83f9-176837881530755131351708712520).
- Run Storages::ManageNextcloudIntegrationCronJob once per hour.
2024-02-23 20:09:23 +01:00
Marcello Rocha 4628ef8bf6 Temporary disable persistent connections while we work on a appropriate fix 2024-02-21 10:17:04 +01:00
Pavel Balashou 264c8ac998 Handle possible timeouts in host_validator. 2024-02-09 00:06:00 +01:00
Pavel Balashou 95476f6164 [#51738] Enable HTTPX persistent connections.
https://community.openproject.org/work_packages/51738
2024-01-18 14:11:32 +01:00
Christophe Bliard c795874f7f Update copyright year for 2024
command used: `rg -l 'Copyright \(C\) 2012-202\d the OpenProject' | xargs -n 100 sed -i -r 's/Copyright \(C\) 2012-202. the OpenProject/Copyright (C) 2012-2024 the OpenProject/'`
2024-01-02 16:23:54 +01:00
Christophe Bliard 21a696ef9b Update copyright information for 2023 2022-12-30 15:51:26 +01:00
Oliver Günther 51730215b2 Remove sentry 2022-12-12 14:12:36 +01:00
ulferts 6ad2713141 avoid autoloading ApplicationHelper during initialization 2022-04-04 16:04:46 +02:00
Christophe Bliard a33524ef6d remove ruby magic comment for utf-8
ruby interprets source encoding as utf-8 since 2.0.0, making magic comment redundant and useless
2022-03-10 19:36:58 +01:00
Christophe Bliard bc8d423ec2 update copyright information for 2022 2022-03-01 17:05:59 +01:00
Oliver Günther 32b67aeca3 Refactor MimeType into OpenProject scope and allow video inlines 2021-11-05 14:23:58 +01:00
Wieland Lindenthal 5d782626a9 Merge remote-tracking branch 'origin/release/11.4' into dev 2021-09-17 16:29:42 +02:00
Oliver Günther d748b967dd Fix using log extenders from sentry and core logger 2021-09-17 14:06:28 +02:00
Oliver Günther ccfa29c728 Move license and copyright docs to root, fix names and references 2021-09-02 21:50:46 +02:00
ulferts 5cb227796c Fix/hook service to openproject (#9214)
* move specs from legacy

* move Hook into OpenProject namespace

* replace class variables
2021-05-03 20:58:15 +02:00
ulferts 9fa5599392 Feature/member notifications (#8958)
* spec with correctly scoped links

* move db check into own file - fix deprecation

* basic spec for member creation service

* use constants for all notifications

* send an OP notification after member has been created

* send an OP notification after member has been updated

* mails on group member added

Depending on whether the membership existed before or not, an updated or
a created notification is send. This is done asynchronously.

* move all mail sender background jobs into namespace

* wip

* wip

* correct handling group member notifications

* add setting enable/disable mail sending on member alterations

* use services in members controller

* move Notifiable to OpenProject

* remove member after save hooks

* cleanup/testing/linting

* render member mails in receiver locale

* remove add_member! method

* use mailer layout for all mailers

* Update app/services/groups/cleanup_inherited_roles_service.rb

Co-authored-by: Oliver Günther <mail@oliverguenther.de>

* use around callback to avoid prepending

* handle nil params

Co-authored-by: Oliver Günther <mail@oliverguenther.de>
2021-04-20 13:45:42 +02:00
Oliver Günther aca807b45a Explitly import patches module (#9080) 2021-03-10 10:19:04 +01:00
ulferts 6140f4c7e9 update copyright to 2021 (#8925)
Updates the copyright to 2021 for all files that have a copyright. Files in our source code without the copyright header still do not receive one automatically. Additionally, backlisted files are also excluded.

Previously the copyright of chiliproject which references redmine stated a copyright of redmine up to and including 2017 which is not true for the code we have in here. Because of that I changed that to 2013
2021-01-13 17:47:45 +01:00
ulferts 64d0f57d85 Feature/aggregated activities (#8221)
* use cte for aggregated journal

* Revert "use cte for aggregated journal"

This reverts commit 5fedefefdd.

* add another subselect that could later on be provided from the outside

* allow passing a nukleous sql to aggregated journals

* wip - using aggregated journal for activity

* new sql for aggregated journals

* start implementing new aggregated query

* additional documentation

* consolidate activity functionality

* simplify by turing into instance methods

* move activity fetcher out of redmine

* remove verb verification made obsolete

Without catchall routes, the dispatching handles it

* remove duplicate authorize check

* refactor activities controller

* refactory activity fetcher

* cache avatar file

* sort choosable events

* remove legacy spec covered by contemporary

* speed up aggregated journals via CTE

* instance var might never have been set

* ensure the event_types are always transmitted

* correctly reset the avatar cache

* fix avatar fetcher expectation regarding wiki pages

* adapt spec

[ci skip]
2020-04-27 08:04:28 +02:00
ulferts 399e8c3ed9 rename according to zeitwerk 2020-02-21 20:47:25 +01:00
Henriette Dinger 8041925ea4 Add theme column to custom_styles table to save the currently used theme and show the correct one in the select field 2020-01-15 15:10:12 +01:00
Henriette Dinger bd7f4e4814 Update copyright notice 2020-01-15 11:31:26 +01:00
Jens Ulferts 145deda174 have dedicated locale_fallback initializer 2019-03-07 09:04:27 +01:00
Oliver Günther 14c6e82882 Create error handler and helper for streaming to multiple receivers 2019-01-22 13:33:58 +01:00
Jens Ulferts 0875a94099 remove no longer required gems 2018-03-23 15:27:18 +01:00
Oliver Günther 6ef4211e77 Bump copyright to 2018 (#6171)
[ci skip]
2018-02-12 08:51:12 +01:00
Jens Ulferts 9a347d7e83 move CustomFieldFormat to OpenProject namespace 2017-05-08 11:57:26 +02:00
Oliver Günther f377e9d943 Replace themes with static design to be overridden once 2017-02-15 14:59:58 +01:00
Oliver Günther 7cf11bb689 Update copyright notice 2017-01-10 15:11:43 +01:00
Alex Coles e0191e759c Update year in copyright header to 2015
[ci skip]
2015-01-01 00:02:57 +00:00
Jens Ulferts 6ed300af16 splits redmine.rb into initializers 2014-12-12 17:28:53 +01:00