[{"data":1,"prerenderedAt":728},["ShallowReactive",2],{"navigation_docs_en":3,"-en-reference-connectors-postgresql-supabase":270,"-en-reference-connectors-postgresql-supabase-surround":723},[4,30,68,98,182,260],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Use Cases","\u002Fen\u002Fgetting-started\u002Fuse-cases","en\u002F1.getting-started\u002F4.use-cases","i-lucide-layers",{"title":26,"path":27,"stem":28,"icon":29},"Concepts","\u002Fen\u002Fgetting-started\u002Fconcepts","en\u002F1.getting-started\u002F5.concepts","i-lucide-book",{"title":26,"path":31,"stem":32,"children":33,"page":6},"\u002Fen\u002Fconcepts","en\u002F2.concepts",[34,38,43,48,53,58,63],{"title":35,"path":36,"stem":37,"icon":14},"Organization","\u002Fen\u002Fconcepts\u002Forganization","en\u002F2.concepts\u002F1.organization",{"title":39,"path":40,"stem":41,"icon":42},"Data Model","\u002Fen\u002Fconcepts\u002Fdata-model","en\u002F2.concepts\u002F2.data-model","i-lucide-database",{"title":44,"path":45,"stem":46,"icon":47},"Access Control","\u002Fen\u002Fconcepts\u002Faccess-permissions","en\u002F2.concepts\u002F3.access-permissions","i-lucide-user-key",{"title":49,"path":50,"stem":51,"icon":52},"Audit Logs","\u002Fen\u002Fconcepts\u002Faudit-logs","en\u002F2.concepts\u002F4.audit-logs","i-lucide-scroll-text",{"title":54,"path":55,"stem":56,"icon":57},"Introspection","\u002Fen\u002Fconcepts\u002Fintrospection","en\u002F2.concepts\u002F6.introspection","i-lucide-database-search",{"title":59,"path":60,"stem":61,"icon":62},"Query Engine","\u002Fen\u002Fconcepts\u002Fquery-engine","en\u002F2.concepts\u002F7.query-engine","i-lucide-workflow",{"title":64,"path":65,"stem":66,"icon":67},"AI","\u002Fen\u002Fconcepts\u002Fai","en\u002F2.concepts\u002F8.ai","i-lucide-sparkles",{"title":69,"path":70,"stem":71,"children":72,"page":6},"Guides","\u002Fen\u002Fguides","en\u002F4.guides",[73,78,83,88,93],{"title":74,"path":75,"stem":76,"icon":77},"REST API Quickstart","\u002Fen\u002Fguides\u002Frest-api","en\u002F4.guides\u002F1.rest-api","i-lucide-plug",{"title":79,"path":80,"stem":81,"icon":82},"SDK Quickstart","\u002Fen\u002Fguides\u002Fsdk","en\u002F4.guides\u002F2.sdk","i-lucide-terminal",{"title":84,"path":85,"stem":86,"icon":87},"Configure SSO","\u002Fen\u002Fguides\u002Fconfigure-sso","en\u002F4.guides\u002F3.configure-sso","i-lucide-key-round",{"title":89,"path":90,"stem":91,"icon":92},"Configure MCP","\u002Fen\u002Fguides\u002Fmcp","en\u002F4.guides\u002F4.mcp","i-lucide-brain-cog",{"title":94,"path":95,"stem":96,"icon":97},"Customize Content Space","\u002Fen\u002Fguides\u002Fcustomize-content-space","en\u002F4.guides\u002F5.customize-content-space","i-lucide-columns-3-cog",{"title":99,"path":100,"stem":101,"children":102,"page":6},"Developer","\u002Fen\u002Fdeveloper","en\u002F5.developer",[103,158],{"title":104,"path":105,"stem":106,"children":107,"page":6},"Data Access","\u002Fen\u002Fdeveloper\u002Fapi","en\u002F5.developer\u002F1.api",[108,113,118,123,128,133,138,143,148,153],{"title":109,"path":110,"stem":111,"icon":112},"Overview","\u002Fen\u002Fdeveloper\u002Fapi\u002Foverview","en\u002F5.developer\u002F1.api\u002F1.overview","i-lucide-globe",{"title":114,"path":115,"stem":116,"icon":117},"Errors","\u002Fen\u002Fdeveloper\u002Fapi\u002Ferrors","en\u002F5.developer\u002F1.api\u002F10.errors","i-lucide-alert-triangle",{"title":119,"path":120,"stem":121,"icon":122},"Authentication","\u002Fen\u002Fdeveloper\u002Fapi\u002Fauthentication","en\u002F5.developer\u002F1.api\u002F2.authentication","i-lucide-lock",{"title":124,"path":125,"stem":126,"icon":127},"Reading Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Freading-data","en\u002F5.developer\u002F1.api\u002F3.reading-data","i-lucide-book-open",{"title":129,"path":130,"stem":131,"icon":132},"Writing Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Fwriting-data","en\u002F5.developer\u002F1.api\u002F4.writing-data","i-lucide-pencil",{"title":134,"path":135,"stem":136,"icon":137},"Filtering","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffiltering","en\u002F5.developer\u002F1.api\u002F5.filtering","i-lucide-filter",{"title":139,"path":140,"stem":141,"icon":142},"Field Selection","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffield-selection","en\u002F5.developer\u002F1.api\u002F6.field-selection","i-lucide-list-checks",{"title":144,"path":145,"stem":146,"icon":147},"Sorting & Pagination","\u002Fen\u002Fdeveloper\u002Fapi\u002Fsorting-pagination","en\u002F5.developer\u002F1.api\u002F7.sorting-pagination","i-lucide-arrow-up-down",{"title":149,"path":150,"stem":151,"icon":152},"Relational Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Frelational-data","en\u002F5.developer\u002F1.api\u002F8.relational-data","i-lucide-network",{"title":154,"path":155,"stem":156,"icon":157},"Files & Assets","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffiles","en\u002F5.developer\u002F1.api\u002F9.files","i-lucide-file-up",{"title":159,"path":160,"stem":161,"children":162,"page":6},"Client SDK","\u002Fen\u002Fdeveloper\u002Fsdk","en\u002F5.developer\u002F2.sdk",[163,167,172,177],{"title":164,"path":165,"stem":166,"icon":19},"Installation","\u002Fen\u002Fdeveloper\u002Fsdk\u002Finstallation","en\u002F5.developer\u002F2.sdk\u002F1.installation",{"title":168,"path":169,"stem":170,"icon":171},"Client Setup","\u002Fen\u002Fdeveloper\u002Fsdk\u002Fclient-setup","en\u002F5.developer\u002F2.sdk\u002F2.client-setup","i-lucide-settings",{"title":173,"path":174,"stem":175,"icon":176},"Type System","\u002Fen\u002Fdeveloper\u002Fsdk\u002Ftype-system","en\u002F5.developer\u002F2.sdk\u002F3.type-system","i-lucide-braces",{"title":178,"path":179,"stem":180,"icon":181},"Advanced","\u002Fen\u002Fdeveloper\u002Fsdk\u002Fadvanced","en\u002F5.developer\u002F2.sdk\u002F5.advanced","i-lucide-puzzle",{"title":183,"path":184,"stem":185,"children":186,"page":6},"Reference","\u002Fen\u002Freference","en\u002F6.reference",[187,191,207,211,216,231],{"title":188,"path":189,"stem":190,"icon":171},"Configuration","\u002Fen\u002Freference\u002Fenvironment-variables","en\u002F6.reference\u002F1.environment-variables",{"title":192,"path":193,"stem":194,"children":195,"icon":77},"Connectors","\u002Fen\u002Freference\u002Fconnectors","en\u002F6.reference\u002F2.connectors\u002Findex",[196,197,202],{"title":192,"path":193,"stem":194,"icon":77},{"title":198,"path":199,"stem":200,"icon":201},"PostgreSQL and Supabase","\u002Fen\u002Freference\u002Fconnectors\u002Fpostgresql-supabase","en\u002F6.reference\u002F2.connectors\u002F1.postgresql-supabase","i-simple-icons-postgresql",{"title":203,"path":204,"stem":205,"icon":206},"MySQL and MariaDB","\u002Fen\u002Freference\u002Fconnectors\u002Fmysql-mariadb","en\u002F6.reference\u002F2.connectors\u002F2.mysql-mariadb","i-simple-icons-mysql",{"title":208,"path":209,"stem":210,"icon":176},"Data Types Representation","\u002Fen\u002Freference\u002Fdata-types","en\u002F6.reference\u002F3.data-types",{"title":212,"path":213,"stem":214,"icon":215},"Permissions Reference","\u002Fen\u002Freference\u002Fpermissions","en\u002F6.reference\u002F4.permissions","i-lucide-shield",{"title":217,"path":218,"stem":219,"children":220,"page":6},"API Reference","\u002Fen\u002Freference\u002Fapi-reference","en\u002F6.reference\u002F5.api-reference",[221,226],{"title":222,"path":223,"stem":224,"icon":225},"System Endpoints","\u002Fen\u002Freference\u002Fapi-reference\u002Fsystem-endpoints","en\u002F6.reference\u002F5.api-reference\u002F1.system-endpoints","i-lucide-server",{"title":227,"path":228,"stem":229,"icon":230},"OpenAPI Spec","\u002Fen\u002Freference\u002Fapi-reference\u002Fopenapi-spec","en\u002F6.reference\u002F5.api-reference\u002F2.openapi-spec","i-lucide-file-code",{"title":232,"path":233,"stem":234,"children":235,"page":6},"Pitfalls","\u002Fen\u002Freference\u002Fpitfalls","en\u002F6.reference\u002F6.pitfalls",[236,240,245,250,255],{"title":109,"path":237,"stem":238,"icon":239},"\u002Fen\u002Freference\u002Fpitfalls\u002Foverview","en\u002F6.reference\u002F6.pitfalls\u002F1.overview","i-lucide-triangle-alert",{"title":241,"path":242,"stem":243,"icon":244},"Concurrent Migrations","\u002Fen\u002Freference\u002Fpitfalls\u002Fconcurrent-migrations","en\u002F6.reference\u002F6.pitfalls\u002F2.concurrent-migrations","i-lucide-git-merge",{"title":246,"path":247,"stem":248,"icon":249},"Instance Configuration","\u002Fen\u002Freference\u002Fpitfalls\u002Finstance-configuration-related-problems","en\u002F6.reference\u002F6.pitfalls\u002F3.instance-configuration-related-problems","i-lucide-wrench",{"title":251,"path":252,"stem":253,"icon":254},"Overly Permissive Public Roles","\u002Fen\u002Freference\u002Fpitfalls\u002Foverly-permissive","en\u002F6.reference\u002F6.pitfalls\u002F4.overly-permissive","i-lucide-shield-off",{"title":256,"path":257,"stem":258,"icon":259},"No Aggregates","\u002Fen\u002Freference\u002Fpitfalls\u002Fno-aggregates","en\u002F6.reference\u002F6.pitfalls\u002F5.no-aggregates","i-lucide-sigma",{"title":261,"icon":262,"path":263,"stem":264,"children":265,"page":6},"Release Notes","i-lucide-rocket","\u002Fen\u002Frelease-notes","en\u002F7.release-notes",[266],{"title":267,"path":268,"stem":269,"icon":262},"Changelog","\u002Fen\u002Frelease-notes\u002Fchangelog","en\u002F7.release-notes\u002F1.changelog",{"id":271,"title":198,"body":272,"description":716,"extension":717,"links":718,"meta":719,"navigation":720,"path":199,"seo":721,"stem":200,"__hash__":722},"docs_en\u002Fen\u002F6.reference\u002F2.connectors\u002F1.postgresql-supabase.md",{"type":273,"value":274,"toc":703},"minimark",[275,280,284,289,406,409,420,424,498,503,577,590,594,597,615,618,622,625,628,632,655,658,665,672,676,678,682],[276,277,279],"h2",{"id":278},"postgresql","PostgreSQL",[281,282,283],"p",{},"Tested with PostgreSQL 14 through 17.",[285,286,288],"h3",{"id":287},"connection-parameters","Connection Parameters",[290,291,292,314],"table",{},[293,294,295],"thead",{},[296,297,298,302,305,308,311],"tr",{},[299,300,301],"th",{},"Parameter",[299,303,304],{},"Type",[299,306,307],{},"Required",[299,309,310],{},"Default",[299,312,313],{},"Description",[315,316,317,338,358,374,390],"tbody",{},[296,318,319,326,329,332,335],{},[320,321,322],"td",{},[323,324,325],"code",{},"host",[320,327,328],{},"string",[320,330,331],{},"Yes",[320,333,334],{},"—",[320,336,337],{},"Database server hostname or IP address",[296,339,340,345,348,350,355],{},[320,341,342],{},[323,343,344],{},"port",[320,346,347],{},"number",[320,349,331],{},[320,351,352],{},[323,353,354],{},"5432",[320,356,357],{},"Database server port",[296,359,360,365,367,369,371],{},[320,361,362],{},[323,363,364],{},"user",[320,366,328],{},[320,368,331],{},[320,370,334],{},[320,372,373],{},"Database username",[296,375,376,381,383,385,387],{},[320,377,378],{},[323,379,380],{},"password",[320,382,328],{},[320,384,331],{},[320,386,334],{},[320,388,389],{},"Database password",[296,391,392,397,399,401,403],{},[320,393,394],{},[323,395,396],{},"dbname",[320,398,328],{},[320,400,331],{},[320,402,334],{},[320,404,405],{},"Database name",[281,407,408],{},"Alternatively, paste a connection string to auto-populate all fields:",[410,411,418],"pre",{"className":412,"code":414,"filename":415,"language":416,"meta":417},[413],"language-text","postgresql:\u002F\u002Fuser:password@host:5432\u002Fdatabase\n","Connection String","text","",[323,419,414],{"__ignoreMap":417},[285,421,423],{"id":422},"ssl-configuration","SSL Configuration",[290,425,426,436],{},[293,427,428],{},[296,429,430,432,434],{},[299,431,301],{},[299,433,304],{},[299,435,313],{},[315,437,438,450,462,474,486],{},[296,439,440,445,447],{},[320,441,442],{},[323,443,444],{},"ssl.mode",[320,446,328],{},[320,448,449],{},"SSL connection mode (see below)",[296,451,452,457,459],{},[320,453,454],{},[323,455,456],{},"ssl.ca_cert",[320,458,328],{},[320,460,461],{},"CA certificate (base64-encoded PEM or DER)",[296,463,464,469,471],{},[320,465,466],{},[323,467,468],{},"ssl.client_cert",[320,470,328],{},[320,472,473],{},"Client certificate for mutual TLS (base64-encoded)",[296,475,476,481,483],{},[320,477,478],{},[323,479,480],{},"ssl.client_key",[320,482,328],{},[320,484,485],{},"Client private key (base64-encoded)",[296,487,488,493,495],{},[320,489,490],{},[323,491,492],{},"ssl.client_key_password",[320,494,328],{},[320,496,497],{},"Password for an encrypted client private key",[499,500,502],"h4",{"id":501},"ssl-modes","SSL Modes",[290,504,505,514],{},[293,506,507],{},[296,508,509,512],{},[299,510,511],{},"Mode",[299,513,313],{},[315,515,516,526,536,553,565],{},[296,517,518,523],{},[320,519,520],{},[323,521,522],{},"disable",[320,524,525],{},"No TLS encryption",[296,527,528,533],{},[320,529,530],{},[323,531,532],{},"prefer",[320,534,535],{},"Attempt TLS, fall back to unencrypted if unavailable",[296,537,538,543],{},[320,539,540],{},[323,541,542],{},"require",[320,544,545,546,548,549,552],{},"Require TLS without certificate verification. If ",[323,547,456],{}," is provided, verifies the server certificate against it (same behavior as ",[323,550,551],{},"verify-ca",")",[296,554,555,559],{},[320,556,557],{},[323,558,551],{},[320,560,561,562,564],{},"Require TLS and verify the server certificate chain. Does not check hostname. When ",[323,563,456],{}," is omitted, validates against the platform's system root CAs",[296,566,567,572],{},[320,568,569],{},[323,570,571],{},"verify-full",[320,573,574,575,564],{},"Require TLS, verify the server certificate chain, and verify the hostname matches the certificate. When ",[323,576,456],{},[578,579,580,581,583,584,586,587,589],"tip",{},"For production deployments, use ",[323,582,571],{},". Managed providers (Supabase, AWS RDS, Neon) use certificates signed by public CAs, so ",[323,585,456],{}," is not required — the system root CA store handles validation. Provide ",[323,588,456],{}," only for self-signed or private CAs.",[285,591,593],{"id":592},"supported-key-formats","Supported Key Formats",[281,595,596],{},"Client keys are accepted in the following formats, all normalized internally to PKCS#8:",[598,599,600,604,609,612],"ul",{},[601,602,603],"li",{},"PKCS#8 (PEM or DER)",[601,605,606,607,552],{},"Encrypted PKCS#8 PEM (requires ",[323,608,492],{},[601,610,611],{},"PKCS#1 RSA (PEM or DER)",[601,613,614],{},"SEC1 EC (PEM only)",[616,617],"hr",{},[276,619,621],{"id":620},"supabase","Supabase",[281,623,624],{},"The Supabase connector is a preconfigured PostgreSQL preset. It uses the same PostgreSQL engine and supports all the same features — SSL, introspection, connection pooling, and transactions.",[281,626,627],{},"Select Supabase when connecting to a Supabase-hosted database. The configuration form is identical to PostgreSQL with a Supabase-specific connection string placeholder.",[285,629,631],{"id":630},"connect-to-supabase","Connect to Supabase",[633,634,635,643,646,652],"ol",{},[601,636,637,638,642],{},"Open your Supabase project dashboard and navigate to ",[639,640,641],"strong",{},"Project Settings > Database",".",[601,644,645],{},"Copy the connection string (direct connection or session pooler).",[601,647,648,649,651],{},"In Monospace, add a new data source and select the ",[639,650,621],{}," connector.",[601,653,654],{},"Paste the connection string — all fields populate automatically.",[281,656,657],{},"Supabase provides two connection string formats:",[410,659,663],{"className":660,"code":661,"filename":662,"language":416,"meta":417},[413],"postgresql:\u002F\u002Fpostgres:[YOUR-PASSWORD]@db.[PROJECT-REF].supabase.co:5432\u002Fpostgres\n","Direct Connection",[323,664,661],{"__ignoreMap":417},[410,666,670],{"className":667,"code":668,"filename":669,"language":416,"meta":417},[413],"postgresql:\u002F\u002Fpostgres.[PROJECT-REF]:[YOUR-PASSWORD]@aws-0-[REGION].pooler.supabase.com:5432\u002Fpostgres\n","Session Pooler",[323,671,668],{"__ignoreMap":417},[673,674,675],"note",{},"Supabase connections use PostgreSQL under the hood. All PostgreSQL configuration options, SSL modes, and capabilities apply.",[616,677],{},[276,679,681],{"id":680},"see-also","See Also",[598,683,684,691,697],{},[601,685,686,690],{},[687,688,192],"a",{"href":689},"\u002Freference\u002Fconnectors"," - supported database connectors",[601,692,693,696],{},[687,694,54],{"href":695},"\u002Fconcepts\u002Fintrospection"," - how Monospace discovers your database schema",[601,698,699,702],{},[687,700,188],{"href":701},"\u002Freference\u002Fenvironment-variables"," - environment variables for the system database and SSL",{"title":417,"searchDepth":704,"depth":704,"links":705},2,[706,712,715],{"id":278,"depth":704,"text":279,"children":707},[708,710,711],{"id":287,"depth":709,"text":288},3,{"id":422,"depth":709,"text":423},{"id":592,"depth":709,"text":593},{"id":620,"depth":704,"text":621,"children":713},[714],{"id":630,"depth":709,"text":631},{"id":680,"depth":704,"text":681},"PostgreSQL and Supabase connector configuration options.","md",null,{},{"icon":201},{"title":198,"description":716},"4I3JOQ9yOPf3sfTfFYWa2lBnGg-ZN6Wfl22q1CP2hmA",[724,726],{"title":192,"path":193,"stem":194,"description":725,"icon":77,"children":-1},"Supported database connectors and their configuration options.",{"title":203,"path":204,"stem":205,"description":727,"icon":206,"children":-1},"MySQL and MariaDB connector configuration options and limitations.",1784053973697]