Add documentation for undocumented features (#172)

* documentation writing skill

* visa sponsors page

* overview

* in progress board

* settings

* reactive resume section

* database backups

* workflows

* post application tracking flow

* manual tracking caveats

* pricing section

* pipeline run detalis

* job search bar

* keyboard shortcuts

* bulk actions

* no informal phrasing

* formatting

* build fix?

* Update docs-site/docs/features/overview.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/versioned_docs/version-0.1.20/features/orchestrator.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/docs/features/visa-sponsors.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/docs/features/in-progress-board.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove link to page that don't exist

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Shaheer Sarfaraz
2026-02-16 00:33:35 +00:00
committed by GitHub
co-authored by Copilot
parent 1f929dfc7f
commit 390d03625e
25 changed files with 1720 additions and 193 deletions
@@ -0,0 +1,127 @@
---
id: database-backups
title: Database Backups
description: Configure, run, and restore JobOps database backups.
sidebar_position: 2
---
## What this covers
This page is about database backups:
- automatic backup schedule
- manual backup creation/deletion
- retention behavior
- restore workflow
- backup troubleshooting
## Backup behavior
JobOps stores backups in the same data directory as `jobs.db`.
Two backup types exist:
- **Automatic** backups
- **Manual** backups
### Automatic backups
- Scheduled daily.
- Filename format: `jobs_YYYY_MM_DD.db`
- Schedule hour is configured in Settings (**UTC hour**).
- Automatic retention is capped by `backupMaxCount`.
- If todays automatic backup already exists, JobOps skips creating a duplicate.
### Manual backups
- Triggered from Settings or `POST /api/backups`.
- Filename format: `jobs_manual_YYYY_MM_DD_HH_MM_SS.db`
- If a filename collision occurs, JobOps appends `_1`, `_2`, etc.
- Manual backups are **not** auto-deleted by automatic retention cleanup.
## Configure backups
In **Settings → Backup**:
1. Enable automatic backups.
2. Set backup hour (`0-23`, UTC).
3. Set max automatic backups to keep (`1-5`).
4. Save settings.
## API reference
```bash
# List backups + next scheduled run time
curl "http://localhost:3001/api/backups"
```
```bash
# Create a manual backup
curl -X POST "http://localhost:3001/api/backups"
```
```bash
# Delete a specific backup
curl -X DELETE "http://localhost:3001/api/backups/jobs_manual_2026_02_15_10_20_30.db"
```
```bash
# Update backup settings via Settings API
curl -X PATCH "http://localhost:3001/api/settings" \
-H "content-type: application/json" \
-d '{
"backupEnabled": true,
"backupHour": 2,
"backupMaxCount": 5
}'
```
## Restore workflow
To restore from a backup:
1. Stop JobOps.
2. Locate backup files in your data directory.
3. Copy the chosen backup over the main DB file (`jobs.db`).
4. Start JobOps.
5. Verify jobs/runs in the UI.
Example shell flow:
```bash
# Example only: adjust paths for your setup
cp /path/to/data/jobs_manual_2026_02_15_10_20_30.db /path/to/data/jobs.db
```
## Troubleshooting
### Backups are not running automatically
- Confirm `backupEnabled` is true.
- Confirm backup hour is set as intended (UTC, not local time).
- Verify the app process is running at scheduled time.
### `POST /api/backups` fails
- Confirm the data directory and `jobs.db` are writable/readable.
- Confirm `jobs.db` exists.
- In demo mode, manual backup creation is blocked.
### Cannot delete a backup
- Filename must match valid backup patterns.
- Invalid names and missing files return errors.
### Next scheduled time is null
- Automatic backups are currently disabled.
## Notes
- Backup cleanup applies only to automatic backups.
- Manual backups stay until you delete them.
## Related pages
- [Settings](../features/settings)
- [Self-Hosting](./self-hosting)