"
We highly recommend that the PostgreSQL instance uses a server certificate generated by a widely recognized Certificate Authority such as VeriSign or GeoTrust. This will ensure that the certificate meets all of the relevant encryption and formatting standards. Some cloud storage providers, such as Google Cloud and Amazon RDS, also generate server certificates for the PostgreSQL instances that they host. Currently, server certificates generated by TinyCA are not supported.
Itâs also good practice to sign the server certificate using SHA-2 hashing algorithms. This is because SHA-1 algorithms are no longer considered fully secure, and many cloud providers, including Microsoft, Amazon, and Google, are increasingly moving to SHA-2 and SHA-3.
"
Itâs not clear if this is saying certificates generate by Google Cloud will meet âall of the relevant encryption and formatting standardsâ, or if I need to use a cert from VeriSign or GeoTrustâŚ?
We are adding a feature to CloudSQL MySQL to be able to configure client certificates from the database into the Data Source configuration for an additional security layer.
We donât have this solution in the works for Postgres on CloudSQL yet, however. It is tentatively on our roadmap based on customer demand. We just havenât seen many customers using Postgres with AppSheet and asking for this feature. We can consider it if we continue to see requests like yours. Is there any chance you could switch to MySQL? We are going to be adding this client cert feature there soon.
Just want to be clear. You can connect to Postgres using server certificates, which does enable SSL. We just donât have the support for the client certificates on the AppSheet side. Each customer has different IT Security policies, so some customers are ok with the combination of the Server certificates and the whitelisting of AppSheet IPs and are able to use Postgres in CloudSQL. Apparently, your security requirements are higher, and that is why you are hitting this limitation. In this case, your one remaining option is to file for a security exception with your IT Security team and see if you can get an exception based on the existing security features (server certs and whitelisted IPs).
So, in our testing, we were not able to use enable SSL, in appsheet, with CloudSQL Postgres. We do have an active SSL server certificate. If I try to connect, with SSL, from appsheet I get the error " Error
Failed to establish connection. Error: The remote certificate is invalid according to the validation procedure."
I apologize; this is quite broken. Support for PostgreSQL client certs is a known work item and will take some time, but we will try to get something out to enable baseline SSL support with PostgreSQL in GCP as soon as possible (Iâm hoping in the next week or two).
Letâs be crystal clear for the next person in my position:
You donât support the 2 major players in fully-managed cloud.
And you do not support the cloud of your parent company.
And server side SSL is only possible with very limited root certificates; we do not want/need client side certificates, this is your requirement.
And PSQL connections does not work with many field types.
And PSQL connection fails to import tables with timestamps.
If you had included these limitation on due to âhigh security requirementâ in your docs, I would have been very happy. But since it took about over 10 hours of my time to figure out these limitations⌠I want to be clear for the next person.
Wait âŚwe just upgraded to enterprise primarily so we could use PSQL as a data source.
What are the field types that are not supported?
Are timestamp types really not supported? (does it matter if it is with or without timezone?)
Last night, one of our devs was running into an issue with a timestamp column used in a formula, we werenât sure what the issue wasâŚ
Editing this post: Just spoke with our dev and yes, it looks like timestamp columns do not ingest correctly. We will need create additional date and/or epoch columns. This is pretty bad. AppSheet should definitely support timestamp columns (with or without time zones) in PSQL.
I donât want to presume what appsheet uses for itâs backend, but there are plenty of libraries that support psql, so, I am not sure why this has not been addressed?
I sincerely apologize for your time spent debugging this and your frustrations. Iâm going to take a couple of action items, and you can also see that our lead engineer for connectors (@brian ) is also on top of these issues.
Iâll work to include these limitations in the docs (hopefully will be less after Brianâs efforts in the next couple of weeks)
Iâll work with Brian and the team to see which broken items we can fix right away, and which ones we may need more time and will go on the roadmap. For example, fixing the timestamp is probably relatively easy, but adding support for complex types like arrays may take more time.
Can you please help me understand your server side certificate requirements a bit more? You mentioned there is âVeryâ limited root certs. Do you mean AppSheet only supports a limited number of root certs (I assume you mean CAâs (certificate authorities like Verisign)?) or do you mean that you only wish to support a limited number of root certs?
Thanks for your patience, and I assure you we will get this working better soon.
We deployed a change today that will let you set Require SSL for PostgreSQL sources in GCP. This still wonât let you set âAllow only SSL connectionsâ server side, as that still requires work to support client certificates, but it is a step in the right direction. The client cert work is planned, but itâs not something we can turn around nearly as quickly.
I will update our docs with more information about which PostgreSQL types map to which AppSheet types. Changes to type handling or type support are possible, but those tend to be more costly especially if they have implications for other data sources.
Thank you for the update. I understand that more advanced types would require more work to support, but is this true for timestamp types? That is such a common and useful datatype and required for some basic features (like being able to see when an entry was made in the app).
Timestamp is supported. You can use the NOW() expression in AppSheet and have that save back to a timestamp column just fine. You can save that value into a timestamp with time zone column as well, but as the AppSheet DateTime isnât timezone aware you wonât actually get a time zone (saves with +00). End to end time zone support for PostgreSQL isnât on our roadmap and isnât something we could address in the near term.