diff --git a/docs/internals/permissions/project-permissions.mdx b/docs/internals/permissions/project-permissions.mdx
index c823cf4a7..dbc2e5271 100644
--- a/docs/internals/permissions/project-permissions.mdx
+++ b/docs/internals/permissions/project-permissions.mdx
@@ -135,6 +135,18 @@ Below is a comprehensive list of all available project-level subjects and their
| `edit` | Modify token properties |
| `delete` | Revoke or remove service tokens |
+#### Subject: `app-connections`
+
+Supports conditions and permission inversion
+
+| Action | Description |
+| ------------------------- | ---------------------------------- |
+| `read-app-connections` | View app connection configurations |
+| `create-app-connections` | Create new app connections |
+| `edit-app-connections` | Modify existing app connections |
+| `delete-app-connections` | Remove app connections |
+| `connect-app-connections` | Use app connections |
+
### Secrets Management
#### Subject: `secrets`
diff --git a/frontend/src/components/secret-rotations-v2/forms/SecretRotationV2ConnectionField.tsx b/frontend/src/components/secret-rotations-v2/forms/SecretRotationV2ConnectionField.tsx
index 4b0503648..407a473d1 100644
--- a/frontend/src/components/secret-rotations-v2/forms/SecretRotationV2ConnectionField.tsx
+++ b/frontend/src/components/secret-rotations-v2/forms/SecretRotationV2ConnectionField.tsx
@@ -107,7 +107,7 @@ export const SecretRotationV2ConnectionField = ({ onChange: callback, isUpdate }
{!isUpdate && !isPending && !availableConnections?.length && !canCreateConnection && (
- You do not have access to any ${appName} Connections. Contact an admin to create one.
+ You do not have access to any {appName} Connections. Contact an admin to create one.
)}
- You do not have access to any ${connectionName} Connections. Contact an admin to create
+ You do not have access to any {connectionName} Connections. Contact an admin to create
one.
)}
diff --git a/frontend/src/components/secret-syncs/forms/SecretSyncConnectionField.tsx b/frontend/src/components/secret-syncs/forms/SecretSyncConnectionField.tsx
index ffae4ed88..290f36206 100644
--- a/frontend/src/components/secret-syncs/forms/SecretSyncConnectionField.tsx
+++ b/frontend/src/components/secret-syncs/forms/SecretSyncConnectionField.tsx
@@ -91,7 +91,7 @@ export const SecretSyncConnectionField = ({ onChange: callback }: Props) => {
{!isPending && !availableConnections?.length && !canCreateConnection && (
- You do not have access to any ${appName} Connections. Contact an admin to create one.
+ You do not have access to any {appName} Connections. Contact an admin to create one.
)}
{
}
});
};
-
-export const useMigrateAppConnection = () => {
- const queryClient = useQueryClient();
- return useMutation({
- mutationFn: async ({ connectionId, app }: TMigrateAppConnectionDTO) => {
- const { data } = await apiRequest.post(
- `/api/v1/app-connections/${app}/${connectionId}/migrate`
- );
-
- return data;
- },
- onSuccess: ({ projectId, app }) => {
- queryClient.invalidateQueries({ queryKey: appConnectionKeys.list(projectId) });
- queryClient.invalidateQueries({ queryKey: appConnectionKeys.listAvailable(app, projectId) });
- // queryClient.invalidateQueries({ queryKey: appConnectionKeys.byId(app, connectionId) });
- }
- });
-};
diff --git a/frontend/src/hooks/api/appConnections/types/index.ts b/frontend/src/hooks/api/appConnections/types/index.ts
index 3a5147b92..8c1d86ca3 100644
--- a/frontend/src/hooks/api/appConnections/types/index.ts
+++ b/frontend/src/hooks/api/appConnections/types/index.ts
@@ -1,5 +1,3 @@
-import { ProjectType } from "@app/hooks/api/workspace/types";
-
import { AppConnection } from "../enums";
import { TOnePassConnection } from "./1password-connection";
import { TAppConnectionOption } from "./app-options";
@@ -196,22 +194,18 @@ export type TDeleteAppConnectionDTO = {
// [AppConnection.Okta]: TOktaConnection;
// };
-export type TMigrateAppConnectionDTO = {
- app: AppConnection;
- connectionId: string;
-};
-
-export type AppConnectionUsage = {
- projects: Array<{
- id: string;
- name: string;
- slug: string;
- type: ProjectType;
- resources: {
- secretSyncs: Array<{ id: string; name: string }>;
- externalCas: Array<{ id: string; name: string }>;
- secretRotations: Array<{ id: string; name: string }>;
- dataSources: Array<{ id: string; name: string }>;
- };
- }>;
-};
+// scott: we will need this once we have individual app connection page
+// export type AppConnectionUsage = {
+// projects: Array<{
+// id: string;
+// name: string;
+// slug: string;
+// type: ProjectType;
+// resources: {
+// secretSyncs: Array<{ id: string; name: string }>;
+// externalCas: Array<{ id: string; name: string }>;
+// secretRotations: Array<{ id: string; name: string }>;
+// dataSources: Array<{ id: string; name: string }>;
+// };
+// }>;
+// };
diff --git a/frontend/src/pages/organization/AppConnections/AppConnectionsPage/components/AddAppConnectionModal.tsx b/frontend/src/pages/organization/AppConnections/AppConnectionsPage/components/AddAppConnectionModal.tsx
index b88b283da..bcea6b530 100644
--- a/frontend/src/pages/organization/AppConnections/AppConnectionsPage/components/AddAppConnectionModal.tsx
+++ b/frontend/src/pages/organization/AppConnections/AppConnectionsPage/components/AddAppConnectionModal.tsx
@@ -31,7 +31,7 @@ const Content = ({ onComplete, projectId, projectType, app }: ContentProps) => {
return (
setSelectedApp(null)}
+ onBack={app ? undefined : () => setSelectedApp(null)}
app={(app ?? selectedApp)!}
projectId={projectId}
/>