General upgrade process
Read the release notes and migrations wiki
Before upgrading, check the phoss SMP Migrations wiki page for version-specific actions. Some releases require manual steps that cannot be automated.
Back up your data
- XML backend: copy the entire
webapp.datapathdirectory. - SQL backend: take a full database dump.
- MongoDB backend: use
mongodump. - Also back up your
application.propertiesand keystore files.
Deploy the new version
Replace the WAR file in
$CATALINA_HOME/webapps/ or pull and restart the new Docker image (see Docker upgrade).Apply any configuration changes
Compare your
application.properties against the new default configuration. New properties added in the release will use their built-in defaults unless you explicitly set them.Database schema migrations (SQL backend)
The SQL backend uses Flyway 12 to manage schema versioning. Migration scripts live in:Flyway requires that the database user has
ALTER TABLE, CREATE TABLE, and CREATE INDEX privileges in addition to the usual DML privileges.Notable SQL migration
The migration IDsql.db-users-to-regular-users (defined in CSMPServerMigrations) handles the one-time transition from the legacy database-level user model to the regular phoss SMP user model. This migration runs automatically the first time you start a version that includes it.
XML backend
XML data files are forward-compatible across minor and patch versions. No schema migration is required when upgrading between patch releases. For major version upgrades, the startup code applies any necessary in-place migrations to the XML files automatically. Check the Migrations wiki to confirm whether a specific major upgrade requires manual steps.MongoDB backend
MongoDB collections are schema-less. Structural changes are handled by the startup code at runtime. No manual migration steps are required for most upgrades. Check the Migrations wiki for any exceptions.Docker image upgrade
Start a new container with the same volumes and config
application.properties, keystore, and data directory are preserved via the mounted volume.Key breaking changes in recent versions
v8.0 — Java 17 requirement
Starting with v8.0, phoss SMP requires Java 17 or later. Java 11 is no longer supported. Verify your JVM before upgrading:v6.0.7 — Bearer token authentication
v6.0.7 introduced Bearer token authentication as the preferred method for REST API calls. Existing Basic Auth integrations continue to work without any changes, but new integrations should use tokens created under Administration > Security > User Tokens. See Authentication for details.Configuration file changes between versions
New properties are added periodically. Check the defaultapplication.properties in the new WAR (or the phoss-smp-webapp-xml, phoss-smp-webapp-sql, or phoss-smp-webapp-mongodb module) against your deployed file.
The safest approach is to diff your running configuration against the default:
Notable property additions
| Version | Property | Default | Description |
|---|---|---|---|
| v8.0.11 | jdbc.pooling.max-connections | 8 | DBCP2 max pool size |
| v8.0.11 | jdbc.pooling.max-wait.millis | 10000 | DBCP2 max borrow wait |
| v8.0.6 | smp.rest-remote-query-api.enabled | false | Remote Query API toggle |
| v8.0.2 | smp.publicurl.mode | request | Public URL detection strategy |
| v5.7.0 | webapp.nicename.doctypes.path | — | Doc type nice-name XML path |
| v5.7.0 | webapp.nicename.processes.path | — | Process nice-name XML path |
| v5.2.0 | smp.rest.log.exceptions | false | Log REST exceptions |