625 Commits

Author SHA1 Message Date
dependabot[bot] f2f2d29064 Bump actions/setup-go from 3 to 4
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 20:04:09 +00:00
dependabot[bot] dd0f03c9bb Bump golang.org/x/crypto from 0.6.0 to 0.7.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/golang/crypto/releases)
- [Commits](https://github.com/golang/crypto/compare/v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 20:06:54 +00:00
Michael Eischer ea461a2d76 Merge pull request #214 from restic/dependabot/go_modules/golang.org/x/crypto-0.6.0
Bump golang.org/x/crypto from 0.5.0 to 0.6.0
2023-02-19 13:54:43 +01:00
dependabot[bot] 40ad68bc5f Bump golang.org/x/crypto from 0.5.0 to 0.6.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/golang/crypto/releases)
- [Commits](https://github.com/golang/crypto/compare/v0.5.0...v0.6.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 20:09:40 +00:00
Michael Eischer 8f3b92325f Merge pull request #213 from 0xpr03/patch-1
warn about SystemCallArchitectures in the systemd service
2023-02-10 21:44:18 +01:00
Aron Heinecke fb6a3a62cf warn about SystemCallArchitectures
Running 32bit on a 64bit host with SystemCallArchitectures will fail without much information
2023-02-01 00:10:46 +01:00
Michael Eischer 667ce6e26b Merge pull request #210 from ph818/patch-1
add MemoryHigh to systemd example
2023-01-26 22:36:29 +01:00
ph818 091e70d903 add MemoryHigh to systemd example 2023-01-21 21:43:56 -05:00
Michael Eischer f5c06a2e45 Merge pull request #208 from MichaelEischer/upgrade-dependencies
Upgrade dependencies
2023-01-20 22:42:58 +01:00
Michael Eischer 40e2a8b1e4 add changelog and update readme 2023-01-20 22:36:40 +01:00
Michael Eischer fa795cc66a upgrade go-systemd to latest major version 2023-01-14 21:00:32 +01:00
Michael Eischer 99ec5e2dbb CI: update and sync ci tasks with restic 2023-01-14 20:39:32 +01:00
Michael Eischer f299c735df bump minimum go version to 1.17 2023-01-14 19:22:08 +01:00
Michael Eischer 8ce88b24e7 enable dependabot 2023-01-14 19:18:10 +01:00
Michael Eischer 2eae8c9266 update transitive dependencies 2023-01-14 19:17:53 +01:00
Michael Eischer 30fbd043b9 update direct dependencies 2023-01-14 19:09:42 +01:00
Michael Eischer 7f29dcbd69 Merge pull request #207 from MichaelEischer/err-on-args
Error out on unexpected command line argument
2023-01-12 22:00:36 +01:00
Michael Eischer 43c96fb6f2 Error out on unexpected command line argument
rest-server doesn't accept arguments. Thus, error out to prevent wrong
usage.
2023-01-11 21:47:25 +01:00
Orsiris de Jong c1c48c62e9 Make dashboard portable
Allows to select datasource when first importing into grafana
2022-12-28 19:44:32 +01:00
Michael Eischer a8cd3f218d Merge pull request #199 from MichaelEischer/support-macos-ventura
Ignore fsync errors
2022-12-16 23:13:43 +01:00
Michael Eischer 80babf98e7 add fsync warning 2022-12-02 21:08:15 +01:00
Michael Eischer 408dcab92e Port fsync error handling from restic
This ignores several different combinations of errnos which are returned
if the storage destination is not able to fsync correctly.

See also https://github.com/restic/restic/pull/4021
2022-11-11 22:37:02 +01:00
Michael Eischer 2dd87ced0a Merge pull request #195 from MichaelEischer/internal-error-for-inaccessible-files
Return "internal server error" if files cannot be read
2022-10-07 22:53:41 +02:00
Michael Eischer f763db8934 Deduplicate handler initialization in tests 2022-09-02 23:41:05 +02:00
Michael Eischer a8fdca3b9f make deleting idempotent 2022-09-02 23:32:52 +02:00
Michael Eischer b562edefd1 add changelog for not found error handling 2022-08-31 22:29:14 +02:00
Michael Eischer cb2afaa4c0 test that inaccessible files result in status 'internal error' 2022-08-31 22:29:14 +02:00
Michael Eischer 991c459be3 Only return "Not Found" status if file does not exist
All other errors are now turned into a internal server error and are
logged.
2022-08-31 22:29:14 +02:00
MichaelEischer 9f4fba2c21 Merge pull request #138 from MichaelEischer/cache-basic-auth
Cache basic auth credentials
2022-07-02 21:19:46 +02:00
Michael Eischer 65fd8be3f8 Add changelog for cached basic auth 2022-07-02 21:17:57 +02:00
Michael Eischer 274f29fee8 refactor password check into separate function 2022-06-21 00:18:05 +02:00
Michael Eischer 98f0aaca1c convert htpasswd regexes to globals 2022-06-21 00:18:05 +02:00
Michael Eischer 5a6ed2ffdf use constant time comparison for sha1 password hash 2022-06-21 00:18:05 +02:00
Michael Eischer 46b020fd9e Add basic test 2022-06-21 00:18:05 +02:00
Michael Eischer df9eb337d3 Extend htpasswd auth cache entry expiry on use 2022-06-21 00:18:05 +02:00
Michael Eischer 1eeca53812 Try to zero htpasswd cache entries before deletion 2022-06-21 00:18:05 +02:00
Michael Eischer 0bdc420e75 Cache successful basic auth credentials for a minute
This stores a hash of the username + password in map which is indexed by
the username. Indexing by username avoids accidentally introducing a
timing side-channel as a successful/failed lookup only provides
information on whether a cache entry exists for a username or not.

Hashing the username and password together makes it simple to get a
constant-time string comparison as we no longer have to worry about
string length differences.

Expriy is done by a goroutine which every few seconds checks for expired
cache entries and removes those.
2022-06-21 00:18:05 +02:00
Michael Eischer b0036d006b Unexport users map in htpasswd struct 2022-06-21 00:18:05 +02:00
rawtaz 6bc87b8e95 Merge pull request #188 from dwmunster/f-config-htpasswd
Add configurable htpasswd file location
2022-06-20 23:40:49 +02:00
Alexander Neumann d24ffc13d8 Fix tests 2022-04-15 09:38:23 +02:00
Alexander Neumann a87a50ad11 Sync settinsg with restic, require Go >= 1.15 2022-04-15 09:38:23 +02:00
Alexander Neumann 8538ce7859 Copy golangci-lint settings from restic 2022-04-15 09:28:56 +02:00
Drayton Munster 87cef8f159 Clarify file accessibility for PASSWORD_FILE in docker 2022-03-25 22:36:54 -04:00
Drayton Munster bc1545c717 Clarifying descriptions as suggested in PR review 2022-03-25 22:25:48 -04:00
Drayton Munster 3903ed000c Add configurable htpasswd location 2022-03-25 15:39:20 -04:00
MichaelEischer cb85fb38c0 Merge pull request #184 from lgommans/patch-1
Be more clear in --help what the value of --log is supposed to be
2022-02-18 21:04:07 +01:00
Luc Gommans 1fd9538f73 Reword --log option in --help output 2022-02-17 23:33:42 +01:00
rawtaz af36b77ece Merge pull request #183 from MichaelEischer/allow-underscore
Allow underscores in usernames
2022-02-12 21:18:05 +01:00
Michael Eischer 48067dc896 htpasswd: allow underscores in usernames 2022-02-12 21:13:40 +01:00
Alexander Neumann 096ac5a9c8 Remove plan9, rest-server fails to build 2022-02-10 20:02:10 +01:00