diskUsage now carries Sources []string instead of a single Source.
collectDiskUsage accumulates all sources (samba, nfs, manual) per path.
NFS no longer adds a redundant label to used_by.
Dashboard and Settings render one chip per source. When a path
is shared via SMB and NFS, both chips appear.
API breaking: disks[].source replaced by disks[].sources[].
Version: 0.2.1 -> 0.3.0
NFS exports: replace plain-text options string with typed booleans
(read_only, async, root_squash, subtree_check) + advanced JSON blob.
fsid is auto-generated via crypto/rand with collision retry and is
never user-settable. Breaking API change (options field removed).
Dashboard: filter disks to manual+samba+nfs sources only; no more
auto-discovery of all /proc/mounts entries.
Settings: new 'Puntos de montaje vigilados' card with add/remove
for manual mount points. AllowedRoots validation applied.
Version bump: 0.1.10 -> 0.2.0
The previous SAVEPOINT approach failed because Go's tx.Exec() stops at
the first error and never reaches the ROLLBACK TO statements. This caused
every subsequent startup to re-run migration 0002, fail on the first
ALTER (column already exists from a prior partial run), and crash.
Fix runMigration() to:
- Execute migrations without a wrapping transaction (DDL in SQLite is
auto-commit anyway)
- Treat "duplicate column name" / "already exists" errors as success
and record the migration anyway, covering cases where a previous
failed attempt already partially modified the schema
Also simplify 0002_nfs_structured.sql back to plain ALTER TABLE
statements (no SAVEPOINT needed with the new Go-level tolerance).
Bump VERSION 0.1.9 -> 0.1.10
- Add schema_migrations table to track applied migrations
- Migrate() now checks if a migration was already applied before running
- 0002 rewritten to use SAVEPOINT+ROLLBACK per column, making it safe
to run even if some columns were partially added previously
- Each migration runs in its own transaction; INSERT into schema_migrations
only happens if the SQL executes without error
- Bump VERSION 0.1.8 -> 0.1.9
SQLite does not support adding multiple columns in a single ALTER TABLE
statement. The previous migration tried to add 6 columns at once and
caused a syntax error, crashing the service at startup.
Bump VERSION 0.1.7 -> 0.1.8
- Bump VERSION 0.1.6 -> 0.1.7
- Change systemctl start -> try-restart in postinst script so that
upgrading the package actually restarts nasctl with the new binary