What's Changed
- plakar sync: use destination passphrase from config by @omar-polo in #616
- go mod tidy by @omar-polo in #618
- s/use_ssl/use_tls by @omar-polo in #617
- bump version and go mod tidy by @poolpOrg in #619
- fix the case of plakar running at / by @omar-polo in #620
- fix plakar man-page by @semarie in #622
- PoolpOrg/move-cryptography.md by @poolpOrg in #621
- more manpages fixes by @semarie in #624
- add archive subcommand test by @sayoun in #626
- version: Actually use the global version in plakar version. by @mathieu-plak in #625
- storage/fs: Use the right path when creation repo. by @mathieu-plak in #628
- importer/fs: Fix path cleaning. by @mathieu-plak in #629
- API download: add extension to filename by @brmzkw in #631
- reset version by @poolpOrg in #630
- api file reader: use file's content type instead of application/json by @brmzkw in #632
- Update Plakar UI from main by @github-actions in #633
- Update Plakar UI from main by @github-actions in #634
- trace: use hexadecimal output for lockID in trace by @semarie in #636
- Jcastets/fix excludes by @brmzkw in #637
- add subcommand locate + clone test by @sayoun in #639
- packer: Track the goroutines using an errgroup. by @mathieu-plak in #641
- Repository -> Store (this layer has been split years ago) by @poolpOrg in #640
- fix sftp backend by @mathieu-plak in #643
- api importer types: wrap importer name in an object by @poolpOrg in #644
- packfile: Make deserialization faster. by @mathieu-plak in #648
- maintenance: Implement gc'ing of orphaned blobs. by @mathieu-plak in #642
- Update Plakar UI from main by @github-actions in #647
- fix tests with tmp output listing issue by @sayoun in #645
- implement snapshot search feature by @omar-polo in #649
- add info + rm subcommand tests by @sayoun in #646
- add test for subcommand help by @sayoun in #651
- sync man by @omar-polo in #653
- search: fix pagination by @omar-polo in #655
- vfs: speed up Files() by @omar-polo in #656
- add locating of snapshots that contain a given path by @poolpOrg in #659
- PutBlobIfNotExists does check THEN insert if not exists by @poolpOrg in #658
- search: filter out directories when Recursive is set by @omar-polo in #660
- less ser/deserialization during backup by @omar-polo in #657
- Update Plakar UI from main by @github-actions in #671
- Update Plakar UI from main by @github-actions in #672
- PoolpOrg/assorted-cleanups by @poolpOrg in #665
- plakar diag: show all subcommands and document them by @semarie in #668
- summaries: Fix accounting of directories. by @mathieu-plak in #674
- cache: Fixup iteration. by @mathieu-plak in #675
- Add subcommand diag+digest test by @sayoun in #664
- add subcommand diff tests by @sayoun in #673
- build(deps): bump golang.org/x/net from 0.34.0 to 0.36.0 by @dependabot in #676
- PoolpOrg/fix-coloring-sweeping by @poolpOrg in #677
- parallelize check, doubles performances on my machine by @poolpOrg in #666
- parallelize restore, almost doubles performances on my machine by @poolpOrg in #667
- PoolpOrg/remove-duplicate-blobs by @poolpOrg in #678
- Fix /api/repository/locate-pathname for root folder by @brmzkw in #679
- vfs: don't PutBlob() on the same thing more than once by @omar-polo in #680
- add subcommand maintenance test by @sayoun in #663
- go get -u ; go mod tidy by @omar-polo in #681
- reuse computeMAC and serialization of object when possible by @poolpOrg in #682
- server: fix usage -allow-delete by @semarie in #684
- do not reuse the maxConcurrency semaphore in importerJob, not only by @poolpOrg in #686
- missing Fl in plakar-server.1 by @omar-polo in #685
- bring back prom, runtime exporter only by @poolpOrg in #687
- move the version check at init() time by @omar-polo in #688
- remove useless serde by @poolpOrg in #689
- btree: add a simple LRU cache by @omar-polo in #683
- we can't feed iterator bytes directly into the cache as they will by @poolpOrg in #693
- use a dedicated concurrencyChan on importer by @poolpOrg in #692
- agent: add a version handshake by @omar-polo in #690
- Update readme to better explain plakar value proposition. by @misterflop in #691
- Update Plakar UI from main by @github-actions in #697
- test does not traverse symlink, broken on macOS by @poolpOrg in #698
- Backup checkpoints by @mathieu-plak in #670
- Fix manpage for plakar config by @brmzkw in #703
- Assorted fixes for checkpointing. by @mathieu-plak in #704
- maintenance: Fix state lookup of deleted blobs. by @mathieu-plak in #706
- backup: Fix the last checkpoint of a backup. by @mathieu-plak in #707
- main branch should make it obvious we're on a dev version by @poolpOrg in #709
- Fix s3 for blackblaze and alternative providers by @brmzkw in #708
- create per-repo client version cookies for the local machine to know by @poolpOrg in #710
- do a PutCurrentState() if this is the first run of a new version, by @poolpOrg in #711
- PoolpOrg/fix-diag-versions by @poolpOrg in #712
- config: disallow setting as default repository one without a location by @omar-polo in #701
- btree/cache: protect cache changes with a mutex by @omar-polo in #716
- reenable tests, just skip Files count check for now by @poolpOrg in #699
- Jcastets/fix agent config by @brmzkw in #717
- since the switch from Checksum to MAC, a vfs repository can't be by @poolpOrg in #720
- move inflights marking earlier to PutBlob, removes a race condition by @poolpOrg in #721
- fix usage of groupname cache by @ericfaurot in #724
- api: add a .. entry in directory listings by @omar-polo in #694
- API: don't default to unlimited replies by @omar-polo in #695
- Add subcommand config test by @sayoun in #700
- build(deps): bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 by @dependabot in #723
- fx config test by @omar-polo in #728
- api: make sure `limit' can't be zero (unlimited) by @omar-polo in #727
- Poolp org/percival mitigation by @poolpOrg in #725
- teach plakar how to restore a snapshot to an FTP server by @poolpOrg in #733
- Update Plakar UI from main by @github-actions in #734
- PoolpOrg/fix-agent-in-use by @poolpOrg in #735
- we were forced to bump to 1.0.1 to solve the "throwaway" tag issue by @poolpOrg in #736
- Jcastets/fix scheduler config by @brmzkw in #718
- Update Plakar UI from main by @github-actions in #738
- Update Plakar UI from main by @github-actions in #739
- update branching logic to reduce nested blocks and ease understanding. by @ericfaurot in #726
- Add an objects.RandomMAC() function to generate random identifiers. by @ericfaurot in #730
- testing: rename the mock "fs" backend "mock" by @omar-polo in #732
- tests: dedup generateSnapshot by @omar-polo in #737
- fix: Re-add crypto/rand, removed during a merge. by @mathieu-plak in #740
- storage: change the way the backends are registered by @omar-polo in #731
- backup: Actually save the state ID during backup. by @mathieu-plak in #729
- Poolp org/glacier experiment by @poolpOrg in #741
- Update Plakar UI from main by @github-actions in #743
- Update Plakar UI from main by @github-actions in #745
- Update Plakar UI from main by @github-actions in #746
- add subcommand exec test by @sayoun in #705
- add subcommand mount test by @sayoun in #714
- Remove repository from parse function by @ericfaurot in #742
- Remove unreachable code intended for the "server" command by @ericfaurot in #747
- Update Plakar UI from main by @github-actions in #749
- better handling of symlinks by @omar-polo in #722
- Update Plakar UI from main by @github-actions in #751
- Update Plakar UI from main by @github-actions in #755
- Poolp org/prom counters by @poolpOrg in #757
- check jwt token before processing snapshot_path parameter by @semarie in #760
- env var knobs by @mathieu-plak in #758
- api: serve text/html files as text/plain by @omar-polo in #753
- Update Plakar UI from main by @github-actions in #759
- caching: Switch to pebble as our cache backend. by @mathieu-plak in #761
- pebble: Disable pebble WAL logging. by @mathieu-plak in #763
- add subcommand server test by @sayoun in #748
- add subcommand sync test by @sayoun in #750
- go get -u ; go mod tidy by @omar-polo in #764
- update .gitignore by @omar-polo in #766
- sprinkle some go:build comments where needed by @omar-polo in #765
- perform a constant time comparison, suggested by @semarie by @poolpOrg in #768
- s3 storage: wrap errors by @brmzkw in #770
- Rename /api/repository/configuration to /api/repository/info and add … by @brmzkw in #771
- vfs: add entry.MAC() by @omar-polo in #775
- maintenance: Parallelize cache update. by @mathieu-plak in #772
- tests/mount: Repair darwin. by @mathieu-plak in #773
- github: set {build,go} timeout to 10 minutes by @omar-polo in #776
- importer/sftp: remove bogus username/groupname lookup by @omar-polo in #777
- sanitize output by @omar-polo in #774
- Poolp org/check cache by @poolpOrg in #767
- entry: Make the MAC a public member. by @mathieu-plak in #780
- Poolp org/api locate by @poolpOrg in #779
- Poolp org/api timeline by @poolpOrg in #778
- vfs: fix vdir.ReadDir by @omar-polo in #781
- compression: Implement a pool of lz4 readers. by @mathieu-plak in #782
- Update Plakar UI from main by @github-actions in #784
- Revert "Parse the command-line earlier, now that the repository is not needed." by @poolpOrg in #786
- api: allow searching files with several mimes by @brmzkw in #785
- api search: pass the request context by @brmzkw in #788
- fix ls -latest by @omar-polo in #790
- caching: actually remove the check cache by @omar-polo in #794
- Fix plakar backup usage by @brmzkw in #795
- api: introduce a snapshot LRU cache by @omar-polo in #789
- Update Plakar UI from main by @github-actions in #797
- everyone hates exec but me, I can live without it by @poolpOrg in #801
- regexp search by @poolpOrg in #800
- Poolp org/storage returns size by @poolpOrg in #798
- add a vfs.Chroot by @poolpOrg in #799
- add a Size function to interface by @poolpOrg in #802
- btree/cache: actually respect the dirty flag by @omar-polo in #804
- expose storage size and efficiency to the UI by @poolpOrg in #805
- display errors that happen at chunkify stage by @poolpOrg in #807
- dirty flag should only be reset if dirty by @poolpOrg in #808
- Update Plakar UI from main by @github-actions in #809
- Update Plakar UI from main by @github-actions in #810
- backup: Provide a check cache if check is specified. by @mathieu-plak in #811
- display registered backends by @poolpOrg in #813
- Update Plakar UI from main by @github-actions in #819
- repo: Move deltaState to the repo level. by @mathieu-plak in #787
- Update Plakar UI from main by @github-actions in #824
- unbreak tests and rework Generate{Repository,Snapshot} a bit while here by @omar-polo in #822
- vfs: add mount and minor spring-time cleanings by @omar-polo in #814
- update actions by @omar-polo in #823
- Update Plakar UI from main by @github-actions in #826
- pooled MAC by @poolpOrg in #827
- packermanager: Get rid of packer. by @mathieu-plak in #821
- Update codeql-analysis.yml by @poolpOrg in #825
- api: don't return chunks in entries; add endpoint for them by @omar-polo in #820
- run build and tests for all PRs by @omar-polo in #832
- simplify and split backups into subfunctions by @poolpOrg in #828
- state: Fix miantenance states. by @mathieu-plak in #835
- test: rework restore check by @omar-polo in #830
- use mime.TypeByExtension only as last resort by @omar-polo in #831
- Update Plakar UI from main by @github-actions in #836
- don't actually serialize the chunks in json at all by @omar-polo in #837
- downgrade anacrolix/fuse to 0.3.1 by @omar-polo in #840
- cmd: Disallow usage of at for agent cmd. by @mathieu-plak in #839
- Jcastets/fix parent path by @brmzkw in #843
- remove leveldb leftovers by @omar-polo in #844
- Jcastets/fix timeline by @brmzkw in #845
- Update Plakar UI from main by @github-actions in #847
- Fix timeline by @brmzkw in #846
- api: simplify snapshotVFSErrors loop; no functional change by @omar-polo in #841
- Platar implementation. by @mathieu-plak in #838
- Update Plakar UI from main by @github-actions in #849
- add tests for utils package in subcommands by @sayoun in #842
- sftp: refactor config parsing by @omar-polo in #852
- api: serve all text/* as text/plain by @omar-polo in #850
- Update Plakar UI from main by @github-actions in #854
- api: don't compute the error's total by @omar-polo in #848
- cli: Rework the CLI/RPC infrastructure. by @mathieu-plak in #857
- Update Plakar UI from main by @github-actions in #860
- api: get rid of unnecessary mime sniffing by @omar-polo in #853
- Poolp org/fix that sftp bullshit by @poolpOrg in #816
- add a bypass for critical checks by @poolpOrg in #806
- tests: add a MockImporter, rework some, then add more by @omar-polo in #858
- cmd: unify snapshot location flags and teach sync how to filter like the other subcommands by @omar-polo in #851
- Poolp org/input of unknown size by @poolpOrg in #861
- Update Plakar UI from main by @github-actions in #862
- this was broken with subcommands cleanup by @poolpOrg in #865
- pass appcontext to importer and exporter by @poolpOrg in #863
- Poolp org/simplify schema resolving by @poolpOrg in #864
- ptar: Fix command line parsing. by @mathieu-plak in #867
- Poolp org/stdio importer by @poolpOrg in #868
- make plakar installable from the top level directory as well by @omar-polo in #866
- fix race in chunkifier vs scanner, we can't take shortcuts by @poolpOrg in #869
- cmd/check: Fix snapshot parsing. by @mathieu-plak in #870
- Update Plakar UI from main by @github-actions in #875
- fix: Fix entrypoint. by @mathieu-plak in #876
- Fix sort for locate-pathname by @brmzkw in #877
- rework sorting by @poolpOrg in #878
- cmd: Remove the RPC interface. by @mathieu-plak in #872
- add tests for ptar command by @sayoun in #859
- we need to ensure the path is correct by @poolpOrg in #874
- remove unused method from the Importer interface by @omar-polo in #879
- {storage,importer,exporter}: unify location parsing by @omar-polo in #873
- tests/ptar: Import the fsimporter by default. by @mathieu-plak in #881
- s3 various fixes by @mathieu-plak in #880
- backup: Remove a erroneous PutBlob(OBJECT) by @mathieu-plak in #882
- assorted command line fixes by @omar-polo in #883
- add subcommand agent test by @sayoun in #783
- add ptar storage backend test by @sayoun in #886
- add btreescan and versioning test by @sayoun in #889
- importer/fs: simplify walkdir_walker by @omar-polo in #888
- properly pass down the context and fix NewAppContextFrom by @omar-polo in #887
- First try at implementing a reporting mechanism for scheduler tasks. by @ericfaurot in #762
- 896 rework reporting w eric mathieu by @poolpOrg in #897
- do not forget to set randomly generated id to the cache structure, by @poolpOrg in #899
- Poolp org/backoff by @poolpOrg in #898
- cmd/backup: Provide the snapshot id created by the backup. by @mathieu-plak in #901
- Potential fix for code scanning alert no. 70: Workflow does not contain permissions by @omar-polo in #902
- importer/fs/windows: Actually remove walkdir_worker. by @mathieu-plak in #903
- misc: gofmt the full codebase. by @mathieu-plak in #904
- github: add permissions to the various workflows by @omar-polo in #907
- backends/s3: use a SectionReader for GetPackfileBlob by @omar-polo in #905
- attempt to please CodeQL in the less horrible way possible by @omar-polo in #906
- Update update-plakar-ui.yml by @poolpOrg in #909
- caching: handle gracefully a cache double-close by @omar-polo in #908
- Update update-plakar-ui.yml by @poolpOrg in #911
- Update Plakar UI from main by @github-actions in #910
- Update Plakar UI from main by @github-actions in #912
- two minor fixes for the archive subcommand by @omar-polo in #914
- fix and rework check by @omar-polo in #915
- ui: use ctx.Stderr instead of os.Stderr by @omar-polo in #916
- cancellation, cancellation everywhere by @omar-polo in #885
- importer/fs: Use the correct gid table for memoization. by @mathieu-plak in #917
- subcommands/agent: fix registration flags by @omar-polo in #921
- config is a pre-repo open command by @poolpOrg in #925
- cli: error for any BeforeRepositoryOpen command used with at by @omar-polo in #926
- we know the size of the file we want to restore by @poolpOrg in #927
- return copy of config by @poolpOrg in #928
- Poolp org/fix login by @poolpOrg in #932
- Update Plakar UI from main by @github-actions in #933
- Fix UI URL by @brmzkw in #934
- Update Plakar UI from main by @github-actions in #935
- add json tags for repository configuration structs by @ericfaurot in #930
- Update storage.go by @poolpOrg in #938
- fix auth token by @poolpOrg in #937
- Merge pull request #937 from PlakarKorp/main by @poolpOrg in #939
- api/repository/info: remove omitempty for encryption and compression by @brmzkw in #940
- Improve reporter implementation by @ericfaurot in #944
- Update Plakar UI from main by @github-actions in #945
- Update Plakar UI from main by @github-actions in #946
- report commands executed through the CLI by @poolpOrg in #947
- do not log to stdout upon connect issues by @poolpOrg in #948
- send SIGINT when using plakar agent stop by @poolpOrg in #949
- check: fix return status by @omar-polo in #918
- rmSubcommand has to be initialized with a LocateOptions by @poolpOrg in #951
- remove a debug print by @poolpOrg in #956
- display the launching webUI message on the CLI, not the agent by @poolpOrg in #957
- fix drain race condition by @poolpOrg in #958
- Update Plakar UI from main by @github-actions in #959
- fix backup hang by @mathieu-plak in #962
- Poolp org/api services by @poolpOrg in #964
- Update Plakar UI from main by @github-actions in #963
- Update Plakar UI from main by @github-actions in #965
- 943 agent should keep a local cache of its configuration state on the backend by @poolpOrg in #966
- improve usability by spawning browser on oauth by @poolpOrg in #968
- simplify by @poolpOrg in #971
- if not running agentless... do not fallback to agentless by @poolpOrg in #972
- make sure login is performed on the agent, in agent mode by @poolpOrg in #973
- support
plakar agent start
andplakar agent restart
by @poolpOrg in #974 - notify warnings during backup in reports by @poolpOrg in #975
- check that user is logged AND has alerting enabled before emitting by @poolpOrg in #976
- this is enough to support transition until there's no longer pre-release by @poolpOrg in #953
- fix a 500 in local API when no auth token is available by @poolpOrg in #979
- Update Plakar UI from main by @github-actions in #981
- s3: locks do not have buckets by @brmzkw in #982
- PoolpOrg/where-is-my-output by @poolpOrg in #985
- for now remove our counters by @poolpOrg in #986
- rename for accuracy by @poolpOrg in #989
- s3 importer: fix directories creation by @brmzkw in #990
- continue the check refactoring by @omar-polo in #919
- importer/fs: Fix error reporting when rootdir doesn't exist. by @mathieu-plak in #991
- pass repo id during auth by @poolpOrg in #992
- add repo id to api info by @poolpOrg in #993
- Update Plakar UI from main by @github-actions in #994
- Update Plakar UI from main by @github-actions in #995
- info: Fix RPC. by @mathieu-plak in #998
- sftp: fix parseconfig by @omar-polo in #999
- storage: fix selection by @omar-polo in #996
- fix return errors from agent to cli by @poolpOrg in #1001
- normalize locations to always carry :// by @poolpOrg in #1004
- Commands that don't need a repository can be handled first. by @ericfaurot in #1008
- move encryption key setup to a dedicated function by @ericfaurot in #1007
- storage/s3: Fix prefix support. by @mathieu-plak in #1009
- 1003 move auth token in cacheplakar but outside of a specific repository context by @poolpOrg in #1006
- Have the agent log to syslog when running in background by @ericfaurot in #1012
- Use a common execution path for all commands with a repository. by @ericfaurot in #1010
- entrypoint: delay the signal trapping after subcommand.Parse by @omar-polo in #1014
- don't rebuild on parse, as this causes a double open of the cache by @poolpOrg in #1015
- storage/fs: fix Size() by @omar-polo in #1016
- reduce friction by defaulting to github if none specified by @poolpOrg in #1017
- do not prepend time to logs, syslog does it by @poolpOrg in #1018
- use cookies to enable/disable security check by @poolpOrg in #1019
New Contributors
- @misterflop made their first contribution in #691
Full Changelog: v1.0.0-beta.2...v1.0.1-beta.16