Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 26 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,39 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2026-07-19

### Breaking

- All config keys were renamed to the `audit_http_client_*` scheme (`audit_http_client_logdir`, `…_loglevel`, `…_format`, `…_exclude_domains`); the old 0.2.0 key names are no longer read, there is no fallback — rename them in config.php when upgrading.

### Added

- Redact sensitive request and response headers by default
- Redact credentials from logged URIs (query parameters and path secrets)

### Fixed

- Declare supported PHP versions
- Adopt the optional handler parameter added to IClientService in NC 35
- Replace the memcache stats store with a process-local array
- Report immediate-path compression stats honestly and injection failures louder
- Make middleware injection idempotent and header lookups case-insensitive
- Clamp the log level and count rewound stream reads once
- Substitute broken UTF-8 in log entries instead of dropping them; rethrow non-throwable rejection reasons cleanly
- Derive stream consumption from the read position and report detached bodies as unknown

[1.0.0]: https://github.com/ernolf/admin_audit_http_client/releases/tag/v1.0.0

## [0.2.0] - 2026-05-12

### Added
- `loglevel_audit_http_client` config key (int, default `0`): controls which responses are logged — `0` = all, `1` = HTTP 400+ only, `2` = HTTP 500+ only
- `audit_http_client_logs` config key (string, default `'both'`): selects log output format — `'json'`, `'plain'`, or `'both'`
- `audit_http_client_logs_exclude_domain` config key (array, default `[]`): list of hostnames to exclude from logging; supports wildcard prefix (`*.example.com`)

[0.2.0]: https://github.com/ernolf/admin_audit_http_client/releases/tag/v0.2.0

## [0.1.0] - 2026-05-06

### Added
Expand All @@ -29,5 +55,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `logdir_audit_http_client` config key with automatic fallback chain: explicit override → sibling of `logfile_audit` → sibling of `logfile` → `<datadirectory>/admin_audit_http_client_logs/`
- Log entries contain: request ID (`X-Nextcloud-ReqId`), timestamp, method, URI, HTTP version, status, request headers, response headers, cURL handler stats (`size_download`, `speed_download`, `total_time`, etc.), compression stats (`encoding`, `compressed_bytes`, `decompressed_bytes`, `ratio`)

[0.2.0]: https://github.com/ernolf/admin_audit_http_client/releases/tag/v0.2.0
[0.1.0]: https://github.com/ernolf/admin_audit_http_client/releases/tag/v0.1.0
2 changes: 1 addition & 1 deletion appinfo/info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
Extends admin_audit with logging of all outgoing HTTP requests made by Nextcloud's internal Guzzle-based HTTP client. Logs include method, URI, status code, HTTP version, request and response headers, cURL transfer statistics, and compression metrics. Credential-bearing headers such as Authorization and Cookie are always redacted.
No UI, no routes — pure audit logging into per-host JSON and plain-text files below a configurable log directory.
</description>
<version>0.2.0</version>
<version>1.0.0</version>
<licence>agpl</licence>
<author mail="raphael.gradenwitz@googlemail.com">[ernolf] - Raphael Gradenwitz</author>
<namespace>AdminAuditHttpClient</namespace>
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ernolf/admin_audit_http_client",
"type": "nextcloud-app",
"version": "0.2.0",
"version": "1.0.0",
"license": "AGPL-3.0-or-later",
"config": {
"platform": {
Expand Down
2 changes: 1 addition & 1 deletion composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading