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))
|
||||
|
||||
@@ -43,6 +43,8 @@ type (
|
||||
ReportFileID *gid.GID `db:"report_file_id"`
|
||||
ValidFrom *time.Time `db:"valid_from"`
|
||||
ValidUntil *time.Time `db:"valid_until"`
|
||||
AuditStartDate *time.Time `db:"audit_start_date"`
|
||||
AuditEndDate *time.Time `db:"audit_end_date"`
|
||||
State AuditState `db:"state"`
|
||||
CompliancePortalVisibility CompliancePortalVisibility `db:"trust_center_visibility"`
|
||||
CreatedAt time.Time `db:"created_at"`
|
||||
@@ -122,6 +124,8 @@ SELECT
|
||||
report_file_id,
|
||||
valid_from,
|
||||
valid_until,
|
||||
audit_start_date,
|
||||
audit_end_date,
|
||||
state,
|
||||
trust_center_visibility,
|
||||
created_at,
|
||||
@@ -208,6 +212,8 @@ SELECT
|
||||
report_file_id,
|
||||
valid_from,
|
||||
valid_until,
|
||||
audit_start_date,
|
||||
audit_end_date,
|
||||
state,
|
||||
trust_center_visibility,
|
||||
created_at,
|
||||
@@ -258,6 +264,8 @@ INSERT INTO audits (
|
||||
report_file_id,
|
||||
valid_from,
|
||||
valid_until,
|
||||
audit_start_date,
|
||||
audit_end_date,
|
||||
state,
|
||||
trust_center_visibility,
|
||||
created_at,
|
||||
@@ -271,6 +279,8 @@ INSERT INTO audits (
|
||||
@report_file_id,
|
||||
@valid_from,
|
||||
@valid_until,
|
||||
@audit_start_date,
|
||||
@audit_end_date,
|
||||
@state,
|
||||
@trust_center_visibility,
|
||||
@created_at,
|
||||
@@ -287,6 +297,8 @@ INSERT INTO audits (
|
||||
"report_file_id": a.ReportFileID,
|
||||
"valid_from": a.ValidFrom,
|
||||
"valid_until": a.ValidUntil,
|
||||
"audit_start_date": a.AuditStartDate,
|
||||
"audit_end_date": a.AuditEndDate,
|
||||
"state": a.State,
|
||||
"trust_center_visibility": a.CompliancePortalVisibility,
|
||||
"created_at": a.CreatedAt,
|
||||
@@ -313,6 +325,8 @@ SET
|
||||
report_file_id = @report_file_id,
|
||||
valid_from = @valid_from,
|
||||
valid_until = @valid_until,
|
||||
audit_start_date = @audit_start_date,
|
||||
audit_end_date = @audit_end_date,
|
||||
state = @state,
|
||||
trust_center_visibility = @trust_center_visibility,
|
||||
updated_at = @updated_at
|
||||
@@ -329,6 +343,8 @@ WHERE
|
||||
"report_file_id": a.ReportFileID,
|
||||
"valid_from": a.ValidFrom,
|
||||
"valid_until": a.ValidUntil,
|
||||
"audit_start_date": a.AuditStartDate,
|
||||
"audit_end_date": a.AuditEndDate,
|
||||
"state": a.State,
|
||||
"trust_center_visibility": a.CompliancePortalVisibility,
|
||||
"updated_at": a.UpdatedAt,
|
||||
@@ -386,6 +402,8 @@ WITH audits_by_control AS (
|
||||
a.report_file_id,
|
||||
a.valid_from,
|
||||
a.valid_until,
|
||||
a.audit_start_date,
|
||||
a.audit_end_date,
|
||||
a.state,
|
||||
a.trust_center_visibility,
|
||||
a.created_at,
|
||||
@@ -405,6 +423,8 @@ SELECT
|
||||
report_file_id,
|
||||
valid_from,
|
||||
valid_until,
|
||||
audit_start_date,
|
||||
audit_end_date,
|
||||
state,
|
||||
trust_center_visibility,
|
||||
created_at,
|
||||
@@ -453,6 +473,8 @@ WITH audits_by_finding AS (
|
||||
a.report_file_id,
|
||||
a.valid_from,
|
||||
a.valid_until,
|
||||
a.audit_start_date,
|
||||
a.audit_end_date,
|
||||
a.state,
|
||||
a.trust_center_visibility,
|
||||
a.created_at,
|
||||
@@ -472,6 +494,8 @@ SELECT
|
||||
report_file_id,
|
||||
valid_from,
|
||||
valid_until,
|
||||
audit_start_date,
|
||||
audit_end_date,
|
||||
state,
|
||||
trust_center_visibility,
|
||||
created_at,
|
||||
@@ -603,6 +627,8 @@ SELECT
|
||||
report_file_id,
|
||||
valid_from,
|
||||
valid_until,
|
||||
audit_start_date,
|
||||
audit_end_date,
|
||||
state,
|
||||
trust_center_visibility,
|
||||
created_at,
|
||||
@@ -652,6 +678,8 @@ SELECT
|
||||
report_file_id,
|
||||
valid_from,
|
||||
valid_until,
|
||||
audit_start_date,
|
||||
audit_end_date,
|
||||
state,
|
||||
trust_center_visibility,
|
||||
created_at,
|
||||
@@ -698,6 +726,8 @@ SELECT
|
||||
report_id,
|
||||
valid_from,
|
||||
valid_until,
|
||||
audit_start_date,
|
||||
audit_end_date,
|
||||
state,
|
||||
trust_center_visibility,
|
||||
created_at,
|
||||
|
||||
22
pkg/coredata/migrations/20260728T142906Z.sql
Normal file
22
pkg/coredata/migrations/20260728T142906Z.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
-- Copyright (c) 2025-2026 Probo Inc <hello@probo.com>.
|
||||
--
|
||||
-- Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
-- of this software and associated documentation files (the "Software"), to deal
|
||||
-- in the Software without restriction, including without limitation the rights
|
||||
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
-- copies of the Software, and to permit persons to whom the Software is
|
||||
-- furnished to do so, subject to the following conditions:
|
||||
--
|
||||
-- The above copyright notice and this permission notice shall be included in
|
||||
-- all copies or substantial portions of the Software.
|
||||
--
|
||||
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
-- SOFTWARE.
|
||||
|
||||
ALTER TABLE audits ADD COLUMN audit_start_date DATE;
|
||||
ALTER TABLE audits ADD COLUMN audit_end_date DATE;
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -384,6 +384,8 @@ func (r *mutationResolver) CreateAudit(ctx context.Context, input types.CreateAu
|
||||
Name: input.Name,
|
||||
ValidFrom: input.ValidFrom,
|
||||
ValidUntil: input.ValidUntil,
|
||||
AuditStartDate: input.AuditStartDate,
|
||||
AuditEndDate: input.AuditEndDate,
|
||||
State: input.State,
|
||||
CompliancePortalVisibility: input.CompliancePortalVisibility,
|
||||
}
|
||||
@@ -439,6 +441,8 @@ func (r *mutationResolver) UpdateAudit(ctx context.Context, input types.UpdateAu
|
||||
Name: gqlutils.UnwrapOmittable(input.Name),
|
||||
ValidFrom: input.ValidFrom,
|
||||
ValidUntil: input.ValidUntil,
|
||||
AuditStartDate: input.AuditStartDate,
|
||||
AuditEndDate: input.AuditEndDate,
|
||||
State: input.State,
|
||||
CompliancePortalVisibility: input.CompliancePortalVisibility,
|
||||
}
|
||||
|
||||
@@ -151,6 +151,8 @@ type Audit implements Node {
|
||||
framework: Framework @goField(forceResolver: true)
|
||||
validFrom: Datetime
|
||||
validUntil: Datetime
|
||||
auditStartDate: Datetime
|
||||
auditEndDate: Datetime
|
||||
reportFile: File @goField(forceResolver: true)
|
||||
state: AuditState!
|
||||
|
||||
@@ -275,6 +277,8 @@ input CreateAuditInput {
|
||||
name: String
|
||||
validFrom: Datetime
|
||||
validUntil: Datetime
|
||||
auditStartDate: Datetime
|
||||
auditEndDate: Datetime
|
||||
state: AuditState
|
||||
compliancePortalVisibility: CompliancePortalVisibility
|
||||
file: Upload
|
||||
@@ -285,6 +289,8 @@ input UpdateAuditInput {
|
||||
name: String @goField(omittable: true)
|
||||
validFrom: Datetime
|
||||
validUntil: Datetime
|
||||
auditStartDate: Datetime
|
||||
auditEndDate: Datetime
|
||||
state: AuditState
|
||||
compliancePortalVisibility: CompliancePortalVisibility
|
||||
}
|
||||
|
||||
@@ -76,6 +76,8 @@ func NewAudit(a *coredata.Audit) *Audit {
|
||||
},
|
||||
ValidFrom: a.ValidFrom,
|
||||
ValidUntil: a.ValidUntil,
|
||||
AuditStartDate: a.AuditStartDate,
|
||||
AuditEndDate: a.AuditEndDate,
|
||||
State: a.State,
|
||||
Name: a.Name,
|
||||
CompliancePortalVisibility: a.CompliancePortalVisibility,
|
||||
|
||||
@@ -1499,6 +1499,8 @@ func (r *Resolver) AddAuditTool(ctx context.Context, req *mcp.CallToolRequest, i
|
||||
Name: input.Name,
|
||||
ValidFrom: input.ValidFrom,
|
||||
ValidUntil: input.ValidUntil,
|
||||
AuditStartDate: input.AuditStartDate,
|
||||
AuditEndDate: input.AuditEndDate,
|
||||
State: input.State,
|
||||
FrameworkID: input.FrameworkID,
|
||||
},
|
||||
@@ -1527,6 +1529,8 @@ func (r *Resolver) UpdateAuditTool(ctx context.Context, req *mcp.CallToolRequest
|
||||
Name: UnwrapOmittable(input.Name),
|
||||
ValidFrom: input.ValidFrom,
|
||||
ValidUntil: input.ValidUntil,
|
||||
AuditStartDate: input.AuditStartDate,
|
||||
AuditEndDate: input.AuditEndDate,
|
||||
State: input.State,
|
||||
CompliancePortalVisibility: input.CompliancePortalVisibility,
|
||||
},
|
||||
|
||||
@@ -4674,6 +4674,18 @@ components:
|
||||
- "null"
|
||||
format: date-time
|
||||
description: Valid until date
|
||||
audit_start_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
format: date-time
|
||||
description: Audit start date
|
||||
audit_end_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
format: date-time
|
||||
description: Audit end date
|
||||
state:
|
||||
$ref: "#/components/schemas/AuditState"
|
||||
description: Audit state
|
||||
@@ -4791,6 +4803,14 @@ components:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Valid until date
|
||||
audit_start_date:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Audit start date
|
||||
audit_end_date:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Audit end date
|
||||
state:
|
||||
$ref: "#/components/schemas/AuditState"
|
||||
description: Audit state
|
||||
@@ -4827,6 +4847,18 @@ components:
|
||||
- "null"
|
||||
format: date-time
|
||||
description: Valid until date
|
||||
audit_start_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
format: date-time
|
||||
description: Audit start date
|
||||
audit_end_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
format: date-time
|
||||
description: Audit end date
|
||||
state:
|
||||
anyOf:
|
||||
- $ref: "#/components/schemas/AuditState"
|
||||
|
||||
@@ -36,6 +36,8 @@ func NewAudit(a *coredata.Audit, file *coredata.File) *Audit {
|
||||
HasReport: a.ReportFileID != nil,
|
||||
ValidFrom: a.ValidFrom,
|
||||
ValidUntil: a.ValidUntil,
|
||||
AuditStartDate: a.AuditStartDate,
|
||||
AuditEndDate: a.AuditEndDate,
|
||||
CreatedAt: a.CreatedAt,
|
||||
UpdatedAt: a.UpdatedAt,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user