Obnam 3 acceptance criteria

By: Lars Wirzenius

2026-11-02 06:28

Table of Contents

1 Introduction

Obnam is a backup program.

This document describes the highest abstraction level of acceptance criteria. These are ones relevant to all users of Obnam, regardless of their use case. These ones are similar to the ones in the level 0 subplot, but with all details exposed of how Obnam is configured and invoked.

2 Acceptance criteria for all users and use case

2.1 Obnam can make and restore a backup

Want: Obnam can make a backup and restore it. The restored files are identical to the original ones.

Why: This is what backups are for.

1 given an installed Obnam
2 given file .config/obnam/config.yaml from local-config.yaml
3 given directory repo
4 when I run obnam repo init
5 when I run obnam client init --credential softy
 
6 given directory live-data
7 given file live-data/foo from some-data.txt
8 given file live-data/bar from other-data.txt
 
9 when I run obnam backup start
10 when I run obnam backup add live-data/foo --key-name=default
11 when I run obnam backup add live-data/bar --key-name=default
12 when I run obnam backup finish --key-name=default
 
13 given directory restored/live-data
14 when I run obnam restore --id=latest restored
 
15 then the restored files are identical to live data
repository:
  directory: repo
credentials:
  softy:
    openpgp-key: |
        -----BEGIN PGP PRIVATE KEY BLOCK-----
        
        xVgEaL0m1BYJKwYBBAHaRw8BAQdAndFYVrDLfsB700KGlV7/FzhhJGfaBGxJ/b74
        rEp2D4YAAQDoQe1n5dEFMG8qdeRox7uz7LEbAycdX71ttACeuP2plhDGzRFhbGlj
        ZUBleGFtcGxlLmNvbcKaBBAWCABCBQJovSbUFiEEJvYHN5AuPh2CWk3vxETPZ1iE
        BxMCGwMCHgEECwkIBwYVDgoJDAgBFg0nCQIIAgcCCQEIAQcBAhkBAAoJEMREz2dY
        hAcT8QQA/2WovW8z5+XAUHS+4yGaifjbC9FLrBjtJk3tEIMDrx31AQD0ccWW1TMN
        L5NvM8e34Oc+NKrgFi71NNmjNp2HmpjcD8ddBGi9JtQSCisGAQQBl1UBBQEBB0Bf
        7mppbi9TUSe5BUD+wIkUhNaTVCDByDBEFb0FWQeTbAMBCAcAAP94T+3o2bZsSKpi
        7pADJ8UX/rmlxDWCpZlmE9USy35WgBICwngEGBYIACAFAmi9JtQCGwwWIQQm9gc3
        kC4+HYJaTe/ERM9nWIQHEwAKCRDERM9nWIQHE3zYAQDSEA78GTuVt3UNyp9SLWr6
        5HN827RT0itIK0Q13sbIIQD/Z9jiMgHQ8BswgYJJSgvzOBoKouNRLeYZvMSRqWaE
        8Qk=
        =3qj+
        -----END PGP PRIVATE KEY BLOCK-----
foo
bar