Merge pull request #887 from Infisical/signup-secret-tagging

Update signup secret distinction/tagging for better telemetry
This commit is contained in:
vmatsiiako
2023-08-23 19:23:44 -07:00
committed by GitHub
5 changed files with 21 additions and 7 deletions

View File

@@ -234,6 +234,9 @@ export const batchSecrets = async (req: Request, res: Response) => {
$inc: {
version: 1
},
$unset: {
'metadata.source': true as true
},
...u,
_id: new Types.ObjectId(u._id)
}
@@ -966,6 +969,7 @@ export const getSecrets = async (req: Request, res: Response) => {
);
const postHogClient = await TelemetryService.getPostHogClient();
if (postHogClient) {
postHogClient.capture({
event: "secrets pulled",

View File

@@ -117,7 +117,7 @@ const secretVersionSchema = new Schema<ISecretVersion>(
ref: "Tag",
type: [Schema.Types.ObjectId],
default: [],
},
}
},
{
timestamps: true,

View File

@@ -393,9 +393,10 @@ export const createSecretHelper = async ({
secretCommentTag,
folder: folderId,
algorithm: ALGORITHM_AES_256_GCM,
keyEncoding: ENCODING_SCHEME_UTF8
keyEncoding: ENCODING_SCHEME_UTF8,
metadata
}).save();
const secretVersion = new SecretVersion({
secret: secret._id,
version: secret.version,
@@ -415,7 +416,7 @@ export const createSecretHelper = async ({
algorithm: ALGORITHM_AES_256_GCM,
keyEncoding: ENCODING_SCHEME_UTF8
});
// (EE) add version for new secret
await EESecretService.addSecretVersions({
secretVersions: [secretVersion]
@@ -566,15 +567,17 @@ export const getSecretsHelper = async ({
);
const postHogClient = await TelemetryService.getPostHogClient();
const numberOfSignupSecrets = (secrets.filter((secret) => secret?.metadata?.source === "signup")).length;
if (postHogClient) {
if (postHogClient && (secrets.length - numberOfSignupSecrets > 0)) {
postHogClient.capture({
event: "secrets pulled",
distinctId: await TelemetryService.getDistinctId({
authData
}),
properties: {
numberOfSecrets: secrets.length,
numberOfSecrets: secrets.length - numberOfSignupSecrets,
environment,
workspaceId,
folderId,

View File

@@ -31,6 +31,9 @@ export interface ISecret {
keyEncoding: "utf8" | "base64";
tags?: string[];
folder?: string;
metadata?: {
[key: string]: string;
}
}
const secretSchema = new Schema<ISecret>(
@@ -131,6 +134,9 @@ const secretSchema = new Schema<ISecret>(
type: String,
default: "root",
},
metadata: {
type: Schema.Types.Mixed
}
},
{
timestamps: true,

View File

@@ -38,7 +38,7 @@ const fetchProjectEncryptedSecrets = async (
folderId?: string,
secretPath?: string
) => {
const { data } = await apiRequest.get<{ secrets: EncryptedSecret[] }>("/api/v2/secrets", {
const { data } = await apiRequest.get<{ secrets: EncryptedSecret[] }>("/api/v3/secrets", {
params: {
environment: env,
workspaceId,
@@ -46,6 +46,7 @@ const fetchProjectEncryptedSecrets = async (
secretPath
}
});
return data.secrets;
};