# added userSecret to store .. secrets

This commit is contained in:
Dominic Villemure
2024-04-21 11:07:34 -04:00
parent 5a23b945cd
commit a0a6e7deb4
4 changed files with 23 additions and 10 deletions

View File

@@ -4,7 +4,6 @@
- Clean Architecture ( with Infrastructure, Domain, Application and Web layers ) - Clean Architecture ( with Infrastructure, Domain, Application and Web layers )
- Minimal API endpoints. - Minimal API endpoints.
- Guards ( Fail fast ) : https://github.com/ardalis/GuardClauses - Guards ( Fail fast ) : https://github.com/ardalis/GuardClauses
-
## Tools ## Tools
- Install Docker : https://www.docker.com/get-started/ - Install Docker : https://www.docker.com/get-started/
@@ -20,8 +19,6 @@ Or with a mounted volume to persist data on the computer instead ( persist data
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourPassword>' -p 1433:1433 -v C:\dev\DockerVolumes\SqlServer-Utopy-1\data:/var/opt/mssql/data -v C:\dev\DockerVolumes\SqlServer-Utopy-1\log:/var/opt/mssql/log -v C:\dev\DockerVolumes\SqlServer-Utopy-1\secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2022-latest docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourPassword>' -p 1433:1433 -v C:\dev\DockerVolumes\SqlServer-Utopy-1\data:/var/opt/mssql/data -v C:\dev\DockerVolumes\SqlServer-Utopy-1\log:/var/opt/mssql/log -v C:\dev\DockerVolumes\SqlServer-Utopy-1\secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2022-latest
``` ```
Set your password in an env var for the connection string. Windows : $Env:DB_PASSWORD = "YourPassword"
## Entity Framework ## Entity Framework
Create a new migration : Create a new migration :
@@ -34,6 +31,24 @@ Update database :
./Ef.ps1 database update ./Ef.ps1 database update
``` ```
## Secret Manager tool
Go to Web project: cd src/Web
Add a user secret for local development :
```
dotnet user-secrets set "DB_PASSWORD" "12345"
```
list your stored secrets :
```
dotnet user-secrets list
```
Delete a secret :
```
dotnet user-secrets remove "DB_PASSWORD"
```
## Build ## Build
Run `dotnet build -tl` to build the solution. Run `dotnet build -tl` to build the solution.

View File

@@ -23,8 +23,8 @@ public static class DependencyInjection
// Prod will use the connectionString stored in the vault with password in it directly. // Prod will use the connectionString stored in the vault with password in it directly.
var connectionString = configuration.GetConnectionString("DefaultConnection") ?? ""; var connectionString = configuration.GetConnectionString("DefaultConnection") ?? "";
var dbPassword = Environment.GetEnvironmentVariable("DB_PASSWORD") ?? ""; var dbPassword = configuration["DB_PASSWORD"] ?? "";
var dbHost = Environment.GetEnvironmentVariable("DB_HOST") ?? "localhost"; var dbHost = configuration["DB_HOST"] ?? "localhost";
if (dbHost == "localhost" && dbPassword != string.Empty) if (dbHost == "localhost" && dbPassword != string.Empty)
{ {

View File

@@ -13,10 +13,7 @@
"launchBrowser": true, "launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000", "applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_ENVIRONMENT": "Development"
"VaultUri": "",
"DB_PASSWORD": "",
"DB_HOST": ""
} }
}, },
"IIS Express": { "IIS Express": {

View File

@@ -3,6 +3,7 @@
<PropertyGroup> <PropertyGroup>
<RootNamespace>Hutopy.Web</RootNamespace> <RootNamespace>Hutopy.Web</RootNamespace>
<AssemblyName>Hutopy.Web</AssemblyName> <AssemblyName>Hutopy.Web</AssemblyName>
<UserSecretsId>de6d03c4-8b1c-49e2-a8ca-c38cd4dc7d85</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>