Charles Gauthereau
5d87fb2d7d
feat(files): files sources with Archive, Snapshots and Sync methods
...
Back up and restore plain directories, alongside the database sources.
Files source and Archive (P0)
- `files` type: absolute path (not /), options.exclude and
options.one_file_system; walk + tar.gz with symlinks kept as links,
special files skipped, unreadable entries fail the run.
- Mirror restore: archive validated first, then everything not excluded
is wiped (mount points and special files kept) and the archive is
extracted, retrying without metadata on filesystems refusing chown/chmod.
- Windows-safe platform helpers; helm extraVolumes/extraVolumeMounts.
Universal rclone mapper (P1)
- rclone_target(storage) for s3, blob, gcs, drive, rclone and sftp; sftp
goes through it; rclone obscure reads the password from stdin.
Snapshots, restic (P2)
- restic in the image; repository per source and channel, password
derived from the master key (HKDF); stable host, bs:<row> tags,
translated excludes; exit 3 fails and forgets the snapshot.
- Mirror restore with `restic restore --delete`; restore payload carries
the encrypted channel; snapshot ids must be full ids.
- Engine in the ping and in scheduled task metadata.
One locked method per source (spec A)
- databases.json declares options.method (archive, snapshot, sync),
reported in the ping for local sources only.
- Sync: rclone sync per channel onto <folder>/sync/<id>/current, refuses
an empty source, reports transferred/deleted counters.
Local channel (spec B)
- Snapshots and Sync reach the dashboard's local storage through its
append-only restic REST server and its WebDAV server.
Security
- Strict rclone config validation: one section, no duplicate keys, no
command, credential or host-file keys, no quoted values, valid backend
type, blocked backends.
- Scheduled task metadata (decrypted storages) is no longer logged.
2026-10-04 10:09:56 +02:00
Charles Gauthereau
bbca053a49
Merge pull request #114 from Portabase/fix/readme-sponsorship
...
fix: Update README.md [skip-release]
2026-09-29 14:42:08 +02:00
Charles Gauthereau
9502f1a032
Merge pull request #115 from Portabase/fix/assets
...
fix: assets [skip-release]
2026-09-29 14:41:53 +02:00
Charles Gauthereau
d592710821
fix: assets
2026-09-29 14:41:17 +02:00
Charles Gauthereau
b30f5964be
fix: Update README.md
2026-09-29 14:40:12 +02:00
github-actions[bot]
496614b067
chore: release 1.21.3
1.21.3
2026-09-26 16:30:44 +00:00
Charles Gauthereau
84f223c5be
Merge pull request #113 from Portabase/fix/crypto-issue
...
fix: Agent panics with rustls CryptoProvider
2026-09-26 18:28:33 +02:00
Charles Gauthereau
e1e649791e
fix: Agent panics with rustls CryptoProvider
2026-09-26 18:11:19 +02:00
Charles Gauthereau
82c9b0aee0
Merge pull request #111 from Portabase/fix/license
...
fix: LICENSE File and Cargo.toml [skip-release]
2026-09-23 09:10:37 +02:00
charles-gauthereau
33b298a4e6
fix: LICENSE File and Cargo.toml
2026-09-23 09:06:48 +02:00
github-actions[bot]
a2bd4d1572
chore: release 1.21.2
1.21.2
2026-09-22 12:10:46 +00:00
Charles Gauthereau
0e04cffc76
Merge pull request #109 from Portabase/fix/binaries
...
fix: binaries assets
2026-09-22 14:08:32 +02:00
charles-gauthereau
71e2473167
fix: scripts
2026-09-22 13:45:49 +02:00
charles-gauthereau
8a29f6b25d
fix: Dockerfile
2026-09-22 13:43:53 +02:00
charles-gauthereau
e05b28176c
fix: binaries assets
2026-09-22 13:24:54 +02:00
charles-gauthereau
3c060fe150
fix: binaries assets
2026-09-22 12:37:13 +02:00
github-actions[bot]
d42c31f3dc
chore: release 1.21.1
1.21.1
2026-09-17 11:43:39 +00:00
Charles GTE
84673373a7
Merge pull request #107 from Portabase/fix/mongodb-options
...
fix: mongodb-options
2026-09-17 13:41:27 +02:00
Charles GTE
6f8a5c4228
fix: mongodb options
2026-09-17 11:20:16 +02:00
charles-gauthereau
c5806a6ea4
fix: refactoring
2026-09-17 10:47:32 +02:00
Charles GTE
c241020542
fix: mongodb options
2026-09-17 10:13:58 +02:00
github-actions[bot]
e0bc6556aa
chore: release 1.21.0
1.21.0
2026-09-14 13:11:26 +00:00
Charles GTE
947cb9bed7
Merge pull request #104 from Portabase/dev
...
Dev
2026-09-14 15:09:04 +02:00
Charles GTE
b5d0035a3b
Merge pull request #106 from Portabase/poc/hmac
...
fix: openssl windows
2026-09-14 14:52:26 +02:00
Charles GTE
d52c328a99
fix: refactoring
2026-09-14 14:51:58 +02:00
Charles GTE
9b79ac4850
Merge branch 'refs/heads/dev' into poc/hmac
...
# Conflicts:
# Cargo.lock
2026-09-14 14:51:22 +02:00
Charles GTE
6e50718b65
fix: tests
2026-09-14 14:30:11 +02:00
Charles GTE
ee5ed81d48
fix: tests
2026-09-14 14:12:29 +02:00
Charles GTE
df078b6202
Merge pull request #105 from Portabase/feat/sftp-storage
...
feat: sftp-storage
2026-09-14 10:55:40 +02:00
Charles GTE
24e3e3098d
chore: update packages
2026-09-13 17:25:13 +02:00
Charles GTE
f6e1a0df98
fix: refactoring
2026-09-12 21:15:04 +02:00
Charles GTE
49366ee24e
refactor(storage): generic rclone config builder and shared obscure util
2026-09-12 21:10:50 +02:00
Charles GTE
012a984973
fix(storage): reject line breaks in sftp host/username; drop unused import
2026-09-12 21:02:28 +02:00
Charles GTE
6d1d7c6891
fix: refactoring
2026-09-12 18:15:45 +02:00
Charles GTE
c70cde8a9c
feat(storage): sftp provider over rclone rcat
2026-09-12 17:57:04 +02:00
Charles GTE
c353443bdd
feat(storage): sftp config model and rclone-config builder
2026-09-12 17:57:04 +02:00
Charles GTE
9f9dedfe87
feat: rclone-privider ( #103 )
...
* build: install rclone 1.75.1 in agent images
* build: exclude target/ and local artifacts from the docker context
* feat(storage): add rclone config model and validation helpers
* feat(storage): stream backups into rclone rcat
* fix(storage): abort truncated rclone uploads and strengthen stderr test
* feat(storage): add RcloneProvider upload path
* fix(storage): bound rclone timeouts, detect restore truncation, track sdd workspace
* fix(storage): block virtual and non-viable rclone backends
* fix: refactoring
2026-09-12 17:09:57 +02:00
Charles GTE
9bb830327e
fix: refactoring
2026-09-10 22:55:47 +02:00
Charles GTE
31e55a7b4f
fix(storage): block virtual and non-viable rclone backends
2026-09-10 22:38:08 +02:00
Charles GTE
576c055092
fix(storage): bound rclone timeouts, detect restore truncation, track sdd workspace
2026-09-10 22:38:08 +02:00
Charles GTE
ba83b6b2b7
feat(storage): add RcloneProvider upload path
2026-09-10 22:38:07 +02:00
Charles GTE
ea356ed54f
fix(storage): abort truncated rclone uploads and strengthen stderr test
2026-09-10 22:37:37 +02:00
Charles GTE
b222b13934
feat(storage): stream backups into rclone rcat
2026-09-10 22:37:09 +02:00
Charles GTE
9409f0ff25
feat(storage): add rclone config model and validation helpers
2026-09-10 22:37:00 +02:00
Charles GTE
59312215e9
build: exclude target/ and local artifacts from the docker context
2026-09-10 22:36:46 +02:00
Charles GTE
3ff360a971
build: install rclone 1.75.1 in agent images
2026-09-10 22:36:38 +02:00
Théo LAGACHE
cc1703592e
poc
2026-09-09 11:57:56 +02:00
github-actions[bot]
5f92297108
chore: release 1.20.1
1.20.1
2026-09-03 15:41:20 +00:00
Charles GTE
d1821f7045
Merge pull request #102 from Portabase/fix/cron-crash
...
fix: cron crash for databases setup from dashboard
2026-09-03 17:38:53 +02:00
charles-gauthereau
0fe4d50cbd
fix: docker-compose.yml
2026-09-03 17:38:35 +02:00