From d4e89b28197bfe875b421871d05d045bb09bbcbd Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Mon, 25 Apr 2022 18:07:57 -0300 Subject: [PATCH 01/13] fix: remove smalltalk --- .gitattributes | 337 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1bdfe44 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,337 @@ +# Common settings that generally should always be used with your language specific settings + +# Auto detect text files and perform LF normalization +# https://www.davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/ +* text=auto + +# +# The above will handle all files NOT found below +# + +# Documents +*.bibtex text diff=bibtex +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain +*.md text +*.tex text diff=tex +*.adoc text +*.textile text +*.mustache text +*.csv text +*.tab text +*.tsv text +*.txt text +*.sql text + +# Graphics +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.tif binary +*.tiff binary +*.ico binary +# SVG treated as an asset (binary) by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.eps binary + +# Scripts +*.bash text eol=lf +*.fish text eol=lf +*.sh text eol=lf +# These are explicitly windows files and should use crlf +*.bat text eol=crlf +*.cmd text eol=crlf +*.ps1 text eol=crlf + +# Serialisation +*.json text +*.toml text +*.xml text +*.yaml text +*.yml text + +# Archives +*.7z binary +*.gz binary +*.tar binary +*.tgz binary +*.zip binary + +# Text files where line endings should be preserved +*.patch -text + +# +# Exclude files from exporting +# + +.gitattributes export-ignore +.gitignore export-ignore +# Auto detect text files and perform LF normalization +# https://www.davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/ +* text=auto + +*.cs text diff=csharp +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just comment the entries below and +# uncomment the group further below +############################################################################### + +*.sln text eol=crlf +*.csproj text eol=crlf +*.vbproj text eol=crlf +*.vcxproj text eol=crlf +*.vcproj text eol=crlf +*.dbproj text eol=crlf +*.fsproj text eol=crlf +*.lsproj text eol=crlf +*.wixproj text eol=crlf +*.modelproj text eol=crlf +*.sqlproj text eol=crlf +*.wmaproj text eol=crlf + +*.xproj text eol=crlf +*.props text eol=crlf +*.filters text eol=crlf +*.vcxitems text eol=crlf + + +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +#*.xproj merge=binary +#*.props merge=binary +#*.filters merge=binary +#*.vcxitems merge=binary +## GITATTRIBUTES FOR WEB PROJECTS +# +# These settings are for any web project. +# +# Details per file setting: +# text These files should be normalized (i.e. convert CRLF to LF). +# binary These files are binary and should be left untouched. +# +# Note that binary is a macro for -text -diff. +###################################################################### + +# Auto detect +## Handle line endings automatically for files detected as +## text and leave all files detected as binary untouched. +## This will handle all files NOT defined below. +* text=auto + +# Source code +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text +*.htm text diff=html +*.html text diff=html +*.inc text +*.ini text +*.js text +*.json text +*.jsx text +*.less text +*.ls text +*.map text -diff +*.od text +*.onlydata text +*.php text diff=php +*.pl text +*.ps1 text eol=crlf +*.py text diff=python +*.rb text diff=ruby +*.sass text +*.scm text +*.scss text diff=css +*.sh text eol=lf +*.sql text +*.styl text +*.tag text +*.ts text +*.tsx text +*.xml text +*.xhtml text diff=html + +# Docker +Dockerfile text + +# Documentation +*.ipynb text +*.markdown text +*.md text +*.mdwn text +*.mdown text +*.mkd text +*.mkdn text +*.mdtxt text +*.mdtext text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text + +# Templates +*.dot text +*.ejs text +*.haml text +*.handlebars text +*.hbs text +*.hbt text +*.jade text +*.latte text +*.mustache text +*.njk text +*.phtml text +*.tmpl text +*.tpl text +*.twig text +*.vue text + +# Configs +*.cnf text +*.conf text +*.config text +.editorconfig text +.env text +.gitattributes text +.gitconfig text +.htaccess text +*.lock text -diff +package-lock.json text -diff +*.toml text +*.yaml text +*.yml text +browserslist text +Makefile text +makefile text + +# Heroku +Procfile text + +# Graphics +*.ai binary +*.bmp binary +*.eps binary +*.gif binary +*.gifv binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +*.jpx binary +*.jxr binary +*.pdf binary +*.png binary +*.psb binary +*.psd binary +# SVG treated as an asset (binary) by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +# Audio +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +# Video +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.ogv binary +*.swc binary +*.swf binary +*.webm binary + +# Archives +*.7z binary +*.gz binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +# Fonts +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +# Executables +*.exe binary +*.pyc binary + +# RC files (like .babelrc or .eslintrc) +*.*rc text + +# Ignore files (like .npmignore or .gitignore) +*.*ignore text \ No newline at end of file From a09b45b8312b807e5b2ddb0827d1f7835f714f68 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Mon, 25 Apr 2022 18:10:14 -0300 Subject: [PATCH 02/13] fix: smalltalk try 2 --- .gitattributes | 346 +++++-------------------------------------------- 1 file changed, 36 insertions(+), 310 deletions(-) diff --git a/.gitattributes b/.gitattributes index 1bdfe44..a1e1e97 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,124 +1,27 @@ -# Common settings that generally should always be used with your language specific settings - -# Auto detect text files and perform LF normalization -# https://www.davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/ -* text=auto - -# -# The above will handle all files NOT found below -# - -# Documents -*.bibtex text diff=bibtex -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain -*.md text -*.tex text diff=tex -*.adoc text -*.textile text -*.mustache text -*.csv text -*.tab text -*.tsv text -*.txt text -*.sql text - -# Graphics -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.tif binary -*.tiff binary -*.ico binary -# SVG treated as an asset (binary) by default. -*.svg text -# If you want to treat it as binary, -# use the following line instead. -# *.svg binary -*.eps binary - -# Scripts -*.bash text eol=lf -*.fish text eol=lf -*.sh text eol=lf -# These are explicitly windows files and should use crlf -*.bat text eol=crlf -*.cmd text eol=crlf -*.ps1 text eol=crlf - -# Serialisation -*.json text -*.toml text -*.xml text -*.yaml text -*.yml text - -# Archives -*.7z binary -*.gz binary -*.tar binary -*.tgz binary -*.zip binary - -# Text files where line endings should be preserved -*.patch -text - -# -# Exclude files from exporting -# - -.gitattributes export-ignore -.gitignore export-ignore -# Auto detect text files and perform LF normalization -# https://www.davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/ -* text=auto - -*.cs text diff=csharp ############################################################################### # Set default behavior to automatically normalize line endings. ############################################################################### -* text=auto +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp ############################################################################### # Set the merge driver for project and solution files # # Merging from the command prompt will add diff markers to the files if there # are conflicts (Merging from VS is not affected by the settings below, in VS -# the diff markers are never inserted). Diff markers may cause the following +# the diff markers are never inserted). Diff markers may cause the following # file extensions to fail to load in VS. An alternative would be to treat # these files as binary and thus will always conflict and require user -# intervention with every merge. To do so, just comment the entries below and -# uncomment the group further below +# intervention with every merge. To do so, just uncomment the entries below ############################################################################### - -*.sln text eol=crlf -*.csproj text eol=crlf -*.vbproj text eol=crlf -*.vcxproj text eol=crlf -*.vcproj text eol=crlf -*.dbproj text eol=crlf -*.fsproj text eol=crlf -*.lsproj text eol=crlf -*.wixproj text eol=crlf -*.modelproj text eol=crlf -*.sqlproj text eol=crlf -*.wmaproj text eol=crlf - -*.xproj text eol=crlf -*.props text eol=crlf -*.filters text eol=crlf -*.vcxitems text eol=crlf - - #*.sln merge=binary #*.csproj merge=binary #*.vbproj merge=binary @@ -132,206 +35,29 @@ #*.sqlproj merge=binary #*.wwaproj merge=binary -#*.xproj merge=binary -#*.props merge=binary -#*.filters merge=binary -#*.vcxitems merge=binary -## GITATTRIBUTES FOR WEB PROJECTS -# -# These settings are for any web project. -# -# Details per file setting: -# text These files should be normalized (i.e. convert CRLF to LF). -# binary These files are binary and should be left untouched. +############################################################################### +# behavior for image files # -# Note that binary is a macro for -text -diff. -###################################################################### - -# Auto detect -## Handle line endings automatically for files detected as -## text and leave all files detected as binary untouched. -## This will handle all files NOT defined below. -* text=auto - -# Source code -*.bash text eol=lf -*.bat text eol=crlf -*.cmd text eol=crlf -*.coffee text -*.css text -*.htm text diff=html -*.html text diff=html -*.inc text -*.ini text -*.js text -*.json text -*.jsx text -*.less text -*.ls text -*.map text -diff -*.od text -*.onlydata text -*.php text diff=php -*.pl text -*.ps1 text eol=crlf -*.py text diff=python -*.rb text diff=ruby -*.sass text -*.scm text -*.scss text diff=css -*.sh text eol=lf -*.sql text -*.styl text -*.tag text -*.ts text -*.tsx text -*.xml text -*.xhtml text diff=html - -# Docker -Dockerfile text - -# Documentation -*.ipynb text -*.markdown text -*.md text -*.mdwn text -*.mdown text -*.mkd text -*.mkdn text -*.mdtxt text -*.mdtext text -*.txt text -AUTHORS text -CHANGELOG text -CHANGES text -CONTRIBUTING text -COPYING text -copyright text -*COPYRIGHT* text -INSTALL text -license text -LICENSE text -NEWS text -readme text -*README* text -TODO text - -# Templates -*.dot text -*.ejs text -*.haml text -*.handlebars text -*.hbs text -*.hbt text -*.jade text -*.latte text -*.mustache text -*.njk text -*.phtml text -*.tmpl text -*.tpl text -*.twig text -*.vue text - -# Configs -*.cnf text -*.conf text -*.config text -.editorconfig text -.env text -.gitattributes text -.gitconfig text -.htaccess text -*.lock text -diff -package-lock.json text -diff -*.toml text -*.yaml text -*.yml text -browserslist text -Makefile text -makefile text - -# Heroku -Procfile text - -# Graphics -*.ai binary -*.bmp binary -*.eps binary -*.gif binary -*.gifv binary -*.ico binary -*.jng binary -*.jp2 binary -*.jpg binary -*.jpeg binary -*.jpx binary -*.jxr binary -*.pdf binary -*.png binary -*.psb binary -*.psd binary -# SVG treated as an asset (binary) by default. -*.svg text -# If you want to treat it as binary, -# use the following line instead. -# *.svg binary -*.svgz binary -*.tif binary -*.tiff binary -*.wbmp binary -*.webp binary - -# Audio -*.kar binary -*.m4a binary -*.mid binary -*.midi binary -*.mp3 binary -*.ogg binary -*.ra binary - -# Video -*.3gpp binary -*.3gp binary -*.as binary -*.asf binary -*.asx binary -*.fla binary -*.flv binary -*.m4v binary -*.mng binary -*.mov binary -*.mp4 binary -*.mpeg binary -*.mpg binary -*.ogv binary -*.swc binary -*.swf binary -*.webm binary - -# Archives -*.7z binary -*.gz binary -*.jar binary -*.rar binary -*.tar binary -*.zip binary - -# Fonts -*.ttf binary -*.eot binary -*.otf binary -*.woff binary -*.woff2 binary - -# Executables -*.exe binary -*.pyc binary - -# RC files (like .babelrc or .eslintrc) -*.*rc text +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary -# Ignore files (like .npmignore or .gitignore) -*.*ignore text \ No newline at end of file +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain \ No newline at end of file From 53cabab738a2b4fbdd35bd4e8d9b3ea67c438865 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Tue, 26 Apr 2022 10:55:49 -0300 Subject: [PATCH 03/13] Update .gitattributes --- .gitattributes | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitattributes b/.gitattributes index a1e1e97..fcf5d7b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,7 +10,7 @@ # default for csharp files. # Note: This is only used by command line ############################################################################### -#*.cs diff=csharp +*.cs linguist-language=C# ############################################################################### # Set the merge driver for project and solution files @@ -60,4 +60,4 @@ #*.pdf diff=astextplain #*.PDF diff=astextplain #*.rtf diff=astextplain -#*.RTF diff=astextplain \ No newline at end of file +#*.RTF diff=astextplain From e7fcb56c03516781c645311da82113d1b1cefaad Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Tue, 26 Apr 2022 10:58:03 -0300 Subject: [PATCH 04/13] fix: removing smalltalk --- .gitattributes | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) diff --git a/.gitattributes b/.gitattributes index fcf5d7b..68b6cba 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,53 +11,3 @@ # Note: This is only used by command line ############################################################################### *.cs linguist-language=C# - -############################################################################### -# Set the merge driver for project and solution files -# -# Merging from the command prompt will add diff markers to the files if there -# are conflicts (Merging from VS is not affected by the settings below, in VS -# the diff markers are never inserted). Diff markers may cause the following -# file extensions to fail to load in VS. An alternative would be to treat -# these files as binary and thus will always conflict and require user -# intervention with every merge. To do so, just uncomment the entries below -############################################################################### -#*.sln merge=binary -#*.csproj merge=binary -#*.vbproj merge=binary -#*.vcxproj merge=binary -#*.vcproj merge=binary -#*.dbproj merge=binary -#*.fsproj merge=binary -#*.lsproj merge=binary -#*.wixproj merge=binary -#*.modelproj merge=binary -#*.sqlproj merge=binary -#*.wwaproj merge=binary - -############################################################################### -# behavior for image files -# -# image files are treated as binary by default. -############################################################################### -#*.jpg binary -#*.png binary -#*.gif binary - -############################################################################### -# diff behavior for common document formats -# -# Convert binary document formats to text before diffing them. This feature -# is only available from the command line. Turn it on by uncommenting the -# entries below. -############################################################################### -#*.doc diff=astextplain -#*.DOC diff=astextplain -#*.docx diff=astextplain -#*.DOCX diff=astextplain -#*.dot diff=astextplain -#*.DOT diff=astextplain -#*.pdf diff=astextplain -#*.PDF diff=astextplain -#*.rtf diff=astextplain -#*.RTF diff=astextplain From ea2092bb8aa49c58d9127a982b1042972c63e444 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Wed, 4 Jan 2023 00:59:44 -0300 Subject: [PATCH 05/13] fix: copy hook --- .../DevStore.WebApp.MVC.csproj | Bin 3806 -> 3802 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/web/DevStore.WebApp.MVC/DevStore.WebApp.MVC.csproj b/src/web/DevStore.WebApp.MVC/DevStore.WebApp.MVC.csproj index 44901ec3e7246f86e200c45befbc59bdf91b4b76..ba409cf47c5d045383cddc43bc8759c0debc57b9 100644 GIT binary patch delta 16 Ycmca7drNl18=lGUc&s*S@or%R07K>n0RR91 delta 20 ccmca5drx-58y-f5$**~=85K6G@@{1W09XVEJpcdz From f0c6f8f81966119f3f662e976e871c1ca337e642 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Thu, 5 Jan 2023 03:35:32 -0300 Subject: [PATCH 06/13] feat: disable https redirection --- .../Configuration/ApiConfig.cs | Bin 3070 -> 3758 bytes .../appsettings.Development.json | 1 - .../appsettings.Docker.json | 1 - .../appsettings.Production.json | 2 +- .../DevStore.Bff.Checkout/appsettings.json | 1 + .../Configuration/ApiConfig.cs | Bin 3604 -> 4292 bytes .../DevStore.Billing.API/appsettings.json | 1 + .../Configuration/ApiConfig.cs | Bin 3346 -> 4034 bytes .../DevStore.Catalog.API/appsettings.json | 1 + .../Configuration/ApiConfig.cs | Bin 3360 -> 4048 bytes .../DevStore.Customers.API/appsettings.json | 1 + .../Configuration/ApiConfig.cs | Bin 2300 -> 2988 bytes .../DevStore.Identity.API/appsettings.json | 1 + .../Configuration/ApiConfig.cs | Bin 3354 -> 4042 bytes .../appsettings.Development.json | 2 +- .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../DevStore.Orders.API/appsettings.json | 1 + .../Configuration/ApiConfig.cs | 6 +++++- .../Configuration/WebAppConfig.cs | Bin 3302 -> 4030 bytes 20 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/api-gateways/DevStore.Bff.Checkout/Configuration/ApiConfig.cs b/src/api-gateways/DevStore.Bff.Checkout/Configuration/ApiConfig.cs index 56486a860c57b74ec0d0b3204a0e113570e0c419..3a9b5182b2b94c3f576438d01b75126642901301 100644 GIT binary patch delta 535 zcmXYu%}T>i5QR@SDgoVyii^T+Hx(571g^AT7yjVSN~EM|Y(rxj(zLkqA+q-oL~!k* zZ{t&l-`tdNf9A|NGiPr84nCV-Tfuu*T{%4}(@3!j?vX!Bg-Sr3<{rt23y>M{323ZS zjX7UEE74R74MCl+mwI%eH_yzpBrecq@MHFJ%^S7}C!Rb4N}+@pag+*)La0#{ZnSo5 zn-hekax6F%RV&!LGP^Tcr(Ts(t=8KxOLaW6gyC3AuzJ85HgYrx>X3@DS4Y*Vad_$PxL->ug|$-u#BFF_lXj;ZXCN-8cCTc_;=XHG{{%9U3?jb`sjZGPRodK&0b4}7;o1KojKsPE5n(7tYT b4fh%S8K2|6uB>*o+UQgt!Or)7@Z0zYkicYo delta 16 YcmZ1{`%ioW2iIgjUcSx8cwR6905yaL4FCWD diff --git a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Development.json b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Development.json index a7837e7..18d2c31 100644 --- a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Development.json +++ b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Development.json @@ -22,7 +22,6 @@ "Application": "BffCheckout" } }, - "AllowedHosts": "*", "ShoppingCartUrl": "https://localhost:5411", "CatalogUrl": "https://localhost:5431", "CustomerUrl": "https://localhost:5441", diff --git a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Docker.json b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Docker.json index e017bc4..93903b0 100644 --- a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Docker.json +++ b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Docker.json @@ -22,7 +22,6 @@ "Application": "BffCheckout" } }, - "AllowedHosts": "*", "ShoppingCartUrl": "https://devstore-api-cart:5201", "CatalogUrl": "https://devstore-api-catalog:5301", "CustomerUrl": "https://devstore-api-customers:5401", diff --git a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Production.json b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Production.json index 75f63a0..819d791 100644 --- a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Production.json +++ b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Production.json @@ -22,7 +22,7 @@ "Application": "BffCheckout" } }, - "AllowedHosts": "*", + "ShoppingCartUrl": "https://devstore-api-cart:5201", "CatalogUrl": "https://devstore-api-catalog:5301", "CustomerUrl": "https://devstore-api-customers:5401", diff --git a/src/api-gateways/DevStore.Bff.Checkout/appsettings.json b/src/api-gateways/DevStore.Bff.Checkout/appsettings.json index 5a8fb55..7af1142 100644 --- a/src/api-gateways/DevStore.Bff.Checkout/appsettings.json +++ b/src/api-gateways/DevStore.Bff.Checkout/appsettings.json @@ -1,5 +1,6 @@ { "AllowedHosts": "*", + "USE_HTTPS_REDIRECTION": "true", "AppSettings": { "Issuer": "https://devstore.academy", "Audience": "DevStore" diff --git a/src/services/DevStore.Billing.API/Configuration/ApiConfig.cs b/src/services/DevStore.Billing.API/Configuration/ApiConfig.cs index 47d1d42b2fb90fbba00fdf01690c6e0e3ee672fa..04185a47366503dd0eef93230486e52007c5dda1 100644 GIT binary patch delta 539 zcmYL`PfEjJ5XDDC3brV&+*tV(ib#va1GrMrZdClU5-BnLY(r}j(xkZa3=(&4^ag?_ z5WI$akKu17f_#LTc{B6g8}hvNweh~*2)oi1Csz{7K)ht+p~YMRi9nr94T-5Ukc7Ge z>SafU#Cw~HWGsc;f;!`y7+T1KPL|(`t8G=${>VB5stH^Hs)`3x0cxgQ?$(-*m9LTH zycA7`x@S7F7=o%7^%oKg_A5^R$EnxMWXm>lCLG@kthzA4cgjx0b^w<$S4^?ofey=; z`Q^4FPi#XcrluL&)hUV@45~cUo_h9`=bpJr=_jxjDExbk%uj&UkgoO}EEyiEDZSq@ zuYSkmp02}BZfFLZFIVcVg#bK#`fMIu%O*eXLJp-b$8yO#qw32!$bs}M?t}K^R8E+^ bfoPBC$a91tB-<|EYOV6MzVy*){LK9VW7=kA delta 16 YcmX@2I7McI9M9wh+i5QUH6A668%{@}%hqL%gvT&ZX`D*miQN@`;p8k3MF#hv&H=0ybGz^8E| z_y~S?(v5`V&YU@O=FH9e`q%cyX5+Q3ww&&isIO2t@uQuE0!5%sV?z@193&-gf`)2o z!1-*fNF$Z%fjZNR4K4Lz%tRCNoZbX}$hVmCdb^}UBlm$~C;>(sQUO^2)$CMn^IKD^ zLz)X^*l{VpEE#)tY|6iT13sfZ=#2VD-`|)-rk`x&ySla;=o; z33O2X%&s0f;?z1kV{9`MyNHa5ISPLA*w?)0u)f}oxyq=gsFwe{M&>7A)_|(7J5+K! z)EoKz9do?j5phV>;m2QL0k2f(Csoa*#f5-crdGAKym5A~9e(SLPSw@9Zh5ZAy1E8A lQOC|>(2g#30rvsDBOXUQ)g{_D?cce@Dr>BK9yGpZ{s4BbY&8G? delta 16 YcmX>kKS^qX4EJOOKEBPjcwaCA05I_dw*UYD diff --git a/src/services/DevStore.Catalog.API/appsettings.json b/src/services/DevStore.Catalog.API/appsettings.json index 5c20f5e..ed1ab03 100644 --- a/src/services/DevStore.Catalog.API/appsettings.json +++ b/src/services/DevStore.Catalog.API/appsettings.json @@ -1,5 +1,6 @@ { "AllowedHosts": "*", + "USE_HTTPS_REDIRECTION": "true", "AppSettings": { "Issuer": "https://devstore.academy", "Audience": "DevStore", diff --git a/src/services/DevStore.Customers.API/Configuration/ApiConfig.cs b/src/services/DevStore.Customers.API/Configuration/ApiConfig.cs index 4aa7716892c0f6040739211089d1646c8b66ba71..338e09c688ef9b0d41903d23331f4b74622fd42e 100644 GIT binary patch delta 537 zcmXX@OG?B*6s#Z;FerkEpbWNIsGv9-x8gzv41$WEmB`qWv@>C15;B?KZVu5G@CFKQ z-FO2J;vuZp8A5+vy{h->b>26Bw?B7-Sr=U>JRnB`gNpaqoi#L4q6!m--}a z21gk3e08i8V@xq1s$9Lyp;Np$W{!q&MQu*L;a<;qgOK6KkrP50DVjzUOKC=$)Y#7a zowe5Hh{75rEhtp>G+4hBy9HZkPL;7*tCwLK>^WvlhT>|7wF4HkQBspqty$5C+WstV z9VonzDJ(%J+~pBu(2`v$?$T`{IqUfy)B1|Y5r&MIFdsXejH{>@x0-9ntmIp!p0nh+ zrJHyh^KMv2RPsbMD^6jg({f5@3j3^7qO>0io!%ot{Pr49S+uiEcm`qisf-G7yj+UHLBy{V?09yC^8p;FF0zh?>*fjUh+GA2$zCd9{} zp&A;nzj#)pk!I?GI*^g zS~dSIt#220hX`a!u;P^F&2sh9Y)`Nd`|KFiLdTk#>%cQJ7>+pyD;k|(Cm|;yJ3uk? z*}eR9b@#~W8LsgRpR(F>Sj!1@QdX-swY#OeuyEIgXDn;D52xpIt$Bxrc@CHZZtcEc z1`C#TYZcAuh;xXJW!ZyeD9#ivt8GR&bUH*WVKnmZ@?Psvbw2Y>Ep>FEd&Uh>N4Fs7 iYWw{Rw5@Ah!F@vEgyA?Z^i|JaOEq45<7=z@v+@t+ziAEt delta 15 XcmZ1@{zq_w82cn{zRg!SZ!iJ?FLVX6 diff --git a/src/services/DevStore.Identity.API/appsettings.json b/src/services/DevStore.Identity.API/appsettings.json index 5c20f5e..ed1ab03 100644 --- a/src/services/DevStore.Identity.API/appsettings.json +++ b/src/services/DevStore.Identity.API/appsettings.json @@ -1,5 +1,6 @@ { "AllowedHosts": "*", + "USE_HTTPS_REDIRECTION": "true", "AppSettings": { "Issuer": "https://devstore.academy", "Audience": "DevStore", diff --git a/src/services/DevStore.Orders.API/Configuration/ApiConfig.cs b/src/services/DevStore.Orders.API/Configuration/ApiConfig.cs index 29db1c4054a680399aaa762f07e1bff62f0a8947..b1bbc394a3fce5d7d84f5b311f5114cdbaa0a2c5 100644 GIT binary patch delta 542 zcmYLG%Sr=55Udb_(HzVzAOwe8JVcB?;7J4S!3RE0LBhBhH%sE~vX9`+kC>ZZA@~Je z{R#iWlhr+f3`=)ccUM)jZ+l<+@1_?|FoD56GA!UwGLJRZutw|OI5)wD@!%i_MhG1Yw)#1%~w#< zP~CAl)ff{MFXAs|Y`7md-5;l1v%!IG)|@c>HpIe(Iei!0Nx5ywCCq^-!xPcO&)U0V z!#vjwnW$7V)2jFybG)#T0X#lKTB$Z0{7+%yuTO$Aw&fP diff --git a/src/services/DevStore.Orders.API/appsettings.Development.json b/src/services/DevStore.Orders.API/appsettings.Development.json index e7a8f49..0c90334 100644 --- a/src/services/DevStore.Orders.API/appsettings.Development.json +++ b/src/services/DevStore.Orders.API/appsettings.Development.json @@ -22,7 +22,7 @@ "Application": "Orders" } }, - "AllowedHosts": "*", + "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DSOrders;Trusted_Connection=True;MultipleActiveResultSets=true" }, diff --git a/src/services/DevStore.Orders.API/appsettings.Docker.json b/src/services/DevStore.Orders.API/appsettings.Docker.json index d0186d5..3982aa5 100644 --- a/src/services/DevStore.Orders.API/appsettings.Docker.json +++ b/src/services/DevStore.Orders.API/appsettings.Docker.json @@ -22,7 +22,7 @@ "Application": "Orders" } }, - "AllowedHosts": "*", + "ConnectionStrings": { "DefaultConnection": "Server=database-order;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, diff --git a/src/services/DevStore.Orders.API/appsettings.Production.json b/src/services/DevStore.Orders.API/appsettings.Production.json index 8345e35..cc96e44 100644 --- a/src/services/DevStore.Orders.API/appsettings.Production.json +++ b/src/services/DevStore.Orders.API/appsettings.Production.json @@ -22,7 +22,7 @@ "Application": "Orders" } }, - "AllowedHosts": "*", + "ConnectionStrings": { "DefaultConnection": "Server=database-order;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, diff --git a/src/services/DevStore.Orders.API/appsettings.json b/src/services/DevStore.Orders.API/appsettings.json index 5c20f5e..ed1ab03 100644 --- a/src/services/DevStore.Orders.API/appsettings.json +++ b/src/services/DevStore.Orders.API/appsettings.json @@ -1,5 +1,6 @@ { "AllowedHosts": "*", + "USE_HTTPS_REDIRECTION": "true", "AppSettings": { "Issuer": "https://devstore.academy", "Audience": "DevStore", diff --git a/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs b/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs index 379a7eb..15a1801 100644 --- a/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs +++ b/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs @@ -34,7 +34,11 @@ public static void UseApiConfiguration(this WebApplication app, IWebHostEnvironm app.UseDeveloperExceptionPage(); } - app.UseHttpsRedirection(); + // Under certain scenarios, e.g minikube / linux environment / behind load balancer + // https redirection could lead dev's to over complicated configuration for testing purpouses + // In production is a good practice to keep it true + if (app.Configuration["USE_HTTPS_REDIRECTION"] == "true") + app.UseHttpsRedirection(); app.UseCors("Total"); diff --git a/src/web/DevStore.WebApp.MVC/Configuration/WebAppConfig.cs b/src/web/DevStore.WebApp.MVC/Configuration/WebAppConfig.cs index a30260be24a03894988ca8444162bf3cda8c8366..366cf3a703f60a7da9e372dd9525a0e1025f5129 100644 GIT binary patch delta 605 zcmY*WyH3ME5S&B=h!GHpP*8EA;2{txXegip1Zg0=8W4&cawJxQZ8>&CgAmkE-H#yA zBR+tFui!hFU8g~oeY>->v$N;lh0n$Jud@4|sy@|FgTW<2v|*7jzST2@kASGbK#`Dn zLL_3oLDXUs9iI2f3eZD_7Ez;meMK`oC^N*6dBWb1e9Lb-;^kyU89wq=lYYt8T From e0afe80f91ac44254bf5b00d356988b130b7394a Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Thu, 5 Jan 2023 03:40:45 -0300 Subject: [PATCH 07/13] fix: connection error --- .../DevStore.Bff.Checkout/appsettings.Development.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Development.json b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Development.json index 18d2c31..6b47703 100644 --- a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Development.json +++ b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Development.json @@ -29,7 +29,7 @@ "OrderUrl": "https://localhost:5471", "MessageQueueConnection": { - "MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10;username=devstore;password=devstore00" + "MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10;username=devstore;password=devstore" }, "AppSettings": { "JwksUri": "https://localhost:5421/jwks", From f9e1bdcb74f7eb459bbc7fc59b8888e6b6cd7cd0 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Thu, 12 Jan 2023 22:56:46 -0300 Subject: [PATCH 08/13] feat: status page, ssl changes --- DevStore.sln | Bin 25204 -> 13258 bytes docker/certs/devstore.crt | 17 ++++ docker/docker-compose-local-light.yml | 65 +++++++++----- docker/docker-compose-local.yml | 62 +++++++++---- docker/docker-compose.yml | 28 +++--- docker/nginx/devstore.conf | 43 ++++++++- .../Configuration/ApiConfig.cs | Bin 3758 -> 6000 bytes .../DevStore.Bff.Checkout.csproj | Bin 3030 -> 3188 bytes .../Services/OrderService.cs | Bin 4766 -> 4772 bytes .../appsettings.Docker.json | 12 +-- .../appsettings.Production.json | 12 +-- .../Properties/launchSettings.json | 12 +++ .../DevStore.MessageBus/MessageBus.cs | Bin 7118 -> 7258 bytes .../Configuration/DbHealthChecker.cs | 3 - .../EasyNetQRabbitHealthCheck.cs | 53 +++++++++++ .../Configuration/GenericHealthCheck.cs | 82 ++++++++++++++++-- .../DatabaseFlavor/DatabaseType.cs | 1 + .../DatabaseFlavor/ProviderConfiguration.cs | 19 ++-- .../DatabaseFlavor/ProviderSelector.cs | 18 ++-- .../DevStore.WebAPI.Core.csproj | Bin 2284 -> 3522 bytes .../Extensions/HttpExtensions.cs | Bin 1482 -> 3836 bytes .../Identity/JwtConfig.cs | Bin 3264 -> 3234 bytes .../Configuration/ApiConfig.cs | Bin 4292 -> 4298 bytes .../DevStore.Billing.API.csproj | Bin 3332 -> 2472 bytes .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../Properties/launchSettings.json | 12 +++ .../Configuration/ApiConfig.cs | Bin 4034 -> 4040 bytes .../DevStore.Catalog.API.csproj | Bin 3126 -> 2238 bytes .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../Configuration/ApiConfig.cs | Bin 4048 -> 4054 bytes .../DevStore.Customers.API.csproj | Bin 3574 -> 2686 bytes .../appsettings.Development.json | 2 +- .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../Configuration/ApiConfig.cs | Bin 2988 -> 3104 bytes .../DevStore.Identity.API.csproj | Bin 3548 -> 2662 bytes src/services/DevStore.Identity.API/Program.cs | Bin 1584 -> 1626 bytes .../appsettings.Development.json | 2 +- .../Configuration/ApiConfig.cs | Bin 4042 -> 4044 bytes .../Controllers/OrderController.cs | Bin 3286 -> 3510 bytes .../Controllers/VoucherController.cs | Bin 2138 -> 2142 bytes .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../Properties/launchSettings.json | 12 +++ .../Configuration/ApiConfig.cs | 4 +- .../DevStore.ShoppingCart.API.csproj | 7 -- .../appsettings.Docker.json | 2 +- .../appsettings.Production.json | 2 +- .../appsettings.json | 3 +- .../Configuration/WebAppConfig.cs | Bin 4030 -> 4146 bytes .../Properties/launchSettings.json | 8 -- .../appsettings.Docker.json | 8 +- .../appsettings.Production.json | 8 +- src/web/DevStore.WebApp.MVC/appsettings.json | 3 +- .../DevStore.WebApp.Status.csproj | 51 +++++++++++ src/web/DevStore.WebApp.Status/Dockerfile | 24 +++++ .../Dockerfile.original | 22 +++++ src/web/DevStore.WebApp.Status/Program.cs | 67 ++++++++++++++ .../Properties/launchSettings.json | 14 +++ .../appsettings.Development.json | 43 +++++++++ .../appsettings.Docker.json | 32 +++++++ .../appsettings.Production.json | 32 +++++++ .../DevStore.WebApp.Status/appsettings.json | 6 ++ src/web/DevStore.WebApp.Status/devstore.css | 8 ++ 66 files changed, 688 insertions(+), 127 deletions(-) create mode 100644 docker/certs/devstore.crt create mode 100644 src/building-blocks/DevStore.Core/Properties/launchSettings.json create mode 100644 src/building-blocks/DevStore.WebAPI.Core/Configuration/EasyNetQRabbitHealthCheck.cs create mode 100644 src/services/DevStore.Billing.DevsPay/Properties/launchSettings.json create mode 100644 src/services/DevStore.Orders.Domain/Properties/launchSettings.json create mode 100644 src/web/DevStore.WebApp.Status/DevStore.WebApp.Status.csproj create mode 100644 src/web/DevStore.WebApp.Status/Dockerfile create mode 100644 src/web/DevStore.WebApp.Status/Dockerfile.original create mode 100644 src/web/DevStore.WebApp.Status/Program.cs create mode 100644 src/web/DevStore.WebApp.Status/Properties/launchSettings.json create mode 100644 src/web/DevStore.WebApp.Status/appsettings.Development.json create mode 100644 src/web/DevStore.WebApp.Status/appsettings.Docker.json create mode 100644 src/web/DevStore.WebApp.Status/appsettings.Production.json create mode 100644 src/web/DevStore.WebApp.Status/appsettings.json create mode 100644 src/web/DevStore.WebApp.Status/devstore.css diff --git a/DevStore.sln b/DevStore.sln index 152cd3498490d654b3a651fb7a50bc261db6b5d6..8f21fab5e79d7c6f2ac78c7b0db878b45cbe8865 100644 GIT binary patch literal 13258 zcmcIr%W@mJ6t;)yD%Og6Kjq?XJKEvoqNjEnJ?Wsy(H zFXW<02~Cg`(LGGL$|OPf+;dOkaqs2zfB*fTi;t7L`D`(JSYG}-S**s>%bVruelokf znN3&A$?WMeOs38Emti*lJcc>Vd=UppHNyDfPuahD{Z?FTz&2Pf!#`XSF~TEC>WYji zj=}cR5**}}R<#$)>iqzOsN|6lCB35aN6cY>)O;ybu(3%jTRV@{&YAz8IoFnOYKwQ_J1ng_esxz>;Y35%hcTG#9`+n`X z_S#vDu(K6nCJ>}3t`VagR0$S)&(C20AI)u4VEY1ID;vD#NHZ!BV@@Mg5sJK*Mhd2= z6!Z*MKioG@%gORVx+G>L>c0aU2G5Tv_*HO9U1O!-a5eZG1?*QHJt0# z1!RN~NX4Vh*H|0%f4yNiRuzLkuv;|Ta70PCZ(#?;HHB-nZouAO4v`$-LJD%dz5wGuY-?!$SWjOtzawR0QWCkeQ?oJMSKv} zAB}tlE$Gc5c49fFNu9-<2D?ky)>e9_6(T~wjueC-V>LmZa&M$$QsJXv!w?6$7s1+$|6%9=%|OIM7}&C(igZC(%!1UG_?u3hrTyJcsOuVfafsDUs$CT#Q}`C6Asd ze}KK4eI8Gqj$cw+vYTmpK5T|}+z1d^N(l!NcW^*Us~{l|6|zKvU($FZ+_9ta54iE+ z>0v%T=|wwh&xv-l>jNxzNTe`abOu9|XyKeP1S?c?9;mFSfcX8KKD?}F2t;UvhT`S=hgVvczIVN@i4XKr$%GuZV5Yv!qqr)o^DnS+vo zCJ=SP%}rf}38XD&-O%RYVbl$F;^P=UPtfBw9!rF~GY^k;{iqqOO$=NeEH7A8k|9$= zFso=Cg5VY5XQ@>D*o>#kPpt#-ILbb*F$C+NTz~{b0t-`BP_K|R!bHHrR+LmsAKQ&^ zvSQ|;!b35E@&R!a5-0{m2y8Lb4U`WCZis`GgPY}exrwKvoQH}Bn;A*QxEi43uo>>^ zC?U9{z!qT@lPP7O_Tk~YuPB4;no|h}{jLY^r?cDf^y1y-^#;m*P;vb3r5%YUdJD=hEzctflyl6TzvXP5- zPzl`OkW<>03EyBeTP!=2%E~FD9i}4_F#8U4F65Z~ z!%uJ^m>BNsSOk|jc2dVd zpowK>F6vm6+4j+K2w-Bkr(+ph=GZA6hk+)RnYng7mgLxdbSz5RGr+`fPscL2%&}8C z4g*arGjpwuB}snf_M35!8UUCW?(0|tmpOJ)$3dWpWoEA3*CmC9J~|dvE;7Kxa8JiF zxXiIrIt~L(EHiUa$D$fX=JuQGaR^{yxTj+oT;|v*9fyG?mYKPzV^QIykB&nC6T>|n z%iuD{PU$!dG_lOgwdZ3=?Wd29Ma85HFfrWIu?#MA?39kfKoiT%T-33s_LRB(=Dr>R zm>BNqSO%9lc1p)#powK>F6vlR`|6|P5WvK6PscL2%&}8C4g*arGjmbLqS{v<9ftrW zhI=}e!DWt}(s3AQVwsscU50z9ut7QQxtT8~&4Fs*kCXe?;^0rS`v$6CLI35(pGN!K#Ph*;!IL@erFi-<+0 zBVtis+J<96cW3*oOFGPY=~&b?)(f$y53DC*L2p+t#G;<9UWi5Y)`(anPrDvV8loa% zQEzZWENXA+g;><86cLNMsUydt=A(#MWI7@iRd6?67c@||I+pa~M8u+o&=#?zsuvN9 z4$@Y~l6IAdSkyS#ax5utwO*GrM7D?}HIH71McIEZ#G*X7mySglVMHvtK3W}162gdB zbO1!eqAVdI7Ike##G-gPA{HG0Eyt1{yCY(81W*)Z2z5r%o)0QnCK=i&evVWjy!+-vv3y?0mcTE{E*!F}z%RoS)s z=q}tFT|HCTNB2@?SN`fsr5{zs^*fcE>+FrYbbs*YS8D66o(%0=>gxKo=BYb#CvK=8 zZ~mR?m)`WP+PwSp%s;pP%sy?0_5Y~$Pursc8PqTPkAPd$ZCJ)S>^{ujdGp?lzVzQ#l~x1xmKz|Do+#;tWW*4?EqTj+eI zW1yBOS%~JTYK{Hht)BUhTKl~?gS!X9_PyTmz+-=SwNu+$J-^UuD=71$W(}c&rAqRJw6+c-#~wt!f30f&OJ&Kp@Zy@Nk8y; z=KIViq4Pp#36ZMuopcMXwmQ(oq4*v8vonvuN}QrC3+dv}Ys*+?AcW4KQ)u*7CH=wR z@8bOVtuEZX3Nl}a?sLyG@?DCPk)(~x$Ksuyu#i+wRXXt8&81~?)fjsmI2-kd-^c0= zm+B2zs!w6UcoOCr{B_ZSK#-{z%VkbdJZ`9?9=Q?b05ojnoFM zV~vBpVPUW~E44rIScm$^1HGi)M8D9#lHK1(;-9={#@}Ab^8`I#x}WqrkyqcxBY27L z+|Ryed?%jjJYBcmiEPca-bxJd!>tT<9$$RpNZJq2(X^EgybS#bKRZwjP{1Rf2^qZa z*7Mz;p7qTALtLX(!Q-wK+r5{ai5T2>9}k0P!NLy38(g1?&xH;!Av)mz9sSXXwW6?V@p`40nHW7GkT2hfkD>SkgN6PQbR+^?KNzgkAKvH}dPPJaUmExyiHmb_OJom+L``@bB5}L}{L>eRyjCiic@)qZ zB2>IppFHkgBzNMDB>m4zLUhR}B3JUnB(hA~x ztQDS}@xr=Cc&rt{k%{_I{+hg9)QhU}oj7CM6Z{inComur#Tnjes2W6UMCw@WkPRSi zIn`Y(Jfp4S@H_ZRKQARkvCe_#`kt6QWosGF&6|B4mLCI182=yN<-T z!k6d{c+XT+&J6T3XdLV`GAQu$!KV;t+ z`Qve7PV%^sPFGS$Bb{ckey*LI1akGN@F$)lJ`Lk%>=1rD%qbDSgfr|CUIIx>RXdC> z!GETM@z^o(+%JRw#^)g}{75{;HeWL0x{L09Yxm1yzjn1m7{f=u93m&QJw(`Gjc;c> zGV^7OEXWBVDWY$lWCZ=|k;r4sM!ZsH;NmvcJYF8Dt^1{s>Q>1jSo<*3#jGtOKQgiS z14h3g&LaE52$304GW5j%WF*N_ai`z@`p{m7Z2z?~5{!h7=^^D7b8;y^Q6(L6p~SLe zNy8YN`Bi)}(jhaB7r}3Yu@^Is^cLpr$S{Z5$Z@ZG%Hf>1AwX0`{K!%Q>VIgDdV zrF&IK<7-1chfxGEDtQU!#6TJ;gjp%F(DV(^B|Awxg)Jjy#mD#ACYACY$D^KWH79{w zy(($ob%{=~IgF*rjx&-AIS0nl$c6mN$jb_!fZUiLBxg>Z3XjoeX~g+S@}ei=VKk9@m1iR5cm$%IS~_6DmG<5))GNQb;fSPg--!aK*YIr3rF1}{M-q~Bh9B`^KT zOCz5lic-1o8MT3Oi{vj-PA!LWRhwT@w@N0=kTagcI|K{G+#;4NSS>~#WJIWkZ)Y?? zzMG5`Q7$v@b=Gb?@|O3xxP9Z-^?aplBDOe`u$G2(U19y(L(Rh9T@ifbWj+K|c41HzIs>ZSWT-0q_EX(gak#&hH5EGu|XA+%ub8qeGWmh!j zaIDjBEa@xDt+`%yNox+zGJi=g?PeO<)61@C%;8u^FD>aS%dNRyc1ddv&oX~WFYRVm z+SALfXw2bQM=veuE6c69UUo@q4$m@w`+8|L)6}M3c0*$h$9j5cM_*ZP7JAtotvNi) z{3X4#n|o_dFT0{KhhrVRw4|>rx8{1;C9OF;%lsw1w40M`PcOToF^6Lvy|kpSEVt%* z*(I$xJj?v;>!sDqY@2%74UIV*>*=K(ePy{>=w)}b=I|`@m-NzZmbyK??25)5j&=0X zlD@Lsn(JkkwC380Jej`sAjD;je+*3nB#`pR-^u9scXn!~fqU(!pv zwJq)GWmh!jaIB-3mh_e7)?6>Uq&0_UnZKl$cI$iE)61@C%;8u^FD>aS%dNRyc1ddv z&oX~OFPpD;I$R$XcFX!nYlhfI+yAJG6s{K;+4_o|3>&Yk&t9!_C{8@FjH*43L zbMTF)k(GakyMNWC+;Xq2z@_ExX2}BC?S|DRm8|_`kC5hjShY!|-7Zs+N;~N!iQDZB z6{)n7PNI_Uv-lFC`CdwqN;|$2m8?g%+5IR|36?fH^d&0o_9Kc^wxO4BZnJApn^fBE z>(e%sHoNb%NhMljvsX@=RNAd+j8xj`Q0n7$JG?|H+pt8;liKXP(k7LB55`v$&38nJ zRNC!Jni&WbA+}?{_1Wc9B7% z(k=@eskDo-5|ws2!APZDWDuxqo=@Ale=75LsV_PCzY(76U>{NT?%w}$azD3L{^Id4 zANa_BqxSM9AGp&uue~kTX-oZajQ9%N|sm&Gp?P-ioi!`M#f?626~hPnhtv Me|-c#M~P?u5A9t|SpWb4 diff --git a/docker/certs/devstore.crt b/docker/certs/devstore.crt new file mode 100644 index 0000000..4d9147a --- /dev/null +++ b/docker/certs/devstore.crt @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICrzCCAZcCFHiYvlar2V8OJiS2FOiG9Qt6x6ILMA0GCSqGSIb3DQEBCwUAMBQx +EjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzAxMTIxOTQ5NDVaFw0yNDAxMTIxOTQ5 +NDVaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAK7iVnSKt/udx2SIko6MjrjwErKxqjeOiF8bk9ODqO3ObIAwjZqH +7SRR4pV+v+QMFPAt8Aaikc9PW0O2LySrQGuOa67shYRovJQSvT3NQsc08SEmsmRv +cczjl+sJzHVNun/kdNoTQJDuKnf6vlGZFxsA2WleYVLf0eMvlX23TqQsuvo7p4kJ +BAyqWSzVBvRcifI2pTZj9xhGD5HHHCKRGYTNbc4pSB5XNnHNm0g88jtAqOdpewQH +3YeDsLIAoTDhmxy5qXcDqW8KQHvX8d4jvR/FoalEjiRp5wyjKIu3wd36vMAtmZdR +usDMpe6BlSra4prqfu/XE76/S3h9wV3B+5cCAwEAATANBgkqhkiG9w0BAQsFAAOC +AQEAkqmyJ0R0SD2BLnqNP+ZTcfkSCIMNxWjy0T1rF3QXWK3JQC3L2MRTGDK+haeI +VdmeBPzcbjUA+xaBWQhp5j7KmQR4uh4xzwI/Jtpab8mk6IDBJHZEe/m9xGpJxZbB +MND84CvaaByWxJUolyql3XPgBSd6HAo++5cOzS8GkqSGAL9tdy6V4ONQHVIOzuE2 +Zz6Yoexm47noiQoFyTodjt/SifiE9w6BvsmjapoACA440Uf2wcQKWFgqVKwMwKS+ +5z1vQfIB3COj4ioK6rznZXei5hfs/TJ07dBW7v/eOI3HvlLC5Gkr0lRdFoYh74I3 +UFjMLGfhn5rsgxil5napZOcCPw== +-----END CERTIFICATE----- diff --git a/docker/docker-compose-local-light.yml b/docker/docker-compose-local-light.yml index a691a1f..05304da 100644 --- a/docker/docker-compose-local-light.yml +++ b/docker/docker-compose-local-light.yml @@ -10,13 +10,15 @@ services: dockerfile: ./web/DevStore.WebApp.MVC/Dockerfile restart: always environment: - - ASPNETCORE_ENVIRONMENT=Docker - - ASPNETCORE_URLS=http://*:5001 - - LC_ALL=en_US.UTF-8 - - LANG=en_US.UTF-8 + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: "https://+:443;http://+:80" + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" # Change the two lines above to your culture (ex pt_BR) volumes: - - dpkeys:/var/data_protection_keys/ + - ./certs:/https:ro depends_on: - api-catalog - api-identity @@ -28,7 +30,9 @@ services: image: rabbitmq:3-management container_name: devstore-rabbit expose: + ports: - 5672 + - 15672 environment: RABBITMQ_DEFAULT_USER: "devstore" RABBITMQ_DEFAULT_PASS: "devstore" @@ -45,14 +49,14 @@ services: api-identity: image: desenvolvedorio/devstore-api-identity:latest - container_name: devstore-api-identity + container_name: devstore-api-identity build: context: ../src dockerfile: ./services/DevStore.Identity.API/Dockerfile restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5101;http://+5102 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSUsers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -73,7 +77,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5201;http://+5202 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSShoppingCart;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -95,7 +99,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5301;http://+5302 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSCatalog;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -116,7 +120,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5401;http://+5402 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSCustomers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -138,7 +142,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5501;http://+5502 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx volumes: @@ -160,7 +164,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5601;http://+5602 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSBilling;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -183,7 +187,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5701;http://+5702 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -196,6 +200,28 @@ services: - api-identity - generate-pfx + web-status: + image: desenvolvedorio/devstore-web-status:latest + container_name: devstore-web-status + build: + context: ../src + dockerfile: ./web/DevStore.WebApp.Status/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:443;http://+:80 + CUSTOMCONNSTR_DefaultConnection: "Server=database-devstore;Database=DSStatus;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + AppSettings__DatabaseType: SqlServer + USE_HTTPS_REDIRECTION: "false" + volumes: + - ./certs:/https:ro + - ./certs/devstore.crt:/usr/local/share/ca-certificates/devstore.crt + depends_on: + - database-devstore + + generate-pfx: image: emberstack/openssl container_name: generate-pfx @@ -206,14 +232,11 @@ services: rm -f /https/devstore.academy-localhost.pfx && openssl genrsa -out devstore.rsa 2048 && openssl req -sha256 -new -key devstore.rsa -out devstore.csr -subj '/CN=localhost' && - openssl x509 -req -sha256 -days 365 -in devstore.csr -signkey devstore.rsa -out devstore.crt && - openssl pkcs12 -export -out /https/devstore.academy-localhost.pfx -inkey devstore.rsa -in devstore.crt -password pass:9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe && - rm devstore.rsa devstore.csr devstore.crt)" + openssl x509 -req -sha256 -days 365 -in devstore.csr -signkey devstore.rsa -out /https/devstore.crt && + openssl pkcs12 -export -out /https/devstore.academy-localhost.pfx -inkey devstore.rsa -in /https/devstore.crt -password pass:9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe)" seq: image: datalust/seq:latest - expose: - - 5341 ports: - 5341:80 environment: @@ -230,9 +253,9 @@ services: ports: - "7500:80" - "7501:443" + - "7510:8080" + - "7511:4443" depends_on: - web-mvc -volumes: - dpkeys: - + diff --git a/docker/docker-compose-local.yml b/docker/docker-compose-local.yml index 070674b..23fef49 100644 --- a/docker/docker-compose-local.yml +++ b/docker/docker-compose-local.yml @@ -10,13 +10,15 @@ services: dockerfile: ./web/DevStore.WebApp.MVC/Dockerfile restart: always environment: - - ASPNETCORE_ENVIRONMENT=Docker - - ASPNETCORE_URLS=http://*:5001 - - LC_ALL=en_US.UTF-8 - - LANG=en_US.UTF-8 + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: "https://+:443;http://+:80" + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" # Change the two lines above to your culture (ex pt_BR) volumes: - - dpkeys:/var/data_protection_keys/ + - ./certs:/https:ro depends_on: - api-catalog - api-identity @@ -53,7 +55,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5101;http://+5102 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-identity;Database=DSUsers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -83,7 +85,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5201;http://+5202 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-cart;Database=DSShoppingCart;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -114,7 +116,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5301;http://+5302 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-catalog;Database=DSCatalog;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -144,7 +146,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5401;http://+5402 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-customers;Database=DSCustomers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -166,7 +168,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5501;http://+5502 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx volumes: @@ -198,11 +200,11 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5601;http://+5602 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-billing;Port=5432;Database=DSBilling;User Id=sa;Password=MyDB@123" - AppSettings__DatabaseType: Postgre + AppSettings__DatabaseType: SqlServer volumes: - ./certs:/https:ro depends_on: @@ -230,7 +232,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5701;http://+5702 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-order;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -252,6 +254,38 @@ services: environment: ACCEPT_EULA: "Y" + + database-status: + image: mcr.microsoft.com/mssql/server:2017-latest + container_name: devstore-database-status + expose: + - 1433 + environment: + SA_PASSWORD: "MyDB@123" + ACCEPT_EULA: "Y" + + + web-status: + image: desenvolvedorio/devstore-web-status:latest + container_name: devstore-web-status + build: + context: ../src + dockerfile: ./web/DevStore.WebApp.Status/Dockerfile + restart: always + environment: + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: https://+:443;http://+:80 + CUSTOMCONNSTR_DefaultConnection: "Server=database-status;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + AppSettings__DatabaseType: SqlServer + USE_HTTPS_REDIRECTION: "false" + volumes: + - ./certs:/https:ro + - ./certs/devstore.crt:/usr/local/share/ca-certificates/devstore.crt + depends_on: + - database-status + # This service is used to generate the PFX file for gRPC communication generate-pfx: image: emberstack/openssl @@ -280,6 +314,4 @@ services: depends_on: - web-mvc -volumes: - dpkeys: diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 90b8aeb..d165cab 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -30,10 +30,12 @@ services: container_name: devstore-web-mvc-ecommerce restart: always environment: - - ASPNETCORE_ENVIRONMENT=Docker - - ASPNETCORE_URLS=http://*:5001 - - LC_ALL=en_US.UTF-8 - - LANG=en_US.UTF-8 + ASPNETCORE_ENVIRONMENT: Docker + ASPNETCORE_URLS: "https://+:443;http://+:80" + ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe + ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" # Change the two lines above to your culture (ex pt_BR) volumes: - dpkeys:/var/data_protection_keys/ @@ -59,7 +61,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5101;http://+5102 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-identity;Database=DSUsers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -86,7 +88,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5201;http://+5202 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-cart;Database=DSShoppingCart;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -114,7 +116,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5301;http://+5302 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-catalog;Database=DSCatalog;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -141,7 +143,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5401;http://+5402 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-customers;Database=DSCustomers;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -160,7 +162,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5501;http://+5502 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx volumes: @@ -188,7 +190,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5601;http://+5602 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-billing;Database=DSBilling;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -217,7 +219,7 @@ services: restart: always environment: ASPNETCORE_ENVIRONMENT: Docker - ASPNETCORE_URLS: https://+:5701;http://+5702 + ASPNETCORE_URLS: https://+:443;http://+:80 ASPNETCORE_Kestrel__Certificates__Default__Password: 9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe ASPNETCORE_Kestrel__Certificates__Default__Path: /https/devstore.academy-localhost.pfx CUSTOMCONNSTR_DefaultConnection: "Server=database-order;Database=DSOrders;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" @@ -232,8 +234,6 @@ services: seq: image: datalust/seq:latest - expose: - - 5341 ports: - 5341:80 environment: @@ -249,6 +249,8 @@ services: ports: - "7500:80" - "7501:443" + - "7510:8080" + - "7511:4443" depends_on: - web-mvc diff --git a/docker/nginx/devstore.conf b/docker/nginx/devstore.conf index 749de3e..dff369e 100644 --- a/docker/nginx/devstore.conf +++ b/docker/nginx/devstore.conf @@ -1,12 +1,18 @@ upstream web-mvc { - server web-mvc:5001; + server web-mvc; +} +upstream web-status { + server web-status; } server { listen 80; - server_name localhost; + server_name $hostname; + location /status { + rewrite ^/status(.*)$ http://localhost:7510/status$1 redirect; + } location / { proxy_pass http://web-mvc; } @@ -16,6 +22,15 @@ server { # } } +server { + listen 8080; + server_name $hostname; + + location / { + proxy_pass http://web-status; + } +} + server { listen 443 ssl; server_name $hostname; @@ -24,6 +39,9 @@ server { ssl_ciphers HIGH:!aNULL:!MD5; ssl_certificate /etc/nginx/nerdstore-certificate.pem; ssl_certificate_key /etc/nginx/nerdstore-certificate.key; + location /status { + rewrite ^/status(.*)$ https://localhost:7511/status$1 redirect; + } location / { proxy_pass http://web-mvc; proxy_redirect off; @@ -35,4 +53,25 @@ server { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $server_name; } +} + +server { + listen 4443 ssl; + server_name $hostname; + + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_certificate /etc/nginx/nerdstore-certificate.pem; + ssl_certificate_key /etc/nginx/nerdstore-certificate.key; + location / { + proxy_pass http://web-status; + proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Connection keep-alive; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $server_name; + } } \ No newline at end of file diff --git a/src/api-gateways/DevStore.Bff.Checkout/Configuration/ApiConfig.cs b/src/api-gateways/DevStore.Bff.Checkout/Configuration/ApiConfig.cs index 3a9b5182b2b94c3f576438d01b75126642901301..49b30e3e95d1569e07f5b2f32faa5e4c825e1c0f 100644 GIT binary patch literal 6000 zcmeHLTTdEM5T55I{SO<{q?%ZKZ)+1pQ+V(a(e%MI&5DaqktHn9TEky&`+a8|*t5GV zprj9tA>{1sd~=^OGk<=MB$1Bvn>?cusF$JjZ95AsQUm4?vgLK2 z_x*XETBI|@qxbjVxp&~39uz`b(TZ_3-=ai+a1j;&lfOPZ@(LbF4-TBZG-`O)#Pbl( z5?t@$%Z}$O#4;2g)1H=LkKuJ4!~v17@yp};5xfbVx3Pn~)RA8z#M{_$9XYPL;5F@8 zlqLO5BHM1~eBDsqd6BT?>CEISmfGHC=`$x#QsrRi@`Z9e0I!>}_2^M)y&9ISdCaUl zk$iNz>}Pb8xO;l8W{gBWfo7S+Gk-Md*)`A2OhT0@hSyjQrsZ})wM@QpjT(I))%1D_ z>!}~#L$VDy$Ndog+r{;EDOJO@^~%fAi@COa+11A>lRLXJdrukZE3y2*RS%i%1pdQw zj@G2_tQY+VvBP+a;jimQuK_&-GUJoz=J{Ev?S8WGi+P^NjNAgP5p*|1<|bWUwGo9@ zjg&{hGI})+ynsAi`RpQl1kc}uZ6a7K5WeZ){tbNbp(N@q@xI~o-go(yXL}Vq55Tjc zZ^&1f$d2RQWcelUoFBCCT?m9Nm+SIK!4!)T5dbp;ej@L2t(;y0JphLRQ0Q5P7=R{s zWb;KdJq_tGJSm9Cry+JXYX?1jSGUJ(@Be5Et$D5Puys;cT@{@>%XK^#$W)Q5(*2HV=X%q(TG##T(D3YPP2JfII2vEuJJRW1t zQHLzr_eS81l{q_C#`@yZxtx+|U!|)ccTj6SEmjw-BiJL)It}I=Rw3k|*rJB5mMzkP zeX)aDi}f3;8B${n#Fghia}xVZK4H(!8jmv|T7r`=&cp89R~<~f*k`koC!XfB5jZzn zueUI)g3EkrKL4`fICj~ z-nyMUUjzKdc&57Gd7Ji0BIoPGw70gfpL;o(;fZaTov||j7OMbSIw|x{-!64$fj;)J zQyF>E=&T?Fr5n8Edrmu8A*;+fS5b*>L6063fSaM?Z2+{Wlmm+d^UrK2K9iYM{RQg! zLsY>v^rh#h_Zql9!;=F<5Z5Z6atd{fZ&`!y;>RkSa{_Y0s=mz1rWfNzqs3-b31}4A zd=?>P*goc&vyj>CDG1b*&IkN1-J*4QUiP3H?dIl9ZdT*(2;R|$Er|BC35~BSW~<`< Tvzh8YO>VQHt^T>AcN6&w>UEp9 delta 129 zcmeyMw@!9L57TBpW;xc$9AYw)b6ABG9T`%9(48TbArFX)7%~}>89acjM1~xO5{3*0 t=gH>cnv;)-ifrZ)6kxN&qY$V#6{tCzL4!ewK_AS68B)cdG}%#H9{{f$8}k4F diff --git a/src/api-gateways/DevStore.Bff.Checkout/DevStore.Bff.Checkout.csproj b/src/api-gateways/DevStore.Bff.Checkout/DevStore.Bff.Checkout.csproj index 74634dd338a90711ccacd058bc79b62bef0ebbd3..906e0c0238251a53a6ae184a4903f8ab0074c367 100644 GIT binary patch delta 84 zcmca6{zYPg1hc6lLoq`EgC9dGLkWX3Lq00NMY}H`+Lmm;pnR@d720SR9d-V3AT1vDhdUlbi<_lVS%Pvm6()1U8cnc>n+a delta 23 fcmca*an5|gjEQ&RHfJ$%iA^?>w%UA5d rabbitHealthCheck); + + return healthChecksBuilder.Add(new HealthCheckRegistration( + "RabbitMQ", + sp => sp.GetRequiredService(), + default, + tags: new[] { "infra" }, + default)); + } + + private static IConnectionFactory CreateConnectionFactory(ConnectionConfiguration configuration) + { + var connectionFactory = new ConnectionFactory + { + AutomaticRecoveryEnabled = true, + TopologyRecoveryEnabled = false, + VirtualHost = configuration.VirtualHost, + UserName = configuration.UserName, + Password = configuration.Password, + Port = configuration.Port, + RequestedHeartbeat = configuration.RequestedHeartbeat, + ClientProperties = configuration.ClientProperties, + AuthMechanisms = configuration.AuthMechanisms, + ClientProvidedName = configuration.Name, + NetworkRecoveryInterval = configuration.ConnectIntervalAttempt, + ContinuationTimeout = configuration.Timeout, + DispatchConsumersAsync = true, + ConsumerDispatchConcurrency = configuration.PrefetchCount, + }; + + if (configuration.Hosts.Count > 0) + connectionFactory.HostName = configuration.Hosts[0].Host; + + return connectionFactory; + } +} \ No newline at end of file diff --git a/src/building-blocks/DevStore.WebAPI.Core/Configuration/GenericHealthCheck.cs b/src/building-blocks/DevStore.WebAPI.Core/Configuration/GenericHealthCheck.cs index f4ff9fe..f565b6d 100644 --- a/src/building-blocks/DevStore.WebAPI.Core/Configuration/GenericHealthCheck.cs +++ b/src/building-blocks/DevStore.WebAPI.Core/Configuration/GenericHealthCheck.cs @@ -1,18 +1,90 @@ -using Microsoft.AspNetCore.Builder; +using DevStore.Core.Utils; +using DevStore.WebAPI.Core.DatabaseFlavor; +using EasyNetQ; +using EasyNetQ.ConnectionString; +using HealthChecks.RabbitMQ; +using HealthChecks.UI.Client; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using NetDevPack.Utilities; +using RabbitMQ.Client; +using static DevStore.WebAPI.Core.DatabaseFlavor.ProviderConfiguration; namespace DevStore.WebAPI.Core.Configuration { public static class GenericHealthCheck { - public static void AddGenericHealthCheck(this IServiceCollection services) + + public static IHealthChecksBuilder AddDefaultHealthCheck( + this IServiceCollection services, + IConfiguration configuration) { - services.AddHealthChecks(); + var (database, connString) = DetectDatabase(configuration); + var checkBuilder = services + .AddHealthChecks() + .AddCheck("self", () => HealthCheckResult.Healthy(), tags: new[] { "api" }); + + var rabbitConnStr = configuration.GetMessageQueueConnection("MessageBus"); + + // We need to parse EasyNetQ Connection String to RabbitMQ native connectionstring + // before send it to Health check + if (rabbitConnStr.IsPresent()) + checkBuilder.AddEasyNetQRabbitHealthCheck(rabbitConnStr); + + + return database switch + { + DatabaseType.SqlServer => checkBuilder.AddSqlServer(connString, name: "SqlServer", tags: new[] { "infra" }), + DatabaseType.MySql => checkBuilder.AddMySql(connString, name: "MySql", tags: new[] { "infra" }), + DatabaseType.Postgre => checkBuilder.AddNpgSql(connString, name: "Postgre", tags: new[] { "infra" }), + DatabaseType.Sqlite => checkBuilder.AddSqlite(connString, name: "Sqlite", tags: new[] { "infra" }), + _ => checkBuilder + }; } - public static void UseGenericHealthCheck(this WebApplication app, string path) + private static IConnectionFactory CreateConnectionFactory(ConnectionConfiguration configuration) { - app.MapHealthChecks(path); + var connectionFactory = new ConnectionFactory + { + AutomaticRecoveryEnabled = true, + TopologyRecoveryEnabled = false, + VirtualHost = configuration.VirtualHost, + UserName = configuration.UserName, + Password = configuration.Password, + Port = configuration.Port, + RequestedHeartbeat = configuration.RequestedHeartbeat, + ClientProperties = configuration.ClientProperties, + AuthMechanisms = configuration.AuthMechanisms, + ClientProvidedName = configuration.Name, + NetworkRecoveryInterval = configuration.ConnectIntervalAttempt, + ContinuationTimeout = configuration.Timeout, + DispatchConsumersAsync = true, + ConsumerDispatchConcurrency = configuration.PrefetchCount, + }; + + if (configuration.Hosts.Count > 0) + connectionFactory.HostName = configuration.Hosts[0].Host; + + return connectionFactory; + } + + public static IApplicationBuilder UseDefaultHealthcheck(this IApplicationBuilder app) + { + app.UseHealthChecks("/healthz", new HealthCheckOptions + { + Predicate = r => r.Tags.Contains("api"), + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + app.UseHealthChecks("/healthz-infra", new HealthCheckOptions + { + Predicate = r => r.Tags.Contains("infra"), + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + + return app; } } } diff --git a/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/DatabaseType.cs b/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/DatabaseType.cs index 50b674e..fc1cabd 100644 --- a/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/DatabaseType.cs +++ b/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/DatabaseType.cs @@ -2,6 +2,7 @@ public enum DatabaseType { + None, SqlServer, MySql, Postgre, diff --git a/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderConfiguration.cs b/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderConfiguration.cs index eab8b2d..0ef1f22 100644 --- a/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderConfiguration.cs +++ b/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderConfiguration.cs @@ -9,16 +9,20 @@ namespace DevStore.WebAPI.Core.DatabaseFlavor; public class ProviderConfiguration { private readonly string _connectionString; - public static ProviderConfiguration With; + public ProviderConfiguration With() => this; private static readonly string MigrationAssembly = typeof(ProviderConfiguration).GetTypeInfo().Assembly.GetName().Name; - public static void Build(string connString) + public static ProviderConfiguration Build(string connString) { - if (With is null) - With = new ProviderConfiguration(connString); + return new ProviderConfiguration(connString); } - public ProviderConfiguration(string connString) => _connectionString = connString; + + + public ProviderConfiguration(string connString) + { + _connectionString = connString; + } public Action SqlServer => options => options.UseSqlServer(_connectionString, sql => sql.MigrationsAssembly(MigrationAssembly)); @@ -27,7 +31,8 @@ public static void Build(string connString) options => options.UseMySql(_connectionString, ServerVersion.AutoDetect(_connectionString), sql => sql.MigrationsAssembly(MigrationAssembly)); public Action Postgre => - options => { + options => + { options.UseNpgsql(_connectionString, sql => sql.MigrationsAssembly(MigrationAssembly)); AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); }; @@ -41,6 +46,6 @@ public static void Build(string connString) /// Trying to improve readability at ConfigureServices /// public static (DatabaseType, string) DetectDatabase(IConfiguration configuration) => ( - configuration.GetValue("AppSettings:DatabaseType"), + configuration.GetValue("AppSettings:DatabaseType", DatabaseType.None), configuration.GetConnectionString("DefaultConnection")); } \ No newline at end of file diff --git a/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderSelector.cs b/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderSelector.cs index bf3b13f..d8b619c 100644 --- a/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderSelector.cs +++ b/src/building-blocks/DevStore.WebAPI.Core/DatabaseFlavor/ProviderSelector.cs @@ -12,13 +12,12 @@ public static class ProviderSelector (DatabaseType, string) options) where TContext : DbContext { var (database, connString) = options; - Build(connString); return database switch { - DatabaseType.SqlServer => services.PersistStore(With.SqlServer), - DatabaseType.MySql => services.PersistStore(With.MySql), - DatabaseType.Postgre => services.PersistStore(With.Postgre), - DatabaseType.Sqlite => services.PersistStore(With.Sqlite), + DatabaseType.SqlServer => services.PersistStore(Build(connString).With().SqlServer), + DatabaseType.MySql => services.PersistStore(Build(connString).With().MySql), + DatabaseType.Postgre => services.PersistStore(Build(connString).With().Postgre), + DatabaseType.Sqlite => services.PersistStore(Build(connString).With().Sqlite), _ => throw new ArgumentOutOfRangeException(nameof(database), database, null) }; @@ -27,13 +26,12 @@ public static class ProviderSelector public static Action WithProviderAutoSelection((DatabaseType, string) options) { var (database, connString) = options; - Build(connString); return database switch { - DatabaseType.SqlServer => With.SqlServer, - DatabaseType.MySql => With.MySql, - DatabaseType.Postgre => With.Postgre, - DatabaseType.Sqlite => With.Sqlite, + DatabaseType.SqlServer => Build(connString).With().SqlServer, + DatabaseType.MySql => Build(connString).With().MySql, + DatabaseType.Postgre => Build(connString).With().Postgre, + DatabaseType.Sqlite => Build(connString).With().Sqlite, _ => throw new ArgumentOutOfRangeException(nameof(database), database, null) }; diff --git a/src/building-blocks/DevStore.WebAPI.Core/DevStore.WebAPI.Core.csproj b/src/building-blocks/DevStore.WebAPI.Core/DevStore.WebAPI.Core.csproj index c2e0770b9b7e08cac6ecb050a8ee83651e8d2ac9..67cc58628f90ddd0e06d926c62881a56cfc9f624 100644 GIT binary patch delta 493 zcmaDOcu0D~GDdz^hD3&9hDruMhE#?UhQP^M>x~Q9SuQn>NUNOOkW}&GQ4=kk{YG%ZGRDaYOur@{V)mK*fL&~J4f8H0AjfZV3tJka@#I7%@5yHDag(nwf~3=c WGD4HJSS=5dWG(C4j8$Q&eYG9CZ}+V3v}1dAxRT}oPK9;sHQ&M} zE9v{tC&1j31`#K8M4EUuMJbO^~?9>NBe($P(pk4@G-*`-dH&Nn&5%_AcDG z2sVv4bKT_M463hTZxZNJq7d)*xi!YJ6b>Kwo>~{4d#rl%{VMIn^;d{p3tsx0;L%f) z{DhU_D<8#G!v280DJLGKI}TxCj%v=%qgjGe z$u{NdW#F5JvCGaUWGHLo#e-{kidw>+YGuTo3=KWIlIysHfK9PQXEVq4Ulz7L#6e1%denfd@M=o700ZoDNThjz^D#NKc!{8BDm zus*3lg=shwj-J6)^;m=*VX}06urh9LohnMNi*81gRF3@rR!Y}PVvti;3u~L=>8R%M z)C)fi^&+1~tWmz-1+JBGL-;O)TblkhXqc(Tu0TN#NiU6>XnHYq1QC}Wc96% z?UOxv7Y1bFb|aFxUOwt2%&91St0nc|tC|>7ZK@<`He~cypcnQosIAzKL<`zfLF~zn z;r$IBv9ij@yp6qH0dal~7j=tTO^_M8iWwD=^QU~9k|C=R+wJplv#9y41S_IGdTo4u zw4_%D{K&68w9meJjp%_z|LFH_Q;O@tyT{xg?ZoInV-sf&GY`rS@H<+-Ak5?nL{)ZCgslO90sEWG8RvD!Z bwaeKo^!d%`Rz@`8OOu{;Q7z|0TwU2;!8tN0 delta 57 zcmew(dy0F4)xgxkz%tg~{)jv?hOG6q$U1iEZPNG7feRh7uqwnEakmeDVfH0mjtHo}AK*8k0A& PDNg>tA+cG9YYGzpoN^RN delta 187 zcmZ1^c|dZ)h0O|#SseU%45V3nyr5s+;~K#>xlc|{C)LO^Z_kWmU0vIeqi8EPjha++`Egf`lli$cCvOoD000+S76t$S delta 105 zcmX@5ctml73ftsW>=v7^uvIWm-oU27>&}qMkO#y?44DkclM~q_C(jX(n=Hd4GP#OH qZF3LTD^^S;;z|tq3>iR8i3~XmB|ugcgA#)#gZ1P>4$;Y51jGPD4I5bi diff --git a/src/services/DevStore.Billing.API/DevStore.Billing.API.csproj b/src/services/DevStore.Billing.API/DevStore.Billing.API.csproj index 6d09d19c43c3bee6c1670b2f70a15c2b97c3b85b..3e4eb5819351563111a45ed2795de0162a321932 100644 GIT binary patch delta 16 XcmZpXS|PmQAM<1#W~t33>=Rf4H3|i) delta 516 zcmZ1>+#!I2?}p%|zN zq#_xtBcCB}ay_%;20^OPlbbT=prUKc;Ky`^gn{ya!81(U~ zLN?747)r@NJ*5mO7^W35l-5H75fpUR3<|)YDg|1e15^y+<$)amatuT^85pRbKu-me zX<(J9K!<_UCW2Mx03)LcC|?8>MVJSPfIOf$D9Rva+AwJ9GvIR}%qKt}PZnfVoLs=- Ku=y49K2`u{?Pm%A diff --git a/src/services/DevStore.Billing.API/appsettings.Docker.json b/src/services/DevStore.Billing.API/appsettings.Docker.json index 1da4472..eee4280 100644 --- a/src/services/DevStore.Billing.API/appsettings.Docker.json +++ b/src/services/DevStore.Billing.API/appsettings.Docker.json @@ -29,7 +29,7 @@ "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity:5101/jwks", + "JwksUri": "https://devstore-api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" }, diff --git a/src/services/DevStore.Billing.API/appsettings.Production.json b/src/services/DevStore.Billing.API/appsettings.Production.json index 3023dd0..001bde6 100644 --- a/src/services/DevStore.Billing.API/appsettings.Production.json +++ b/src/services/DevStore.Billing.API/appsettings.Production.json @@ -29,7 +29,7 @@ "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity:5101/jwks", + "JwksUri": "https://devstore-api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" }, diff --git a/src/services/DevStore.Billing.DevsPay/Properties/launchSettings.json b/src/services/DevStore.Billing.DevsPay/Properties/launchSettings.json new file mode 100644 index 0000000..e147a5c --- /dev/null +++ b/src/services/DevStore.Billing.DevsPay/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "DevStore.Billing.DevsPay": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:56386;http://localhost:56395" + } + } +} \ No newline at end of file diff --git a/src/services/DevStore.Catalog.API/Configuration/ApiConfig.cs b/src/services/DevStore.Catalog.API/Configuration/ApiConfig.cs index 59d2ec616b312151cbac8f3be5c02bba2b12a6a4..4fb8d7ab44a5addb5b25d26425b5c067339278bd 100644 GIT binary patch delta 89 zcmX>ke?or4Ck|d0hE#?$hD3%^h8%{H$^SVdCqH75VYHsy$R@hkfK!W28btwv2T*w; bNGU@GL-J%^PE7#?1_-QW;AP-qsAT{EKn@fj delta 80 zcmX>he@K4ACk|eBhE#?;ATDCaWJsR;pF?u;EPlDo0h}sqm{P(@4EhWiK*fm+ISeI0 QRuzNNWJ6B*$vgN30F<{B$p8QV diff --git a/src/services/DevStore.Catalog.API/DevStore.Catalog.API.csproj b/src/services/DevStore.Catalog.API/DevStore.Catalog.API.csproj index 67ce04af765a4a4cf03c404c17f5d90660ec52bb..251cf7510adb29f8c19320ca89410338b3b7a836 100644 GIT binary patch delta 12 Tcmdlcu}^SA9?Rxu>;WtQA`1kx delta 558 zcma)3OKJi^6fBu`6L292(VcpLB#>-ER1l-!A|c=bWE|Tt#I!n-54!OXz3~`Az-7n{ za-^hQj}RwhMF_-2&CfcW}F={wJh}!4ua*hEjUojNUWr{RnI2p4H z_l9ByjD&;_-Jfw%L{gFsICjBnw~riBEJ~%%n24NX!F;rh{_!PGR5wh>t0tu4=byrq Tz+FGY+HX~{U#jylRrl%_S1D`| diff --git a/src/services/DevStore.Catalog.API/appsettings.Docker.json b/src/services/DevStore.Catalog.API/appsettings.Docker.json index 0916730..17b9143 100644 --- a/src/services/DevStore.Catalog.API/appsettings.Docker.json +++ b/src/services/DevStore.Catalog.API/appsettings.Docker.json @@ -29,7 +29,7 @@ "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity:5101/jwks", + "JwksUri": "https://devstore-api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" } diff --git a/src/services/DevStore.Catalog.API/appsettings.Production.json b/src/services/DevStore.Catalog.API/appsettings.Production.json index 81bca98..f1ee6b3 100644 --- a/src/services/DevStore.Catalog.API/appsettings.Production.json +++ b/src/services/DevStore.Catalog.API/appsettings.Production.json @@ -29,7 +29,7 @@ "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity:5101/jwks", + "JwksUri": "https://devstore-api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" } diff --git a/src/services/DevStore.Customers.API/Configuration/ApiConfig.cs b/src/services/DevStore.Customers.API/Configuration/ApiConfig.cs index 338e09c688ef9b0d41903d23331f4b74622fd42e..9a04b055eb2405c7e231ee91acd67f66e7cba2ee 100644 GIT binary patch delta 98 zcmca0e@%YF9}Z;~hE#?$hD3%^h8%_x1`i-F5zNY9aAwE=@{$>{C+}yK->kyv5n58zSa73BVn}4jWk_WxXUGS#vl*PhbSi@$gCj!{LorYl zNJTPOM?OQ|WPcV(PBWma0T7!^j%V|pypKi1l2|i?844M47=nTJ6)}{7$jN~$;+W>C z5@p_GepcOj69y#)I|g0`E(Qf8Xu}Wyv>_8{M1YDpfDt0LBVMabW9RZBonAS1I|bwpNM^`p&|pwv V&>r@o$@`fVCvRYO0fy`~Sm;XX0YfSYXe`8nWU$#FXM)2T8WRDmVw<^GV%Pva3|LP9 diff --git a/src/services/DevStore.Identity.API/Program.cs b/src/services/DevStore.Identity.API/Program.cs index ce963e8791e55adf1b588170cdf2ebce0b6fa88f..af7ccd31317d0a0f87c97f8fe5628ab146335ff8 100644 GIT binary patch delta 20 ccmdnMbBkw#3-e?)7PHCgm^C(6Fz;Xj07`!b!2kdN delta 16 Ycmcb`vw>%W3-jbN%qE)`G4Egk060VjLI3~& diff --git a/src/services/DevStore.Identity.API/appsettings.Development.json b/src/services/DevStore.Identity.API/appsettings.Development.json index f5b6caa..5e1a3db 100644 --- a/src/services/DevStore.Identity.API/appsettings.Development.json +++ b/src/services/DevStore.Identity.API/appsettings.Development.json @@ -37,6 +37,6 @@ }, "MessageQueueConnection": { - "MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10;username=devstore;password=devstore" + "MessageBus": "host=localhost:5672;publisherConfirms=true;timeout=10;username=guest;password=guest" } } diff --git a/src/services/DevStore.Orders.API/Configuration/ApiConfig.cs b/src/services/DevStore.Orders.API/Configuration/ApiConfig.cs index b1bbc394a3fce5d7d84f5b311f5114cdbaa0a2c5..c238713fc93c6085aa049b8e977b94c01a0ba144 100644 GIT binary patch delta 100 zcmX>le@1@8Hx6DGhE#?$hD3%^h8%{H$%_1vjLDM&nI)Mu8LTHC#Ni4VJb>B~L0T9x7?LLoatcrO;!~Mi#jiH`7>58*6Wion`~m=jm>a_Y delta 134 zcmX>je@cGCHx6ZYhE#?;ATDCaWJqT40J0Jpau`Y&G8mkJI29RX q0hUDP_n7Ye{5C0$Y#87@$G++?tpM8BbouV*mhyqAwx< delta 74 zcmdlceNB?-|G&uvOmZ93G?+F&W4gpP`2@S%<`A88UO&)7#98j diff --git a/src/services/DevStore.Orders.API/Controllers/VoucherController.cs b/src/services/DevStore.Orders.API/Controllers/VoucherController.cs index a9fdb11cf5a0d331fd29ca099a7bec56201a963b..d07bf2246524e28dd6c2e462ec2e081388c0242b 100644 GIT binary patch delta 48 pcmca5a8F>v4OU)fhJ1!Rh7yKU5IOlgi{$1%tnV1nguk+<0sw(64@>|6 delta 44 pcmca7a7$pr4OZ?F1~-O$hEj$+hLp+YStK|AV|~YnBKVU%6#!5Q4tM|n diff --git a/src/services/DevStore.Orders.API/appsettings.Docker.json b/src/services/DevStore.Orders.API/appsettings.Docker.json index 3982aa5..0d10e28 100644 --- a/src/services/DevStore.Orders.API/appsettings.Docker.json +++ b/src/services/DevStore.Orders.API/appsettings.Docker.json @@ -30,7 +30,7 @@ "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity:5101/jwks", + "JwksUri": "https://devstore-api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" } diff --git a/src/services/DevStore.Orders.API/appsettings.Production.json b/src/services/DevStore.Orders.API/appsettings.Production.json index cc96e44..f94478b 100644 --- a/src/services/DevStore.Orders.API/appsettings.Production.json +++ b/src/services/DevStore.Orders.API/appsettings.Production.json @@ -30,7 +30,7 @@ "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity:5101/jwks", + "JwksUri": "https://devstore-api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" } diff --git a/src/services/DevStore.Orders.Domain/Properties/launchSettings.json b/src/services/DevStore.Orders.Domain/Properties/launchSettings.json new file mode 100644 index 0000000..54e7ecd --- /dev/null +++ b/src/services/DevStore.Orders.Domain/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "DevStore.Orders.Domain": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:56390;http://localhost:56394" + } + } +} \ No newline at end of file diff --git a/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs b/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs index 15a1801..6134547 100644 --- a/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs +++ b/src/services/DevStore.ShoppingCart.API/Configuration/ApiConfig.cs @@ -24,7 +24,7 @@ public static void AddApiConfiguration(this IServiceCollection services, IConfig .AllowAnyHeader()); }); - services.AddGenericHealthCheck(); + services.AddDefaultHealthCheck(configuration); } public static void UseApiConfiguration(this WebApplication app, IWebHostEnvironment env) @@ -47,7 +47,7 @@ public static void UseApiConfiguration(this WebApplication app, IWebHostEnvironm app.MapGrpcService().RequireCors("Total"); - app.UseGenericHealthCheck("/healthz"); + app.UseDefaultHealthcheck(); } } } \ No newline at end of file diff --git a/src/services/DevStore.ShoppingCart.API/DevStore.ShoppingCart.API.csproj b/src/services/DevStore.ShoppingCart.API/DevStore.ShoppingCart.API.csproj index c0396b3..0d77293 100644 --- a/src/services/DevStore.ShoppingCart.API/DevStore.ShoppingCart.API.csproj +++ b/src/services/DevStore.ShoppingCart.API/DevStore.ShoppingCart.API.csproj @@ -11,13 +11,6 @@ - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - diff --git a/src/services/DevStore.ShoppingCart.API/appsettings.Docker.json b/src/services/DevStore.ShoppingCart.API/appsettings.Docker.json index f5aa360..9bd3c24 100644 --- a/src/services/DevStore.ShoppingCart.API/appsettings.Docker.json +++ b/src/services/DevStore.ShoppingCart.API/appsettings.Docker.json @@ -29,7 +29,7 @@ "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity:5101/jwks", + "JwksUri": "https://devstore-api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" } diff --git a/src/services/DevStore.ShoppingCart.API/appsettings.Production.json b/src/services/DevStore.ShoppingCart.API/appsettings.Production.json index 09828c8..72c2cb9 100644 --- a/src/services/DevStore.ShoppingCart.API/appsettings.Production.json +++ b/src/services/DevStore.ShoppingCart.API/appsettings.Production.json @@ -29,7 +29,7 @@ "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity:5101/jwks", + "JwksUri": "https://devstore-api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" } diff --git a/src/services/DevStore.ShoppingCart.API/appsettings.json b/src/services/DevStore.ShoppingCart.API/appsettings.json index 1e32362..88d07e2 100644 --- a/src/services/DevStore.ShoppingCart.API/appsettings.json +++ b/src/services/DevStore.ShoppingCart.API/appsettings.json @@ -3,5 +3,6 @@ "Issuer": "https://devstore.academy", "Audience": "DevStore", "DatabaseType": "SqlServer" - } + }, + "USE_HTTPS_REDIRECTION": "true" } diff --git a/src/web/DevStore.WebApp.MVC/Configuration/WebAppConfig.cs b/src/web/DevStore.WebApp.MVC/Configuration/WebAppConfig.cs index 366cf3a703f60a7da9e372dd9525a0e1025f5129..92d65da6a7133caaf59218a39aeb2843d5bb4fe4 100644 GIT binary patch delta 110 zcmdldze!<&25$g^Cxae?GebT@5ku%x%Akj9Y6P|A?Q yP%`;EyZGb=c9qSa*vr@^ak43+$TD~U)h2?}F=Q|#192*l%%1GXr#tx=-wyyAZXAIC delta 103 zcmdm_uup!1#>To8?2;Y~sSJq>ISeHX84S)qoXU{Qkj+rcps_iXqn^#s7bsc4fKw5J Z5`#Wi6U>OJ$%b6=lNa!EOg7>F2LKYM7&`y} diff --git a/src/web/DevStore.WebApp.MVC/Properties/launchSettings.json b/src/web/DevStore.WebApp.MVC/Properties/launchSettings.json index ae6c796..dcb3487 100644 --- a/src/web/DevStore.WebApp.MVC/Properties/launchSettings.json +++ b/src/web/DevStore.WebApp.MVC/Properties/launchSettings.json @@ -1,12 +1,4 @@ { - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:52608", - "sslPort": 44303 - } - }, "profiles": { "SelfHosting - Dev": { "commandName": "Project", diff --git a/src/web/DevStore.WebApp.MVC/appsettings.Docker.json b/src/web/DevStore.WebApp.MVC/appsettings.Docker.json index 06f0f4f..10e8952 100644 --- a/src/web/DevStore.WebApp.MVC/appsettings.Docker.json +++ b/src/web/DevStore.WebApp.MVC/appsettings.Docker.json @@ -22,9 +22,9 @@ "Application": "DevStoreWeb" } }, - "AuthUrl": "https://devstore-api-identity:5101", - "CatalogUrl": "https://devstore-api-catalog:5301", - "CustomerUrl": "https://devstore-api-customers:5401", - "CheckoutBffUrl": "https://devstore-api-bff-checkout:5501" + "AuthUrl": "https://devstore-api-identity", + "CatalogUrl": "https://devstore-api-catalog", + "CustomerUrl": "https://devstore-api-customers", + "CheckoutBffUrl": "https://devstore-api-bff-checkout" } \ No newline at end of file diff --git a/src/web/DevStore.WebApp.MVC/appsettings.Production.json b/src/web/DevStore.WebApp.MVC/appsettings.Production.json index f6fd49a..7eebbef 100644 --- a/src/web/DevStore.WebApp.MVC/appsettings.Production.json +++ b/src/web/DevStore.WebApp.MVC/appsettings.Production.json @@ -22,9 +22,9 @@ "Application": "DevStoreWeb" } }, - "AuthUrl": "https://devstore-api-identity:5101", - "CatalogUrl": "https://devstore-api-catalog:5301", - "CustomerUrl": "https://devstore-api-customers:5401", - "CheckoutBffUrl": "https://devstore-api-bff-checkout:5501", + "AuthUrl": "https://devstore-api-identity", + "CatalogUrl": "https://devstore-api-catalog", + "CustomerUrl": "https://devstore-api-customers", + "CheckoutBffUrl": "https://devstore-api-bff-checkout", } \ No newline at end of file diff --git a/src/web/DevStore.WebApp.MVC/appsettings.json b/src/web/DevStore.WebApp.MVC/appsettings.json index 4faf77a..3d3da2e 100644 --- a/src/web/DevStore.WebApp.MVC/appsettings.json +++ b/src/web/DevStore.WebApp.MVC/appsettings.json @@ -1,3 +1,4 @@ { - "AllowedHosts": "*" + "AllowedHosts": "*", + "USE_HTTPS_REDIRECTION": "true" } diff --git a/src/web/DevStore.WebApp.Status/DevStore.WebApp.Status.csproj b/src/web/DevStore.WebApp.Status/DevStore.WebApp.Status.csproj new file mode 100644 index 0000000..39a811b --- /dev/null +++ b/src/web/DevStore.WebApp.Status/DevStore.WebApp.Status.csproj @@ -0,0 +1,51 @@ + + + + net6.0 + enable + enable + 0ab5617d-1cdf-455d-b9e2-e9f76e347af1 + Linux + ..\..\.. + + + + + + + + + + + + + + + + + + + + PreserveNewest + true + PreserveNewest + + + PreserveNewest + true + PreserveNewest + + + PreserveNewest + true + PreserveNewest + + + + + + Always + + + + diff --git a/src/web/DevStore.WebApp.Status/Dockerfile b/src/web/DevStore.WebApp.Status/Dockerfile new file mode 100644 index 0000000..4289ac9 --- /dev/null +++ b/src/web/DevStore.WebApp.Status/Dockerfile @@ -0,0 +1,24 @@ +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src +COPY ["web/DevStore.WebApp.Status/DevStore.WebApp.Status.csproj", "web/DevStore.WebApp.Status/"] +COPY ["building-blocks/DevStore.WebAPI.Core/DevStore.WebAPI.Core.csproj", "building-blocks/DevStore.WebAPI.Core/"] +COPY ["building-blocks/DevStore.Core/DevStore.Core.csproj", "building-blocks/DevStore.Core/"] +RUN dotnet restore "web/DevStore.WebApp.Status/DevStore.WebApp.Status.csproj" +COPY . . +WORKDIR "web/DevStore.WebApp.Status" +RUN dotnet build "DevStore.WebApp.Status.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "DevStore.WebApp.Status.csproj" -c Release -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "DevStore.WebApp.Status.dll"] \ No newline at end of file diff --git a/src/web/DevStore.WebApp.Status/Dockerfile.original b/src/web/DevStore.WebApp.Status/Dockerfile.original new file mode 100644 index 0000000..66d4a89 --- /dev/null +++ b/src/web/DevStore.WebApp.Status/Dockerfile.original @@ -0,0 +1,22 @@ +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src +COPY ["src/web/DevStore.WebApp.Status/DevStore.WebApp.Status.csproj", "src/web/DevStore.WebApp.Status/"] +RUN dotnet restore "src/web/DevStore.WebApp.Status/DevStore.WebApp.Status.csproj" +COPY . . +WORKDIR "/src/src/web/DevStore.WebApp.Status" +RUN dotnet build "DevStore.WebApp.Status.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "DevStore.WebApp.Status.csproj" -c Release -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "DevStore.WebApp.Status.dll"] \ No newline at end of file diff --git a/src/web/DevStore.WebApp.Status/Program.cs b/src/web/DevStore.WebApp.Status/Program.cs new file mode 100644 index 0000000..1c24e67 --- /dev/null +++ b/src/web/DevStore.WebApp.Status/Program.cs @@ -0,0 +1,67 @@ +using DevStore.WebAPI.Core.DatabaseFlavor; +using Serilog; +using DevStore.WebAPI.Core.Extensions; +using static DevStore.WebAPI.Core.DatabaseFlavor.ProviderConfiguration; + +var builder = WebApplication.CreateBuilder(args); + +builder.Logging.AddSerilog(new LoggerConfiguration() + .ReadFrom.Configuration(builder.Configuration) + .CreateLogger()); + +var healthCheckBuilder = builder.Services.AddHealthChecksUI(setupSettings: setup => +{ + setup.SetHeaderText("DevStore - Status Page"); + var endpoints = builder.Configuration.GetSection("ENDPOINTS").Get>(); + + foreach (var endpoint in endpoints) + { + var name = endpoint.Split(';')[0]; + var uri = endpoint.Split(';')[1]; + + setup.AddHealthCheckEndpoint(name, uri); + } + + setup.UseApiEndpointHttpMessageHandler(sp => HttpExtensions.ConfigureClientHandler()); +}); +var (database, connString) = DetectDatabase(builder.Configuration); + +switch (database) +{ + case DatabaseType.None: + healthCheckBuilder.AddInMemoryStorage(); + break; + case DatabaseType.SqlServer: + healthCheckBuilder.AddSqlServerStorage(connString); + break; + case DatabaseType.MySql: + healthCheckBuilder.AddMySqlStorage(connString); + break; + case DatabaseType.Postgre: + healthCheckBuilder.AddPostgreSqlStorage(connString); + break; + case DatabaseType.Sqlite: + healthCheckBuilder.AddSqliteStorage(connString); + break; + default: + healthCheckBuilder.AddInMemoryStorage(); + break; +} + +var app = builder.Build(); + +// Under certain scenarios, e.g minikube / linux environment / behind load balancer +// https redirection could lead dev's to over complicated configuration for testing purpouses +// In production is a good practice to keep it true +if (app.Configuration["USE_HTTPS_REDIRECTION"] == "true") +{ + app.UseHttpsRedirection(); + app.UseHsts(); +} + +app.MapHealthChecksUI(setup => +{ + setup.AddCustomStylesheet("devstore.css"); + setup.UIPath = "/status"; +}); +app.Run(); diff --git a/src/web/DevStore.WebApp.Status/Properties/launchSettings.json b/src/web/DevStore.WebApp.Status/Properties/launchSettings.json new file mode 100644 index 0000000..c8731b9 --- /dev/null +++ b/src/web/DevStore.WebApp.Status/Properties/launchSettings.json @@ -0,0 +1,14 @@ +{ + "profiles": { + "SelfHosting - Dev": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "status", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:4211;http://localhost:4210" + } + } +} \ No newline at end of file diff --git a/src/web/DevStore.WebApp.Status/appsettings.Development.json b/src/web/DevStore.WebApp.Status/appsettings.Development.json new file mode 100644 index 0000000..3f9bca5 --- /dev/null +++ b/src/web/DevStore.WebApp.Status/appsettings.Development.json @@ -0,0 +1,43 @@ +{ + "Serilog": { + "Using": [ "Serilog.Sinks.Console" ], + "MinimumLevel": { + "Default": "Information", + "Override": { + "Microsoft.AspNetCore": "Warning", + "Microsoft.EntityFrameworkCore": "Information" + } + }, + "WriteTo": [ + { "Name": "Console" } + ], + "Enrich": [ "FromLogContext" ], + "Properties": { + "Application": "DevStoreWeb" + } + }, + "ConnectionStrings": { + // Sql Server Connection + "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DSStatus;Trusted_Connection=True;MultipleActiveResultSets=true" + + // Postgre Connection + //"DefaultConnection": "Server=localhost;Port=5432;Database=DSStatus;User Id=sa;Password=MyDB@123;" + + // MySql Connection + //"DefaultConnection": "server=localhost,port=3306;database=DSStatus;user=sa;password=MyDB@123" + + // SQLite Connection + //"DefaultConnection": "Data Source=DSStatus.db" + + }, + "ENDPOINTS": [ + "Frontend Web;https://localhost:5401/healthz-infra", + "Shopping Cart API;https://localhost:5411/healthz-infra", + "Identity API;https://localhost:5421/healthz-infra", + "Catalog API;https://localhost:5431/healthz-infra", + "Customer API;https://localhost:5441/healthz-infra", + "BFF Checkout;https://localhost:5451/healthz-infra", + "Billing API;https://localhost:5461/healthz-infra", + "Order API;https://localhost:5471/healthz-infra" + ] +} diff --git a/src/web/DevStore.WebApp.Status/appsettings.Docker.json b/src/web/DevStore.WebApp.Status/appsettings.Docker.json new file mode 100644 index 0000000..fbe44c1 --- /dev/null +++ b/src/web/DevStore.WebApp.Status/appsettings.Docker.json @@ -0,0 +1,32 @@ +{ + "Serilog": { + "Using": [ "Serilog.Sinks.Console" ], + "MinimumLevel": { + "Default": "Information", + "Override": { + "Microsoft.AspNetCore": "Warning", + "Microsoft.EntityFrameworkCore": "Information" + } + }, + "WriteTo": [ + { "Name": "Console" } + ], + "Enrich": [ "FromLogContext" ], + "Properties": { + "Application": "DevStoreWeb" + } + }, + "ConnectionStrings": { + "DefaultConnection": "Server=database-status;Database=DSStatus;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + }, + "ENDPOINTS": [ + "Identity API;https://api-identity/healthz-infra", + "BFF Checkout;https://api-bff-checkout/healthz-infra", + "Frontend Web;https://web-mvc/healthz-infra", + "Shopping Cart API;https://api-cart/healthz-infra", + "Catalog API;https://api-catalog/healthz-infra", + "Customer API;https://api-customers/healthz-infra", + "Billing API;https://api-billing/healthz-infra", + "Order API;https://api-order/healthz-infra" + ] +} \ No newline at end of file diff --git a/src/web/DevStore.WebApp.Status/appsettings.Production.json b/src/web/DevStore.WebApp.Status/appsettings.Production.json new file mode 100644 index 0000000..32d4cf0 --- /dev/null +++ b/src/web/DevStore.WebApp.Status/appsettings.Production.json @@ -0,0 +1,32 @@ +{ + "Serilog": { + "Using": [ "Serilog.Sinks.Console" ], + "MinimumLevel": { + "Default": "Warning", + "Override": { + "Microsoft.AspNetCore": "Warning", + "Microsoft.EntityFrameworkCore": "Error" + } + }, + "WriteTo": [ + { "Name": "Console" } + ], + "Enrich": [ "FromLogContext" ], + "Properties": { + "Application": "DevStoreWeb" + } + }, + "ConnectionStrings": { + "DefaultConnection": "Server=database-status;Database=DSStatus;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" + }, + "ENDPOINTS": [ + "Frontend Web;https://web-devstore-ecommerce/healthz-infra", + "Identity API;https://api-identity/healthz-infra", + "BFF Checkout;https://api-bff-checkout/healthz-infra", + "Shopping Cart API;https://api-cart/healthz-infra", + "Catalog API;https://api-catalog/healthz-infra", + "Customer API;https://api-customers/healthz-infra", + "Billing API;https://api-billing/healthz-infra", + "Order API;https://api-orders/healthz-infra" + ] +} \ No newline at end of file diff --git a/src/web/DevStore.WebApp.Status/appsettings.json b/src/web/DevStore.WebApp.Status/appsettings.json new file mode 100644 index 0000000..db4af7c --- /dev/null +++ b/src/web/DevStore.WebApp.Status/appsettings.json @@ -0,0 +1,6 @@ +{ + "AllowedHosts": "*", + "AppSettings": { + "DatabaseType": "SqlServer" + } +} diff --git a/src/web/DevStore.WebApp.Status/devstore.css b/src/web/DevStore.WebApp.Status/devstore.css new file mode 100644 index 0000000..dbc9a2a --- /dev/null +++ b/src/web/DevStore.WebApp.Status/devstore.css @@ -0,0 +1,8 @@ +:root { + --primaryColor: #525AF2; + --secondaryColor: #F2F2F2; + --bgMenuActive: #797FF2; + --bgButton: #A2A6F2; + --logoImageUrl: url('https://devstore.academy/images/favicon.png'); + --bgAside: var(--primaryColor); +} From 3a71da159590388e1b7e5ee72dcdca470bcb79bb Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Thu, 12 Jan 2023 23:08:58 -0300 Subject: [PATCH 09/13] fix: remove crt --- docker/certs/devstore.crt | 17 ----------------- docker/docker-compose-local-light.yml | 5 ++--- 2 files changed, 2 insertions(+), 20 deletions(-) delete mode 100644 docker/certs/devstore.crt diff --git a/docker/certs/devstore.crt b/docker/certs/devstore.crt deleted file mode 100644 index 4d9147a..0000000 --- a/docker/certs/devstore.crt +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICrzCCAZcCFHiYvlar2V8OJiS2FOiG9Qt6x6ILMA0GCSqGSIb3DQEBCwUAMBQx -EjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzAxMTIxOTQ5NDVaFw0yNDAxMTIxOTQ5 -NDVaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAK7iVnSKt/udx2SIko6MjrjwErKxqjeOiF8bk9ODqO3ObIAwjZqH -7SRR4pV+v+QMFPAt8Aaikc9PW0O2LySrQGuOa67shYRovJQSvT3NQsc08SEmsmRv -cczjl+sJzHVNun/kdNoTQJDuKnf6vlGZFxsA2WleYVLf0eMvlX23TqQsuvo7p4kJ -BAyqWSzVBvRcifI2pTZj9xhGD5HHHCKRGYTNbc4pSB5XNnHNm0g88jtAqOdpewQH -3YeDsLIAoTDhmxy5qXcDqW8KQHvX8d4jvR/FoalEjiRp5wyjKIu3wd36vMAtmZdR -usDMpe6BlSra4prqfu/XE76/S3h9wV3B+5cCAwEAATANBgkqhkiG9w0BAQsFAAOC -AQEAkqmyJ0R0SD2BLnqNP+ZTcfkSCIMNxWjy0T1rF3QXWK3JQC3L2MRTGDK+haeI -VdmeBPzcbjUA+xaBWQhp5j7KmQR4uh4xzwI/Jtpab8mk6IDBJHZEe/m9xGpJxZbB -MND84CvaaByWxJUolyql3XPgBSd6HAo++5cOzS8GkqSGAL9tdy6V4ONQHVIOzuE2 -Zz6Yoexm47noiQoFyTodjt/SifiE9w6BvsmjapoACA440Uf2wcQKWFgqVKwMwKS+ -5z1vQfIB3COj4ioK6rznZXei5hfs/TJ07dBW7v/eOI3HvlLC5Gkr0lRdFoYh74I3 -UFjMLGfhn5rsgxil5napZOcCPw== ------END CERTIFICATE----- diff --git a/docker/docker-compose-local-light.yml b/docker/docker-compose-local-light.yml index 05304da..352dff9 100644 --- a/docker/docker-compose-local-light.yml +++ b/docker/docker-compose-local-light.yml @@ -217,7 +217,6 @@ services: USE_HTTPS_REDIRECTION: "false" volumes: - ./certs:/https:ro - - ./certs/devstore.crt:/usr/local/share/ca-certificates/devstore.crt depends_on: - database-devstore @@ -232,8 +231,8 @@ services: rm -f /https/devstore.academy-localhost.pfx && openssl genrsa -out devstore.rsa 2048 && openssl req -sha256 -new -key devstore.rsa -out devstore.csr -subj '/CN=localhost' && - openssl x509 -req -sha256 -days 365 -in devstore.csr -signkey devstore.rsa -out /https/devstore.crt && - openssl pkcs12 -export -out /https/devstore.academy-localhost.pfx -inkey devstore.rsa -in /https/devstore.crt -password pass:9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe)" + openssl x509 -req -sha256 -days 365 -in devstore.csr -signkey devstore.rsa -out devstore.crt && + openssl pkcs12 -export -out /https/devstore.academy-localhost.pfx -inkey devstore.rsa -in devstore.crt -password pass:9HoGMnb7Lu8NFdHBz4Vq2rtKivzMhmMXhtvuB4TZcLMmbWfFmDQCjJeLURAJ4GYe)" seq: image: datalust/seq:latest From 8c931683557ed8426d20b98f45a46893aca2635e Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Fri, 13 Jan 2023 00:54:16 -0300 Subject: [PATCH 10/13] fix: minor bugs --- docker/docker-compose-local-light.yml | 1 - docker/nginx/devstore.conf | 4 ++-- .../appsettings.Production.json | 12 ++++++------ .../Configuration/GenericHealthCheck.cs | 2 -- src/web/DevStore.WebApp.Status/Program.cs | 3 ++- .../appsettings.Production.json | 2 +- 6 files changed, 11 insertions(+), 13 deletions(-) diff --git a/docker/docker-compose-local-light.yml b/docker/docker-compose-local-light.yml index 352dff9..55bfa3a 100644 --- a/docker/docker-compose-local-light.yml +++ b/docker/docker-compose-local-light.yml @@ -30,7 +30,6 @@ services: image: rabbitmq:3-management container_name: devstore-rabbit expose: - ports: - 5672 - 15672 environment: diff --git a/docker/nginx/devstore.conf b/docker/nginx/devstore.conf index dff369e..5dd7131 100644 --- a/docker/nginx/devstore.conf +++ b/docker/nginx/devstore.conf @@ -11,7 +11,7 @@ server { server_name $hostname; location /status { - rewrite ^/status(.*)$ http://localhost:7510/status$1 redirect; + rewrite ^/status(.*)$ http://localhost:7510/$1 redirect; } location / { proxy_pass http://web-mvc; @@ -40,7 +40,7 @@ server { ssl_certificate /etc/nginx/nerdstore-certificate.pem; ssl_certificate_key /etc/nginx/nerdstore-certificate.key; location /status { - rewrite ^/status(.*)$ https://localhost:7511/status$1 redirect; + rewrite ^/status(.*)$ https://localhost:7511/$1 redirect; } location / { proxy_pass http://web-mvc; diff --git a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Production.json b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Production.json index 03fb20e..65b85d4 100644 --- a/src/api-gateways/DevStore.Bff.Checkout/appsettings.Production.json +++ b/src/api-gateways/DevStore.Bff.Checkout/appsettings.Production.json @@ -23,17 +23,17 @@ } }, - "ShoppingCartUrl": "https://devstore-api-cart", - "CatalogUrl": "https://devstore-api-catalog", - "CustomerUrl": "https://devstore-api-customers", - "PaymentUrl": "https://devstore-api-billing", - "OrderUrl": "https://devstore-api-order", + "ShoppingCartUrl": "https://api-cart", + "CatalogUrl": "https://api-catalog", + "CustomerUrl": "https://api-customers", + "PaymentUrl": "https://api-billing", + "OrderUrl": "https://api-order", "MessageQueueConnection": { "MessageBus": "host=devstore-rabbit:5672;publisherConfirms=true;timeout=30;username=devstore;password=devstore" }, "AppSettings": { - "JwksUri": "https://devstore-api-identity/jwks", + "JwksUri": "https://api-identity/jwks", "Issuer": "https://devstore.academy", "Audience": "DevStore" } diff --git a/src/building-blocks/DevStore.WebAPI.Core/Configuration/GenericHealthCheck.cs b/src/building-blocks/DevStore.WebAPI.Core/Configuration/GenericHealthCheck.cs index f565b6d..cd905ad 100644 --- a/src/building-blocks/DevStore.WebAPI.Core/Configuration/GenericHealthCheck.cs +++ b/src/building-blocks/DevStore.WebAPI.Core/Configuration/GenericHealthCheck.cs @@ -1,8 +1,6 @@ using DevStore.Core.Utils; using DevStore.WebAPI.Core.DatabaseFlavor; using EasyNetQ; -using EasyNetQ.ConnectionString; -using HealthChecks.RabbitMQ; using HealthChecks.UI.Client; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; diff --git a/src/web/DevStore.WebApp.Status/Program.cs b/src/web/DevStore.WebApp.Status/Program.cs index 1c24e67..0bc4634 100644 --- a/src/web/DevStore.WebApp.Status/Program.cs +++ b/src/web/DevStore.WebApp.Status/Program.cs @@ -62,6 +62,7 @@ app.MapHealthChecksUI(setup => { setup.AddCustomStylesheet("devstore.css"); - setup.UIPath = "/status"; + setup.UIPath = "/"; + setup.PageTitle = "DevStore - Status"; }); app.Run(); diff --git a/src/web/DevStore.WebApp.Status/appsettings.Production.json b/src/web/DevStore.WebApp.Status/appsettings.Production.json index 32d4cf0..14c27bf 100644 --- a/src/web/DevStore.WebApp.Status/appsettings.Production.json +++ b/src/web/DevStore.WebApp.Status/appsettings.Production.json @@ -20,7 +20,7 @@ "DefaultConnection": "Server=database-status;Database=DSStatus;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, "ENDPOINTS": [ - "Frontend Web;https://web-devstore-ecommerce/healthz-infra", + "Frontend Web;https://web-devstore-ecommerce/healthz", "Identity API;https://api-identity/healthz-infra", "BFF Checkout;https://api-bff-checkout/healthz-infra", "Shopping Cart API;https://api-cart/healthz-infra", From a24d067951ff3b046632cb494a75b141c8436ede Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Fri, 30 Jun 2023 02:34:53 -0300 Subject: [PATCH 11/13] fix: healthchecker [skip_ci] --- src/web/DevStore.WebApp.Status/Program.cs | 8 ++++---- .../appsettings.Development.json | 11 +---------- .../DevStore.WebApp.Status/appsettings.Docker.json | 11 +---------- .../appsettings.Production.json | 11 +---------- 4 files changed, 7 insertions(+), 34 deletions(-) diff --git a/src/web/DevStore.WebApp.Status/Program.cs b/src/web/DevStore.WebApp.Status/Program.cs index 0bc4634..74f3645 100644 --- a/src/web/DevStore.WebApp.Status/Program.cs +++ b/src/web/DevStore.WebApp.Status/Program.cs @@ -12,12 +12,12 @@ var healthCheckBuilder = builder.Services.AddHealthChecksUI(setupSettings: setup => { setup.SetHeaderText("DevStore - Status Page"); - var endpoints = builder.Configuration.GetSection("ENDPOINTS").Get>(); + var endpoints = builder.Configuration.GetSection("ENDPOINTS").Get(); - foreach (var endpoint in endpoints) + foreach (var endpoint in endpoints.Split(";")) { - var name = endpoint.Split(';')[0]; - var uri = endpoint.Split(';')[1]; + var name = endpoint.Split('|')[0]; + var uri = endpoint.Split('|')[1]; setup.AddHealthCheckEndpoint(name, uri); } diff --git a/src/web/DevStore.WebApp.Status/appsettings.Development.json b/src/web/DevStore.WebApp.Status/appsettings.Development.json index 3f9bca5..7e20aac 100644 --- a/src/web/DevStore.WebApp.Status/appsettings.Development.json +++ b/src/web/DevStore.WebApp.Status/appsettings.Development.json @@ -30,14 +30,5 @@ //"DefaultConnection": "Data Source=DSStatus.db" }, - "ENDPOINTS": [ - "Frontend Web;https://localhost:5401/healthz-infra", - "Shopping Cart API;https://localhost:5411/healthz-infra", - "Identity API;https://localhost:5421/healthz-infra", - "Catalog API;https://localhost:5431/healthz-infra", - "Customer API;https://localhost:5441/healthz-infra", - "BFF Checkout;https://localhost:5451/healthz-infra", - "Billing API;https://localhost:5461/healthz-infra", - "Order API;https://localhost:5471/healthz-infra" - ] + "ENDPOINTS": "Frontend Web|https://localhost:5401/healthz-infra;Shopping Cart API|https://localhost:5411/healthz-infra;Identity API|https://localhost:5421/healthz-infra;Catalog API|https://localhost:5431/healthz-infra;Customer API|https://localhost:5441/healthz-infra;BFF Checkout|https://localhost:5451/healthz-infra;Billing API|https://localhost:5461/healthz-infra;Order API|https://localhost:5471/healthz-infra" } diff --git a/src/web/DevStore.WebApp.Status/appsettings.Docker.json b/src/web/DevStore.WebApp.Status/appsettings.Docker.json index fbe44c1..d14e127 100644 --- a/src/web/DevStore.WebApp.Status/appsettings.Docker.json +++ b/src/web/DevStore.WebApp.Status/appsettings.Docker.json @@ -19,14 +19,5 @@ "ConnectionStrings": { "DefaultConnection": "Server=database-status;Database=DSStatus;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, - "ENDPOINTS": [ - "Identity API;https://api-identity/healthz-infra", - "BFF Checkout;https://api-bff-checkout/healthz-infra", - "Frontend Web;https://web-mvc/healthz-infra", - "Shopping Cart API;https://api-cart/healthz-infra", - "Catalog API;https://api-catalog/healthz-infra", - "Customer API;https://api-customers/healthz-infra", - "Billing API;https://api-billing/healthz-infra", - "Order API;https://api-order/healthz-infra" - ] + "ENDPOINTS": "Identity API|https://api-identity/healthz-infra;BFF Checkout|https://api-bff-checkout/healthz-infra;Frontend Web|https://web-mvc/healthz-infra;Shopping Cart API|https://api-cart/healthz-infra;Catalog API|https://api-catalog/healthz-infra;Customer API|https://api-customers/healthz-infra;Billing API|https://api-billing/healthz-infra;Order API|https://api-order/healthz-infra" } \ No newline at end of file diff --git a/src/web/DevStore.WebApp.Status/appsettings.Production.json b/src/web/DevStore.WebApp.Status/appsettings.Production.json index 14c27bf..3378993 100644 --- a/src/web/DevStore.WebApp.Status/appsettings.Production.json +++ b/src/web/DevStore.WebApp.Status/appsettings.Production.json @@ -19,14 +19,5 @@ "ConnectionStrings": { "DefaultConnection": "Server=database-status;Database=DSStatus;MultipleActiveResultSets=true;User Id=sa;Password=MyDB@123" }, - "ENDPOINTS": [ - "Frontend Web;https://web-devstore-ecommerce/healthz", - "Identity API;https://api-identity/healthz-infra", - "BFF Checkout;https://api-bff-checkout/healthz-infra", - "Shopping Cart API;https://api-cart/healthz-infra", - "Catalog API;https://api-catalog/healthz-infra", - "Customer API;https://api-customers/healthz-infra", - "Billing API;https://api-billing/healthz-infra", - "Order API;https://api-orders/healthz-infra" - ] + "ENDPOINTS": "Frontend Web|https://web-devstore-ecommerce/healthz;Identity API|https://api-identity/healthz-infra;BFF Checkout|https://api-bff-checkout/healthz-infra;Shopping Cart API|https://api-cart/healthz-infra;Catalog API|https://api-catalog/healthz-infra;Customer API|https://api-customers/healthz-infra;Billing API|https://api-billing/healthz-infra;Order API|https://api-orders/healthz-infra" } \ No newline at end of file From 978ff14fe5da47b318b4d745b177f4b62e9cf090 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Sun, 5 Nov 2023 22:04:38 -0300 Subject: [PATCH 12/13] fix: change SQL to Linq --- .../Application/Queries/OrderQueries.cs | Bin 9388 -> 5744 bytes .../Orders/IOrderRepository.cs | Bin 1242 -> 1428 bytes .../Repository/OrderRepository.cs | Bin 3660 -> 5072 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/services/DevStore.Orders.API/Application/Queries/OrderQueries.cs b/src/services/DevStore.Orders.API/Application/Queries/OrderQueries.cs index d93fe7b7cdd5cf4cf8bb71ab56c084b965e40f49..d057c3ffc3b355ccd4cdc99026b894b52eea1395 100644 GIT binary patch delta 1034 zcmaJ=O>YuW6ulH%5-9_eVr6DvJ`fAq3?_}XX=0NW5+!NCSWSpK1XL0jOb23&VnSEO zonE&t=-R|4`hVQHaMgu-Ju?Ul)y(3(%)Rg2^Ul5R%;(bC#;Li)YIud8E${H#g;jnR z-qu?5gjC8>myW1GP3$VQ$ii+?pW4*^Itp$1QC40&pc+{`^lQE>e+qB1Ajm$8qmi4u zdqLp);+1&CMKUGi_u`$!BK4@t-?apviFXqvT&2=&tSO2NLY9Ytb>5bQm^)tp3exPe z^#Vj$HWzgqvHxc(uo8-ML%MZ6i)KvVb8|P%bROcYh6Pref34_5&GYKG5{&b4;41%= zR@U6w_MoGSYTV&y-7ZC43Fe7_nYL&TkFtH+V-C zGG2U>>DzCc=Z~ts<%QnIoLjJD1G`C2sf@Tok8K~YFPQNSoEH$1BL7J1nM35;Sam42 zUC_gK$9dOX>?WcYq_UQXebB2cB$t(mB_~jWDpNa;t(o7vhm38;zC$}R->l{zgwtA8 z7h~?qGHeC|J7?c?IdBAl^}lf=Eyvy15|A~tJ4P?1^-v$NZR+u3p!Mhg1~=#dv>hOe cAB0Dd1gqKxpI#RI_OBNeb9^mwabZAz0DrCKMgRZ+ literal 9388 zcmc&)U2j@9820s~{fD#Mlt>xfE_SoDT?x?TR1HZ3>6A{>M1eMF2~apm#H#%DZO>!# zV*B88FoA7~z&+T0zds)P^zXlJ)l3c5NPSX?YN)Q7;BTO&>QH^HzEb||K;5af%G4P1 z165V082ftl3{N$6rcynU#xY#g#zX9YFDXGWL_+_NEq6XzWs_KoF>+{-m9d)Ix)`i84y{oWC7t;QLkKsa# zkMP?KxX)n2F8B|$U$(RSTlkSa9csGd@s4w( z$EPa4ik8nD8YUKAfH$q3!HTp*=B%h-<`%N_v8Jcvka0)LOc7;$wZE{LaFNk+OH~ur zyj|?+Y7GY}B!!jZ2=P-7aNAxQn=5(UYv7k5I+#^M^(Qp!J9e0<%8ITJ+I#e)XzhEj z2Vc^jGt67QzTXn{BWAbp>qN_Y2TqKZ1WyC}yAM4^;6Kk%Kga9@bF4O|f^fy}T5D57 zLMv=uh^8|78W(9<@iYu^NY+TO?`4W`4@bJpuG1<}&!Id0y-stXDC4TN8@-*yW|#LziiyCNzx}Kr~CFoLZd_O_2I!A6a)P?53xhLuXGhA8MGtK4mvEKC#zjF04J9MXQ(N;O|0D2AVO2`p zLUnE7`2@eZ+O+VLV(u8fQ{H2I(@LV%d(57#*oWSt&01Jl!>&tw`~1bODP+4`QWHDS z(xGUI^{%WV{^+drbO+L&V5RZ6?D6BF1r1KH&ggBZzJ4v`(X{Woz|>B7komvlWUAmj85Y34rmdbR+qC6OWal_>kueAfdt<;*5X-e z1R1GkoTkKH86s$kebnI=-Sj%bQ~tga*kpp-5nNJnWGcej+aZ$w7Ndv!P>xtuBbgPJ z_2hA}%=5H8$IOs(bJVClJROQPv3W>t$vNMHHsg4bZ6hk=d|Pq+YS16gpW~HZg{RP$ zaXUZTn93v1nA1;4|8l=Q4r%VD8`$ng6i%#ZwWqHw&SZBIWL4K_(C=KF3+XOCi5=O2 z1^gl!+>qU(FD1HiCU_!_;xlWh+&*wj@cSJ; zQ&d%U?>RoKe`UH!g}?SVvBC=yXlRrmH-tnsbKD}y?G!V_=C@QgduLO|`*A%ajE9P_ zPF^-&-V|12?i;!NIjf7HqcUA2`iL1wXAG+mwLS;FirH6Q&xN{-7B#tkV@IQR%$?#p z#KtuuXMpZH*7dKykc>z>L8RnSs?j(WbBQc6`jQy@pXV&d%5XBdJC4GM!bQgM5~Ueh z?#;M(mEGqj{JGK0`)cNmdk-q>t;dT{fN;-`ancai@>E2tFggx(WW+>=@GC+)M)G)i z4>}Tf$IkZ@ymuby`_Mfnm)WZiyl2}d_oAdXHS7~2kn!fmM*`ZcSl!ax@U?aKSCx%! zB0ZbsM3fa>9hrH&+qY-Zef;|s^quMm;GPC#<1IhW3mNu_PsH9bmZ3l1;xU(Koz+^H z;3S?uRru#Gb8|df$Phm7lvjtOw zv%Nzs<0kalIu>|>lk-K0rtPmT0*JditD(w|L4O2J#ZvpXmNAmEJI>H&*VA6TDUG3j zjOdvm+DX5Mw2q}b{i>l0Q(Px0k4gtbcl;z zH}1%T70TyWY-7e=(LHmFm4$Z;T!(n?e1-e5F|2TfZ)R07=i=MxP58bC*NMJYD$n5j zUH2wD>fn)~5*O=I$9c=#g>OQaCwgQ z_{U|l@L?7)rul|kIJ($xwZ5(Ihnqo^ diff --git a/src/services/DevStore.Orders.Domain/Orders/IOrderRepository.cs b/src/services/DevStore.Orders.Domain/Orders/IOrderRepository.cs index aff9a6bfd90eb70047485b06b5cacc2c68274200..3278a0900ae396da6c7104cc424558a7e20a8eea 100644 GIT binary patch delta 100 zcmcb`IfZ*e0Q2NiOahZrnC-xH029|_9wrfXABIGRVuq5*wJhS3*D>i#hKj30#TgtK oN*PKRG8pn1iWo8(su)rkQW*S!>=YoYh(TlWK_mMyI;e2x%rFW=2DZ=thb9Ni5I>)*_v1o6tu8gpI^2+y}rLbm0L! zfQ79$u;c+G&TT98(=_sBzB}LjJLjJJH1X^8hX3{RUI5zm2U_UGNd zKGk$Temt>);WO?QDRmsmcXb zSJ>%_Jp**nJb4dqP%%fE14b;1Q)Vjt<8 delta 11 Scmcbhenw`44d3Jg!U6yt%>+;Y From 9b0dd4967914e08b8778e1639d5907dcc373744a Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Sun, 5 Nov 2023 22:26:32 -0300 Subject: [PATCH 13/13] fix: release.rc para v19 --- .releaserc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.releaserc b/.releaserc index 213a48f..09cc1d0 100644 --- a/.releaserc +++ b/.releaserc @@ -1,11 +1,17 @@ { "branches": ["main", "preprod", "stage"], - "plugins": [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", "@semantic-release/changelog", + [ "@semantic-release/github", + { + "successComment": false, + "failTitle": false + } + ], "@semantic-release/git" ] -} \ No newline at end of file +} +