diff --git a/docs/documentation/platform/pam/session-recording.mdx b/docs/documentation/platform/pam/session-recording.mdx index 7e560d5c2..e9061430c 100644 --- a/docs/documentation/platform/pam/session-recording.mdx +++ b/docs/documentation/platform/pam/session-recording.mdx @@ -21,7 +21,7 @@ The content captured during a session depends on the type of resource being acce For database connections, Infisical captures all queries executed and their corresponding responses. -Support for additional resource types like SSH and RDP is coming soon. +Support for additional resource types like SSH, RDP, Kubernetes, and MCP is coming soon. ## Viewing Recordings diff --git a/frontend/public/images/integrations/Cassandra.png b/frontend/public/images/integrations/Cassandra.png new file mode 100644 index 000000000..76552ceac Binary files /dev/null and b/frontend/public/images/integrations/Cassandra.png differ diff --git a/frontend/public/images/integrations/CockroachDB.png b/frontend/public/images/integrations/CockroachDB.png new file mode 100644 index 000000000..4e7b778e8 Binary files /dev/null and b/frontend/public/images/integrations/CockroachDB.png differ diff --git a/frontend/public/images/integrations/DynamoDB.png b/frontend/public/images/integrations/DynamoDB.png new file mode 100644 index 000000000..457701c24 Binary files /dev/null and b/frontend/public/images/integrations/DynamoDB.png differ diff --git a/frontend/public/images/integrations/Elastic.png b/frontend/public/images/integrations/Elastic.png new file mode 100644 index 000000000..9e480e27a Binary files /dev/null and b/frontend/public/images/integrations/Elastic.png differ diff --git a/frontend/public/images/integrations/MongoDB.png b/frontend/public/images/integrations/MongoDB.png new file mode 100644 index 000000000..5fe595688 Binary files /dev/null and b/frontend/public/images/integrations/MongoDB.png differ diff --git a/frontend/public/images/integrations/SQLite.png b/frontend/public/images/integrations/SQLite.png new file mode 100644 index 000000000..5f2754308 Binary files /dev/null and b/frontend/public/images/integrations/SQLite.png differ diff --git a/frontend/public/images/integrations/Snowflake.png b/frontend/public/images/integrations/Snowflake.png new file mode 100644 index 000000000..6bbefae93 Binary files /dev/null and b/frontend/public/images/integrations/Snowflake.png differ diff --git a/frontend/public/images/integrations/Web.png b/frontend/public/images/integrations/Web.png new file mode 100644 index 000000000..981dceeb1 Binary files /dev/null and b/frontend/public/images/integrations/Web.png differ diff --git a/frontend/src/hooks/api/pam/enums.ts b/frontend/src/hooks/api/pam/enums.ts index b8239252f..78a4f4c13 100644 --- a/frontend/src/hooks/api/pam/enums.ts +++ b/frontend/src/hooks/api/pam/enums.ts @@ -4,7 +4,18 @@ export enum PamResourceType { RDP = "rdp", SSH = "ssh", Kubernetes = "kubernetes", - MCP = "mcp" + OracleDB = "oracledb", + SQLite = "sqlite", + MsSQL = "mssql", + MCP = "mcp", + Redis = "redis", + MongoDB = "mongodb", + WebApp = "webapp", + Cassandra = "cassandra", + CockroachDB = "cockroachdb", + Elasticsearch = "elasticsearch", + Snowflake = "snowflake", + DynamoDB = "dynamodb" } export enum PamSessionStatus { diff --git a/frontend/src/hooks/api/pam/maps.ts b/frontend/src/hooks/api/pam/maps.ts index de6d5fa06..90286a05d 100644 --- a/frontend/src/hooks/api/pam/maps.ts +++ b/frontend/src/hooks/api/pam/maps.ts @@ -9,5 +9,16 @@ export const PAM_RESOURCE_TYPE_MAP: Record< [PamResourceType.RDP]: { name: "RDP", image: "RDP.png" }, [PamResourceType.SSH]: { name: "SSH", image: "SSH.png" }, [PamResourceType.Kubernetes]: { name: "Kubernetes", image: "Kubernetes.png" }, - [PamResourceType.MCP]: { name: "MCP", image: "MCP.png" } + [PamResourceType.OracleDB]: { name: "OracleDB", image: "Oracle.png", size: 55 }, + [PamResourceType.SQLite]: { name: "SQLite", image: "SQLite.png" }, + [PamResourceType.MsSQL]: { name: "Microsoft SQL Server", image: "MsSql.png" }, + [PamResourceType.MCP]: { name: "MCP", image: "MCP.png" }, + [PamResourceType.Redis]: { name: "Redis", image: "Redis.png" }, + [PamResourceType.MongoDB]: { name: "MongoDB", image: "MongoDB.png" }, + [PamResourceType.WebApp]: { name: "Web Application", image: "Web.png" }, + [PamResourceType.Cassandra]: { name: "Cassandra", image: "Cassandra.png", size: 55 }, + [PamResourceType.CockroachDB]: { name: "CockroachDB", image: "CockroachDB.png" }, + [PamResourceType.Elasticsearch]: { name: "Elasticsearch", image: "Elastic.png" }, + [PamResourceType.Snowflake]: { name: "Snowflake", image: "Snowflake.png" }, + [PamResourceType.DynamoDB]: { name: "DynamoDB", image: "DynamoDB.png", size: 55 } }; diff --git a/frontend/src/pages/pam/PamResourcesPage/components/ResourceTypeSelect.tsx b/frontend/src/pages/pam/PamResourcesPage/components/ResourceTypeSelect.tsx index f864f9e00..fb48734bb 100644 --- a/frontend/src/pages/pam/PamResourcesPage/components/ResourceTypeSelect.tsx +++ b/frontend/src/pages/pam/PamResourcesPage/components/ResourceTypeSelect.tsx @@ -26,10 +26,21 @@ export const ResourceTypeSelect = ({ onSelect }: Props) => { return [ ...resourceOptions, // We are temporarily showing these resources so that we can gauge interest before committing + { name: "OracleDB", resource: PamResourceType.OracleDB }, + { name: "SQLite", resource: PamResourceType.SQLite }, + { name: "Microsoft SQL Server", resource: PamResourceType.MsSQL }, + { name: "MongoDB", resource: PamResourceType.MongoDB }, + { name: "Cassandra", resource: PamResourceType.Cassandra }, + { name: "CockroachDB", resource: PamResourceType.CockroachDB }, + { name: "DynamoDB", resource: PamResourceType.DynamoDB }, + { name: "Snowflake", resource: PamResourceType.Snowflake }, + { name: "Elasticsearch", resource: PamResourceType.Elasticsearch }, + { name: "Redis", resource: PamResourceType.Redis }, { name: "RDP", resource: PamResourceType.RDP }, { name: "SSH", resource: PamResourceType.SSH }, { name: "Kubernetes", resource: PamResourceType.Kubernetes }, - { name: "MCP", resource: PamResourceType.MCP } + { name: "MCP", resource: PamResourceType.MCP }, + { name: "Web Application", resource: PamResourceType.WebApp } ]; }, [resourceOptions]); @@ -39,11 +50,13 @@ export const ResourceTypeSelect = ({ onSelect }: Props) => { const filteredOptions = useMemo( () => - appendedResourceOptions?.filter( - ({ name, resource }) => - name.toLowerCase().includes(search.trim().toLowerCase()) || - resource.toLowerCase().includes(search.trim().toLowerCase()) - ) ?? [], + appendedResourceOptions + ?.filter( + ({ name, resource }) => + name.toLowerCase().includes(search.trim().toLowerCase()) || + resource.toLowerCase().includes(search.trim().toLowerCase()) + ) + .sort((a, b) => a.name.localeCompare(b.name)) ?? [], [appendedResourceOptions, search] ); @@ -67,7 +80,15 @@ export const ResourceTypeSelect = ({ onSelect }: Props) => { resource === PamResourceType.RDP || resource === PamResourceType.SSH || resource === PamResourceType.Kubernetes || - resource === PamResourceType.MCP + resource === PamResourceType.MCP || + resource === PamResourceType.Redis || + resource === PamResourceType.MongoDB || + resource === PamResourceType.WebApp || + resource === PamResourceType.Cassandra || + resource === PamResourceType.CockroachDB || + resource === PamResourceType.Elasticsearch || + resource === PamResourceType.Snowflake || + resource === PamResourceType.DynamoDB ) { handlePopUpOpen("upgradePlan", { text: "Your current plan does not include access to this resource type. To unlock this feature, please upgrade to Infisical Enterprise plan.", @@ -107,17 +128,16 @@ export const ResourceTypeSelect = ({ onSelect }: Props) => { onClick={() => handleResourceSelect(option.resource)} className="group relative flex h-28 cursor-pointer flex-col items-center justify-center rounded-md border border-mineshaft-600 bg-mineshaft-700 p-4 duration-200 hover:bg-mineshaft-600" > -
+
{`${name}
-
+
{name}