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.