Is it possible to encrypt data with Public Key/ Private Key in Baserow?

feature description

I would like my data to be encrypted with a public key and a private key, so only who have access can visualize them. In this case, I and not you.

Where would this feature applied? or better ‘cases’

  1. I have corporate data that I do not want anyone to see
  2. I have data from patients in my private private office that I want no one to know, see
  3. This feature would be premium

references

  1. Difference between Private key and Public key - GeeksforGeeks
  2. What Are Public Keys and Private Keys? | Ledger
1 Like

Hi @anon7289648, this is currently not possible in an easy/automated way. You could of course manually encrypt sensitive data and store the encrypted value in Baserow, but it will be less convenient to use. Alternatively, you could self host Baserow on a server that you own. Only you will then have access to the underlying PostgreSQL database where the data is stored. You do need to have the technical knowledge to maintain a self hosted instance, although it’s not that complicated with for example Cloudron. You could also run it locally on your own computer if you’re comfortable with docker.

1 Like

thank you for feedback

Hello everyone, guys, baserow lovers!

I found this topic interesting, and I think I can contribute. Please, see this:

img1: demo in nostrgit img2: idea in baserow

note: the data here are demonstrative, false. It is not used to login from nostr or baserow.

What do you think of the idea of ​​a public and private key for login similar to NostrGit?

Hello @anon36264613, any contributions are highly welcomed! I’m adding this video here, so you can check out how to make a contribution (if needed): Contribute to open source: Baserow's first-class development environment - YouTube.

@bram @nigel do you have any feedback on the suggested idea?

Hi guys,

I would like to contribute a lot to this topic here. I think this topic: Is it possible to encrypt data with Public Key/ Private Key in Baserow? could be merged here: More login options to improve the user experience of Baserow users.

1. This is interesting from the point of view of those who do not want to use third-party services, such as email in login. Maybe this case is useful for the self-hosted plan of Baserow. Or this would be useful for people who don’t want to receive marketing emails from Baserow.

2. Logging in with a public and private key can be done through things as RSA. This would be interesting for corporate clients like governments, companies, users. When I say “corporate clients” I mean clients that have a certain political or financial power or that have a certain amount x of people working in different areas. But there are those who argue that the term “corporate customer” is related to large companies, not governments or users. But in the case of open source, anyone can contribute, not just companies. But when I talk about “corporate customers”, I include in this discussion or say people who want greater security and control of their data too.

3. An alternative to this is to include 2FA or MFA as authentication. It would not be necessary to have a public or private key to login. But I don’t know if this would be on the Baserow roadmap. For example, there are things like TouchID, OpenID that can be used or not used in login.

4. To encrypt mail many people use PGP(Pretty Good Privacy), OpenPGP(Open-source PGP) or GPG(GNU Privacy Guard). What is being asked here is not so much different as the technology used in email for greater privacy. Something interesting is that PGP(Pretty Good Privacy), OpenPGP(Open-source PGP) or GPG(GNU Privacy Guard) uses RSA or something like Diffie-Hellman. An interesting and alternative discussion to this would be to use e2ee(end-to-end). There is an closed discussion here about this: Does Baserow use end-to-end encryption?.

5. There are several libraries in nostr, a popular library is python-nostr. Maybe you want to do something like this:

from nostr.key import PrivateKey

private_key = PrivateKey()
public_key = private_key.public_key
print(f"Private key: {private_key.bech32()}")
print(f"Public key: {public_key.bech32()}")

I wonder if this could not be generated by an API. Would you be happy with any feedback from the community to see what they think.