Commit Graph

524 Commits

Author SHA1 Message Date
charles-gauthereau 7c262ce14e fix: files refactoring 2026-10-18 19:01:54 +02:00
charles-gauthereau 6f9cf37937 Merge remote-tracking branch 'origin/main' into feat/files-source-provider
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	docker-compose.yml
2026-10-18 17:49:06 +02:00
github-actions[bot] 2fc84e7108 chore: release 1.23.1 1.23.1 2026-10-17 18:27:27 +00:00
Charles Gauthereau 8d184dc03e Merge pull request #122 from Portabase/dev
Dev
2026-10-17 20:25:10 +02:00
Charles Gauthereau b0df1eea20 Merge pull request #123 from Portabase/fix/backup-creation-timezone
fix: backup-creation-timezone
2026-10-17 19:39:41 +02:00
Charles Gauthereau 036995eac1 fix: refactoring 2026-10-17 19:37:17 +02:00
Charles Gauthereau f639cccd8b fix: use local time for the backup date folder
The remote path date folder used UTC, so backups taken after local
midnight in non-UTC zones landed in the previous day's folder. Use the
container timezone (TZ), like the scheduler already does.

Refs Portabase/portabase#330
2026-10-17 19:35:52 +02:00
Charles Gauthereau 56102b544f Merge pull request #121 from Portabase/fix/managed-database-reappears-after-deletion
fix: managed-database-reappears-after-deletion
2026-10-17 19:03:54 +02:00
Charles Gauthereau 18ac95a454 fix: refactoring 2026-10-17 18:40:54 +02:00
Charles Gauthereau 98c46979ac fix: remove scheduled backups of databases no longer returned by the dashboard 2026-10-17 17:52:28 +02:00
github-actions[bot] 987d56aaf3 chore: release 1.23.0 1.23.0 2026-10-16 15:55:04 +00:00
Charles Gauthereau 2d44333be7 Merge pull request #120 from Portabase/dev
Dev
2026-10-16 17:52:57 +02:00
Charles Gauthereau d278abe1b4 Merge pull request #119 from Portabase/feat/postgresql-exclude-tables-schemas
feat: postgresql-exclude-tables-schemas
2026-10-16 17:23:54 +02:00
Charles Gauthereau ba02799c78 fix: refactoring 2026-10-16 17:20:04 +02:00
Charles Gauthereau bd76ac365b feat(postgres): pass exclude_tables/exclude_schemas to pg_dump (#455) 2026-10-16 16:34:54 +02:00
Charles Gauthereau 9cda3cca61 feat(postgres): parse exclude_tables/exclude_schemas options into pg_dump args 2026-10-16 16:32:07 +02:00
github-actions[bot] 92817beea3 chore: release 1.22.0 1.22.0 2026-10-13 14:04:45 +00:00
Charles Gauthereau 0aeb88f645 Merge pull request #118 from Portabase/feat/sqlserver-dacpac-backup
feat: sqlserver-dacpac-backup
2026-10-13 16:02:56 +02:00
Charles Gauthereau df34765e0f fix: refactoring 2026-10-09 18:12:15 +02:00
Charles Gauthereau a1a84bb76d refactor(mssql): move restore drop into the connection module 2026-10-09 17:54:08 +02:00
Charles Gauthereau 7e9b276685 fix(mssql): keep the target usable when the restore drop fails 2026-10-09 17:38:32 +02:00
Charles Gauthereau c4f4cd86cd fix(mssql): refuse restore drop when the login cannot recreate the database 2026-10-09 16:58:12 +02:00
Charles Gauthereau 1e4a07964a feat(mssql): restore dacpac and bacpac over an existing database 2026-10-09 16:49:03 +02:00
Charles Gauthereau d174d86d2d feat(mssql): back up as dacpac with a backup_format option 2026-10-09 16:39:40 +02:00
Charles Gauthereau d1fc31c0ba fix: files 2026-10-09 15:33:03 +02:00
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