[{"data":1,"prerenderedAt":1289},["ShallowReactive",2],{"navigation_docs_en":3,"-en-reference-connectors-postgresql":448,"-en-reference-connectors-postgresql-surround":1284},[4,30,72,132,260,439],{"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,68],{"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,"icon":42},"Caching","\u002Fen\u002Fconcepts\u002Fcaching","en\u002F2.concepts\u002F9.caching",{"title":73,"path":74,"stem":75,"children":76,"page":6},"Guides","\u002Fen\u002Fguides","en\u002F4.guides",[77,82,87,92,97,102,107,112],{"title":78,"path":79,"stem":80,"icon":81},"REST API Quickstart","\u002Fen\u002Fguides\u002Frest-api","en\u002F4.guides\u002F1.rest-api","i-lucide-plug",{"title":83,"path":84,"stem":85,"icon":86},"SDK Quickstart","\u002Fen\u002Fguides\u002Fsdk","en\u002F4.guides\u002F2.sdk","i-lucide-terminal",{"title":88,"path":89,"stem":90,"icon":91},"Configure SSO","\u002Fen\u002Fguides\u002Fconfigure-sso","en\u002F4.guides\u002F3.configure-sso","i-lucide-key-round",{"title":93,"path":94,"stem":95,"icon":96},"Configure MCP","\u002Fen\u002Fguides\u002Fmcp","en\u002F4.guides\u002F4.mcp","i-lucide-brain-cog",{"title":98,"path":99,"stem":100,"icon":101},"Customize Content Space","\u002Fen\u002Fguides\u002Fcustomize-content-space","en\u002F4.guides\u002F5.customize-content-space","i-lucide-columns-3-cog",{"title":103,"path":104,"stem":105,"icon":106},"Build an Application with AI Assistance","\u002Fen\u002Fguides\u002Fbuild-an-application","en\u002F4.guides\u002F6.build-an-application","i-lucide-route",{"title":108,"path":109,"stem":110,"icon":111},"Horizontal Scaling","\u002Fen\u002Fguides\u002Fhorizontal-scaling","en\u002F4.guides\u002F7.horizontal-scaling","i-lucide-network",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":6},"Data Connectors","i-lucide-cable","\u002Fen\u002Fguides\u002Fdata-connectors","en\u002F4.guides\u002F8.data-connectors",[118,122,127],{"title":16,"path":119,"stem":120,"icon":121},"\u002Fen\u002Fguides\u002Fdata-connectors\u002Fquickstart","en\u002F4.guides\u002F8.data-connectors\u002F1.quickstart","i-lucide-rocket",{"title":123,"path":124,"stem":125,"icon":126},"Build a Stripe Connector","\u002Fen\u002Fguides\u002Fdata-connectors\u002Fstripe","en\u002F4.guides\u002F8.data-connectors\u002F2.stripe","i-lucide-hammer",{"title":128,"path":129,"stem":130,"icon":131},"Build with AI Agents","\u002Fen\u002Fguides\u002Fdata-connectors\u002Fai-agents","en\u002F4.guides\u002F8.data-connectors\u002F3.ai-agents","i-lucide-bot",{"title":133,"path":134,"stem":135,"children":136,"page":6},"Developer","\u002Fen\u002Fdeveloper","en\u002F5.developer",[137,191,215,220],{"title":138,"path":139,"stem":140,"children":141,"page":6},"Data Access","\u002Fen\u002Fdeveloper\u002Fapi","en\u002F5.developer\u002F1.api",[142,147,152,157,162,167,172,177,182,186],{"title":143,"path":144,"stem":145,"icon":146},"Overview","\u002Fen\u002Fdeveloper\u002Fapi\u002Foverview","en\u002F5.developer\u002F1.api\u002F1.overview","i-lucide-globe",{"title":148,"path":149,"stem":150,"icon":151},"Errors","\u002Fen\u002Fdeveloper\u002Fapi\u002Ferrors","en\u002F5.developer\u002F1.api\u002F10.errors","i-lucide-alert-triangle",{"title":153,"path":154,"stem":155,"icon":156},"Authentication","\u002Fen\u002Fdeveloper\u002Fapi\u002Fauthentication","en\u002F5.developer\u002F1.api\u002F2.authentication","i-lucide-lock",{"title":158,"path":159,"stem":160,"icon":161},"Reading Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Freading-data","en\u002F5.developer\u002F1.api\u002F3.reading-data","i-lucide-book-open",{"title":163,"path":164,"stem":165,"icon":166},"Writing Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Fwriting-data","en\u002F5.developer\u002F1.api\u002F4.writing-data","i-lucide-pencil",{"title":168,"path":169,"stem":170,"icon":171},"Filtering","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffiltering","en\u002F5.developer\u002F1.api\u002F5.filtering","i-lucide-filter",{"title":173,"path":174,"stem":175,"icon":176},"Field Selection","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffield-selection","en\u002F5.developer\u002F1.api\u002F6.field-selection","i-lucide-list-checks",{"title":178,"path":179,"stem":180,"icon":181},"Sorting & Pagination","\u002Fen\u002Fdeveloper\u002Fapi\u002Fsorting-pagination","en\u002F5.developer\u002F1.api\u002F7.sorting-pagination","i-lucide-arrow-up-down",{"title":183,"path":184,"stem":185,"icon":111},"Relational Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Frelational-data","en\u002F5.developer\u002F1.api\u002F8.relational-data",{"title":187,"path":188,"stem":189,"icon":190},"Files & Assets","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffiles","en\u002F5.developer\u002F1.api\u002F9.files","i-lucide-file-up",{"title":192,"path":193,"stem":194,"children":195,"page":6},"Client SDK","\u002Fen\u002Fdeveloper\u002Fsdk","en\u002F5.developer\u002F2.sdk",[196,200,205,210],{"title":197,"path":198,"stem":199,"icon":19},"Installation","\u002Fen\u002Fdeveloper\u002Fsdk\u002Finstallation","en\u002F5.developer\u002F2.sdk\u002F1.installation",{"title":201,"path":202,"stem":203,"icon":204},"Client Setup","\u002Fen\u002Fdeveloper\u002Fsdk\u002Fclient-setup","en\u002F5.developer\u002F2.sdk\u002F2.client-setup","i-lucide-settings",{"title":206,"path":207,"stem":208,"icon":209},"Type System","\u002Fen\u002Fdeveloper\u002Fsdk\u002Ftype-system","en\u002F5.developer\u002F2.sdk\u002F3.type-system","i-lucide-braces",{"title":211,"path":212,"stem":213,"icon":214},"Advanced","\u002Fen\u002Fdeveloper\u002Fsdk\u002Fadvanced","en\u002F5.developer\u002F2.sdk\u002F5.advanced","i-lucide-puzzle",{"title":216,"path":217,"stem":218,"icon":219},"Application Users","\u002Fen\u002Fdeveloper\u002Fapplication-users","en\u002F5.developer\u002F3.application-users","i-lucide-users",{"title":221,"path":222,"stem":223,"children":224,"icon":214},"Extensions","\u002Fen\u002Fdeveloper\u002Fextensions","en\u002F5.developer\u002F3.extensions\u002Findex",[225,226,231],{"title":143,"path":222,"stem":223,"icon":214},{"title":227,"path":228,"stem":229,"icon":230},"Install and Manage Extensions","\u002Fen\u002Fdeveloper\u002Fextensions\u002Finstall","en\u002F5.developer\u002F3.extensions\u002F1.install","i-lucide-package-plus",{"title":113,"path":232,"stem":233,"children":234,"icon":114},"\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002Findex",[235,236,241,245,250,255],{"title":143,"path":232,"stem":233,"icon":114},{"title":237,"path":238,"stem":239,"icon":240},"How Data Connectors Run","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Fruntime","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F2.runtime","i-lucide-cpu",{"title":242,"path":243,"stem":244,"icon":42},"Data Sources","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Fdata-sources","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F3.data-sources",{"title":246,"path":247,"stem":248,"icon":249},"Map an External Data Source","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Fdata-source-mapping","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F4.data-source-mapping","i-lucide-map",{"title":251,"path":252,"stem":253,"icon":254},"Handle Errors","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Ferrors","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F5.errors","i-lucide-shield-alert",{"title":256,"path":257,"stem":258,"icon":259},"Test a Data Connector","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Ftesting","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F6.testing","i-lucide-flask-conical",{"title":261,"path":262,"stem":263,"children":264,"page":6},"Reference","\u002Fen\u002Freference","en\u002F6.reference",[265,269,274,279,298,302,307,343,372,377],{"title":266,"path":267,"stem":268,"icon":204},"Configuration","\u002Fen\u002Freference\u002Fenvironment-variables","en\u002F6.reference\u002F1.environment-variables",{"title":270,"path":271,"stem":272,"icon":273},"System Requirements","\u002Fen\u002Freference\u002Fsystem-requirements","en\u002F6.reference\u002F2.system-requirements","i-lucide-server",{"title":275,"path":276,"stem":277,"icon":278},"Licensing","\u002Fen\u002Freference\u002Flicensing","en\u002F6.reference\u002F3.licensing","i-lucide-gem",{"title":143,"path":280,"stem":281,"children":282,"icon":81},"\u002Fen\u002Freference\u002Fconnectors","en\u002F6.reference\u002F4.connectors\u002Findex",[283,284,289,294],{"title":143,"path":280,"stem":281,"icon":81},{"title":285,"path":286,"stem":287,"icon":288},"PostgreSQL","\u002Fen\u002Freference\u002Fconnectors\u002Fpostgresql","en\u002F6.reference\u002F4.connectors\u002F1.postgresql","i-simple-icons-postgresql",{"title":290,"path":291,"stem":292,"icon":293},"MySQL and MariaDB","\u002Fen\u002Freference\u002Fconnectors\u002Fmysql-mariadb","en\u002F6.reference\u002F4.connectors\u002F2.mysql-mariadb","i-simple-icons-mysql",{"title":295,"path":296,"stem":297,"icon":114},"Custom Connectors","\u002Fen\u002Freference\u002Fconnectors\u002Fcustom-connectors","en\u002F6.reference\u002F4.connectors\u002F3.custom-connectors",{"title":299,"path":300,"stem":301,"icon":209},"Data Types Representation","\u002Fen\u002Freference\u002Fdata-types","en\u002F6.reference\u002F5.data-types",{"title":303,"path":304,"stem":305,"icon":306},"Permissions Reference","\u002Fen\u002Freference\u002Fpermissions","en\u002F6.reference\u002F6.permissions","i-lucide-shield",{"title":308,"path":309,"stem":310,"children":311,"page":6},"API Reference","\u002Fen\u002Freference\u002Fapi-reference","en\u002F6.reference\u002F7.api-reference",[312,316,321],{"title":313,"path":314,"stem":315,"icon":273},"System Endpoints","\u002Fen\u002Freference\u002Fapi-reference\u002Fsystem-endpoints","en\u002F6.reference\u002F7.api-reference\u002F1.system-endpoints",{"title":317,"path":318,"stem":319,"icon":320},"OpenAPI Spec","\u002Fen\u002Freference\u002Fapi-reference\u002Fopenapi-spec","en\u002F6.reference\u002F7.api-reference\u002F2.openapi-spec","i-lucide-file-code",{"title":322,"path":323,"stem":324,"children":325,"icon":327},"Schema Migration","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration","en\u002F6.reference\u002F7.api-reference\u002F3.schema-migration\u002Findex",[326,328,333,338],{"title":322,"path":323,"stem":324,"icon":327},"i-lucide-database-zap",{"title":329,"path":330,"stem":331,"icon":332},"Apply Migrations","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Fapply-migrations","en\u002F6.reference\u002F7.api-reference\u002F3.schema-migration\u002F1.apply-migrations","i-lucide-upload",{"title":334,"path":335,"stem":336,"icon":337},"Import Changes","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Fimport-changes","en\u002F6.reference\u002F7.api-reference\u002F3.schema-migration\u002F2.import-changes","i-lucide-refresh-cw",{"title":339,"path":340,"stem":341,"icon":342},"Operation Reference","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Foperation-reference","en\u002F6.reference\u002F7.api-reference\u002F3.schema-migration\u002F3.operation-reference","i-lucide-list-tree",{"title":344,"path":345,"stem":346,"children":347,"page":6},"Design Considerations","\u002Fen\u002Freference\u002Fdesign-considerations","en\u002F6.reference\u002F8.design-considerations",[348,352,357,362,367],{"title":143,"path":349,"stem":350,"icon":351},"\u002Fen\u002Freference\u002Fdesign-considerations\u002Foverview","en\u002F6.reference\u002F8.design-considerations\u002F1.overview","i-lucide-compass",{"title":353,"path":354,"stem":355,"icon":356},"Instance Configuration","\u002Fen\u002Freference\u002Fdesign-considerations\u002Finstance-configuration-related-problems","en\u002F6.reference\u002F8.design-considerations\u002F3.instance-configuration-related-problems","i-lucide-wrench",{"title":358,"path":359,"stem":360,"icon":361},"Overly Permissive Public Access","\u002Fen\u002Freference\u002Fdesign-considerations\u002Foverly-permissive","en\u002F6.reference\u002F8.design-considerations\u002F4.overly-permissive","i-lucide-shield-off",{"title":363,"path":364,"stem":365,"icon":366},"No Aggregates","\u002Fen\u002Freference\u002Fdesign-considerations\u002Fno-aggregates","en\u002F6.reference\u002F8.design-considerations\u002F5.no-aggregates","i-lucide-sigma",{"title":368,"path":369,"stem":370,"icon":371},"Cross-Data-Source Referential Integrity","\u002Fen\u002Freference\u002Fdesign-considerations\u002Fcross-data-source-referential-integrity","en\u002F6.reference\u002F8.design-considerations\u002F6.cross-data-source-referential-integrity","i-lucide-unlink",{"title":373,"path":374,"stem":375,"icon":376},"CLI","\u002Fen\u002Freference\u002Fcli","en\u002F6.reference\u002F9.cli","i-lucide-square-terminal",{"title":221,"path":378,"stem":379,"children":380,"page":6},"\u002Fen\u002Freference\u002Fextensions","en\u002F6.reference\u002F9.extensions",[381,386,389,408],{"title":382,"path":383,"stem":384,"icon":385},"Extension Config and Manifest","\u002Fen\u002Freference\u002Fextensions\u002Fmanifest","en\u002F6.reference\u002F9.extensions\u002F1.manifest","i-lucide-file-json",{"title":373,"path":387,"stem":388,"icon":86},"\u002Fen\u002Freference\u002Fextensions\u002Fcli","en\u002F6.reference\u002F9.extensions\u002F2.cli",{"title":390,"path":391,"stem":392,"children":393,"page":6},"Extension Kit","\u002Fen\u002Freference\u002Fextensions\u002Fextension-kit","en\u002F6.reference\u002F9.extensions\u002F3.extension-kit",[394,398,403],{"title":395,"path":396,"stem":397,"icon":81},"Data Connector","\u002Fen\u002Freference\u002Fextensions\u002Fextension-kit\u002Fdata-connector","en\u002F6.reference\u002F9.extensions\u002F3.extension-kit\u002F1.data-connector",{"title":399,"path":400,"stem":401,"icon":402},"Protocol","\u002Fen\u002Freference\u002Fextensions\u002Fextension-kit\u002Fprotocol","en\u002F6.reference\u002F9.extensions\u002F3.extension-kit\u002F2.protocol","i-lucide-arrow-left-right",{"title":404,"path":405,"stem":406,"icon":407},"Schema Helpers","\u002Fen\u002Freference\u002Fextensions\u002Fextension-kit\u002Fexperimental","en\u002F6.reference\u002F9.extensions\u002F3.extension-kit\u002F3.experimental","i-lucide-blocks",{"title":113,"path":409,"stem":410,"children":411,"page":6},"\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors",[412,416,420,424,429,434],{"title":413,"path":414,"stem":415,"icon":81},"Data Connector API","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Fapi","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F1.api",{"title":417,"path":418,"stem":419,"icon":176},"Operations and Operators","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Foperations","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F2.operations",{"title":148,"path":421,"stem":422,"icon":423},"\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Ferrors","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F3.errors","i-lucide-triangle-alert",{"title":425,"path":426,"stem":427,"icon":428},"Runtime Limits","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Flimits","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F4.limits","i-lucide-gauge",{"title":430,"path":431,"stem":432,"icon":433},"Limitations","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Flimitations","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F5.limitations","i-lucide-ban",{"title":435,"path":436,"stem":437,"icon":438},"Network Permissions","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Fpermissions","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F6.permissions","i-lucide-shield-check",{"title":440,"icon":121,"path":441,"stem":442,"children":443,"page":6},"Release Notes","\u002Fen\u002Frelease-notes","en\u002F7.release-notes",[444],{"title":445,"path":446,"stem":447,"icon":121},"Changelog","\u002Fen\u002Frelease-notes\u002Fchangelog","en\u002F7.release-notes\u002F1.changelog",{"id":449,"title":285,"body":450,"description":1277,"extension":1278,"links":1279,"meta":1280,"navigation":1281,"path":286,"seo":1282,"stem":287,"__hash__":1283},"docs_en\u002Fen\u002F6.reference\u002F4.connectors\u002F1.postgresql.md",{"type":451,"value":452,"toc":1263},"minimark",[453,458,468,473,595,606,617,621,630,723,734,740,764,772,776,848,853,926,942,946,949,967,970,974,980,988,1156,1162,1175,1178,1213,1216,1223,1230,1232,1236],[454,455,457],"h2",{"id":456},"configure-the-connection","Configure the Connection",[459,460,461,462,467],"p",{},"Tested with PostgreSQL 14 through 18. Every option on this page also applies to the ",[463,464,466],"a",{"href":465},"#managed-and-compatible-services","managed and compatible services"," built on this connector, such as Supabase, Neon, and Amazon RDS.",[469,470,472],"h3",{"id":471},"connection-parameters","Connection Parameters",[474,475,476,498],"table",{},[477,478,479],"thead",{},[480,481,482,486,489,492,495],"tr",{},[483,484,485],"th",{},"Parameter",[483,487,488],{},"Type",[483,490,491],{},"Required",[483,493,494],{},"Default",[483,496,497],{},"Description",[499,500,501,522,542,558,579],"tbody",{},[480,502,503,510,513,516,519],{},[504,505,506],"td",{},[507,508,509],"code",{},"host",[504,511,512],{},"string",[504,514,515],{},"Yes",[504,517,518],{},"—",[504,520,521],{},"Database server hostname or IP address",[480,523,524,529,532,534,539],{},[504,525,526],{},[507,527,528],{},"port",[504,530,531],{},"number",[504,533,515],{},[504,535,536],{},[507,537,538],{},"5432",[504,540,541],{},"Database server port",[480,543,544,549,551,553,555],{},[504,545,546],{},[507,547,548],{},"user",[504,550,512],{},[504,552,515],{},[504,554,518],{},[504,556,557],{},"Database username",[480,559,560,565,567,570,572],{},[504,561,562],{},[507,563,564],{},"password",[504,566,512],{},[504,568,569],{},"Conditional",[504,571,518],{},[504,573,574,575,578],{},"Database password. Required unless ",[507,576,577],{},"aws_iam"," is set",[480,580,581,586,588,590,592],{},[504,582,583],{},[507,584,585],{},"dbname",[504,587,512],{},[504,589,515],{},[504,591,518],{},[504,593,594],{},"Database name",[459,596,597,598,601,602,605],{},"Alternatively, paste a connection string to fill in the host, port, user, password, and database name, plus ",[507,599,600],{},"ssl.mode"," when the string includes ",[507,603,604],{},"sslmode",":",[607,608,615],"pre",{"className":609,"code":611,"filename":612,"language":613,"meta":614},[610],"language-text","postgresql:\u002F\u002Fuser:password@host:5432\u002Fdatabase\n","Connection String","text","",[507,616,611],{"__ignoreMap":614},[469,618,620],{"id":619},"aws-iam-authentication","AWS IAM Authentication",[459,622,623,624,626,627,629],{},"Amazon RDS and Aurora instances can authenticate with AWS IAM instead of a database password. Set ",[507,625,577],{}," on the connection and omit ",[507,628,564],{}," — exactly one of the two must be present. Each connection mints a short-lived token; tokens are never reused across connections.",[474,631,632,646],{},[477,633,634],{},[480,635,636,638,640,642,644],{},[483,637,485],{},[483,639,488],{},[483,641,491],{},[483,643,494],{},[483,645,497],{},[499,647,648,667,687,704],{},[480,649,650,655,657,659,661],{},[504,651,652],{},[507,653,654],{},"aws_iam.region",[504,656,512],{},[504,658,515],{},[504,660,518],{},[504,662,663,664],{},"AWS region of the database instance, for example ",[507,665,666],{},"us-east-1",[480,668,669,674,676,679,681],{},[504,670,671],{},[507,672,673],{},"aws_iam.access_key",[504,675,512],{},[504,677,678],{},"No",[504,680,518],{},[504,682,683,684],{},"AWS access key ID. Must be paired with ",[507,685,686],{},"aws_iam.secret_key",[480,688,689,693,695,697,699],{},[504,690,691],{},[507,692,686],{},[504,694,512],{},[504,696,678],{},[504,698,518],{},[504,700,701,702],{},"AWS secret access key. Must be paired with ",[507,703,673],{},[480,705,706,711,713,715,717],{},[504,707,708],{},[507,709,710],{},"aws_iam.role_arn",[504,712,512],{},[504,714,678],{},[504,716,518],{},[504,718,719,720],{},"IAM role to assume, for example ",[507,721,722],{},"arn:aws:iam::123456789012:role\u002Fmy-role",[459,724,725,726,729,730,733],{},"Omit ",[507,727,728],{},"access_key"," and ",[507,731,732],{},"secret_key"," to use whatever credentials the runtime provides — an EC2 instance profile, an EKS\u002FIRSA web identity token, an ECS task role, or a shared credentials profile. AWS IAM Identity Center (SSO) profiles are not supported.",[459,735,736,737,739],{},"The database ",[507,738,548],{}," is still required, and must be granted IAM authentication on the instance.",[741,742,743,744,746,747,749,750,753,754,756,757,760,761,763],"note",{},"Setting ",[507,745,577],{}," forces ",[507,748,600],{}," to ",[507,751,752],{},"verify-full",", and the Amazon RDS certificate authority for ",[507,755,654],{}," is trusted automatically — you do not need to download the RDS CA bundle and set ",[507,758,759],{},"ssl.ca_cert",". An explicit ",[507,762,759],{}," still takes precedence.",[459,765,766,767,771],{},"In the Studio, choose ",[768,769,770],"strong",{},"AWS IAM"," as the Authentication Method when adding the data source. It is offered on the PostgreSQL, MySQL, and MariaDB connectors and on the Amazon RDS and Aurora tiles.",[469,773,775],{"id":774},"ssl-configuration","SSL Configuration",[474,777,778,788],{},[477,779,780],{},[480,781,782,784,786],{},[483,783,485],{},[483,785,488],{},[483,787,497],{},[499,789,790,801,812,824,836],{},[480,791,792,796,798],{},[504,793,794],{},[507,795,600],{},[504,797,512],{},[504,799,800],{},"SSL connection mode (see below)",[480,802,803,807,809],{},[504,804,805],{},[507,806,759],{},[504,808,512],{},[504,810,811],{},"CA certificate (base64-encoded PEM or DER)",[480,813,814,819,821],{},[504,815,816],{},[507,817,818],{},"ssl.client_cert",[504,820,512],{},[504,822,823],{},"Client certificate for mutual TLS (base64-encoded)",[480,825,826,831,833],{},[504,827,828],{},[507,829,830],{},"ssl.client_key",[504,832,512],{},[504,834,835],{},"Client private key (base64-encoded)",[480,837,838,843,845],{},[504,839,840],{},[507,841,842],{},"ssl.client_key_password",[504,844,512],{},[504,846,847],{},"Password for an encrypted client private key",[849,850,852],"h4",{"id":851},"ssl-modes","SSL Modes",[474,854,855,864],{},[477,856,857],{},[480,858,859,862],{},[483,860,861],{},"Mode",[483,863,497],{},[499,865,866,876,886,903,915],{},[480,867,868,873],{},[504,869,870],{},[507,871,872],{},"disable",[504,874,875],{},"No TLS encryption",[480,877,878,883],{},[504,879,880],{},[507,881,882],{},"prefer",[504,884,885],{},"Attempt TLS, fall back to unencrypted if unavailable",[480,887,888,893],{},[504,889,890],{},[507,891,892],{},"require",[504,894,895,896,898,899,902],{},"Require TLS without certificate verification. If ",[507,897,759],{}," is provided, verifies the server certificate against it (same behavior as ",[507,900,901],{},"verify-ca",")",[480,904,905,909],{},[504,906,907],{},[507,908,901],{},[504,910,911,912,914],{},"Require TLS and verify the server certificate chain. Does not check hostname. When ",[507,913,759],{}," is omitted, validates against a bundled set of public root CAs (Mozilla's), not the operating system's trust store",[480,916,917,921],{},[504,918,919],{},[507,920,752],{},[504,922,923,924,914],{},"Require TLS, verify the server certificate chain, and verify the hostname matches the certificate. When ",[507,925,759],{},[927,928,929,930,932,933,935,936,938,939,941],"tip",{},"For production deployments, use ",[507,931,752],{},". Without ",[507,934,759],{},", the connector trusts only the bundled public root CAs, or the Amazon RDS certificate authority when ",[507,937,577],{}," is set. Provide ",[507,940,759],{}," for a server whose certificate is signed by a private or self-signed CA.",[469,943,945],{"id":944},"supported-key-formats","Supported Key Formats",[459,947,948],{},"Client keys are accepted in the following formats, all normalized internally to PKCS#8:",[950,951,952,956,961,964],"ul",{},[953,954,955],"li",{},"PKCS#8 (PEM or DER)",[953,957,958,959,902],{},"Encrypted PKCS#8 PEM (requires ",[507,960,842],{},[953,962,963],{},"PKCS#1 RSA (PEM or DER)",[953,965,966],{},"SEC1 EC (PEM only)",[968,969],"hr",{},[454,971,973],{"id":972},"managed-and-compatible-services","Managed and Compatible Services",[459,975,976,977,979],{},"The Studio's connector picker has a tile for each service below. Every tile uses the PostgreSQL connector, so the options, SSL modes, and key formats above all apply. A tile only adapts the form to the service: it shows the service's connection string format, sets its default port where it differs from ",[507,978,538],{},", and displays its setup notes.",[459,981,982,983,987],{},"Only the Amazon RDS and Aurora tiles offer ",[463,984,986],{"href":985},"#aws-iam-authentication","AWS IAM authentication",". Every other tile connects with a username and password.",[474,989,990,1000],{},[477,991,992],{},[480,993,994,997],{},[483,995,996],{},"Service",[483,998,999],{},"Notes",[499,1001,1002,1009,1017,1025,1032,1044,1051,1062,1070,1082,1089,1101,1108,1116,1123,1135,1142],{},[480,1003,1004,1007],{},[504,1005,1006],{},"Aiven for PostgreSQL",[504,1008,518],{},[480,1010,1011,1014],{},[504,1012,1013],{},"AlloyDB for PostgreSQL",[504,1015,1016],{},"Instances expose a static IP address, not a DNS hostname. Use VPC peering or the AlloyDB Auth Proxy for external access",[480,1018,1019,1022],{},[504,1020,1021],{},"Amazon Aurora PostgreSQL",[504,1023,1024],{},"Offers AWS IAM authentication",[480,1026,1027,1030],{},[504,1028,1029],{},"Amazon RDS for PostgreSQL",[504,1031,1024],{},[480,1033,1034,1037],{},[504,1035,1036],{},"Azure Database for PostgreSQL",[504,1038,1039,1040,1043],{},"Flexible Server. Use a plain username, without the legacy ",[507,1041,1042],{},"user@server"," suffix",[480,1045,1046,1049],{},[504,1047,1048],{},"Crunchy Bridge",[504,1050,518],{},[480,1052,1053,1056],{},[504,1054,1055],{},"DigitalOcean Managed PostgreSQL",[504,1057,1058,1059],{},"Default port ",[507,1060,1061],{},"25060",[480,1063,1064,1067],{},[504,1065,1066],{},"EDB Postgres",[504,1068,1069],{},"EDB Postgres AI Cloud Service",[480,1071,1072,1075],{},[504,1073,1074],{},"Google Cloud SQL for PostgreSQL",[504,1076,1077,1078,1081],{},"Allowlist your client IP under ",[768,1079,1080],{},"Connections → Networking",". Public IPs are numeric, so use the Cloud SQL Auth Proxy for hostname-based access",[480,1083,1084,1087],{},[504,1085,1086],{},"Heroku Postgres",[504,1088,518],{},[480,1090,1091,1094],{},[504,1092,1093],{},"Neon",[504,1095,1096,1097,1100],{},"Offers pooled (",[507,1098,1099],{},"-pooler",") and direct endpoints. Use the pooled endpoint for high-concurrency traffic, and the direct endpoint if PgBouncer compatibility causes issues",[480,1102,1103,1106],{},[504,1104,1105],{},"PlanetScale PostgreSQL",[504,1107,518],{},[480,1109,1110,1113],{},[504,1111,1112],{},"Railway PostgreSQL",[504,1114,1115],{},"Offers separate internal and public connection URLs. Use the internal URL for services in the same Railway project",[480,1117,1118,1121],{},[504,1119,1120],{},"Render PostgreSQL",[504,1122,518],{},[480,1124,1125,1128],{},[504,1126,1127],{},"Supabase",[504,1129,1130,1131],{},"See ",[463,1132,1134],{"href":1133},"#connect-to-supabase","Connect to Supabase",[480,1136,1137,1140],{},[504,1138,1139],{},"TimescaleDB",[504,1141,518],{},[480,1143,1144,1147],{},[504,1145,1146],{},"YugabyteDB",[504,1148,1149,1152,1153],{},[768,1150,1151],{},"Alpha",". Default port ",[507,1154,1155],{},"5433",[459,1157,1158,1159,1161],{},"An ",[768,1160,1151],{}," badge on a tile marks a service that speaks the PostgreSQL protocol but that Monospace doesn't yet test first-party.",[459,1163,1164,1165,1167,1168,1174],{},"A service that runs standard PostgreSQL doesn't need its own tile: choose ",[768,1166,285],{},". If you need a service that isn't listed, ",[463,1169,1173],{"href":1170,"rel":1171},"https:\u002F\u002Ffeedback.monospace.io\u002Frequest?request=new",[1172],"nofollow","request it on the roadmap",".",[469,1176,1134],{"id":1177},"connect-to-supabase",[1179,1180,1181,1187,1194,1197,1203,1206],"ol",{},[953,1182,1183,1184,1174],{},"Open your Supabase project dashboard and navigate to ",[768,1185,1186],{},"Project Settings > Database",[953,1188,1189,1190,1193],{},"Enable ",[768,1191,1192],{},"Allow connections from anywhere"," in your Supabase project settings. The Supabase tile reminds you of this.",[953,1195,1196],{},"Copy the connection string (direct connection or session pooler).",[953,1198,1199,1200,1202],{},"In Monospace, add a new data source and select the ",[768,1201,1127],{}," tile.",[953,1204,1205],{},"Paste the connection string — the host, port, user, password, and database name fields populate automatically.",[953,1207,1208,1209,1212],{},"Replace ",[507,1210,1211],{},"[YOUR-PASSWORD]"," with your database password. The form warns you while the placeholder remains.",[459,1214,1215],{},"Supabase provides two connection string formats:",[607,1217,1221],{"className":1218,"code":1219,"filename":1220,"language":613,"meta":614},[610],"postgresql:\u002F\u002Fpostgres:[YOUR-PASSWORD]@db.[PROJECT-REF].supabase.co:5432\u002Fpostgres\n","Direct Connection",[507,1222,1219],{"__ignoreMap":614},[607,1224,1228],{"className":1225,"code":1226,"filename":1227,"language":613,"meta":614},[610],"postgresql:\u002F\u002Fpostgres.[PROJECT-REF]:[YOUR-PASSWORD]@aws-0-[REGION].pooler.supabase.com:5432\u002Fpostgres\n","Session Pooler",[507,1229,1226],{"__ignoreMap":614},[968,1231],{},[454,1233,1235],{"id":1234},"see-also","See Also",[950,1237,1238,1245,1251,1257],{},[953,1239,1240,1244],{},[463,1241,1243],{"href":1242},"\u002Freference\u002Fconnectors","Connectors"," — every way to connect a data source",[953,1246,1247,1250],{},[463,1248,295],{"href":1249},"\u002Freference\u002Fconnectors\u002Fcustom-connectors"," — connect APIs and other systems without a built-in connector",[953,1252,1253,1256],{},[463,1254,54],{"href":1255},"\u002Fconcepts\u002Fintrospection"," — how Monospace discovers your database schema",[953,1258,1259,1262],{},[463,1260,266],{"href":1261},"\u002Freference\u002Fenvironment-variables"," — environment variables for the system database and SSL",{"title":614,"searchDepth":1264,"depth":1264,"links":1265},2,[1266,1273,1276],{"id":456,"depth":1264,"text":457,"children":1267},[1268,1270,1271,1272],{"id":471,"depth":1269,"text":472},3,{"id":619,"depth":1269,"text":620},{"id":774,"depth":1269,"text":775},{"id":944,"depth":1269,"text":945},{"id":972,"depth":1264,"text":973,"children":1274},[1275],{"id":1177,"depth":1269,"text":1134},{"id":1234,"depth":1264,"text":1235},"Configuration options for the PostgreSQL connector, and setup notes for the managed and compatible PostgreSQL services it connects to.","md",null,{},{"icon":288},{"title":285,"description":1277},"wWYtxfRWza7vNdEzX2bYVHhD_zOAQVt6ZzP1uFc_C3E",[1285,1287],{"title":143,"path":280,"stem":281,"description":1286,"icon":81,"children":-1},"Every way to connect a data source to Monospace — database connectors, managed and compatible services, and custom connectors.",{"title":290,"path":291,"stem":292,"description":1288,"icon":293,"children":-1},"Configuration options and limitations for the MySQL and MariaDB connectors, and setup notes for the managed and compatible services they connect to.",1791199470518]