SeedPass stores its password index in an encrypted JSON file. Each
index contains a schema_version
field so the application
knows how to upgrade older files.
When the vault loads the index, Vault.load_index()
checks the version and applies migrations defined in
password_manager/migrations.py
. The
apply_migrations()
function iterates through registered
migrations until the file reaches LATEST_VERSION
.
If an old file lacks schema_version
, it is treated as
version 0 and upgraded to the latest format. Attempting to load an index
from a future version will raise an error.
apply_migrations()
applies any necessary steps, such as
injecting the schema_version
field on first upgrade.This process happens automatically; users only need to open their vault to upgrade older indices.