Skip to content

Releases: cap-js-community/feature-toggle-library

v1.2.1

30 Sep 12:57
Compare
Choose a tag to compare

Changed

  • cds-plugin: service endpoint /rest/feature/redisRead will return server in-memory changes in NO_REDIS mode in
    order to be consistent with /rest/feature/redisUpdate.

Added

  • cds-plugin: added cds.test() basic request/response tests for service.

Fixed

  • cds-plugin: service endpoint /rest/feature/redisRead works without http errors in NO_REDIS mode.

v1.2.0

25 Sep 12:39
Compare
Choose a tag to compare

⚠️ This release contains two minor breaking changes.

Changed

  • The main class of the library is no longer explicitly exported. You can access it implicitly as constructor of the
    exported class instance.

    // before
    const { FeatureToggles } = require("@cap-js-community/feature-toggle-library");
    const myToggles = new FeatureToggles({ uniqueName: "snowflake" });
    
    // after
    const toggles = require("@cap-js-community/feature-toggle-library");
    const FeatureToggles = toggles.constructor;
    const myToggles = new FeatureToggles({ uniqueName: "snowflake" });
  • cds-plugin: rewrote /rest/feature/redisRead endpoint to show all Redis maintained toggle values, including those of
    toggles that are not configured. The endpoint no longer refreshes the server-local toggle state. Consequently, it
    will work with read access privileges, since it can no longer modify the server-local state (fixes #69).

Added

  • added remoteOnly option for /rest/feature/redisUpdate endpoint and the changeFeatureValue() API. With this
    option, you can clean up Redis maintained values that are no longer configured (fixes #69).
  • cds-plugin: better detection of serve mode following changes in @sap/cds
    v8.2.3

Fixed

  • multiple, even concurrent, calls of initializeFeatures() will only ever trigger one execution of the underlying
    initialization.

v1.1.7

17 Sep 14:36
Compare
Choose a tag to compare

Fixed

  • setting a root value with the option { clearSubScopes: true } only deleted the root and scoped values, but did
    not set the new root value.

v1.1.6

23 Jul 15:12
Compare
Choose a tag to compare

Fixed

  • cds-plugin: fix uniqueName configuration processing
  • more consistent scope preference order when 2 out of 4 scopes are set

v1.1.5

06 Jun 13:11
Compare
Choose a tag to compare

Changed

  • fallback value null is no longer allowed (fixes #62).
  • change handlers no longer receive null as new values, they get the actual new value for the relevant scope instead
    (fixes #64).

Fixed

  • cds-plugin: unify and fix syntax of context.error and context.reject for cds service.
  • change processing is more resilient. for redis message with multiple changes, if one change fails, then subsequent
    changes will still be processed.

v1.1.4

08 Apr 13:37
Compare
Choose a tag to compare

Added

  • docs: basic documentation for newest cds-plugin features.
  • cds-plugin: better access control (fixes #57).

Fixed

  • redis: better integration mode, will not log a connection error if redis is not present.

v1.1.2

21 Mar 10:19
Compare
Choose a tag to compare

Added

  • cds-plugin: fts feature toggles are detected and configured automatically (fixes #50).
  • cds-plugin: allow custom scope map callback for fts feature toggles (fixes #51).
  • cds-plugin: can configure unique name, i.e. which apps store the same toggles in redis, as part of cds configuration.

Fixed

  • cds-plugin: feature toggles will not initialize during cds build.
  • redis: proper usage of redis-client built-in reconnect capabilities.

v1.1.1

05 Dec 12:18
Compare
Choose a tag to compare

Changed

  • cds-service: always log update contents for traceability and improved logging for redis read and update errors.
  • docs: add getting started section (fixes #43).

v1.1.0

01 Dec 14:07
Compare
Choose a tag to compare

⚠️ User action required! This release will be more disruptive than usual. We re-thought that main require API and
made it much leaner. These changes should have happened in 1.0, sorry for the inconvenience.

// before
const {
  singleton: { getFeatureValue },
} = require("@cap-js-community/feature-toggle-library");

function someFunc() {
  getFeatureValue(key);
}

// after
const toggles = require("@cap-js-community/feature-toggle-library");

function someFunc() {
  toggles.getFeatureValue(key);
}

For details see
https://cap-js-community.github.io/feature-toggle-library/usage/

Changed

  • the library now exports only the singleton instance (fixes #39).
  • cds-plugin: the request header features are only respected in development environments (fixes #41).

v1.0.0

27 Nov 14:11
Compare
Choose a tag to compare

We are releasing 1.0, after 2 years of continuous usage, testing, and small improvements.

Removed

  • restrict to node v18+

Added

  • act as Feature Vector Provider when used as a CDS-plugin.
  • allow graceful shutdown by closing redis clients on cds shutdown event (fixes #34).