- 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.
46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Microsoft.SelfService.Portal.Core.API.Models
|
|
{
|
|
public class TemplateRevisionModel : BaseModel
|
|
{
|
|
[Column(Order = 1)]
|
|
public Guid TemplateVersionId { get; set; }
|
|
|
|
[Column(Order = 2)]
|
|
public int RevisionNumber { get; set; }
|
|
|
|
[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 IsCurrent { get; set; }
|
|
|
|
[Column(Order = 7)]
|
|
public bool IsPublished { get; set; }
|
|
|
|
[Column(Order = 8)]
|
|
public DateTime? PublishedAt { get; set; }
|
|
|
|
[Column(Order = 9)]
|
|
public string? PublishedBy { get; set; }
|
|
|
|
public TemplateVersionModel TemplateVersion { get; set; } = null!;
|
|
public ICollection<ConfigurationDefinitionModel> ConfigurationDefinitions { get; set; } = new List<ConfigurationDefinitionModel>();
|
|
public ICollection<DeploymentTemplateSelectionModel> DeploymentTemplateSelections { get; set; } = new List<DeploymentTemplateSelectionModel>();
|
|
public ICollection<DeploymentModel> Deployments { get; set; } = new List<DeploymentModel>();
|
|
|
|
public void SetJsonData(string jsonData)
|
|
{
|
|
JsonData = string.IsNullOrWhiteSpace(jsonData) ? "{}" : jsonData;
|
|
JsonHash = TemplateVersionModel.ComputeSha256(JsonData);
|
|
}
|
|
}
|
|
}
|