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:
committed by
Bryan Frimin
parent
dcb7ffa945
commit
fe215efbd1
@@ -40,6 +40,8 @@ mutation($input: CreateAuditInput!) {
|
||||
state
|
||||
validFrom
|
||||
validUntil
|
||||
auditStartDate
|
||||
auditEndDate
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,11 +52,13 @@ type createResponse struct {
|
||||
CreateAudit struct {
|
||||
AuditEdge struct {
|
||||
Node struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
State string `json:"state"`
|
||||
ValidFrom *string `json:"validFrom"`
|
||||
ValidUntil *string `json:"validUntil"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
State string `json:"state"`
|
||||
ValidFrom *string `json:"validFrom"`
|
||||
ValidUntil *string `json:"validUntil"`
|
||||
AuditStartDate *string `json:"auditStartDate"`
|
||||
AuditEndDate *string `json:"auditEndDate"`
|
||||
} `json:"node"`
|
||||
} `json:"auditEdge"`
|
||||
} `json:"createAudit"`
|
||||
@@ -68,6 +72,8 @@ func NewCmdCreate(f *cmdutil.Factory) *cobra.Command {
|
||||
flagState string
|
||||
flagValidFrom string
|
||||
flagValidUntil string
|
||||
flagAuditStartDate string
|
||||
flagAuditEndDate string
|
||||
flagCompliancePortalVisibility string
|
||||
)
|
||||
|
||||
@@ -160,6 +166,14 @@ func NewCmdCreate(f *cmdutil.Factory) *cobra.Command {
|
||||
input["validUntil"] = flagValidUntil
|
||||
}
|
||||
|
||||
if flagAuditStartDate != "" {
|
||||
input["auditStartDate"] = flagAuditStartDate
|
||||
}
|
||||
|
||||
if flagAuditEndDate != "" {
|
||||
input["auditEndDate"] = flagAuditEndDate
|
||||
}
|
||||
|
||||
if flagCompliancePortalVisibility != "" {
|
||||
input["compliancePortalVisibility"] = flagCompliancePortalVisibility
|
||||
}
|
||||
@@ -195,6 +209,8 @@ func NewCmdCreate(f *cmdutil.Factory) *cobra.Command {
|
||||
cmd.Flags().StringVar(&flagState, "state", "", "Audit state: NOT_STARTED, IN_PROGRESS, COMPLETED, REJECTED, OUTDATED")
|
||||
cmd.Flags().StringVar(&flagValidFrom, "valid-from", "", "Valid from date (e.g. 2026-01-01)")
|
||||
cmd.Flags().StringVar(&flagValidUntil, "valid-until", "", "Valid until date (e.g. 2026-12-31)")
|
||||
cmd.Flags().StringVar(&flagAuditStartDate, "audit-start-date", "", "Audit start date (e.g. 2026-03-01)")
|
||||
cmd.Flags().StringVar(&flagAuditEndDate, "audit-end-date", "", "Audit end date (e.g. 2026-03-15)")
|
||||
cmd.Flags().StringVar(&flagCompliancePortalVisibility, "compliance-portal-visibility", "", "Compliance portal visibility: NONE, PRIVATE, PUBLIC")
|
||||
|
||||
return cmd
|
||||
|
||||
@@ -43,6 +43,8 @@ query($id: ID!, $first: Int, $after: CursorKey, $orderBy: AuditOrder) {
|
||||
state
|
||||
validFrom
|
||||
validUntil
|
||||
auditStartDate
|
||||
auditEndDate
|
||||
}
|
||||
}
|
||||
pageInfo {
|
||||
@@ -56,11 +58,13 @@ query($id: ID!, $first: Int, $after: CursorKey, $orderBy: AuditOrder) {
|
||||
`
|
||||
|
||||
type audit struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
State string `json:"state"`
|
||||
ValidFrom *string `json:"validFrom"`
|
||||
ValidUntil *string `json:"validUntil"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
State string `json:"state"`
|
||||
ValidFrom *string `json:"validFrom"`
|
||||
ValidUntil *string `json:"validUntil"`
|
||||
AuditStartDate *string `json:"auditStartDate"`
|
||||
AuditEndDate *string `json:"auditEndDate"`
|
||||
}
|
||||
|
||||
func NewCmdList(f *cmdutil.Factory) *cobra.Command {
|
||||
@@ -180,16 +184,28 @@ func NewCmdList(f *cmdutil.Factory) *cobra.Command {
|
||||
validUntil = *a.ValidUntil
|
||||
}
|
||||
|
||||
auditStartDate := ""
|
||||
if a.AuditStartDate != nil {
|
||||
auditStartDate = *a.AuditStartDate
|
||||
}
|
||||
|
||||
auditEndDate := ""
|
||||
if a.AuditEndDate != nil {
|
||||
auditEndDate = *a.AuditEndDate
|
||||
}
|
||||
|
||||
rows = append(rows, []string{
|
||||
a.ID,
|
||||
a.Name,
|
||||
a.State,
|
||||
validFrom,
|
||||
validUntil,
|
||||
auditStartDate,
|
||||
auditEndDate,
|
||||
})
|
||||
}
|
||||
|
||||
t := cmdutil.NewTable("ID", "NAME", "STATE", "VALID FROM", "VALID UNTIL").Rows(rows...)
|
||||
t := cmdutil.NewTable("ID", "NAME", "STATE", "VALID FROM", "VALID UNTIL", "AUDIT START", "AUDIT END").Rows(rows...)
|
||||
|
||||
_, _ = fmt.Fprintln(f.IOStreams.Out, t)
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ mutation($input: UpdateAuditInput!) {
|
||||
state
|
||||
validFrom
|
||||
validUntil
|
||||
auditStartDate
|
||||
auditEndDate
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,11 +48,13 @@ mutation($input: UpdateAuditInput!) {
|
||||
type updateResponse struct {
|
||||
UpdateAudit struct {
|
||||
Audit struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
State string `json:"state"`
|
||||
ValidFrom *string `json:"validFrom"`
|
||||
ValidUntil *string `json:"validUntil"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
State string `json:"state"`
|
||||
ValidFrom *string `json:"validFrom"`
|
||||
ValidUntil *string `json:"validUntil"`
|
||||
AuditStartDate *string `json:"auditStartDate"`
|
||||
AuditEndDate *string `json:"auditEndDate"`
|
||||
} `json:"audit"`
|
||||
} `json:"updateAudit"`
|
||||
}
|
||||
@@ -61,6 +65,8 @@ func NewCmdUpdate(f *cmdutil.Factory) *cobra.Command {
|
||||
flagState string
|
||||
flagValidFrom string
|
||||
flagValidUntil string
|
||||
flagAuditStartDate string
|
||||
flagAuditEndDate string
|
||||
flagCompliancePortalVisibility string
|
||||
)
|
||||
|
||||
@@ -107,6 +113,14 @@ func NewCmdUpdate(f *cmdutil.Factory) *cobra.Command {
|
||||
input["validUntil"] = flagValidUntil
|
||||
}
|
||||
|
||||
if cmd.Flags().Changed("audit-start-date") {
|
||||
input["auditStartDate"] = flagAuditStartDate
|
||||
}
|
||||
|
||||
if cmd.Flags().Changed("audit-end-date") {
|
||||
input["auditEndDate"] = flagAuditEndDate
|
||||
}
|
||||
|
||||
if cmd.Flags().Changed("compliance-portal-visibility") {
|
||||
input["compliancePortalVisibility"] = flagCompliancePortalVisibility
|
||||
}
|
||||
@@ -144,6 +158,8 @@ func NewCmdUpdate(f *cmdutil.Factory) *cobra.Command {
|
||||
cmd.Flags().StringVar(&flagState, "state", "", "Audit state: NOT_STARTED, IN_PROGRESS, COMPLETED, REJECTED, OUTDATED")
|
||||
cmd.Flags().StringVar(&flagValidFrom, "valid-from", "", "Valid from date (e.g. 2026-01-01)")
|
||||
cmd.Flags().StringVar(&flagValidUntil, "valid-until", "", "Valid until date (e.g. 2026-12-31)")
|
||||
cmd.Flags().StringVar(&flagAuditStartDate, "audit-start-date", "", "Audit start date (e.g. 2026-03-01)")
|
||||
cmd.Flags().StringVar(&flagAuditEndDate, "audit-end-date", "", "Audit end date (e.g. 2026-03-15)")
|
||||
cmd.Flags().StringVar(&flagCompliancePortalVisibility, "compliance-portal-visibility", "", "Compliance portal visibility: NONE, PRIVATE, PUBLIC")
|
||||
|
||||
return cmd
|
||||
|
||||
@@ -40,6 +40,8 @@ query($id: ID!) {
|
||||
state
|
||||
validFrom
|
||||
validUntil
|
||||
auditStartDate
|
||||
auditEndDate
|
||||
createdAt
|
||||
updatedAt
|
||||
}
|
||||
@@ -49,14 +51,16 @@ query($id: ID!) {
|
||||
|
||||
type viewResponse struct {
|
||||
Node *struct {
|
||||
Typename string `json:"__typename"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
State string `json:"state"`
|
||||
ValidFrom *string `json:"validFrom"`
|
||||
ValidUntil *string `json:"validUntil"`
|
||||
CreatedAt string `json:"createdAt"`
|
||||
UpdatedAt string `json:"updatedAt"`
|
||||
Typename string `json:"__typename"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
State string `json:"state"`
|
||||
ValidFrom *string `json:"validFrom"`
|
||||
ValidUntil *string `json:"validUntil"`
|
||||
AuditStartDate *string `json:"auditStartDate"`
|
||||
AuditEndDate *string `json:"auditEndDate"`
|
||||
CreatedAt string `json:"createdAt"`
|
||||
UpdatedAt string `json:"updatedAt"`
|
||||
} `json:"node"`
|
||||
}
|
||||
|
||||
@@ -134,6 +138,14 @@ func NewCmdView(f *cmdutil.Factory) *cobra.Command {
|
||||
_, _ = fmt.Fprintf(out, "%s%s\n", label.Render("Valid Until:"), *a.ValidUntil)
|
||||
}
|
||||
|
||||
if a.AuditStartDate != nil && *a.AuditStartDate != "" {
|
||||
_, _ = fmt.Fprintf(out, "%s%s\n", label.Render("Audit Start:"), *a.AuditStartDate)
|
||||
}
|
||||
|
||||
if a.AuditEndDate != nil && *a.AuditEndDate != "" {
|
||||
_, _ = fmt.Fprintf(out, "%s%s\n", label.Render("Audit End:"), *a.AuditEndDate)
|
||||
}
|
||||
|
||||
_, _ = fmt.Fprintln(out)
|
||||
_, _ = fmt.Fprintf(out, "%s%s\n", label.Render("Created:"), cmdutil.FormatTime(a.CreatedAt))
|
||||
_, _ = fmt.Fprintf(out, "%s%s\n", label.Render("Updated:"), cmdutil.FormatTime(a.UpdatedAt))
|
||||
|
||||
Reference in New Issue
Block a user