Skip to content

Commit 86d3a09

Browse files
remove FeatureFlagId from telemetry (#183)
1 parent c068372 commit 86d3a09

File tree

3 files changed

+0
-55
lines changed

3 files changed

+0
-55
lines changed

src/AzureAppConfigurationImpl.ts

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import {
1717
ENABLED_KEY_NAME,
1818
METADATA_KEY_NAME,
1919
ETAG_KEY_NAME,
20-
FEATURE_FLAG_ID_KEY_NAME,
2120
FEATURE_FLAG_REFERENCE_KEY_NAME,
2221
ALLOCATION_KEY_NAME,
2322
SEED_KEY_NAME,
@@ -671,7 +670,6 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
671670
const metadata = featureFlag[TELEMETRY_KEY_NAME][METADATA_KEY_NAME];
672671
featureFlag[TELEMETRY_KEY_NAME][METADATA_KEY_NAME] = {
673672
[ETAG_KEY_NAME]: setting.etag,
674-
[FEATURE_FLAG_ID_KEY_NAME]: await this.#calculateFeatureFlagId(setting),
675673
[FEATURE_FLAG_REFERENCE_KEY_NAME]: this.#createFeatureFlagReference(setting),
676674
...(metadata || {})
677675
};
@@ -699,56 +697,6 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
699697
return featureFlag;
700698
}
701699

702-
async #calculateFeatureFlagId(setting: ConfigurationSetting<string>): Promise<string> {
703-
let crypto;
704-
705-
// Check for browser environment
706-
if (typeof window !== "undefined" && window.crypto && window.crypto.subtle) {
707-
crypto = window.crypto;
708-
}
709-
// Check for Node.js environment
710-
else if (typeof global !== "undefined" && global.crypto) {
711-
crypto = global.crypto;
712-
}
713-
// Fallback to native Node.js crypto module
714-
else {
715-
try {
716-
if (typeof module !== "undefined" && module.exports) {
717-
crypto = require("crypto");
718-
}
719-
else {
720-
crypto = await import("crypto");
721-
}
722-
} catch (error) {
723-
console.error("Failed to load the crypto module:", error.message);
724-
throw error;
725-
}
726-
}
727-
728-
let baseString = `${setting.key}\n`;
729-
if (setting.label && setting.label.trim().length !== 0) {
730-
baseString += `${setting.label}`;
731-
}
732-
733-
// Convert to UTF-8 encoded bytes
734-
const data = new TextEncoder().encode(baseString);
735-
736-
// In the browser, use crypto.subtle.digest
737-
if (crypto.subtle) {
738-
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
739-
const hashArray = new Uint8Array(hashBuffer);
740-
// btoa/atob is also available in Node.js 18+
741-
const base64String = btoa(String.fromCharCode(...hashArray));
742-
const base64urlString = base64String.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
743-
return base64urlString;
744-
}
745-
// In Node.js, use the crypto module's hash function
746-
else {
747-
const hash = crypto.createHash("sha256").update(data).digest();
748-
return hash.toString("base64url");
749-
}
750-
}
751-
752700
#createFeatureFlagReference(setting: ConfigurationSetting<string>): string {
753701
let featureFlagReference = `${this.#clientManager.endpoint.origin}/kv/${setting.key}`;
754702
if (setting.label && setting.label.trim().length !== 0) {

src/featureManagement/constants.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ export const TELEMETRY_KEY_NAME = "telemetry";
88
export const ENABLED_KEY_NAME = "enabled";
99
export const METADATA_KEY_NAME = "metadata";
1010
export const ETAG_KEY_NAME = "ETag";
11-
export const FEATURE_FLAG_ID_KEY_NAME = "FeatureFlagId";
1211
export const FEATURE_FLAG_REFERENCE_KEY_NAME = "FeatureFlagReference";
1312
export const ALLOCATION_KEY_NAME = "allocation";
1413
export const DEFAULT_WHEN_ENABLED_KEY_NAME = "default_when_enabled";

test/featureFlag.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,6 @@ describe("feature flags", function () {
327327
expect(featureFlag.telemetry).not.undefined;
328328
expect(featureFlag.telemetry.enabled).equals(true);
329329
expect(featureFlag.telemetry.metadata.ETag).equals("ETag");
330-
expect(featureFlag.telemetry.metadata.FeatureFlagId).equals("krkOsu9dVV9huwbQDPR6gkV_2T0buWxOCS-nNsj5-6g");
331330
expect(featureFlag.telemetry.metadata.FeatureFlagReference).equals(`${createMockedEndpoint()}/kv/.appconfig.featureflag/Telemetry_1`);
332331

333332
featureFlag = featureFlags[1];
@@ -336,7 +335,6 @@ describe("feature flags", function () {
336335
expect(featureFlag.telemetry).not.undefined;
337336
expect(featureFlag.telemetry.enabled).equals(true);
338337
expect(featureFlag.telemetry.metadata.ETag).equals("ETag");
339-
expect(featureFlag.telemetry.metadata.FeatureFlagId).equals("Rc8Am7HIGDT7HC5Ovs3wKN_aGaaK_Uz1mH2e11gaK0o");
340338
expect(featureFlag.telemetry.metadata.FeatureFlagReference).equals(`${createMockedEndpoint()}/kv/.appconfig.featureflag/Telemetry_2?label=Test`);
341339
});
342340
});

0 commit comments

Comments
 (0)