Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TECH] Documenter les colonnes de notre base de données #9457

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from

Conversation

VincentHardouin
Copy link
Member

@VincentHardouin VincentHardouin commented Jul 5, 2024

🦄 Problème

Actuellement, la documentation est faite manuellement dans Confluence. C'est loin du code, ce qui fait personne y pense et c'est par conséquent pas à jour. De plus, notre data catalog n'en bénéficie pas ainsi que les personnes réutilisant la base de code.

🤖 Proposition

Ajouter les commentaires directement sur les colonnes.

La migration a été généré grâce au script présent dans le premier commit et supprimé dans le troisième car c'est un one-shot. Il est ajouté et supprimé uniquement pour le retrouver dans l'historique. Si vous êtes curieux ou curieuse de voir de l'AST, n'hésitez pas.

🌈 Remarques

Pour info les commentaires sont disponibles sur pgcli par exemple en faisant \d+ <nom_de_table>

A venir (prochain point tech par exemple): il faut créer une règle Eslint pour forcer les développeurs à commenter les colonnes à chaque nouvelle migration

💯 Pour tester

  • Se connecter à la RA avec la CLI Scalingo en lancant un pgsql-console :
scalingo --region osc-fr1 -a pix-api-review-pr9457 pgsql-console
  • Constater que les commentaires sont biens présents avec \d+ <nom_de_table>

  • Tester la migration down en utilisant la CLI avec run npm run db:rollback:latest

scalingo --region osc-fr1 -a pix-api-review-pr9457 run npm run db:rollback:latest
  • Constater que les commentaires ont disparu
  • Remettre dans le bon état pour les copains run npm db:migrate
scalingo --region osc-fr1 -a pix-api-review-pr9457 run npm run db:migrate

@VincentHardouin VincentHardouin added the cross-team Toutes les équipes de dev label Jul 5, 2024
@VincentHardouin VincentHardouin self-assigned this Jul 5, 2024
@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

Copy link
Contributor

@Steph0 Steph0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Est-ce que écrire notre documentation technique de BDD en français est une bonne chose (vu que l'on code en anglais) ? J'y vois un pas qui ne va pas dans le sens de faire rayonner pix à une échelle + internationale.

Autre point : cette PR sort des informations qui étaient jusqu'à présent non visibles à l'extérieur de Pix. Peut-être faire valider avec le Produit de faire sortir cela ?

Excellente idée par contre de documenter notre BDD :)

'COMMENT ON COLUMN "assessments"."userId" IS \'Identifiant technique de l’utilisateur passant le test, obligatoire\'',
);
await knex.raw(
'COMMENT ON COLUMN "assessments"."type" IS \'Options:\n\n- PREVIEW\n\n\n- DEMO\n\n\n- PLACEMENT (vieux type)\n\n\n- CAMPAIGN\n\n\n- COMPETENCE_EVALUATION\n\n\n- CERTIFICATION\n\n\n\nobligatoire\'',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Est-ce que les \n\n\n\n\n ont un intérêt côté PG ? Ou serait-il intéressant de les enlever ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ils ont été forcé justement si tu regardes le script qui fait le parsing, car PG les comprends bien. Tu peux essayer en faisant \d+ assessments !

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Effectivement, ils sont bien interprétés. Mais je ne comprends pas trop l'intérêt d'en avoir plusieurs ceci dit :)

'COMMENT ON COLUMN "authentication-methods"."identityProvider" IS \'6 options:\n\n- PIX\n\n\n- GAR: SSO externe\n\n\n- POLE_EMPLOI: SSO externe\n\n\n- CNAV: SSO externe\n\n\n- PAYSDELALOIRE : SSO externe\n\n\n- FWB : SSO externe\'',
);
await knex.raw(
'COMMENT ON COLUMN "authentication-methods"."authenticationComplement" IS \'- Si &ldquo;PIX&rdquo;: \n\n- &ldquo;password&quot;: mot de passe chiffr&eacute;e\n\n\n- &ldquo;shouldChangePassword&quot;: true/false - si true, alors le mot de passe stock&eacute;e a &eacute;t&eacute; gener&eacute;e par un membre d\'\'un &eacute;tablissement scolaire, depuis Pix Orga, et ce mot de passe est temporaire. Lors de la prochaine connexion de cet &eacute;l&egrave;ve, il devra saisir un nouveau mot de passe.\n\n\n\n\n- Si &ldquo;GAR&rdquo;: \n\n- &ldquo;lastName&quot;\n\n\n- &ldquo;firstName&quot;\n\n\n\n\n- Si &ldquo;POLE_EMPLOI&rdquo;:\n\n- &ldquo;accessToken&quot;: lien cr&eacute;&eacute; entre compte PE et compte Pix, cr&eacute;&eacute; &agrave; partir de l&rsquo;identifiant PE\n\n\n- &ldquo;expiredDate&quot;:\n\n\n- &ldquo;refreshToken&quot;:\n\n\n\n\n- Si &ldquo;CNAV&rdquo;:\n\n- le champ est VIDE\n\n\n\n\n- Si &ldquo;FWB&rdquo;:\n\n- &quot;employeeNumber&quot;\n\n\n- &quot;population&rdquo;\'',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tout comme les \n serait-ce intéressant de clean les caractères HTML ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 pour les caractères HTML qu'on retrouve tel quels quand on récupère la description de la table.

@VincentHardouin
Copy link
Member Author

VincentHardouin commented Jul 16, 2024

Est-ce que écrire notre documentation technique de BDD en français est une bonne chose (vu que l'on code en anglais) ? J'y vois un pas qui ne va pas dans le sens de faire rayonner pix à une échelle + internationale.

Pour le code en français, j'estime que le boulot a déjà été fait en français donc autant en profiter. Et c'est très facile pour des étrangers d'utiliser un traducteur. Quid des PRs, et des descriptions des endpoints dans ce cas … :)

Autre point : cette PR sort des informations qui étaient jusqu'à présent non visibles à l'extérieur de Pix. Peut-être faire valider avec le Produit de faire sortir cela ?

Les descriptions sont déjà implicites dans notre code (nommage des colonnes et Modèles du domaine). Ici, on les rends juste plus explicites et accessibles.

@aurelie-crouillebois aurelie-crouillebois added the Func Review OK PO validated functionally the PR label Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cross-team Toutes les équipes de dev 👀 Tech Review Needed Func Review OK PO validated functionally the PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants