@@ -158,6 +158,43 @@ describe('Database integration env variables', () => {
158158 expect ( sqlAlchemyInput . url ) . toBe ( 'postgresql://my-user:my-password@my-host/my-database' )
159159 } )
160160
161+ it ( 'should exclude caCertificateText from env vars' , ( ) => {
162+ const { envVars, errors } = getEnvironmentVariablesForIntegrations (
163+ [
164+ {
165+ type : 'alloydb' ,
166+ id : 'my-alloydb' ,
167+ name : 'My AlloyDB Connection' ,
168+ metadata : {
169+ host : 'my-host' ,
170+ user : 'my-user' ,
171+ password : 'my-password' ,
172+ database : 'my-database' ,
173+ caCertificateName : 'my-ca-certificate-name' ,
174+ caCertificateText : 'my-ca-certificate-text' ,
175+ } ,
176+ } ,
177+ ] ,
178+ { projectRootDirectory : '/path/to/project' }
179+ )
180+ expect ( errors ) . toHaveLength ( 0 )
181+
182+ // Verify that caCertificateText is not in the env vars
183+ const caCertTextEnvVar = envVars . find ( envVar => envVar . name === 'MY_ALLOYDB_CONNECTION_CACERTIFICATETEXT' )
184+ expect ( caCertTextEnvVar ) . toBeUndefined ( )
185+
186+ // Verify that caCertificateName is still included
187+ const caCertNameEnvVar = envVars . find ( envVar => envVar . name === 'MY_ALLOYDB_CONNECTION_CACERTIFICATENAME' )
188+ expect ( caCertNameEnvVar ) . toBeDefined ( )
189+ expect ( caCertNameEnvVar ?. value ) . toBe ( 'my-ca-certificate-name' )
190+
191+ // Verify that the SQL Alchemy input uses the path, not the text
192+ const sqlAlchemyInput = getSqlAlchemyInputVar ( envVars , 'my-alloydb' )
193+ expect ( sqlAlchemyInput . params . connect_args . sslrootcert ) . toBe (
194+ '/path/to/project/.deepnote/my-alloydb/my-ca-certificate-name'
195+ )
196+ } )
197+
161198 it ( 'should generate env vars for metadata' , ( ) => {
162199 const { envVars, errors } = getEnvironmentVariablesForIntegrations (
163200 [
@@ -1321,6 +1358,43 @@ describe('Database integration env variables', () => {
13211358 expect ( sqlAlchemyInput . url ) . toBe ( 'mysql+pymysql://my-user:my-password@my-host/my-database' )
13221359 } )
13231360
1361+ it ( 'should exclude caCertificateText from env vars' , ( ) => {
1362+ const { envVars, errors } = getEnvironmentVariablesForIntegrations (
1363+ [
1364+ {
1365+ type : 'mysql' ,
1366+ id : 'my-mysql' ,
1367+ name : 'My MySQL Connection' ,
1368+ metadata : {
1369+ host : 'my-host' ,
1370+ user : 'my-user' ,
1371+ password : 'my-password' ,
1372+ database : 'my-database' ,
1373+ caCertificateName : 'my-ca-certificate-name' ,
1374+ caCertificateText : 'my-ca-certificate-text' ,
1375+ } ,
1376+ } ,
1377+ ] ,
1378+ { projectRootDirectory : '/path/to/project' }
1379+ )
1380+ expect ( errors ) . toHaveLength ( 0 )
1381+
1382+ // Verify that caCertificateText is not in the env vars
1383+ const caCertTextEnvVar = envVars . find ( envVar => envVar . name === 'MY_MYSQL_CONNECTION_CACERTIFICATETEXT' )
1384+ expect ( caCertTextEnvVar ) . toBeUndefined ( )
1385+
1386+ // Verify that caCertificateName is still included
1387+ const caCertNameEnvVar = envVars . find ( envVar => envVar . name === 'MY_MYSQL_CONNECTION_CACERTIFICATENAME' )
1388+ expect ( caCertNameEnvVar ) . toBeDefined ( )
1389+ expect ( caCertNameEnvVar ?. value ) . toBe ( 'my-ca-certificate-name' )
1390+
1391+ // Verify that the SQL Alchemy input uses the path, not the text
1392+ const sqlAlchemyInput = getSqlAlchemyInputVar ( envVars , 'my-mysql' )
1393+ expect ( sqlAlchemyInput . params . connect_args . ssl . ca ) . toBe (
1394+ '/path/to/project/.deepnote/my-mysql/my-ca-certificate-name'
1395+ )
1396+ } )
1397+
13241398 it ( 'should generate env vars for metadata' , ( ) => {
13251399 const { envVars, errors } = getEnvironmentVariablesForIntegrations (
13261400 [
@@ -1666,6 +1740,43 @@ describe('Database integration env variables', () => {
16661740 expect ( sqlAlchemyInput . url ) . toBe ( 'postgresql://my-user:my-password@my-host/my-database' )
16671741 } )
16681742
1743+ it ( 'should exclude caCertificateText from env vars' , ( ) => {
1744+ const { envVars, errors } = getEnvironmentVariablesForIntegrations (
1745+ [
1746+ {
1747+ type : 'pgsql' ,
1748+ id : 'my-postgres' ,
1749+ name : 'My PostgreSQL Connection' ,
1750+ metadata : {
1751+ host : 'my-host' ,
1752+ user : 'my-user' ,
1753+ password : 'my-password' ,
1754+ database : 'my-database' ,
1755+ caCertificateName : 'my-ca-certificate-name' ,
1756+ caCertificateText : 'my-ca-certificate-text' ,
1757+ } ,
1758+ } ,
1759+ ] ,
1760+ { projectRootDirectory : '/path/to/project' }
1761+ )
1762+ expect ( errors ) . toHaveLength ( 0 )
1763+
1764+ // Verify that caCertificateText is not in the env vars
1765+ const caCertTextEnvVar = envVars . find ( envVar => envVar . name === 'MY_POSTGRESQL_CONNECTION_CACERTIFICATETEXT' )
1766+ expect ( caCertTextEnvVar ) . toBeUndefined ( )
1767+
1768+ // Verify that caCertificateName is still included
1769+ const caCertNameEnvVar = envVars . find ( envVar => envVar . name === 'MY_POSTGRESQL_CONNECTION_CACERTIFICATENAME' )
1770+ expect ( caCertNameEnvVar ) . toBeDefined ( )
1771+ expect ( caCertNameEnvVar ?. value ) . toBe ( 'my-ca-certificate-name' )
1772+
1773+ // Verify that the SQL Alchemy input uses the path, not the text
1774+ const sqlAlchemyInput = getSqlAlchemyInputVar ( envVars , 'my-postgres' )
1775+ expect ( sqlAlchemyInput . params . connect_args . sslrootcert ) . toBe (
1776+ '/path/to/project/.deepnote/my-postgres/my-ca-certificate-name'
1777+ )
1778+ } )
1779+
16691780 it ( 'should generate env vars for metadata' , ( ) => {
16701781 const { envVars, errors } = getEnvironmentVariablesForIntegrations (
16711782 [
0 commit comments