Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Do Spar things transactionally

Aperta
#913 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
haskell
Ambito
backend, databases

Direzione di ricerca

Esamina prima la definizione proposta di insertScimAndSamlUser e la pull request #905 indicata. Traccia il percorso di inserimento esistente di Spar per SCIM e SAML, inclusi il comportamento batch e quello dei retry mostrati nell’issue. Il lavoro è completato quando i due inserimenti vengono gestiti transazionalmente come descritto e il problema di serializzazione di WrappedScimStoredUser SparTag è risolto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Right, I think this might still be worth it in this one, and should look like something in the lines of:

insertScimAndSamlUser :: (HasCallStack, MonadClient m) => UserId -> SAML.UserRef -> ScimC.User.StoredUser SparTag -> m ()
insertScimAndSamlUser uid (SAML.UserRef tenant subject) scimUsr = retry x5 . batch $ do
  setType BatchLogged
  setConsistency Quorum
  addPrepQuery insScim (uid, WrappedScimStoredUser scimUsr)
  addPrepQuery insSaml (tenant, subject, uid)
  where
    insScim :: PrepQuery W (UserId, WrappedScimStoredUser SparTag) ()
    insScim = "INSERT INTO scim_user (id, json) VALUES (?, ?)"

    insSaml :: PrepQuery W (SAML.Issuer, SAML.NameID, UserId) ()
    insSaml = "INSERT INTO user (issuer, sso_id, uid) VALUES (?, ?, ?)"

The main annoyance I see with this is that you will need a Show instance for WrappedScimStoredUser SparTag -> not sure how trivial it is to come up with a meaningful one.

Originally posted by @tiago-loureiro in https://github.com/wireapp/wire-server/pull/905

Lingua principale
Haskell
Stelle
2.8k
Fork
332
Merge medio
3g 7h
PR unite (30g)
49

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di wireapp/wire-server

Tutte le issue di wireapp/wire-server

Issue simili

Altre issue su Haskell

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.