I have set up a rest-server and started it with:
rest-server --path /nfs/restic --append-only --private-repos --tls
Creating restic snapshots was successful:
tux@zoo:~: restic-snapshots
RESTIC_REPOSITORY=rest:https://zoo.rus.uni-stuttgart.de:8000/test
repository 2ccd5e44 opened (version 2, compression level auto)
snapshots for (tags [_home_tux]):
ID Time Host Tags Paths
----------------------------------------------------------------
e00ecd13 2024-05-08 14:36:44 zoo _home_tux /home/tux
36d9ee7c 2024-05-08 14:36:46 zoo _home_tux /home/tux
e3f704fa 2024-05-08 14:36:48 zoo _home_tux /home/tux
04693876 2024-05-08 14:37:01 zoo _home_tux /home/tux
336d5221 2024-05-08 14:38:59 zoo _home_tux /home/tux
8e476249 2024-05-08 14:39:06 zoo _home_tux /home/tux
----------------------------------------------------------------
6 snapshots
But when I try to forget or prune some of these snapshots I get endless error messages:
tux@zoo:~: restic forget --keep-last 4
RESTIC_REPOSITORY=rest:https://zoo.rus.uni-stuttgart.de:8000/test
repository 2ccd5e44 opened (version 2, compression level auto)
Applying Policy: keep 4 latest snapshots
keep 4 snapshots:
ID Time Host Tags Reasons Paths
-------------------------------------------------------------------------------
e3f704fa 2024-05-08 14:36:48 zoo _home_tux last snapshot /home/tux
04693876 2024-05-08 14:37:01 zoo _home_tux last snapshot /home/tux
336d5221 2024-05-08 14:38:59 zoo _home_tux last snapshot /home/tux
8e476249 2024-05-08 14:39:06 zoo _home_tux last snapshot /home/tux
-------------------------------------------------------------------------------
4 snapshots
remove 2 snapshots:
ID Time Host Tags Paths
----------------------------------------------------------------
e00ecd13 2024-05-08 14:36:44 zoo _home_tux /home/tux
36d9ee7c 2024-05-08 14:36:46 zoo _home_tux /home/tux
----------------------------------------------------------------
2 snapshots
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 364.800382ms: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/36d9ee7c59>) returned error, retrying after 617.058248ms: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 1.011905766s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/36d9ee7c59>) returned error, retrying after 700.938105ms: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/36d9ee7c59>) returned error, retrying after 1.375621978s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 743.633677ms: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 2.333579491s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/36d9ee7c59>) returned error, retrying after 1.229276296s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/36d9ee7c59>) returned error, retrying after 1.989210274s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 1.980155835s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/36d9ee7c59>) returned error, retrying after 2.749113488s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 2.491468884s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/36d9ee7c59>) returned error, retrying after 5.921608135s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 7.150741801s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/36d9ee7c59>) returned error, retrying after 9.009004469s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 4.314839768s: blob not removed, server response: 403 Forbidden (403)
Remove(<snapshot/e00ecd13a3>) returned error, retrying after 10.136100619s: blob not removed, server response: 403 Forbidden (403)
signal interrupt received, cleaning up
unable to remove <snapshot/36d9ee7c59> from the repository
unable to remove <snapshot/e00ecd13a3> from the repository
[0:22] 0.00% 0 / 2 files deleted
context canceled
I know deleting SHALL not be possible because the rest-server runs in append-only, but how does a client know this?
In my case I am the backup server admin and I know this, but others will not know it.
(How) can a restic client query the rest-server config, especially whether append-only mode is active?
Background: I want to write some restic scripts which will do automatic prune (if it is possible).