Hide credential owner emails in project.yaml
Nobody has claimed this yet.
- Dominant language
- Elixir
- Stars
- 296
- Forks
- 86
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 50
Description
When a project is deployed to GitHub, we add the credentials and associate them with the owner of the credentials. While this is helpful to project collaborators to identify the owner of a credential in the project.yaml (and is required to determine which credential is referenced when multiple credentials have the same name) we also are exposing personally identifiable information to GitHub, which can become a problem when the repo is public.
This leaves us with a few options:
- Mask the email address of the credential owner
- Allow users to decide if they want the credential owner specified in the project.yaml, and If the credential owner is required in the project.yaml, we should consider restricting Syncs to private repo ONLY.
The question is: how can we provide project-credential linkages in the project.yaml file without exposing the credential owner's email address?
Design
Adding a unique suffix (maybe last 4-7 of uuid? maybe something else?) to credentials with clashing names is a good enough solution. It also solves the problem of users needing to pick between 2 "My DHIS2 Login" credentials in the dropdown list and not knowing which one it is.
Via the provisioner, you'd only need to add this 4-7 digit suffix if your credential name is ambiguous. (Make sure to show a nice enough error message when trying to deploy with an ambiguous credential name.)
credentials:
Unicare-BIH-Primero-Demo:
name: 'Unicare BIH Primero Demo#1234'
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how credential references are serialized in project.yaml and how the provisioner resolves names, as those entry points are mentioned in the issue. Define the behavior for clashing credential names, including the ambiguity error, and verify that generated project.yaml content no longer exposes owner email addresses.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elixir
- Domain
- backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100