Class EnvFeatureFlag

java.lang.Object
com.tnsai.flags.EnvFeatureFlag
All Implemented Interfaces:
FeatureFlag

public final class EnvFeatureFlag extends Object implements FeatureFlag
Env-backed FeatureFlag (TAN-3392).

Reads TNSAI_FLAG_<NAME> and optional TNSAI_FLAG_<NAME>_ALLOW:

  • on/off — hard switch
  • 0–100 — percent rollout, hashed on tenant (else agent) so the same identity is stable
  • allow-list — comma-separated tenant or agent ids, honoured even at 0%
  • unset — defaultWhenUnset (new flags: false)
  • Field Details

  • Constructor Details

    • EnvFeatureFlag

      public EnvFeatureFlag()
    • EnvFeatureFlag

      public EnvFeatureFlag(Function<String,String> env)
  • Method Details

    • isEnabled

      public boolean isEnabled(String flag, FlagContext context)
      Specified by:
      isEnabled in interface FeatureFlag
      Parameters:
      flag - flag name; compared case-insensitively
      context - tenant/agent identity; never null (use FlagContext.empty())
      Returns:
      true if the flag is on for this context
    • isEnabled

      public boolean isEnabled(String flag, FlagContext context, boolean defaultWhenUnset)
      Parameters:
      defaultWhenUnset - used only when neither the value env nor the allow-list env is set
    • isSet

      public boolean isSet(String flag)