Files
Microsoft.SelfService.Porta…/Models/TemplateVersionModel.cs
Torsten Brendgen dc93ea0813 feat: Implement API client and token models with hashing and JWT authentication
- Added ApiClientModel and ApiTokenModel for managing API clients and tokens.
- Introduced ConfigurationDefinitionModel and ConfigurationValueModel for configuration management.
- Created CredentialSecretModel for storing credential secrets.
- Developed DeploymentArtifactModel and DeploymentBatchModel for deployment management.
- Enhanced DeploymentTargetModel and DeploymentTemplateSelectionModel to support template revisions.
- Added TemplateRevisionModel and TemplateVersionModel for versioning templates.
- Implemented ApiClientSecretHasher for secure secret hashing.
- Created ApiTokenService for generating and validating JWT tokens.
- Updated QueueJobService to handle deployment requests with artifacts.
- Configured authentication settings in appsettings.json for JWT and Negotiate authentication.
2026-07-09 14:44:38 +02:00

50 lines
1.4 KiB
C#

using System.ComponentModel.DataAnnotations.Schema;
using System.Security.Cryptography;
using System.Text;
namespace Microsoft.SelfService.Portal.Core.API.Models
{
public class TemplateVersionModel : BaseModel
{
[Column(Order = 1)]
public Guid TemplateId { get; set; }
[Column(Order = 2)]
public string Version { get; set; } = "1.0.0";
[Column(Order = 3)]
public string JsonData { get; set; } = "{}";
[Column(Order = 4)]
public string JsonHash { get; set; } = string.Empty;
[Column(Order = 5)]
public string SchemaVersion { get; set; } = "1.0";
[Column(Order = 6)]
public bool IsPublished { get; set; }
[Column(Order = 7)]
public DateTime? PublishedAt { get; set; }
[Column(Order = 8)]
public string? PublishedBy { get; set; }
public TemplateModel Template { get; set; } = null!;
public ICollection<TemplateRevisionModel> TemplateRevisions { get; set; } = new List<TemplateRevisionModel>();
public void SetJsonData(string jsonData)
{
JsonData = string.IsNullOrWhiteSpace(jsonData) ? "{}" : jsonData;
JsonHash = ComputeSha256(JsonData);
}
public static string ComputeSha256(string value)
{
var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(value ?? string.Empty));
return Convert.ToHexString(bytes);
}
}
}