emmanueltouzery / projectpad2

Projectpad allows to manage secret credentials and server information that you need to handle as a software developer or sysadmin.
MIT License
87 stars 4 forks source link

[Feature Request] New Project Item : User Credentials #3

Open VaZark opened 2 years ago

VaZark commented 2 years ago

Can you please add a new Project Item type just to handle personal credentials for different services used by a project? These are details we usually store on a random text file or use the browser's default password manager.

Use cases

emmanueltouzery commented 2 years ago

yes, I have needed this myself, and for that I'm currently using notes. we can discuss whether there could be a better approach.

What you suggest sounds like server->extra user. I felt it was a little inflexible for this purpose here -- but I could be wrong. What I'm doing is using project notes with the notes password support. Within notes if you click the lock icon in the toolbar on top of the text, you can insert passwords: [passmy password]. Once passwords are entered in notes like that, they are not revealed when displaying the notes, and when clicking on them, you can copy them to the clipboard or reveal them. You can also paste keys in notes, and if you paste them in code blocks, you get a button to copy them to the clipboard.

Note that we're talking about project-wide settings. For aws/heroku and even possibly git I might add those under a server entry (depending).

I've hit this case for VPN credentials, where I found the ability to enter extra information (eg other VPN settings) useful.

If you feel your case doesnt fit for notes, can you explain why another approach would be better than notes and why the server credentials or server extra users are not a fit?

VaZark commented 2 years ago

I've just discovered the project by chance when looking upon rust-based projects. So I wasn't aware of the neat little pass feature. I'm certain the password notes can be used as-is for personal use.

However, when I'm exporting my data and sharing it with the rest of the team or friends, it will be much easier if I do not have to worry about forgetting to remove my personal credentials.

One way to go about it is to add a Add new password on the Add new Project Item tab which open a dialog for a single credential with env options

image

It can be used as a standard text field with values unique to or shared between env.

Additionally, we can use these fields as reference/FK to be used in a Project note like footnotes/bibligraphy are used in markdown. This will can be used to signal to the app that these fields are to be referenced when exporting while maintaining referential integrity. The new users can just insert their passwords on the empty fields.

emmanueltouzery commented 2 years ago

Yes, I was interested in linking to items from notes, but it gets complicated. They couldn't be inline in the note, but would have to be some sort of note meta-data so that the SQLite foreign keys really check that the link target wasn't removed or something of the sort. But yes, you made me think that it could be doable as notes meta-data, which could be referenced from within the note. It gets a little complicated though.

In terms of hiding credentials on export, it's not done. Currently the export will export all credentials. But if we add an option to mask credentials in password-specific fields, we can also mask them in "password" fields in notes.

I'll think about a new project-level "password"/"credentials" item type. It feels like a narrow need, between server credentials & project notes. But maybe I do still add it.