Skip to content

💡 refactor(flags): Harden flag access to key-scoped APIs and align fl…#175

Merged
Charles Hudson (phobetron) merged 1 commit intomainfrom
NT-2600_make-getting-flag-values-harder
Mar 12, 2026
Merged

💡 refactor(flags): Harden flag access to key-scoped APIs and align fl…#175
Charles Hudson (phobetron) merged 1 commit intomainfrom
NT-2600_make-getting-flag-values-harder

Conversation

@phobetron
Copy link
Collaborator

@phobetron Charles Hudson (phobetron) commented Mar 12, 2026

…ag-view tracking

  • Replace bulk flag consumer access with key-scoped APIs:
    • Rename getCustomFlag to getFlag
    • Remove consumer-facing getCustomFlags/getFlags
    • Replace states.flags with states.flag(name) in stateful runtimes
  • Preserve advanced full-map resolution via flagsResolver.resolve(changes)
  • Make automatic flag-view emission stateful-only:
    • CoreStateful.getFlag(...) and states.flag(name) emit trackFlagView
    • Stateless/base getFlag(...) does not auto-emit
  • Add FlagViewBuilderArgs and update trackFlagView signatures across core/analytics
  • Make viewId and viewDurationMs optional for flag-view-compatible ViewEvent payloads
  • Remove exported signals.flags and add toDistinctObservable(...) for distinct key-scoped flag streams
  • Update downstream harnesses/implementations (node/web demos, React hook typing) to match new surfaces
  • Added/updated E2E tests to cover flag view events
  • Refresh TSDoc/README/CONTRIBUTING and SpecKit specs/research for current pre-release behavior

BREAKING CHANGE:

  • getCustomFlag -> getFlag
  • getCustomFlags/getFlags removed from consumer-facing SDK APIs
  • states.flags -> states.flag(name)

[NT-2600]

@wiz-inc-38d59fb8d7
Copy link

wiz-inc-38d59fb8d7 bot commented Mar 12, 2026

Wiz Scan Summary

Scanner Findings
Vulnerability Finding Vulnerabilities -
Data Finding Sensitive Data -
Secret Finding Secrets -
IaC Misconfiguration IaC Misconfigurations -
SAST Finding SAST Findings 2 Low
Software Management Finding Software Management Findings -
Total 2 Low

View scan details in Wiz

To detect these findings earlier in the dev lifecycle, try using Wiz Code VS Code Extension.

@phobetron Charles Hudson (phobetron) force-pushed the NT-2600_make-getting-flag-values-harder branch 2 times, most recently from 1907036 to ef3d498 Compare March 12, 2026 20:24
…ag-view tracking

- Replace bulk flag consumer access with key-scoped APIs:
  - Rename `getCustomFlag` to `getFlag`
  - Remove consumer-facing `getCustomFlags/getFlags`
  - Replace `states.flags` with `states.flag(name)` in stateful runtimes
- Preserve advanced full-map resolution via `flagsResolver.resolve(changes)`
- Make automatic flag-view emission stateful-only:
  - `CoreStateful.getFlag(...)` and `states.flag(name)` emit `trackFlagView`
  - Stateless/base `getFlag(...)` does not auto-emit
- Add `FlagViewBuilderArgs` and update `trackFlagView` signatures across core/analytics
- Make `viewId` and `viewDurationMs` optional for flag-view-compatible `ViewEvent` payloads
- Remove exported `signals.flags` and add `toDistinctObservable(...)` for distinct key-scoped flag streams
- Update downstream harnesses/implementations (node/web demos, React hook typing) to match new surfaces
- Added/updated E2E tests to cover flag view events
- Refresh TSDoc/README/CONTRIBUTING and SpecKit specs/research for current pre-release behavior

BREAKING CHANGE:
- `getCustomFlag` -> `getFlag`
- `getCustomFlags/getFlags` removed from consumer-facing SDK APIs
- `states.flags` -> `states.flag(name)`

[[NT-2600](https://contentful.atlassian.net/browse/NT-2600)]
@phobetron Charles Hudson (phobetron) force-pushed the NT-2600_make-getting-flag-values-harder branch from ef3d498 to dc0963c Compare March 12, 2026 20:37
@phobetron Charles Hudson (phobetron) merged commit 03d8340 into main Mar 12, 2026
30 checks passed
@phobetron Charles Hudson (phobetron) deleted the NT-2600_make-getting-flag-values-harder branch March 12, 2026 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant