# Introduction

"Obnam 3" is a project to explore the implementation of the
fundamental parts of backup software. It's not an actual backup
program, but it may some day grow into that.

This is a "subplot" document, which explains the acceptance criteria
for Obnam, and how to verify Obnam meets them. This document is meant
to be processed by [Subplot](https://subplot.tech/) to produce an HTML
page and a test program.

At the moment this document is aimed at those develping Obnam. It should
be updated to be suitable for all stakeholders, not just developers.

## Stakeholders

This document is meant to express the needs and wants ("acceptance criteria")
of people who want to (eventually) use Obnam for their backups. To be manageable,
the stakeholders are named here. Other people's opinions also matter, but for
this document, the following people have committed to actively participate in
maintaining the acceptance criteria and how to verify they are met.

* Lars: [Lars Wirzenius](https://liw.fi/), originator of Obnam.

Note that names here can be pseudonums. Legal identities are not necessary.
What's needed is some way know who is relevant for each criterion.

If you'd like to be a stakeholder for Obnam, start participating in discussions and
help maintain this document, and commit to doing that for the time being.

# Shared test files between verification scenarios

This chapter contains embedded files used in various verification
scenarios.

## Simple configuration file

~~~{#config.yaml .file .yaml}
repository: mychunks
~~~


## Client configuration file with credential

This uses an OpenPGP key generated for this document. It is not used for anything
else. Using a pre-generated key for scenarios is a little easier than
generating a new one every time.

~~~{#config-with-credential.yaml .file .yaml}
repository: mychunks
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-----
~~~

## Server configuration file

~~~{#server-config.yaml .file .yaml}
key_pair_file: keypair.json
listen: localhost:8000
repository: backups
~~~

## Simple plaintext file

~~~{#greeting.txt .file .txt}
Hello, world.
~~~



