Add audit start and end dates to audits

ISO audits often span a window distinct from certificate validity.
Store optional audit_start_date and audit_end_date on the audit
record and expose them through GraphQL, MCP, CLI, n8n, and console.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
Cursor Agent
2026-07-28 14:35:36 +00:00
committed by Bryan Frimin
parent dcb7ffa945
commit fe215efbd1
25 changed files with 385 additions and 28 deletions

View File

@@ -44,6 +44,8 @@ type (
Name *string
ValidFrom *time.Time
ValidUntil *time.Time
AuditStartDate *time.Time
AuditEndDate *time.Time
State *coredata.AuditState
CompliancePortalVisibility *coredata.CompliancePortalVisibility
}
@@ -53,6 +55,8 @@ type (
Name **string
ValidFrom *time.Time
ValidUntil *time.Time
AuditStartDate *time.Time
AuditEndDate *time.Time
State *coredata.AuditState
CompliancePortalVisibility *coredata.CompliancePortalVisibility
}
@@ -70,6 +74,7 @@ func (car *CreateAuditRequest) Validate() error {
v.Check(car.FrameworkID, "framework_id", validator.Required(), validator.GID(coredata.FrameworkEntityType))
v.Check(car.Name, "name", validator.SafeTextNoNewLine(TitleMaxLength))
v.Check(car.ValidUntil, "valid_until", validator.After(car.ValidFrom))
v.Check(car.AuditEndDate, "audit_end_date", validator.After(car.AuditStartDate))
v.Check(car.State, "state", validator.OneOfSlice(coredata.AuditStates()))
v.Check(car.CompliancePortalVisibility, "trust_center_visibility", validator.OneOfSlice(coredata.CompliancePortalVisibilities()))
@@ -82,6 +87,7 @@ func (uar *UpdateAuditRequest) Validate() error {
v.Check(uar.ID, "id", validator.Required(), validator.GID(coredata.AuditEntityType))
v.Check(uar.Name, "name", validator.SafeTextNoNewLine(TitleMaxLength))
v.Check(uar.ValidUntil, "valid_until", validator.After(uar.ValidFrom))
v.Check(uar.AuditEndDate, "audit_end_date", validator.After(uar.AuditStartDate))
v.Check(uar.State, "state", validator.OneOfSlice(coredata.AuditStates()))
v.Check(uar.CompliancePortalVisibility, "trust_center_visibility", validator.OneOfSlice(coredata.CompliancePortalVisibilities()))
@@ -170,6 +176,8 @@ func (s *AuditService) Create(
FrameworkID: req.FrameworkID,
ValidFrom: req.ValidFrom,
ValidUntil: req.ValidUntil,
AuditStartDate: req.AuditStartDate,
AuditEndDate: req.AuditEndDate,
State: coredata.AuditStateNotStarted,
CompliancePortalVisibility: coredata.CompliancePortalVisibilityNone,
CreatedAt: now,
@@ -240,6 +248,14 @@ func (s *AuditService) Update(
audit.ValidUntil = req.ValidUntil
}
if req.AuditStartDate != nil {
audit.AuditStartDate = req.AuditStartDate
}
if req.AuditEndDate != nil {
audit.AuditEndDate = req.AuditEndDate
}
if req.State != nil {
audit.State = *req.State
}