Add metrics about logging, file descriptors, process threads and process memory.
Rename scm.http.requests to http.server.requests to match micrometer defaults.
With this change the exposed metrics are now compatible (except for the tomcat metrics) to the official micrometer grafana dashboard (https://grafana.com/grafana/dashboards/4701).
Validate filepath and filename to prevent path traversal in modification
command and provide validations for editor plugin.
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
This fixes responses with complete stack traces for
requests with invalid urls, for example such containing
backslash ('') in the query parameter part (eg. q=search).
In this case the response contains an error object due to
this error, and requesting the uri info would trigger the
same error a second time, only that now the exception mapper
would not catch the error again. So we check whether we have
an error object before trying to create an enricher context.
Allow all UTF-8 characters except URL identifiers as user and group names and for namespaces.
Fixes#1513
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
Updates legman to version 2, which allows the usage of the MicrometerPlugin. The plugin will collect metrics for subscriber invocations and the underlying executor.
Furthermore this change will fix the usage of wrong subject context in the asynchronous events.
Capture metrics about the lifetime of working copies used, for example, by the merge and modify commands. Working copies are internal repository clones that can place a large load on the server. Therefore, these metrics can be helpful in identifying sources of large server load.
Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Expose metrics about:
- User login attempts
- Failed user logins
- User logouts
- General successful accesses to SCM-Manager via any authentication realm
- General failed accesses to SCM-Manager
Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Collect guava cache statistics as metrics using micrometer. We replaced the own counter implementation of guava statistics with the guava internal caching statistics.
With the introduction of react-query, it looks like the indexResources attribute of the repository initialization extension properties lost its collection links, which was replaces by _links. In this fix we copy this collection, so that the template plugin still can use links.
Fixes#1593
Each unauthorized error was caught by the token expired handler, which has reset the whole query state and this leads sometimes to a missing redirect after login.
Sometimes fails the navigation to a detail page after search.
This happens because of the OverviewPageActions which pushes the value of the filter to history.
This happens on change and on render, which could lead to a navigation back to the overview even after a click on an item in the overview.
The useDiff hook appends the query param for the limit always with a question mark, even if the link has already query parameters.
Now we check if the url has an question mark and then we use an ampersand instead if the question mark to append the limit.
* Use HgRepositoryConfig instead of HgConfig for hg commands
* Rename HgConfig to HgGlobalConfig
* Resolve encoding from repository specific configuration
* Add ui for repository specific configuration
* Validate encoding on dto
With this pull request, diffs for Git are loaded in chunks. This means, that for diffs with a lot of files only a part of them are loaded. In the UI a button will be displayed to load more. In the REST API, the number of files can be specified. This only works for diffs, that are delivered as "parsed" diffs. Currently, this is only available for Git.
Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Currently we only have the option to adjust rendering of the markdown output, but no option to change the generated ast tree before rendering takes place (i.e. to adjust the structure like when replacing text with links). This PR adds a new api to create ast plugins that can be integrated with the markdown view component. This is intended to be backwards-compatible and work independently from the underlying implementation.
Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Add privileged startup api to perform startup action with
administration context. This extracts the different startup
actions into own classes. Doing so, they will run independently
of settings for the user creation.
* Upgrade react to 17.0.1
* Remove unused dependencies
* Use version 17.0.1 of react-test-renderer
* Use fixed react type for core plugins
* Fix enzyme on react 17
With the migration to gradle we lost the JUnit 5 integration tests. This is fixed here. In addition we have to adapt the AnonymousAccessITCase to the change, that the anonymous access is disabled when creating the default test data.
Add search for files to the sources view. The search is only for finding file paths. It does not search any file metadata nor the content. Results get a rating, where file names are rated higher than file paths. The results are sorted by the score and the first 50 results are displayed.
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
The title of a file and the action buttons had to share the space. Now the title takes it needs and the actions move down if necessary. This behavior is similar to the list of files in changeset view (content component).