6 Commits

Author SHA1 Message Date
Oscar Morales
33c0cd2642 Remove _id from adapters 2025-06-17 15:10:30 -06:00
8ac0eb0bf0 Merge pull request #3 from SergioMatias94/feature/adapt-to-use-mongo
Add CollectionAttributeName and use ApplicationEnum for Agile
2025-06-10 23:15:07 -06:00
8d954c9a09 Avoid azure app config for local environment 2025-06-09 00:45:40 -06:00
f82ebb5e69 Rename variables for public and private key used for jwt token creation 2025-06-09 00:37:17 -06:00
Oscar Morales
44ccda0736 Add CollectionAttributeName and use ApplicationEnum for Agile 2025-06-04 11:51:31 -06:00
fd31d5dd00 Merge pull request #2 from SergioMatias94/feature/use-blueprint-mongo
Use Blueprint.Mongo package
2025-05-19 17:17:07 -06:00
8 changed files with 35 additions and 73 deletions

View File

@@ -4,6 +4,7 @@
// </copyright> // </copyright>
// *********************************************************************** // ***********************************************************************
using Core.Blueprint.Mongo;
using Core.Thalos.Adapters.Common.Enums; using Core.Thalos.Adapters.Common.Enums;
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
@@ -14,17 +15,9 @@ namespace Core.Thalos.Adapters
/// <summary> /// <summary>
/// Adapter for representing a module. /// Adapter for representing a module.
/// </summary> /// </summary>
[CollectionAttributeName("Modules")]
public class ModuleAdapter : Document public class ModuleAdapter : Document
{ {
/// <summary>
/// Gets or sets the ID of the module.
/// </summary>
[BsonId]
[BsonElement("_id")]
[BsonRepresentation(BsonType.ObjectId)]
[JsonPropertyName("id")]
public string Id { get; set; } = null!;
/// <summary> /// <summary>
/// Gets or sets the name of the module. /// Gets or sets the name of the module.
/// </summary> /// </summary>

View File

@@ -4,8 +4,8 @@
// </copyright> // </copyright>
// *********************************************************************** // ***********************************************************************
using Core.Blueprint.Mongo;
using Core.Thalos.Adapters.Common.Constants; using Core.Thalos.Adapters.Common.Constants;
using Core.Thalos.Adapters.Common.Enums;
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
@@ -15,17 +15,9 @@ namespace Core.Thalos.Adapters
/// <summary> /// <summary>
/// Adapter for representing a permission. /// Adapter for representing a permission.
/// </summary> /// </summary>
[CollectionAttributeName("Permissions")]
public class PermissionAdapter : Document public class PermissionAdapter : Document
{ {
/// <summary>
/// Gets or sets the ID of the entity.
/// </summary>
[BsonId]
[BsonElement("_id")]
[BsonRepresentation(BsonType.ObjectId)]
[JsonPropertyName("id")]
public string Id { get; set; } = null!;
/// <summary> /// <summary>
/// Gets or sets the name of the entity. /// Gets or sets the name of the entity.
/// </summary> /// </summary>

View File

@@ -4,6 +4,7 @@
// </copyright> // </copyright>
// *********************************************************************** // ***********************************************************************
using Core.Blueprint.Mongo;
using Core.Thalos.Adapters.Common.Enums; using Core.Thalos.Adapters.Common.Enums;
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
@@ -14,17 +15,9 @@ namespace Core.Thalos.Adapters
/// <summary> /// <summary>
/// Adapter representing a role. /// Adapter representing a role.
/// </summary> /// </summary>
[CollectionAttributeName("Roles")]
public class RoleAdapter : Document public class RoleAdapter : Document
{ {
/// <summary>
/// Gets or sets the unique identifier of the role.
/// </summary>
[BsonId]
[BsonElement("_id")]
[BsonRepresentation(BsonType.ObjectId)]
[JsonPropertyName("id")]
public string Id { get; set; } = null!;
/// <summary> /// <summary>
/// Gets or sets the name of the role. /// Gets or sets the name of the role.
/// </summary> /// </summary>

View File

@@ -3,7 +3,7 @@
// AgileWebs // AgileWebs
// </copyright> // </copyright>
// *********************************************************************** // ***********************************************************************
using Core.Thalos.Adapters.Common.Enums; using Core.Blueprint.Mongo;
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
@@ -13,17 +13,9 @@ namespace Core.Thalos.Adapters
/// <summary> /// <summary>
/// Adapter representing a user. /// Adapter representing a user.
/// </summary> /// </summary>
[CollectionAttributeName("Users")]
public class UserAdapter : Document public class UserAdapter : Document
{ {
/// <summary>
/// Gets or sets the unique identifier of the user.
/// </summary>
[BsonId]
[BsonElement("_id")]
[BsonRepresentation(BsonType.ObjectId)]
[JsonPropertyName("id")]
public string Id { get; set; } = null!;
/// <summary> /// <summary>
/// Gets or sets the guid of the user. /// Gets or sets the guid of the user.
/// </summary> /// </summary>

View File

@@ -53,7 +53,7 @@ namespace Core.Thalos.Adapters.Common.Constants
public const string ThalosAppTokenUrl = "Swagger:TokenUri"; public const string ThalosAppTokenUrl = "Swagger:TokenUri";
public const string ThalosAppClientId = "Swagger:ClientId"; public const string ThalosAppClientId = "Swagger:ClientId";
public const string ThalosAppScope = "Swagger:Scope"; public const string ThalosAppScope = "Swagger:Scope";
public const string PrivateKey = "B2C:JwtIssuerOptions:TokenPrivateKey"; public const string PrivateKey = "JwtTokenPrivateKey";
public const string PublicKey = "B2C:JwtIssuerOptions:TokenPublicKey"; public const string PublicKey = "JwtTokenPublicKey";
} }
} }

View File

@@ -15,28 +15,13 @@ namespace Core.Thalos.Adapters.Common.Enums
public enum ApplicationsEnum public enum ApplicationsEnum
{ {
/// <summary> /// <summary>
/// LSA Web Portal application. /// Thalos application.
/// </summary> /// </summary>
LSAWebPortal = 0, Thalos = 0,
/// <summary> /// <summary>
/// Customer DashBoard application. /// DreamViewer application.
/// </summary> /// </summary>
CustomerDashboard = 1, DreamViewer = 1,
/// <summary>
/// Discover application.
/// </summary>
Discover = 2,
/// <summary>
/// LSA Mobile application.
/// </summary>
LSAMobile = 3,
/// <summary>
/// BluePrint application.
/// </summary>
BluePrint = 4,
} }
} }

View File

@@ -8,11 +8,13 @@
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<VersionPrefix>1.0.2</VersionPrefix>
<VersionSuffix>$(Date:yyyyMMddHHmm)</VersionSuffix>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" /> <PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
<PackageReference Include="Blueprint.Mongo" Version="0.0.3" /> <PackageReference Include="Core.Blueprint.Mongo" Version="1.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.10" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.10" />
<PackageReference Include="Microsoft.Extensions.Configuration.AzureAppConfiguration" Version="8.2.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.AzureAppConfiguration" Version="8.2.0" />
<PackageReference Include="Microsoft.Identity.Web" Version="3.9.1" /> <PackageReference Include="Microsoft.Identity.Web" Version="3.9.1" />

View File

@@ -17,22 +17,27 @@ namespace Core.Thalos.Adapters.Helpers
public static AuthSettings GetAuthSettings(WebApplicationBuilder builder, string appConfigLabel) public static AuthSettings GetAuthSettings(WebApplicationBuilder builder, string appConfigLabel)
{ {
builder.Configuration.AddAzureAppConfiguration(options => var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? string.Empty;
if (environment != "Local")
{ {
var endpoint = builder.Configuration.GetSection("Endpoints:AppConfigurationURI").Value; builder.Configuration.AddAzureAppConfiguration(options =>
if (string.IsNullOrEmpty(endpoint))
throw new ArgumentException("The app configuration is missing");
options.Connect(new Uri(endpoint), new DefaultAzureCredential())
.Select(KeyFilter.Any, "thalos_common")
.Select(KeyFilter.Any, appConfigLabel);
options.ConfigureKeyVault(keyVaultOptions =>
{ {
keyVaultOptions.SetCredential(new DefaultAzureCredential()); var endpoint = builder.Configuration.GetSection("Endpoints:AppConfigurationURI").Value;
if (string.IsNullOrEmpty(endpoint))
throw new ArgumentException("The app configuration is missing");
options.Connect(new Uri(endpoint), new DefaultAzureCredential())
.Select(KeyFilter.Any, "thalos_common")
.Select(KeyFilter.Any, appConfigLabel);
options.ConfigureKeyVault(keyVaultOptions =>
{
keyVaultOptions.SetCredential(new DefaultAzureCredential());
});
}); });
}); }
return new AuthSettings return new AuthSettings
{ {