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

Ajoute le module d'authentification #3183

Closed
wants to merge 65 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
e013e04
Ajoute les modèles des emails utilisés pour l'authentification
marc-rutkowski Mar 25, 2024
1b1fe8d
Ajoute le package @tet/auth pour centraliser les écrans de connexion …
marc-rutkowski Mar 25, 2024
511596b
Ajoute les utilitaires permettant de partager l'authentification entr…
marc-rutkowski Mar 25, 2024
79e7dd1
Ajoute les utilitaires permettant de déterminer les URLs des pages d'…
marc-rutkowski Mar 25, 2024
3684002
Ajoute un storybook pour les composants d'authentification
marc-rutkowski Mar 25, 2024
9e4d51b
Ajoute le composant de vérification de robustesse du mot de passe
marc-rutkowski Mar 25, 2024
d37fe44
Ajoute le composant de saisie d'un code OTP
marc-rutkowski Mar 25, 2024
357f2c1
Ajoute le composant de demande de ré-envoi d'un e-mail d'authentifica…
marc-rutkowski Mar 25, 2024
d75086f
Ajoute le composant de Login et ses différents sous-éléments
marc-rutkowski Mar 25, 2024
b39b7a1
Ajoute le composant de Signup et ses différents sous-éléments
marc-rutkowski Mar 25, 2024
5a758e0
Ajoute les routes/pages d'authentification et de création de compte
marc-rutkowski Mar 25, 2024
6bdb1c1
Uniformise la version de supabase
marc-rutkowski Mar 26, 2024
9a37e36
Ajoute la commande de build du package auth
marc-rutkowski Mar 26, 2024
ad57712
Ajoute le package auth dans le mode dev de l'app
marc-rutkowski Mar 26, 2024
ab3f784
Autorise les scripts inline dans la CSP
marc-rutkowski Mar 26, 2024
ba2061a
Teste et corrige la fonction donnant l'url du module d'auth.
marc-rutkowski Mar 28, 2024
861dd83
Ajoute dans l'app la restauration de la session depuis les cookies
marc-rutkowski Feb 14, 2024
977f19a
Change les chemins vers les pages d'authentification de l'app
marc-rutkowski Feb 15, 2024
3931c87
Répare les liens du Header vers les pages d'authentification
marc-rutkowski Feb 15, 2024
d4a7060
Répare le lien "Déconnexion"
marc-rutkowski Feb 15, 2024
efacc72
Simplifie les redirections
marc-rutkowski Feb 15, 2024
5b9500f
Répare les liens des boutons d'authentification
marc-rutkowski Feb 15, 2024
1b510cc
Désactive les routes vers les anciennes pages de connexion
marc-rutkowski Feb 15, 2024
b1f1165
Change la manière de rediriger vers la page de login depuis un lien d…
marc-rutkowski Feb 19, 2024
55d4856
Ajoute la redirection vers l'étape 3 de la création de compte si il m…
marc-rutkowski Feb 27, 2024
1a7df94
Utilise les fonctions donnant les urls des pages partagées
marc-rutkowski Feb 28, 2024
f891b1e
Intègre la redirection dans la création des urls vers les pages d'aut…
marc-rutkowski Feb 29, 2024
d050070
Répare le workflow d'invitation
marc-rutkowski Feb 29, 2024
cd25923
Redirige vers la saisie des DCP lorsque leur enregistrement n'a pas é…
marc-rutkowski Mar 18, 2024
910dc5c
Supprime les anciens composants et routes de l'app
marc-rutkowski Feb 27, 2024
4aabf28
Met à jour les storyshots
marc-rutkowski Mar 26, 2024
dfa1ea2
Evite un pb d'affichage du chemin de fer dans les actions ECi
marc-rutkowski Feb 29, 2024
e066024
Améliore la statibilité des tests qui peuvent parfois échouer lorsque…
marc-rutkowski Feb 29, 2024
374ec7c
Répare les tests e2e de connexion
marc-rutkowski Feb 15, 2024
2229a56
Change le scénario de test de connexion depuis une invitation
marc-rutkowski Feb 19, 2024
13abe91
Ajoute des utilitaires de test des mailboxes virtuelles fournies par …
marc-rutkowski Feb 20, 2024
e973779
Corrige et enrichie les scénarios de tests d'authentification
marc-rutkowski Feb 27, 2024
8d6936b
Corrige et enrichie les scénarios de tests de création de compte
marc-rutkowski Feb 27, 2024
643fe25
Améliore l'étape de test permettant de déplier une sous-action dans l…
marc-rutkowski Feb 29, 2024
ecef6fc
Améliore la stabilité des tests sur la personnalisation des référentiels
marc-rutkowski Feb 29, 2024
f72b5ec
Améliore la stabilité des scénarios de tests faisant une reconnexion …
marc-rutkowski Feb 29, 2024
22644cc
Répare les tests du workflow d'invitation
marc-rutkowski Feb 29, 2024
edc1e3c
Rassemble les scénarios de test du workflow d'invitation
marc-rutkowski Feb 29, 2024
380a800
Essaye d'améliorer la robustesse des tests e2e en vérifiant les redir…
marc-rutkowski Mar 7, 2024
910b496
Répare les tests de création de compte et de connexion
marc-rutkowski Mar 27, 2024
be74ea3
Redirige les logs cypress dans la console quand un test échoue (utile…
marc-rutkowski Mar 27, 2024
8d1ea0c
Ajoute le module auth dans l'env. de test e2e en CI
marc-rutkowski Mar 27, 2024
866a533
Met à jour le client supabase dans les différents packages
marc-rutkowski Mar 27, 2024
8fbd9d9
Regen les types
marc-rutkowski Mar 27, 2024
f286fd8
Répare les erreurs de typage révélées par la mise à niveau du client …
marc-rutkowski Mar 27, 2024
4786bc4
Ignore des erreurs de typage révélées par la mise à niveau du client …
marc-rutkowski Mar 27, 2024
70fa93d
Inclus le module auth dans le build de l'image des deps front
marc-rutkowski Mar 27, 2024
32a56e5
Ajoute le build du package api avant d'exécuter les tests unitaires d…
marc-rutkowski Mar 27, 2024
69a74a9
Evite de planter le module d'auth quand les vars d'env. pour posthog …
marc-rutkowski Mar 27, 2024
037c9e8
Utilise la dernière version de supabase en CI
marc-rutkowski Mar 27, 2024
ac3aa19
Fixe les erreurs de typage dans les tests d'api (deno)
marc-rutkowski Mar 28, 2024
d95325c
Améliore un commentaire
marc-rutkowski Mar 28, 2024
a8e5808
Met à jour la version de supabase CLI
marc-rutkowski Mar 28, 2024
5bcc6a2
Regen les types
marc-rutkowski Mar 28, 2024
c0de4a9
Corrige de nouvelles erreurs de typage apparues après la regen. des t…
marc-rutkowski Mar 28, 2024
c22428e
Rend réutilisable la fonction donnant l'url d'un module
marc-rutkowski Mar 28, 2024
bcc6c9f
Raccorde les liens vers le module d'authent. dans l'en-tête et les pa…
marc-rutkowski Apr 2, 2024
093cf68
Permet de lancer simultanément en mode dev l'app, le panier et l'auth.
marc-rutkowski Apr 2, 2024
0b27cf0
Supprime un test à propos d'une table qui n'existe plus
marc-rutkowski Apr 2, 2024
43aed2a
Fixe la version du client supabase pour éviter des erreurs de typage …
marc-rutkowski Apr 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 37 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,27 @@ jobs:
- name: Build and push app image
run: earthly --use-inline-cache --save-inline-cache --push +app-build --ANON_KEY=${{ secrets.ANON_KEY }} --API_URL=${{ secrets.API_URL }}

build-auth-dev:
needs: prepare-front-deps
environment: dev
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- uses: earthly/actions/setup-earthly@v1
with:
version: v0.7.20

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}

- name: Build and push auth. image
run: earthly --use-inline-cache --save-inline-cache --push +auth-build --ANON_KEY=${{ secrets.ANON_KEY }} --API_URL=${{ secrets.API_URL }}

build-storybook-dev:
needs: prepare-front-deps
environment: dev
Expand Down Expand Up @@ -136,7 +157,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -169,7 +190,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -222,7 +243,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -271,7 +292,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -303,7 +324,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -352,7 +373,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -380,7 +401,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -426,7 +447,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand All @@ -450,6 +471,7 @@ jobs:
- build-business-dev
- build-tools
- build-app-dev
- build-auth-dev
- build-db
environment: dev
name: End-to-end tests
Expand All @@ -475,7 +497,7 @@ jobs:
version: v0.7.0
- uses: supabase/setup-cli@v1
with:
version: 1.88.0
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand All @@ -490,7 +512,7 @@ jobs:
- name: Start services
run: >
earthly --use-inline-cache +dev
--stop=no --datalayer=yes --business=yes --app=yes --eco=yes --faster=yes --version=HEAD
--stop=no --datalayer=yes --business=yes --app=yes --auth=yes --eco=yes --faster=yes --version=HEAD
--DB_URL=${{ secrets.DB_URL }}
--SERVICE_ROLE_KEY=${{ secrets.SERVICE_ROLE_KEY }}
--API_URL=${{ secrets.API_URL }}
Expand Down Expand Up @@ -554,7 +576,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.52.3
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -616,7 +638,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.52.3
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -678,7 +700,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.52.3
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -740,7 +762,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.52.3
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down Expand Up @@ -803,7 +825,7 @@ jobs:
version: v0.7.20
- uses: supabase/setup-cli@v1
with:
version: 1.52.3
version: latest

- name: Login into registry
run: earthly --use-inline-cache +docker-dev-login --GH_USER=${{ secrets.GH_USER }} --GH_TOKEN=${{ secrets.GH_TOKEN }}
Expand Down
43 changes: 41 additions & 2 deletions Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ LOCALLY
# chemins vers les modules front
ARG --global APP_DIR='./app.territoiresentransitions.react'
ARG --global SITE_DIR='./packages/site'
ARG --global AUTH_DIR='./packages/auth'
ARG --global UI_DIR='./packages/ui'
ARG --global API_DIR='./packages/api'
ARG --global BUSINESS_DIR='./business'
Expand All @@ -14,9 +15,10 @@ ARG --global REG_TARGET=$REGISTRY/$REG_USER
ARG --global ENV_NAME="dev"
ARG --global FRONT_DEPS_TAG=$(openssl dgst -sha256 -r ./package-lock.json | head -c 7 ; echo)
ARG --global FRONT_DEPS_IMG_NAME=$REG_TARGET/front-deps:$FRONT_DEPS_TAG
ARG --global APP_TAG=$ENV_NAME-$FRONT_DEPS_TAG-$(sh ./subdirs_hash.sh $APP_DIR,$UI_DIR)
ARG --global APP_TAG=$ENV_NAME-$FRONT_DEPS_TAG-$(sh ./subdirs_hash.sh $APP_DIR,$UI_DIR,$API_DIR)
ARG --global APP_IMG_NAME=$REG_TARGET/app:$APP_TAG
ARG --global SITE_IMG_NAME=$REG_TARGET/site:$ENV_NAME-$FRONT_DEPS_TAG-$(sh ./subdirs_hash.sh $SITE_DIR,$UI_DIR)
ARG --global SITE_IMG_NAME=$REG_TARGET/site:$ENV_NAME-$FRONT_DEPS_TAG-$(sh ./subdirs_hash.sh $SITE_DIR,$UI_DIR,$API_DIR)
ARG --global AUTH_IMG_NAME=$REG_TARGET/auth:$ENV_NAME-$FRONT_DEPS_TAG-$(sh ./subdirs_hash.sh $AUTH_DIR,$UI_DIR,$API_DIR)
ARG --global STORYBOOK_TAG=$ENV_NAME-$FRONT_DEPS_TAG-$(sh ./subdirs_hash.sh $UI_DIR)
ARG --global STORYBOOK_IMG_NAME=$REG_TARGET/storybook:$STORYBOOK_TAG
ARG --global BUSINESS_IMG_NAME=$REG_TARGET/business:$ENV_NAME-$(sh ./subdirs_hash.sh $BUSINESS_DIR)
Expand Down Expand Up @@ -259,6 +261,7 @@ front-deps: ## construit l'image contenant les dépendances des modules front
COPY ./package-lock.json ./
# dépendances des modules
COPY $APP_DIR/package.json ./$APP_DIR/
COPY $AUTH_DIR/package.json ./$AUTH_DIR/
COPY $SITE_DIR/package.json ./$SITE_DIR/
COPY $UI_DIR/package.json ./$UI_DIR/
COPY $API_DIR/package.json ./$API_DIR/
Expand Down Expand Up @@ -314,7 +317,9 @@ app-test-build: ## construit une image pour exécuter les tests unitaires de l'a
ENV ZIP_ORIGIN_OVERRIDE
# copie les sources du module à tester
COPY $APP_DIR $APP_DIR
COPY $API_DIR $API_DIR
COPY $UI_DIR $UI_DIR
RUN npm run build -w @tet/api
RUN npm run build -w @tet/ui
# la commande utilisée pour lancer les tests
CMD npm run test -w @tet/app
Expand Down Expand Up @@ -391,6 +396,35 @@ site-run: ## construit et lance l'image du site en local
--publish 3001:80 \
$SITE_IMG_NAME

auth-build: ## construit l'image du module d'authentification
ARG PLATFORM
ARG --required ANON_KEY
ARG --required API_URL
ARG vars
FROM +front-deps
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$ANON_KEY
ENV NEXT_PUBLIC_SUPABASE_URL=$API_URL
ENV NEXT_TELEMETRY_DISABLED=1
ENV PUBLIC_PATH="/app/packages/auth/public"
ENV PORT=80
EXPOSE $PORT
# copie les sources des modules à construire
COPY $AUTH_DIR $AUTH_DIR
COPY $UI_DIR $UI_DIR
COPY $API_DIR $API_DIR
RUN npm run build:auth
CMD ["dumb-init", "./node_modules/.bin/next", "start", "./packages/auth/"]
SAVE IMAGE --cache-from=$AUTH_IMG_NAME --push $AUTH_IMG_NAME

auth-run: ## construit et lance l'image du module d'authentification en local
ARG network=supabase_network_tet
LOCALLY
RUN docker run -d --rm \
--name auth_tet \
--network $network \
--publish 3003:80 \
$AUTH_IMG_NAME

storybook-build: ## construit l'image du storybook du module `ui`
ARG PLATFORM
ARG PORT=6007
Expand Down Expand Up @@ -563,6 +597,7 @@ dev:
ARG datalayer=yes
ARG business=yes
ARG app=no
ARG auth=no
ARG eco=no
ARG fast=no
ARG faster=no
Expand Down Expand Up @@ -623,6 +658,10 @@ dev:
RUN earthly +app-run --API_URL=$API_URL --ANON_KEY=$ANON_KEY
END

IF [ "$auth" = "yes" ]
RUN earthly +auth-run --API_URL=$API_URL --ANON_KEY=$ANON_KEY
END

RUN earthly +refresh-views --DB_URL=$DB_URL

BUILD_IF_NO_IMG:
Expand Down
Loading
Loading