Begin marking endpoints for deprecation, clean unused frontend code

This commit is contained in:
Tuan Dang
2023-08-09 16:45:52 +07:00
parent 11833ccf0f
commit 2a1665a2c3
37 changed files with 135 additions and 1929 deletions
-27
View File
@@ -1,27 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
interface Props {
workspaceId: string;
}
/**
* This function fetches the bot for a project
* @param {Object} obj
* @param {String} obj.workspaceId
* @returns
*/
const getBot = async ({ workspaceId }: Props) =>
SecurityClient.fetchCall(`/api/v1/bot/${workspaceId}`, {
method: "GET",
headers: {
"Content-Type": "application/json"
}
}).then(async (res) => {
if (res && res.status === 200) {
return (await res.json()).bot;
}
console.log("Failed to get bot for project");
return undefined;
});
export default getBot;
@@ -1,42 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
interface BotKey {
encryptedKey: string;
nonce: string;
}
interface Props {
botId: string;
isActive: boolean;
botKey?: BotKey;
}
/**
* This function sets the active status of a bot and shares a copy of
* the project key (encrypted under the bot's public key) with the
* project's bot
* @param {Object} obj
* @param {String} obj.botId
* @param {String} obj.isActive
* @param {Object} obj.botKey
* @returns
*/
const setBotActiveStatus = async ({ botId, isActive, botKey }: Props) =>
SecurityClient.fetchCall(`/api/v1/bot/${botId}/active`, {
method: "PATCH",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
isActive,
botKey
})
}).then(async (res) => {
if (res && res.status === 200) {
return res.json();
}
console.log("Failed to get bot for project");
return undefined;
});
export default setBotActiveStatus;
@@ -1,28 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
type NewEnvironmentInfo = {
environmentSlug: string;
environmentName: string;
};
/**
* This route deletes a specified workspace.
* @param {*} workspaceId
* @returns
*/
const createEnvironment = (workspaceId: string, newEnv: NewEnvironmentInfo) =>
SecurityClient.fetchCall(`/api/v2/workspace/${workspaceId}/environments`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(newEnv)
}).then(async (res) => {
if (res && res.status === 200) {
return res;
}
console.log("Failed to create environment");
return undefined;
});
export default createEnvironment;
@@ -1,22 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
/**
* This route deletes a specified env.
* @param {*} workspaceId
* @returns
*/
const deleteEnvironment = (workspaceId: string, environmentSlug: string) =>
SecurityClient.fetchCall(`/api/v2/workspace/${workspaceId}/environments`, {
method: "DELETE",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ environmentSlug })
}).then(async (res) => {
if (res && res.status === 200) {
return res;
}
console.log("Failed to delete environment");
return undefined;
});
export default deleteEnvironment;
@@ -1,29 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
type EnvironmentInfo = {
oldEnvironmentSlug: string;
environmentSlug: string;
environmentName: string;
};
/**
* This route updates a specified environment.
* @param {*} workspaceId
* @returns
*/
const updateEnvironment = (workspaceId: string, env: EnvironmentInfo) =>
SecurityClient.fetchCall(`/api/v2/workspace/${workspaceId}/environments`, {
method: "PUT",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(env)
}).then(async (res) => {
if (res && res.status === 200) {
return res;
}
console.log("Failed to update environment");
return undefined;
});
export default updateEnvironment;
@@ -1,54 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
interface EncryptedSecretProps {
id: string;
createdAt: string;
environment: string;
secretCommentCiphertext: string;
secretCommentIV: string;
secretCommentTag: string;
secretKeyCiphertext: string;
secretKeyIV: string;
secretKeyTag: string;
secretValueCiphertext: string;
secretValueIV: string;
secretValueTag: string;
type: "personal" | "shared";
}
/**
* This function adds secrets to a certain project
* @param {object} obj
* @param {EncryptedSecretProps} obj.secrets - the ids of secrets that we want to add
* @param {string} obj.env - the environment to which we are adding secrets
* @param {string} obj.workspaceId - the project to which we are adding secrets
* @returns
*/
const addSecrets = async ({
secrets,
env,
workspaceId
}: {
secrets: EncryptedSecretProps[];
env: string;
workspaceId: string;
}) =>
SecurityClient.fetchCall("/api/v2/secrets", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
environment: env,
workspaceId,
secrets
})
}).then(async (res) => {
if (res && res.status === 200) {
return res.json();
}
console.log("Failed to add certain project secrets");
return undefined;
});
export default addSecrets;
@@ -1,25 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
/**
* This function deletes certain secrets from a certain project
* @param {string[]} secretIds - the ids of secrets that we want to be deleted
* @returns
*/
const deleteSecrets = async ({ secretIds }: { secretIds: string[] }) =>
SecurityClient.fetchCall("/api/v2/secrets", {
method: "DELETE",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
secretIds
})
}).then(async (res) => {
if (res && res.status === 200) {
return res.json();
}
console.log("Failed to delete certain project secrets");
return undefined;
});
export default deleteSecrets;
@@ -1,29 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
/**
* This function fetches the encrypted secrets for a certain project
* @param {string} workspaceId - project is for which a user is trying to get secrets
* @param {string} env - environment of a project for which a user is trying ot get secrets
* @returns
*/
const getSecrets = async (workspaceId: string, env: string) =>
SecurityClient.fetchCall(
`/api/v2/secrets?${new URLSearchParams({
environment: env,
workspaceId
})}`,
{
method: "GET",
headers: {
"Content-Type": "application/json"
}
}
).then(async (res) => {
if (res && res.status === 200) {
return (await res.json()).secrets;
}
console.log("Failed to get project secrets");
return undefined;
});
export default getSecrets;
@@ -1,42 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
interface EncryptedSecretProps {
id: string;
createdAt: string;
environment: string;
secretCommentCiphertext: string;
secretCommentIV: string;
secretCommentTag: string;
secretKeyCiphertext: string;
secretKeyIV: string;
secretKeyTag: string;
secretValueCiphertext: string;
secretValueIV: string;
secretValueTag: string;
type: "personal" | "shared";
}
/**
* This function updates certain secrets in a certain project
* @param {object} obj
* @param {EncryptedSecretProps[]} obj.secrets - the ids of secrets that we want to update
* @returns
*/
const updateSecrets = async ({ secrets }: { secrets: EncryptedSecretProps[] }) =>
SecurityClient.fetchCall("/api/v2/secrets", {
method: "PATCH",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
secrets
})
}).then(async (res) => {
if (res && res.status === 200) {
return res.json();
}
console.log("Failed to update certain project secrets");
return undefined;
});
export default updateSecrets;
@@ -1,39 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
interface Props {
workspaceId: string;
secrets: any;
keys: string;
environment: string;
}
/**
* This function uploads the encrypted .env file
* @param {object} obj
* @param {string} obj.workspaceId
* @param {} obj.secrets
* @param {} obj.keys
* @param {string} obj.environment
* @returns
*/
const uploadSecrets = async ({ workspaceId, secrets, keys, environment }: Props) =>
SecurityClient.fetchCall(`/api/v2/workspace/${workspaceId}/secrets`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
secrets,
keys,
environment,
channel: "web"
})
}).then(async (res) => {
if (res && res.status === 200) {
return res;
}
console.log("Failed to push secrets");
return undefined;
});
export default uploadSecrets;
@@ -1,38 +0,0 @@
import { apiRequest } from "@app/config/request";
interface RequestType {
method: string;
secret: {
type: string;
secretKeyCiphertext: string;
secretKeyIV: string;
secretKeyTag: string;
secretValueCiphertext: string;
secretValueIV: string;
secretValueTag: string;
secretCommentCiphertext: string;
secretCommentIV: string;
secretCommentTag: string;
tags: string[];
}
}
const batchSecrets = async ({
workspaceId,
environment,
requests
}: {
workspaceId: string;
environment: string;
requests: RequestType[];
}) => {
const { data } = await apiRequest.post("/api/v2/secrets/batch", {
workspaceId,
environment,
requests
});
return data;
}
export default batchSecrets;
@@ -1,23 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
/**
* This route lets us get the current subscription of an org.
* @param {*} req
* @param {*} res
* @returns
*/
const getOrganizationSubscriptions = (req: { orgId: string }) =>
SecurityClient.fetchCall(`/api/v1/organization/${req.orgId}/subscriptions`, {
method: "GET",
headers: {
"Content-Type": "application/json"
}
}).then(async (res) => {
if (res && res.status === 200) {
return (await res.json()).subscriptions;
}
console.log("Failed to get org subscriptions");
return undefined;
});
export default getOrganizationSubscriptions;
@@ -4,18 +4,20 @@ import SecurityClient from "@app/components/utilities/SecurityClient";
* This route lets us get the all the orgs of a certain user.
* @returns
*/
const getOrganizations = () =>
SecurityClient.fetchCall("/api/v1/organization", {
const getOrganizations = () => {
return SecurityClient.fetchCall("/api/v1/organization", {
method: "GET",
headers: {
"Content-Type": "application/json"
}
}).then(async (res) => {
if (res?.status === 200) {
return (await res.json()).organizations;
const {organizations} = await res.json();
return organizations;
}
console.log("Failed to get orgs of a user");
return undefined;
});
}
export default getOrganizations;
@@ -1,56 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
interface Props {
name: string;
workspaceId: string;
environment: string;
expiresIn: number;
encryptedKey: string;
iv: string;
tag: string;
}
/**
* This route adds a service token for a specific user in a project
* @param {object} obj
* @param {string} obj.name - name of the service token
* @param {string} obj.workspaceId - workspace for which we are issuing the token
* @param {string} obj.environment - environment for which we are issuing the token
* @param {string} obj.expiresIn - how soon the service token expires in ms
* @param {string} obj.encryptedKey - encrypted project key through random symmetric encryption
* @param {string} obj.iv - obtained through symmetric encryption
* @param {string} obj.tag - obtained through symmetric encryption
* @returns
*/
const addServiceToken = ({
name,
workspaceId,
environment,
expiresIn,
encryptedKey,
iv,
tag
}: Props) =>
SecurityClient.fetchCall("/api/v2/service-token/", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
name,
workspaceId,
environment,
expiresIn,
encryptedKey,
iv,
tag
})
}).then(async (res) => {
if (res && res.status === 200) {
return res.json();
}
console.log("Failed to add service tokens");
return undefined;
});
export default addServiceToken;
@@ -1,27 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
interface Props {
serviceTokenId: string;
}
/**
* This route revokes a specific service token
* @param {object} obj
* @param {string} obj.serviceTokenId - id of a cervice token that we want to delete
* @returns
*/
const deleteServiceToken = ({ serviceTokenId }: Props) =>
SecurityClient.fetchCall(`/api/v2/service-token/${serviceTokenId}`, {
method: "DELETE",
headers: {
"Content-Type": "application/json"
}
}).then(async (res) => {
if (res && res.status === 200) {
return res.json();
}
console.log("Failed to delete a service token");
return undefined;
});
export default deleteServiceToken;
@@ -1,22 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
/**
* This route gets service tokens for a specific user in a project
* @param {*} param0
* @returns
*/
const getServiceTokens = ({ workspaceId }: { workspaceId: string }) =>
SecurityClient.fetchCall(`/api/v2/workspace/${workspaceId}/service-token-data`, {
method: "GET",
headers: {
"Content-Type": "application/json"
}
}).then(async (res) => {
if (res && res.status === 200) {
return (await res.json()).serviceTokenData;
}
console.log("Failed to get service tokens");
return undefined;
});
export default getServiceTokens;
@@ -1,33 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
/**
* This route creates a new workspace for a user within a certain organization.
* @param {string} workspaceName - project Name
* @param {string} organizationId - org ID
* @returns
*/
const createWorkspace = ({
workspaceName,
organizationId
}: {
workspaceName: string;
organizationId: string;
}) =>
SecurityClient.fetchCall("/api/v1/workspace", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
workspaceName,
organizationId
})
}).then(async (res) => {
if (res?.status === 200) {
return (await res.json()).workspace;
}
console.log("Failed to create a project");
return undefined;
});
export default createWorkspace;
@@ -1,26 +0,0 @@
import SecurityClient from "@app/components/utilities/SecurityClient";
/**
* This route lets us rename a certain workspace.
* @param {*} req
* @param {*} res
* @returns
*/
const renameWorkspace = (workspaceId: string, newWorkspaceName: string) =>
SecurityClient.fetchCall(`/api/v1/workspace/${workspaceId}/name`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
name: newWorkspaceName
})
}).then(async (res) => {
if (res && res.status === 200) {
return res;
}
console.log("Failed to rename a project");
return undefined;
});
export default renameWorkspace;