summaryrefslogtreecommitdiff
path: root/obnam.md
AgeCommit message (Collapse)AuthorFilesLines
2024-02-07tests: disable some tests that don't succeed when run as rootLars Wirzenius1-3/+19
Signed-off-by: Lars Wirzenius <liw@liw.fi> Sponsored-by: author
2023-10-21fix(obnam.md): adapt to error message that has changed slightlyLars Wirzenius1-1/+1
Signed-off-by: Lars Wirzenius <liw@liw.fi> Sponsored-by: author
2022-10-28feat! finish chunk store abstractionLars Wirzenius1-26/+0
This builds on Alexander's work to show me how to get past the problem I had. There's additional changes to finish off the changes. Drop chunk deletion from server: it's not a good idea to have it until the server API is authenticated. Sponsored-by: author
2022-09-09fix: use separate subplot YAML metadata file for new SubplotLars Wirzenius1-23/+0
Subplot has just made a breaking change: the subplot document metadata must be in a separate YAML file, not embedded in the markdown. This adapts Obnam to that. It's a little awkward that Subplot hasn't made a release of this yet, but as I use Subplot from git, I need this now. Sponsored-by: author
2022-08-14docs: add threat model for wide-open APILars Wirzenius1-0/+17
Sponsored-by: author
2022-08-14docs: add thoughts about chunk splitting approached to obnam.mdLars Wirzenius1-0/+147
Sponsored-by: author
2022-04-21docs: add a note of why CACHEDIR.TAG itself gets backed upLars Wirzenius1-1/+3
Sponsored-by: author
2022-04-16feat: use one checksum for all chunks in a backupLars Wirzenius1-1/+3
When making a backup, use the same checksum for any chunks it re-uses or creates. This is for performance: if we allowed two checksums to be used, we would have to compute the checksum for a chunk twice, and potentially look up both on the server. This is just a lot of work. Instead, we use only one. The trade-off here is that when (not if) the user wants to switch to a new checksum type, they'll have to do a full backup, uploading all their data to the server, even when it's already there, just with a different checksum. Hopefully this will be rare. Full backups always use the built-in, hardcoded default checksum, and incremental backups use whatever the previous backup used. The default is still SHA256, but this commit add code to support BLAKE2 if we decide to switch that as a default. It's also easy to add support for others, now. BLAKE2 was added to verify that Obnam can actually handle the checksum changing (manual test: not in the test suite). I don't think users need to be offered even the option of choosing a checksum algorithm to use. When one cares about both security and performance, choosing a checksum requires specialist, expert knowledge. Obnam developers should choose the default. Giving users a knob they can twiddle just makes it that much harder to configure and use Obnam. If the choice Obnam developers have made is shown to be sub-optimal, it seems better to change the default for everyone, rather than hope that every user changes their configuration to gain the benefit. Experience has shown that people mostly don't change the default configuration, and that they are especially bad at choosing well when security is a concern. (Obnam is free software. Expert users can choose their checksum by changing the source code. I'm not fundamentally limiting anyone's freedom or choice here.) Users can switch to a new default algorithm by triggering a full backup with the new "obnam backup --full". Sponsored-by: author
2022-04-16feat! change how chunk labels are serializedLars Wirzenius1-10/+10
Serialized labels now start with a type prefix: a character that says what type of label it is. This isn't strictly required: we _can_ just decide to always use a single type of checksum for all chunks in one backup, for one client, or in the whole repository. However, if it's ever possible to have more than one type, it helps debugging if every checksum, when serialized, is explicit about its type. Change things to use the new serialize method instead of the Display trait for Label. We're primarily serializing labels so they can be stored in a database, and used in URLs, only secondarily showing them to users. Sponsored-by: author
2022-04-06feat! add chunk server API version to HTTP pathsLars Wirzenius1-17/+17
What was /chunks is now /v1/chunks. This is the minimal step to start supporting multiple API versions. Also, /v1/chunks/foo/bar is no longer supported. Sponsored-by: author
2022-03-22docs: update obnam.md about client trust root chunkLars Wirzenius1-25/+18
Sponsored-by: author
2022-03-22feat! drop generation related fields from chunk metadataLars Wirzenius1-4/+4
Sponsored-by: author
2022-03-22feat! store list of generations in a "client trust root" chunkLars Wirzenius1-3/+4
Backups made with this version can't be restored with old clients, and vice version. Sponsored-by: author
2022-03-20docs: add requirements, scenarios, database schema evolutionLars Wirzenius1-0/+108
Sponsored-by: author
2022-03-14Merge branch 'liw/metadata-docs' into 'main'Lars Wirzenius1-11/+23
docs: update the file metadata description Closes #19 See merge request obnam/obnam!221
2022-03-13docs: update the file metadata descriptionLars Wirzenius1-11/+23
Sponsored-by: author
2022-03-13feat! rename metadata field "sha256" to "label"Lars Wirzenius1-18/+19
The field still contains a cleartext SHa256 of the cleartext chunk data, but this makes it clearer that it may contain other data. This is a breaking change: the server API won't work with an old client, and the new client won't work with an old server. To avoid the breakage would require more effort than is warranted at this time, given the very small number of users of Obnam. Sorry. Sponsored-by: author
2022-01-19fix: add missing wordLars Wirzenius1-1/+1
Thanks, Alexander. Sponsored-by: author
2022-01-16docs: add requirement that the size of local cache must be limitedLars Wirzenius1-0/+4
Sponsored-by: author
2021-11-28Merge branch 'fix-subplot' into 'main'Lars Wirzenius1-2/+2
fix: subplot to work with current Subplot See merge request obnam/obnam!192
2021-11-27fix: subplot to work with current SubplotLars Wirzenius1-2/+2
Subplot has made backwards-incompatible changes to how step functions are specified. Upgrade obnam.md to use the new way to work with current Subplot. Sponsored-by: author
2021-11-27feat! turn errors from backup root directory into errorsLars Wirzenius1-0/+20
Previously an error from, say, a missing backup root directory was reported to the user as a warning. Turn it into an error. However, errors reading a file or directory inside the backup root should still be just a warning. Sponsored-by: author
2021-11-21refactor: add simple scenario step to setup Obnam for a scenarioLars Wirzenius1-62/+31
Make the setup of an installed Obnam and a running Obnam server be one step instead of two. This is not a huge change, but even a little helps, given how many scenarios need it. Sponsored-by: author
2021-10-24feat! store schema version of generation database in the dbLars Wirzenius1-0/+28
Add a new mandatory database table "meta" to the SQLite database the stores information about the files in a backup generation. The idea is for future versions of the Obnam client to be able to be able to restore from backups made by older -- or newer -- versions of Obnam, as far as is reasonable. Add the `obnam gen-info` command to show information about the generation metadata. Sponsored-by: author
2021-09-18docs: move abstract out from doc metadataLars Wirzenius1-7/+8
It can be moved back when Subplot supports that again. Sponsored-by: author
2021-09-15docs: update requirements list and status of requirementsLars Wirzenius1-4/+4
Sponsored-by: author
2021-09-15refactor: move document metadata to topLars Wirzenius1-36/+30
My Emacs' markdown-mode no longer gets confused by this and it's clearer tot have it at the top. Sponsored-by: author
2021-08-02Merge branch 'feature/117-obnam_server_log' into 'main'Lars Wirzenius1-0/+25
feat: configure log verbosity with OBNAM_SERVER_LOG envvar Closes #117 See merge request obnam/obnam!170
2021-08-01feat: add command to resolve a generation ref into a chunk idLars Wirzenius1-0/+2
Sponsored-by: author
2021-07-31feat: configure log verbosity with OBNAM_SERVER_LOG envvarAlexander Batischev1-0/+25
Fixes #117.
2021-07-28Add subplot to verify new mitigationAlexander Batischev1-5/+50
2021-07-18test: add scenario to verify chunkify worksLars Wirzenius1-1/+29
Sponsored-by: author
2021-06-22Replace n-dashes with m-dashesAlexander Batischev1-21/+21
Cf. https://gitlab.com/obnam/obnam/-/merge_requests/158#note_605879696
2021-05-31test: update subplot to use new encryption stuffLars Wirzenius1-7/+22
2021-05-10chore: use Subplot's built-in copies of its librariesLars Wirzenius1-5/+5
Drop the copies in subplot/vendor. Subplot will now use its built-in copies by default.
2021-04-26Merge branch 'feature/mention-cachedir-threat' into 'main'Lars Wirzenius1-0/+18
Add CACHEDIR.TAG to the threat model See merge request larswirzenius/obnam!141
2021-04-25feat: expand tilde notation in configuration fileLars Wirzenius1-0/+23
Backup roots and log file can now say ~/foo/bar to refer to files relative to the user's home directory.
2021-04-25Add CACHEDIR.TAG to the threat modelAlexander Batischev1-0/+18
2021-04-21feat: add support for CACHEDIR.TAGAlexander Batischev1-0/+60
Fixes #78.
2021-04-09refactor: make tests install a config in the default locationLars Wirzenius1-42/+42
This way, every step doesn't need to specify a --config option to the Obnam client.
2021-04-09feat: add "obnam init" subcommandLars Wirzenius1-0/+30
This reads a passphrase and derives two passwords from that, and stores them next to the configuration file. The passwords aren't yet used for anything, that will come later.
2021-03-27refactor: use generic step to run command, instead of custom oneLars Wirzenius1-2/+2
2021-03-23fix: rewrite table as a listLars Wirzenius1-5/+3
The table triggers a bug in Subplot, so we use a list instead.
2021-03-12feat: handle files in directories that can be read but not executedLars Wirzenius1-0/+19
2021-03-12feat: show warnings for any problems backing up filesLars Wirzenius1-0/+19
Previously, we either ignored it or aborted the backup. Neither is good. Now we ignore the problem, except to show a warning at the end of the backup run.
2021-03-12refactor: use new manifest comparison everywhereLars Wirzenius1-8/+8
2021-03-12test: give better error messages for file manifests differingLars Wirzenius1-1/+2
This makes it easier to see what the problem is.
2021-03-11fix: note little-endianness of chunk format version numberLars Wirzenius1-1/+2
2021-03-11fix: tenseLars Wirzenius1-1/+1
2021-03-11drop unnecessary "the"Lars Wirzenius1-1/+1