Commit graph

126 commits

Author SHA1 Message Date
Marcin Kuzminski
9d1cff11f2 core: fixed problem with headers passing, they should be always strings. 2020-05-25 07:41:13 +00:00
Daniel Dourvaris
6c76907a07 vcs: expose more information for http protocol. Increased capabilities with external hooks.
- fixes #5574
2020-05-20 14:15:47 +02:00
Marcin Kuzminski
159aca46c7 request-wrapper: expose usernames for better auditing capabilities. 2020-05-18 14:40:26 +02:00
Marcin Kuzminski
fe96e16646 code: update copyrights to 2020 2020-04-16 00:34:52 +02:00
Marcin Kuzminski
8e01135d04 Authentication: cache plugins for auth and their settings in the auth_registry.
- Before that change on each requests 4x we loaded plugins for authentication, this hit
many caches, db invalidation context and loaded the plugins logic each time. This was a heavy performance hit
for SVN and other backends as they needed to load that plugins many many times
- Since Authentication plugins almost never change, we'll not store the plugins listed for authentication into
the authnregistry for each process
- For AuthPlugins settings we now also flush plugins settings, and authnregistry cached plugins
2020-01-23 12:41:51 +01:00
Marcin Kuzminski
631a663b62 request-wrapper: ensure we wrap WHOLE request not just logic after http detection. 2019-12-26 19:52:17 +01:00
Marcin Kuzminski
fe04abfe15 commits: disable shadow repo callback daemon 2019-09-22 17:51:13 +02:00
Marcin Kuzminski
70d5bb346a shadow-repos: skip init of full repo to generate shadow repo path. 2019-09-20 21:00:31 +02:00
Marcin Kuzminski
27ead49471 request-wrapper: show version for rhodecode in logs. 2019-09-10 15:27:51 +02:00
Marcin Kuzminski
fc6256ce2f svn: handle non-ascii message editing. 2019-09-09 10:47:13 +02:00
Marcin Kuzminski
22c6ba9851 logging: reduce info logs 2019-07-30 05:02:43 +02:00
Marcin Kuzminski
c1b5317c1e request-wrapper: add request counters 2019-07-29 14:43:00 +02:00
Marcin Kuzminski
928652312a core: added more accurate time measurement for called functions 2019-07-17 16:28:41 +02:00
Daniel Dourvaris
6793d652e0 git-lfs: fixed bug #5399 git-lfs application failed to generate HTTPS urls properly. 2019-07-02 15:08:39 +02:00
Marcin Kuzminski
07caf93664 svn: add better connection error logging in case the SVN backend is offline 2019-03-25 10:38:47 +01:00
Marcin Kuzminski
6029ed9fac request-wrapper: show http method in summary log entry. 2019-01-24 20:56:35 +01:00
Marcin Kuzminski
bd1a9c8201 docs: updated copyrights to 2019 2019-01-02 18:13:27 +01:00
Marcin Kuzminski
cd0d654a5f vcs: streaming will use now 100kb chunks readers for faster throughput 2018-12-22 10:16:17 +01:00
Marcin Kuzminski
d632d6691b vcs: handle excessive slashes in from of the repo name path, fixes #5522 2018-12-23 20:37:05 +01:00
Marcin Kuzminski
a95bd9622c svn: support proxy-prefix properly fixes #5521 2018-12-20 01:01:02 +01:00
Marcin Kuzminski
3ed3e1f28f acl: support evolve subcommands when checking for permissions. 2018-11-21 15:31:15 +01:00
Marcin Kuzminski
5653c130c7 scm_app: add more debug info when unhandled errors happen on vcsserver. 2018-09-26 12:11:09 +02:00
Marcin Kuzminski
9033601562 logging: use lazy parameter evaluation in log calls. 2018-09-13 17:41:35 +02:00
Marcin Kuzminski
20e4875957 svn: use streaming uploads/downloads of files.
- before we buffered whole content before uploading/download
- this could lead to OOM errors on big files
- now instead we stream when PUT/GET are sent from SVN resulting in faster more efficient data transfer
2018-09-11 14:22:22 +02:00
Marcin Kuzminski
da76e0ed96 svn: use shared configurable storage for svn_txn_id interception logic. 2018-09-11 11:31:53 +02:00
Marcin Kuzminski
d3afc86451 branch-permissions: handle vcs operations and branch permissions.
- use new exceptions for branch permissions
- detect if we need to check permissions
- calculate super-admin the same way as regular users for override capabilities
- added new tests for branch permissions
2018-08-29 20:22:43 +02:00
Marcin Kuzminski
4bec4980b0 caches: fix import of compute_key_from_params function. 2018-08-23 19:17:07 +02:00
Marcin Kuzminski
f1497f5afd caches: new cache context managers.
- deprecate beaker cache completly
- use new cache decorators from dogpile
- use a proper per cache key invalidation
2018-08-02 18:04:52 +02:00
Marcin Kuzminski
ecff3dbaed security: update lastactivity when on audit logs.
- The previous update on each call was to expensive and created lot of DB locks in high traffic env
2018-07-31 22:52:44 +02:00
Marcin Kuzminski
d6757c3989 core: removed last activity as it was creating lots of DB locks. 2018-07-26 21:54:44 +02:00
Marcin Kuzminski
9665179aa5 caches: use new decorator that uses conditional caches skipping dogpile if cache is disabled. 2018-07-14 18:17:42 +02:00
Marcin Kuzminski
ddc445856e caches: rewrite of auth/permission caches to dogpile. 2018-07-05 20:14:33 +02:00
Marcin Kuzminski
225757aaf3 hooks: made the callback host configurable.
- This allows easier docker container seperation
2018-07-03 11:57:03 +02:00
Marcin Kuzminski
42c80fe075 shadow-repos: use numeric repo id for creation of shadow repos.
- Fixes a problem after rename or move into repository group.
2018-06-21 14:04:06 +02:00
Marcin Kuzminski
1bc95ca628 debug: add new custom logging to track unique requests across systems. 2018-06-15 19:34:39 +02:00
Marcin Kuzminski
3a3b980003 svn: fix usage of http exception from webob to pyramid one.
Webob exception had an condition that was unfilled for svn causing unexpected 500s.
2018-05-28 17:13:59 +02:00
Marcin Kuzminski
7d870ea83a mercurial: protocol security updates.
- fixes Mercurial CVE for lack of permissions checking on mercurial batch commands
- more strict checks for permissions, now default to push instead of pull
to be always on safe side.
- decypher batch commands and pick top-most permission to be used
2018-04-25 13:10:52 +02:00
Marcin Kuzminski
bdf5f0afb6 svn: enable hooks and integration framework execution.
- This change will allow SVN to execute rhodecode integration framework
via executing the builting hooks.
- uses txn_id for svn to provide metadata required via Apache
- Interception of SVN transaction is required to use temporary stores for metadata
- hooks are now part of vcsserver where the install/control logic is stored
2018-04-06 12:44:01 +02:00
Marcin Kuzminski
9c4a8f1afd http: improved log for ssl required 2018-02-18 11:35:35 +01:00
Marcin Kuzminski
ba5aec079a caches: use individual namespaces per user to prevent beaker caching problems.
- especially for mysql in case large number of data in caches there could be critical errors storing cache, and thus preventing
users from authentication. This is caused by the fact that we used single namespace for ALL users. It means it grew as number of users grew
reaching mysql single column limit.
This changes the behaviour and now we use namespace per-user it means that each user-id will have it's own cache namespace fragmenting maximum column data to
a single user cache. Which we should never reach.
2018-02-15 17:34:09 +01:00
Marcin Kuzminski
b16521f1c3 simplevcs: allow passing config into repo detection logic.
- allows proper check for repos together with requirement checks for Mercurial
2018-02-01 18:51:00 +01:00
Marcin Kuzminski
00b45c1fa7 release: update copyright year to 2018 2018-01-19 17:13:16 +01:00
Marcin Kuzminski
1fccd17a6d auth, performance: use cache_ttl for anonymous access taken from the rhodecode plugin.
- for operations like svn this boosts performance significantly for anonymous access enabled.
2017-12-04 14:20:53 +01:00
Marcin Kuzminski
539e88e6c6 svn: extend detection of SVN to PROPFIND/PROPATCH methods.
- in some cases like usage of tortoisesvn non of the available SVN
protocol detection methods are available
- with extended method we're able to catch directory delete/create
2017-11-27 18:51:25 +01:00
Marcin Kuzminski
245d213bf2 vcs: also register a global config for vcs_handler.
- this solves a case when SVN repository needs to find out a repo without
per-repo settings available
- we need to get the global config first to be able to extract repo name
2017-11-28 13:23:25 +01:00
Marcin Kuzminski
97dadd2f8b svn: log response code for SVN calls always even for 200 codes. 2017-11-27 18:45:50 +01:00
Marcin Kuzminski
098d879432 svn: pass in explicit SCM into the call function for faster detection of protocol. 2017-11-27 18:56:44 +01:00
Marcin Kuzminski
d3b43c92fc simplevcs: store rc_extras reference inside the apps itself so it can be used during
operations.
2017-11-22 16:25:30 +01:00
Marcin Kuzminski
a55c5ff1ea simplevcs: handle a case of damaged filesystem repo without 500 exception. 2017-11-16 16:31:18 +01:00
Marcin Kuzminski
4d9fa48377 simplevcs: fixed logic of extraction of base_path 2017-11-16 15:59:11 +01:00