Skip to content

Audience

Feature flags apply to all customers, including SaaS customers. Even though SaaS instances are installed and managed by OKIOK, a SaaS customer may occasionally want to enable or disable a specific feature flag.

Features Management

Concepts

Each new version of S-Filer Portal may introduce new features or modifications to existing ones. These features can be activated or deactivated as required. A feature that is not activated causes the platform to behave as it did in a previous version. By default, new features are disabled and must be activated manually by an administrator.

Feature flags are turned on or off by an administrator using the web console (called the Configurator) or the S-Filer Config CLI with the update-feature-flag command. Activating or deactivating a feature does not require a server restart; however, a delay of up to 5 minutes is required for the change to take effect.

A feature flag is permanent: it persists from one version to the next and keeps its value across upgrades. When S-Filer Portal is upgraded, every feature flag retains the value you gave it — a feature you enabled stays enabled, and a feature you left disabled stays disabled until you decide to change it.

In future versions of S-Filer Portal, these features will no longer be considered new and will be activated by default.

Deactivating a feature

It is strongly recommended not to deactivate a feature without understanding its implications. Disabling a feature may lead to compatibility problems such as errors or irreversible loss of data.

Version flags

Audience

Version flags are primarily intended for on-premise administrators. For SaaS instances, OKIOK manages the version flags on your behalf.

A version flag is a different concept from a feature flag. Every new capability introduced by a version is placed behind the corresponding version flag. As long as that version flag is not activated, the version behaves exactly like the previous version. This applies to major and minor versions only — it does not apply to patch versions.

Example

In version 4.21.0, if the version flag 4.21.X is not activated, the instance behaves like version 4.20.17.

High availability (HA) deployments

The version flag is what makes a safe upgrade of a high-availability deployment possible. Because every component keeps behaving like the previous version until the version flag is activated, you can perform a rolling update of the components: each component is upgraded to the new version one at a time while the platform keeps running. Once all components have been upgraded, you activate the version flag so that every component adopts the new behaviour simultaneously.

Time-based synchronization

To guarantee that all components switch to the new behaviour at the same moment, the components are synchronized on the clock: a version flag is only applied at an exact multiple of 5 minutes (for example, 10:05, 10:10, 10:15). This ensures that small differences in the moment each component reads the version flag from the database do not cause version inconsistencies between components.

Key differences between feature flags and version flags

Although both are activated the same way, feature flags and version flags behave very differently over the lifetime of a deployment.

A version flag is ephemeral. It exists only for the version that introduced it: version 4.21.0 has the version flag 4.21.X, but it has no 4.20.X version flag. When the database schema is upgraded to a higher version, the previous version's version flag is considered active (if it was not already) and is then removed. In other words, a version flag lives for exactly one version transition and then disappears.

A feature flag is permanent. It persists from one version to the next and keeps its value across upgrades, independently of any version flag. Enabling or disabling a feature flag is a lasting configuration choice, not a one-time migration step.

A version flag is not a toggle

A version flag is not designed to be switched from ON to OFF. It is meant to be activated once, as the final step of an upgrade, and then left active until it is absorbed and removed by the next schema upgrade.

Disabling a version flag

It is technically possible to disable a version flag, but doing so is strongly discouraged.

Once a version flag is active, the platform may write "new" data to the database — data whose format or meaning depends on the new behaviour. Depending on which new data has already been written, disabling the version flag leaves several behaviours undefined, and the platform may no longer operate reliably.

Contact OKIOK before disabling a version flag

If you believe you need to disable a version flag, do not do it on your own. Contact OKIOK support and professional services first so they can assess your situation and guide you safely.