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"
>
-