These setup files provide the text-only configurations for DMZ.

*It should not contain private data.*

# Dependencies

- `recutils`
- (optional) `graph-easy` (the package may be called `perl-graph-easy`)

# Aspirations

- Each service should reside in its own directory.
- Everything should be automated, including:
    - backups,
    - turning the backup back into a service,
    - configuring the service to run,
    - Makefile (or similar) wherever practical,
    - Idempotency.
- All secrets stored elsewhere (probably in the `dmzadmin` repo)
- Any maintenance scripts.
- Configurations should reside in shadow-directories, e.g. a backup `soft-serve`'s `config.yaml` should reside in this repo under `splint.rs/soft-serve/etc/soft/config.yaml`.

# Network Database

I have a half-baked plan to finally make use of plain-text databases, and it's already half-working.
Try these commands:

Ask what types of _rec_ords it contains:

## Database

```sh
recinf network.rec
```

### Select queries

Select with `recsel`, then specify the database (.rec) and type of record (like table in db).

`--include-descriptors` or `-d`,
`--type` or `-t`,
`--expression` or `-e`,
`--quick` or `-q`

```sh
recsel network.rec --type router
recsel network.rec -d -t lxc
recsel network.rec -d -t lxc -e ?example?
```

User `-q` for a `--quick` selection, or `-e` for more precise selections.

```sh
recsel network.rec --type lxc --quick wiki
recsel network.rec -t lxc -q nginx
recsel network.rec -t lxc -e "name ~ 'nginx'"
recsel network.rec -t lxc -e "name = 'nginx12'"
```

### Insert queries

Insert a new record with `recins`.

```sh
recins network.rec -t lxc -r "name: bob" -r "service: bob" -r "host: moxx"
```

### Update queries

If you can select something, you can also set its fields with `recset`.

Use `-f` to set the `--field`, and `-a` to `--add`, or `-s` to `--set`.


```sh
recset network.rec -t lxc -e "name = 'nginx12'" -f proxies -a soft-serve
recsel network.rec -t lxc -e "name = 'nginx11'" -p proxies[0]
recset network.rec -t lxc -e" name = 'nginx11'" -f proxies[0] -s wiki9
```