diff --git a/apps/docs/content/guides/self-hosting.mdx b/apps/docs/content/guides/self-hosting.mdx
index 4c1da2e5519d1..1871402e39241 100644
--- a/apps/docs/content/guides/self-hosting.mdx
+++ b/apps/docs/content/guides/self-hosting.mdx
@@ -84,6 +84,11 @@ The following third-party providers have shown consistent support for the self-h
description: 'Deploys using Kubernetes.',
href: 'https://stackgres.io/blog/running-supabase-on-top-of-stackgres/',
},
+ {
+ name: 'Pigsty',
+ description: 'Deploys using Ansible.',
+ href: 'https://pigsty.io/blog/db/supabase/',
+ },
].map((x) => (
diff --git a/apps/studio/components/interfaces/Integrations/Wrappers/WrapperDynamicColumns.tsx b/apps/studio/components/interfaces/Integrations/Wrappers/WrapperDynamicColumns.tsx
index 6c9f5cdebc447..001e453513878 100644
--- a/apps/studio/components/interfaces/Integrations/Wrappers/WrapperDynamicColumns.tsx
+++ b/apps/studio/components/interfaces/Integrations/Wrappers/WrapperDynamicColumns.tsx
@@ -117,7 +117,7 @@ const WrapperDynamicColumns = ({
{columns.map((column, idx) => (
-
+
{
setisClosingEditWrapper(true)}>
-
+
+ <>
+ {disableEdit && (
+
+ )}
+
+ >
)
}
diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx
index 9d8902cd8a7d3..11a48a2ba85bf 100644
--- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx
+++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx
@@ -57,6 +57,7 @@ interface ColumnTypeProps {
const ColumnType = ({
value,
+ className,
enumTypes = [],
disabled = false,
showLabel = true,
@@ -184,7 +185,7 @@ const ColumnType = ({
}
return (
-
+
{showLabel &&
Type}
diff --git a/apps/studio/public/img/icons/cal-com-icon.svg b/apps/studio/public/img/icons/cal-com-icon.svg
new file mode 100644
index 0000000000000..dd74ef165d8f8
--- /dev/null
+++ b/apps/studio/public/img/icons/cal-com-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/studio/state/sql-editor-v2.ts b/apps/studio/state/sql-editor-v2.ts
index 8e8cfad29fe70..6e6b7af792a6b 100644
--- a/apps/studio/state/sql-editor-v2.ts
+++ b/apps/studio/state/sql-editor-v2.ts
@@ -462,22 +462,37 @@ if (typeof window !== 'undefined') {
const folder = state.folders[id]
if (snippet) {
- debouncedUpdateSnippet(id, snippet.projectRef, {
- id,
- type: 'sql',
- name: snippet.snippet.name ?? 'Untitled',
- description: snippet.snippet.description ?? '',
- visibility: snippet.snippet.visibility ?? 'user',
- project_id: snippet.snippet.project_id ?? 0,
- owner_id: snippet.snippet.owner_id,
- folder_id: snippet.snippet.folder_id,
- content: {
- ...snippet.snippet.content,
- content_id: id,
- favorite: snippet.snippet.favorite,
- },
- })
- sqlEditorState.needsSaving.delete(id)
+ const {
+ name,
+ description,
+ visibility,
+ project_id,
+ owner_id,
+ folder_id,
+ content,
+ favorite,
+ } = snippet.snippet
+
+ if (visibility === 'project' && !!folder_id) {
+ toast.error('Shared snippet cannot be within a folder')
+ } else {
+ debouncedUpdateSnippet(id, snippet.projectRef, {
+ id,
+ type: 'sql',
+ name: name ?? 'Untitled',
+ description: description ?? '',
+ visibility: visibility ?? 'user',
+ project_id: project_id ?? 0,
+ owner_id: owner_id,
+ folder_id: folder_id,
+ content: {
+ ...content,
+ content_id: id,
+ favorite: favorite,
+ },
+ })
+ sqlEditorState.needsSaving.delete(id)
+ }
} else if (folder) {
upsertFolder(id, folder.projectRef, folder.folder.name)
sqlEditorState.needsSaving.delete(id)
diff --git a/apps/studio/static-data/integrations/cal_wrapper/overview.md b/apps/studio/static-data/integrations/cal_wrapper/overview.md
new file mode 100644
index 0000000000000..92ec97f291944
--- /dev/null
+++ b/apps/studio/static-data/integrations/cal_wrapper/overview.md
@@ -0,0 +1,3 @@
+Cal.com is a calendar and scheduling service that allows you to create and share events with others.
+
+The Cal.com Wrapper allows you to read data from Cal.com within your Postgres database.