liquidvotingio / liquidvotingio/api

Should we allow creation of participants with uuids provided by the client?

Open
#130 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Elixir
Stars
17
Forks
3
PR merge metrics
No merged PRs in 30d

Description

This has come up during investigation of #128, and needs further discussion:

One of the reasons we decided to use uuids as ids is to enable passing around of identifiers to/from clients and other services, and we're supporting for pre-existing resources in our system - votes, delegations and participants already persisted in the database.

Currently we support upserts of participants on delegation and voting creation based on emails provided by the client.

Another potential scenario is when the client already generates uuids for their participants (for which they're the source the truth), and submits that to us instead of an email. For instance, when creating a delegation, submitting delegator_id and delegate_id instead of a delegator_email and delegate_email. This could be a way to improve the privacy of the participant in our system. We'd only know their client-side id.

Questions raised so far:

  • YAGNI?
  • any security issues with passing around a direct db identifier like that?
  • in some instances clients will create a view-only uuid, and sometimes that's ephemeral. How do we handle that?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading issue #128 and the current participant upsert behavior during delegation and voting creation. Clarify whether client-provided participant UUIDs should be accepted, then document decisions for identifier security, view-only UUIDs, and ephemeral identifiers.

Written by the indexing model from the issue text.

Assessment

Tech stack
elixir
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.