Point the go-micro.dev/v4 replace at the latest main-v4 maintenance
branch commit in butonic/go-micro (cd412c15) instead of the v4.11.3
tag. The new base is upstream v4.11.1 plus the registry cache
node-TTL fixes (upstream #2715, #2736, #2740), the concurrent map
access fix (upstream #2794), plus further dependency updates and test
fixes on the maintenance branch.
The branch also modernizes go-micro's own go.mod (go 1.26, lego,
dario.cat/mergo v1, x/deque v2, ...), and MVS pulls the aligned
versions into this module: lego v4.35.2 -> lego/v5 v5.5.2,
go-jose/go-jose/v4 -> v4.1.5, gofrs/flock -> v0.13.1,
mattn/go-isatty -> v0.0.24, go.uber.org/zap -> v1.28.0, x/net ->
0.59.0, miekg/dns -> 1.1.73, moby api/client, ProtonMail/go-crypto
-> 1.5.2, klauspost/compress -> 1.20.1, gorilla/handlers -> 1.5.2,
gobwas/ws -> 1.4.0, nxadm/tail -> 1.4.11, ...
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
The AfterScenario hook only asserted that the clean command returned
200, but cleaning sessions happens asynchronously in the daemon. Poll
the session list until it is empty (60s deadline) so leftover sessions
do not leak into the next scenario.
The uploads sessions command builds a posix driver with async file
uploads enabled, which makes it join the "dcfs" JetStream queue group.
Clean/restart/resume events published by the command itself can then be
routed to the CLI's own short-lived consumer; the nats client auto-acks
them and they are lost when the process exits, leaving stale upload
sessions behind.
Disable asyncfileuploads for the CLI driver instance so it only lists
sessions and publishes events. Also emit [] instead of null when the
session list is empty so the JSON output stays parseable.
A trashed folder keeps its path in the index, so a new folder can take
the same one. The descendant lookup behind move, delete, restore and
purge matched on space and path only: purging the trashed folder took
the live folder and its descendants out of the index, and moving the
live folder carried the trashed tree along.
Both engines now also match the root's trash state; purge with
onlyDeleted keeps matching the trashed ones only.
Ported from owncloud/ocis#11693. The uploads clean command now emits an events.CleanUpload event via the event stream rather than calling Purge directly. Requires the corresponding reva bump (vendor changes pulled in separately).
cleanup and fix the upload id
tweak error messages
(cherry picked from commit f7e53bb94698875efd092abaa6f38b6608dad4d4)
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
The WOPI discovery response lists its extensions in lower case, and
OpenInApp looks them up with the extension of the file as it is on disk.
So a "report.DOCX" found no app url while a "report.docx" opened, and
the web UI reported that it could not contact the application, which
reads like the editor is down.
The extensions now go into the map in lower case and the lookup folds
the case as well, so both ends match whatever the app publishes. The log
line and the error also name the extension, because neither said which
file type had no app.
Fixesopencloud-eu/opencloud#3449
* re-add the metrics that were existing prior to this PR, to keep them
for compatibility reasons with existing Grafana panels:
- opencloud_proxy_requests_total
- opencloud_proxy_errors_total
- opencloud_proxy_duration_seconds
* renamed new metric opencloud_proxy_request_total (that contains the
service label) to opencloud_proxy_service_request_total
* renamed new metric opencloud_proxy_duration_seconds (that contains
the service label) to opencloud_proxy_service_duration_seconds
Improve the metrics for the proxy service.
* extend the instrumenter middleware to add a label with the name of
the service the request is being dispatched to
* add a native Prometheus histogram that tracks the durations and also
includes a label for the name of the service the request is being
dispatched to, as well as a 'result' label ('success',
'client-error', 'server-error') based on the HTTP status code of the
response
* add per-service gauge functions to count the number of in-flight
requests
* add a counter for routing failures, for when an inbound request
cannot be mapped to a route
* extend the route.RoutingInfo struct with a service attribute, and a
Service() getter
* remove the 'routing_failure_count' metric, as it is redundant