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.
This commit is contained in:
@@ -190,12 +190,26 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers
|
||||
if (!_deploymentBatchInterface.CheckDeploymentBatchById(id))
|
||||
return NotFound();
|
||||
|
||||
if (!_context.TemplateVersions.Any(version => version.Id == templateSelection.TemplateVersionId))
|
||||
var templateVersion = _context.TemplateVersions
|
||||
.Include(version => version.TemplateRevisions)
|
||||
.FirstOrDefault(version => version.Id == templateSelection.TemplateVersionId);
|
||||
|
||||
if (templateVersion == null)
|
||||
{
|
||||
ModelState.AddModelError(nameof(templateSelection.TemplateVersionId), "Template version was not found.");
|
||||
return BadRequest(ModelState);
|
||||
}
|
||||
|
||||
var templateRevisionId = templateSelection.TemplateRevisionId
|
||||
?? templateVersion.TemplateRevisions.FirstOrDefault(revision => revision.IsCurrent)?.Id;
|
||||
|
||||
if (templateRevisionId.HasValue
|
||||
&& !templateVersion.TemplateRevisions.Any(revision => revision.Id == templateRevisionId.Value))
|
||||
{
|
||||
ModelState.AddModelError(nameof(templateSelection.TemplateRevisionId), "Template revision was not found in this template version.");
|
||||
return BadRequest(ModelState);
|
||||
}
|
||||
|
||||
var sortOrder = templateSelection.SortOrder > 0
|
||||
? templateSelection.SortOrder
|
||||
: GetNextTemplateSelectionSortOrder(id);
|
||||
@@ -210,6 +224,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers
|
||||
model.Id = Guid.NewGuid();
|
||||
model.DeploymentGroupId = id;
|
||||
model.SortOrder = sortOrder;
|
||||
model.TemplateRevisionId = templateRevisionId;
|
||||
|
||||
_context.DeploymentTemplateSelections.Add(model);
|
||||
_context.SaveChanges();
|
||||
|
||||
Reference in New Issue
Block a user