Rename State of Applicability to Statement of Applicability

Rename the entity across the full stack: database table
(states_of_applicability → statements_of_applicability), Go model,
GraphQL types, MCP specification, CLI commands, frontend components,
routes, and display labels. Includes a migration to rename the table
and its foreign key column.

Widen sidebar from 260px to 280px to fit the longer label.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2026-04-09 13:06:06 +02:00
parent 050073ab3c
commit 5fd580e995
48 changed files with 978 additions and 957 deletions

View File

@@ -2844,17 +2844,17 @@ func (r *Resolver) DeleteDataProtectionImpactAssessmentTool(ctx context.Context,
}, nil
}
func (r *Resolver) ListStatesOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.ListStatesOfApplicabilityInput) (*mcp.CallToolResult, types.ListStatesOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.OrganizationID, probo.ActionStateOfApplicabilityList)
func (r *Resolver) ListStatementsOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.ListStatementsOfApplicabilityInput) (*mcp.CallToolResult, types.ListStatementsOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.OrganizationID, probo.ActionStatementOfApplicabilityList)
prb := r.ProboService(ctx, input.OrganizationID)
pageOrderBy := page.OrderBy[coredata.StateOfApplicabilityOrderField]{
Field: coredata.StateOfApplicabilityOrderFieldCreatedAt,
pageOrderBy := page.OrderBy[coredata.StatementOfApplicabilityOrderField]{
Field: coredata.StatementOfApplicabilityOrderFieldCreatedAt,
Direction: page.OrderDirectionDesc,
}
if input.OrderBy != nil {
pageOrderBy = page.OrderBy[coredata.StateOfApplicabilityOrderField]{
pageOrderBy = page.OrderBy[coredata.StatementOfApplicabilityOrderField]{
Field: input.OrderBy.Field,
Direction: input.OrderBy.Direction,
}
@@ -2862,107 +2862,107 @@ func (r *Resolver) ListStatesOfApplicabilityTool(ctx context.Context, req *mcp.C
cursor := types.NewCursor(input.Size, input.Cursor, pageOrderBy)
pg, err := prb.StatesOfApplicability.ListForOrganizationID(ctx, input.OrganizationID, cursor, coredata.NewStateOfApplicabilityFilter(nil))
pg, err := prb.StatementsOfApplicability.ListForOrganizationID(ctx, input.OrganizationID, cursor, coredata.NewStatementOfApplicabilityFilter(nil))
if err != nil {
return nil, types.ListStatesOfApplicabilityOutput{}, fmt.Errorf("failed to list states of applicability: %w", err)
return nil, types.ListStatementsOfApplicabilityOutput{}, fmt.Errorf("failed to list statements of applicability: %w", err)
}
return nil, types.NewListStatesOfApplicabilityOutput(pg), nil
return nil, types.NewListStatementsOfApplicabilityOutput(pg), nil
}
func (r *Resolver) GetStateOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.GetStateOfApplicabilityInput) (*mcp.CallToolResult, types.GetStateOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.ID, probo.ActionStateOfApplicabilityGet)
func (r *Resolver) GetStatementOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.GetStatementOfApplicabilityInput) (*mcp.CallToolResult, types.GetStatementOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.ID, probo.ActionStatementOfApplicabilityGet)
prb := r.ProboService(ctx, input.ID)
soa, err := prb.StatesOfApplicability.Get(ctx, input.ID)
soa, err := prb.StatementsOfApplicability.Get(ctx, input.ID)
if err != nil {
return nil, types.GetStateOfApplicabilityOutput{}, fmt.Errorf("failed to get state of applicability: %w", err)
return nil, types.GetStatementOfApplicabilityOutput{}, fmt.Errorf("failed to get statement of applicability: %w", err)
}
return nil, types.GetStateOfApplicabilityOutput{
StateOfApplicability: types.NewStateOfApplicability(soa),
return nil, types.GetStatementOfApplicabilityOutput{
StatementOfApplicability: types.NewStatementOfApplicability(soa),
}, nil
}
func (r *Resolver) AddStateOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.AddStateOfApplicabilityInput) (*mcp.CallToolResult, types.AddStateOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.OrganizationID, probo.ActionStateOfApplicabilityCreate)
func (r *Resolver) AddStatementOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.AddStatementOfApplicabilityInput) (*mcp.CallToolResult, types.AddStatementOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.OrganizationID, probo.ActionStatementOfApplicabilityCreate)
svc := r.ProboService(ctx, input.OrganizationID)
soa, err := svc.StatesOfApplicability.Create(ctx, probo.CreateStateOfApplicabilityRequest{
soa, err := svc.StatementsOfApplicability.Create(ctx, probo.CreateStatementOfApplicabilityRequest{
OrganizationID: input.OrganizationID,
Name: input.Name,
OwnerID: input.OwnerID,
})
if err != nil {
return nil, types.AddStateOfApplicabilityOutput{}, fmt.Errorf("failed to create state of applicability: %w", err)
return nil, types.AddStatementOfApplicabilityOutput{}, fmt.Errorf("failed to create statement of applicability: %w", err)
}
return nil, types.AddStateOfApplicabilityOutput{
StateOfApplicability: types.NewStateOfApplicability(soa),
return nil, types.AddStatementOfApplicabilityOutput{
StatementOfApplicability: types.NewStatementOfApplicability(soa),
}, nil
}
func (r *Resolver) UpdateStateOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UpdateStateOfApplicabilityInput) (*mcp.CallToolResult, types.UpdateStateOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.ID, probo.ActionStateOfApplicabilityUpdate)
func (r *Resolver) UpdateStatementOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UpdateStatementOfApplicabilityInput) (*mcp.CallToolResult, types.UpdateStatementOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.ID, probo.ActionStatementOfApplicabilityUpdate)
svc := r.ProboService(ctx, input.ID)
soa, err := svc.StatesOfApplicability.Update(ctx, probo.UpdateStateOfApplicabilityRequest{
StateOfApplicabilityID: input.ID,
Name: input.Name,
OwnerID: input.OwnerID,
soa, err := svc.StatementsOfApplicability.Update(ctx, probo.UpdateStatementOfApplicabilityRequest{
StatementOfApplicabilityID: input.ID,
Name: input.Name,
OwnerID: input.OwnerID,
})
if err != nil {
return nil, types.UpdateStateOfApplicabilityOutput{}, fmt.Errorf("failed to update state of applicability: %w", err)
return nil, types.UpdateStatementOfApplicabilityOutput{}, fmt.Errorf("failed to update statement of applicability: %w", err)
}
return nil, types.UpdateStateOfApplicabilityOutput{
StateOfApplicability: types.NewStateOfApplicability(soa),
return nil, types.UpdateStatementOfApplicabilityOutput{
StatementOfApplicability: types.NewStatementOfApplicability(soa),
}, nil
}
func (r *Resolver) DeleteStateOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.DeleteStateOfApplicabilityInput) (*mcp.CallToolResult, types.DeleteStateOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.ID, probo.ActionStateOfApplicabilityDelete)
func (r *Resolver) DeleteStatementOfApplicabilityTool(ctx context.Context, req *mcp.CallToolRequest, input *types.DeleteStatementOfApplicabilityInput) (*mcp.CallToolResult, types.DeleteStatementOfApplicabilityOutput, error) {
r.MustAuthorize(ctx, input.ID, probo.ActionStatementOfApplicabilityDelete)
svc := r.ProboService(ctx, input.ID)
err := svc.StatesOfApplicability.Delete(ctx, input.ID)
err := svc.StatementsOfApplicability.Delete(ctx, input.ID)
if err != nil {
return nil, types.DeleteStateOfApplicabilityOutput{}, fmt.Errorf("failed to delete state of applicability: %w", err)
return nil, types.DeleteStatementOfApplicabilityOutput{}, fmt.Errorf("failed to delete statement of applicability: %w", err)
}
return nil, types.DeleteStateOfApplicabilityOutput{
DeletedStateOfApplicabilityID: input.ID,
return nil, types.DeleteStatementOfApplicabilityOutput{
DeletedStatementOfApplicabilityID: input.ID,
}, nil
}
func (r *Resolver) ExportStateOfApplicabilityPDFTool(ctx context.Context, req *mcp.CallToolRequest, input *types.ExportStateOfApplicabilityPDFInput) (*mcp.CallToolResult, types.ExportStateOfApplicabilityPDFOutput, error) {
r.MustAuthorize(ctx, input.ID, probo.ActionStateOfApplicabilityExport)
func (r *Resolver) ExportStatementOfApplicabilityPDFTool(ctx context.Context, req *mcp.CallToolRequest, input *types.ExportStatementOfApplicabilityPDFInput) (*mcp.CallToolResult, types.ExportStatementOfApplicabilityPDFOutput, error) {
r.MustAuthorize(ctx, input.ID, probo.ActionStatementOfApplicabilityExport)
svc := r.ProboService(ctx, input.ID)
soa, err := svc.StatesOfApplicability.Get(ctx, input.ID)
soa, err := svc.StatementsOfApplicability.Get(ctx, input.ID)
if err != nil {
return nil, types.ExportStateOfApplicabilityPDFOutput{}, fmt.Errorf("failed to get state of applicability: %w", err)
return nil, types.ExportStatementOfApplicabilityPDFOutput{}, fmt.Errorf("failed to get statement of applicability: %w", err)
}
pdfData, err := svc.StatesOfApplicability.ExportPDF(ctx, input.ID)
pdfData, err := svc.StatementsOfApplicability.ExportPDF(ctx, input.ID)
if err != nil {
return nil, types.ExportStateOfApplicabilityPDFOutput{}, fmt.Errorf("failed to export state of applicability PDF: %w", err)
return nil, types.ExportStatementOfApplicabilityPDFOutput{}, fmt.Errorf("failed to export statement of applicability PDF: %w", err)
}
return nil, types.ExportStateOfApplicabilityPDFOutput{
return nil, types.ExportStatementOfApplicabilityPDFOutput{
PdfBase64: base64.StdEncoding.EncodeToString(pdfData),
Filename: soa.Name + ".pdf",
}, nil
}
func (r *Resolver) ListApplicabilityStatementsTool(ctx context.Context, req *mcp.CallToolRequest, input *types.ListApplicabilityStatementsInput) (*mcp.CallToolResult, types.ListApplicabilityStatementsOutput, error) {
r.MustAuthorize(ctx, input.StateOfApplicabilityID, probo.ActionApplicabilityStatementList)
r.MustAuthorize(ctx, input.StatementOfApplicabilityID, probo.ActionApplicabilityStatementList)
prb := r.ProboService(ctx, input.StateOfApplicabilityID)
prb := r.ProboService(ctx, input.StatementOfApplicabilityID)
pageOrderBy := page.OrderBy[coredata.ApplicabilityStatementOrderField]{
Field: coredata.ApplicabilityStatementOrderFieldControlSectionTitle,
@@ -2977,7 +2977,7 @@ func (r *Resolver) ListApplicabilityStatementsTool(ctx context.Context, req *mcp
cursor := types.NewCursor(input.Size, input.Cursor, pageOrderBy)
pg, err := prb.StatesOfApplicability.ListApplicabilityStatements(ctx, input.StateOfApplicabilityID, cursor)
pg, err := prb.StatementsOfApplicability.ListApplicabilityStatements(ctx, input.StatementOfApplicabilityID, cursor)
if err != nil {
return nil, types.ListApplicabilityStatementsOutput{}, fmt.Errorf("failed to list applicability statements: %w", err)
}
@@ -2990,7 +2990,7 @@ func (r *Resolver) GetApplicabilityStatementTool(ctx context.Context, req *mcp.C
prb := r.ProboService(ctx, input.ID)
stmt, err := prb.StatesOfApplicability.GetApplicabilityStatement(ctx, input.ID)
stmt, err := prb.StatementsOfApplicability.GetApplicabilityStatement(ctx, input.ID)
if err != nil {
return nil, types.GetApplicabilityStatementOutput{}, fmt.Errorf("failed to get applicability statement: %w", err)
}
@@ -3001,13 +3001,13 @@ func (r *Resolver) GetApplicabilityStatementTool(ctx context.Context, req *mcp.C
}
func (r *Resolver) AddApplicabilityStatementTool(ctx context.Context, req *mcp.CallToolRequest, input *types.AddApplicabilityStatementInput) (*mcp.CallToolResult, types.AddApplicabilityStatementOutput, error) {
r.MustAuthorize(ctx, input.StateOfApplicabilityID, probo.ActionApplicabilityStatementCreate)
r.MustAuthorize(ctx, input.StatementOfApplicabilityID, probo.ActionApplicabilityStatementCreate)
svc := r.ProboService(ctx, input.StateOfApplicabilityID)
svc := r.ProboService(ctx, input.StatementOfApplicabilityID)
stmt, err := svc.StatesOfApplicability.CreateApplicabilityStatement(
stmt, err := svc.StatementsOfApplicability.CreateApplicabilityStatement(
ctx,
input.StateOfApplicabilityID,
input.StatementOfApplicabilityID,
input.ControlID,
input.Applicability,
input.Justification,
@@ -3026,7 +3026,7 @@ func (r *Resolver) UpdateApplicabilityStatementTool(ctx context.Context, req *mc
svc := r.ProboService(ctx, input.ID)
stmt, err := svc.StatesOfApplicability.UpdateApplicabilityStatement(
stmt, err := svc.StatementsOfApplicability.UpdateApplicabilityStatement(
ctx,
input.ID,
input.Applicability,
@@ -3046,7 +3046,7 @@ func (r *Resolver) DeleteApplicabilityStatementTool(ctx context.Context, req *mc
svc := r.ProboService(ctx, input.ID)
err := svc.StatesOfApplicability.DeleteApplicabilityStatement(ctx, input.ID)
err := svc.StatementsOfApplicability.DeleteApplicabilityStatement(ctx, input.ID)
if err != nil {
return nil, types.DeleteApplicabilityStatementOutput{}, fmt.Errorf("failed to delete applicability statement: %w", err)
}

View File

@@ -6076,27 +6076,27 @@ components:
$ref: "#/components/schemas/Profile"
description: List of attendee profiles
StateOfApplicabilityOrderField:
StatementOfApplicabilityOrderField:
type: string
enum:
- CREATED_AT
- NAME
go.probo.inc/mcpgen/type: go.probo.inc/probo/pkg/coredata.StateOfApplicabilityOrderField
go.probo.inc/mcpgen/type: go.probo.inc/probo/pkg/coredata.StatementOfApplicabilityOrderField
StateOfApplicabilityOrderBy:
StatementOfApplicabilityOrderBy:
type: object
required:
- field
- direction
properties:
field:
$ref: "#/components/schemas/StateOfApplicabilityOrderField"
description: State of applicability order field
$ref: "#/components/schemas/StatementOfApplicabilityOrderField"
description: Statement of applicability order field
direction:
$ref: "#/components/schemas/OrderDirection"
description: Order direction
StateOfApplicability:
StatementOfApplicability:
type: object
required:
- id
@@ -6108,13 +6108,13 @@ components:
properties:
id:
$ref: "#/components/schemas/GID"
description: State of applicability ID
description: Statement of applicability ID
organization_id:
$ref: "#/components/schemas/GID"
description: Organization ID
name:
type: string
description: State of applicability name
description: Statement of applicability name
owner_id:
$ref: "#/components/schemas/GID"
description: Owner profile ID
@@ -6132,7 +6132,7 @@ components:
format: date-time
description: Update timestamp
ListStatesOfApplicabilityInput:
ListStatementsOfApplicabilityInput:
type: object
required:
- organization_id
@@ -6141,7 +6141,7 @@ components:
$ref: "#/components/schemas/GID"
description: Organization ID
order_by:
$ref: "#/components/schemas/StateOfApplicabilityOrderBy"
$ref: "#/components/schemas/StatementOfApplicabilityOrderBy"
description: Order by
size:
type: integer
@@ -6150,37 +6150,37 @@ components:
$ref: "#/components/schemas/CursorKey"
description: Page cursor
ListStatesOfApplicabilityOutput:
ListStatementsOfApplicabilityOutput:
type: object
required:
- states_of_applicability
- statements_of_applicability
properties:
next_cursor:
$ref: "#/components/schemas/CursorKey"
description: Next cursor
states_of_applicability:
statements_of_applicability:
type: array
items:
$ref: "#/components/schemas/StateOfApplicability"
$ref: "#/components/schemas/StatementOfApplicability"
GetStateOfApplicabilityInput:
GetStatementOfApplicabilityInput:
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/GID"
description: State of applicability ID
description: Statement of applicability ID
GetStateOfApplicabilityOutput:
GetStatementOfApplicabilityOutput:
type: object
required:
- state_of_applicability
- statement_of_applicability
properties:
state_of_applicability:
$ref: "#/components/schemas/StateOfApplicability"
statement_of_applicability:
$ref: "#/components/schemas/StatementOfApplicability"
AddStateOfApplicabilityInput:
AddStatementOfApplicabilityInput:
type: object
required:
- organization_id
@@ -6192,70 +6192,70 @@ components:
description: Organization ID
name:
type: string
description: State of applicability name
description: Statement of applicability name
owner_id:
$ref: "#/components/schemas/GID"
description: Owner profile ID
AddStateOfApplicabilityOutput:
AddStatementOfApplicabilityOutput:
type: object
required:
- state_of_applicability
- statement_of_applicability
properties:
state_of_applicability:
$ref: "#/components/schemas/StateOfApplicability"
statement_of_applicability:
$ref: "#/components/schemas/StatementOfApplicability"
UpdateStateOfApplicabilityInput:
UpdateStatementOfApplicabilityInput:
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/GID"
description: State of applicability ID
description: Statement of applicability ID
name:
type: string
description: State of applicability name
description: Statement of applicability name
owner_id:
$ref: "#/components/schemas/GID"
description: Owner profile ID
UpdateStateOfApplicabilityOutput:
UpdateStatementOfApplicabilityOutput:
type: object
required:
- state_of_applicability
- statement_of_applicability
properties:
state_of_applicability:
$ref: "#/components/schemas/StateOfApplicability"
statement_of_applicability:
$ref: "#/components/schemas/StatementOfApplicability"
DeleteStateOfApplicabilityInput:
DeleteStatementOfApplicabilityInput:
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/GID"
description: State of applicability ID
description: Statement of applicability ID
DeleteStateOfApplicabilityOutput:
DeleteStatementOfApplicabilityOutput:
type: object
required:
- deleted_state_of_applicability_id
- deleted_statement_of_applicability_id
properties:
deleted_state_of_applicability_id:
deleted_statement_of_applicability_id:
$ref: "#/components/schemas/GID"
description: Deleted state of applicability ID
description: Deleted statement of applicability ID
ExportStateOfApplicabilityPDFInput:
ExportStatementOfApplicabilityPDFInput:
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/GID"
description: State of applicability ID
description: Statement of applicability ID
ExportStateOfApplicabilityPDFOutput:
ExportStatementOfApplicabilityPDFOutput:
type: object
required:
- pdf_base64
@@ -6292,7 +6292,7 @@ components:
type: object
required:
- id
- state_of_applicability_id
- statement_of_applicability_id
- control_id
- organization_id
- applicability
@@ -6302,9 +6302,9 @@ components:
id:
$ref: "#/components/schemas/GID"
description: Applicability statement ID
state_of_applicability_id:
statement_of_applicability_id:
$ref: "#/components/schemas/GID"
description: State of applicability ID
description: Statement of applicability ID
control_id:
$ref: "#/components/schemas/GID"
description: Control ID
@@ -6336,11 +6336,11 @@ components:
ListApplicabilityStatementsInput:
type: object
required:
- state_of_applicability_id
- statement_of_applicability_id
properties:
state_of_applicability_id:
statement_of_applicability_id:
$ref: "#/components/schemas/GID"
description: State of applicability ID
description: Statement of applicability ID
order_by:
$ref: "#/components/schemas/ApplicabilityStatementOrderBy"
description: Order by
@@ -6384,13 +6384,13 @@ components:
AddApplicabilityStatementInput:
type: object
required:
- state_of_applicability_id
- statement_of_applicability_id
- control_id
- applicability
properties:
state_of_applicability_id:
statement_of_applicability_id:
$ref: "#/components/schemas/GID"
description: State of applicability ID
description: Statement of applicability ID
control_id:
$ref: "#/components/schemas/GID"
description: Control ID
@@ -8526,60 +8526,60 @@ tools:
$ref: "#/components/schemas/ListMeetingAttendeesInput"
outputSchema:
$ref: "#/components/schemas/ListMeetingAttendeesOutput"
- name: listStatesOfApplicability
description: List all states of applicability for the organization
- name: listStatementsOfApplicability
description: List all statements of applicability for the organization
hints:
readonly: true
idempotent: true
inputSchema:
$ref: "#/components/schemas/ListStatesOfApplicabilityInput"
$ref: "#/components/schemas/ListStatementsOfApplicabilityInput"
outputSchema:
$ref: "#/components/schemas/ListStatesOfApplicabilityOutput"
- name: getStateOfApplicability
description: Get a state of applicability by ID
$ref: "#/components/schemas/ListStatementsOfApplicabilityOutput"
- name: getStatementOfApplicability
description: Get a statement of applicability by ID
hints:
readonly: true
idempotent: true
inputSchema:
$ref: "#/components/schemas/GetStateOfApplicabilityInput"
$ref: "#/components/schemas/GetStatementOfApplicabilityInput"
outputSchema:
$ref: "#/components/schemas/GetStateOfApplicabilityOutput"
- name: addStateOfApplicability
description: Add a new state of applicability to the organization
$ref: "#/components/schemas/GetStatementOfApplicabilityOutput"
- name: addStatementOfApplicability
description: Add a new statement of applicability to the organization
hints:
readonly: false
inputSchema:
$ref: "#/components/schemas/AddStateOfApplicabilityInput"
$ref: "#/components/schemas/AddStatementOfApplicabilityInput"
outputSchema:
$ref: "#/components/schemas/AddStateOfApplicabilityOutput"
- name: updateStateOfApplicability
description: Update an existing state of applicability
$ref: "#/components/schemas/AddStatementOfApplicabilityOutput"
- name: updateStatementOfApplicability
description: Update an existing statement of applicability
hints:
readonly: false
inputSchema:
$ref: "#/components/schemas/UpdateStateOfApplicabilityInput"
$ref: "#/components/schemas/UpdateStatementOfApplicabilityInput"
outputSchema:
$ref: "#/components/schemas/UpdateStateOfApplicabilityOutput"
- name: deleteStateOfApplicability
description: Delete a state of applicability
$ref: "#/components/schemas/UpdateStatementOfApplicabilityOutput"
- name: deleteStatementOfApplicability
description: Delete a statement of applicability
hints:
readonly: false
destructive: true
inputSchema:
$ref: "#/components/schemas/DeleteStateOfApplicabilityInput"
$ref: "#/components/schemas/DeleteStatementOfApplicabilityInput"
outputSchema:
$ref: "#/components/schemas/DeleteStateOfApplicabilityOutput"
- name: exportStateOfApplicabilityPDF
description: Export a state of applicability as a PDF document
$ref: "#/components/schemas/DeleteStatementOfApplicabilityOutput"
- name: exportStatementOfApplicabilityPDF
description: Export a statement of applicability as a PDF document
hints:
readonly: true
idempotent: true
inputSchema:
$ref: "#/components/schemas/ExportStateOfApplicabilityPDFInput"
$ref: "#/components/schemas/ExportStatementOfApplicabilityPDFInput"
outputSchema:
$ref: "#/components/schemas/ExportStateOfApplicabilityPDFOutput"
$ref: "#/components/schemas/ExportStatementOfApplicabilityPDFOutput"
- name: listApplicabilityStatements
description: List all applicability statements for a state of applicability
description: List all applicability statements for a statement of applicability
hints:
readonly: true
idempotent: true
@@ -8597,7 +8597,7 @@ tools:
outputSchema:
$ref: "#/components/schemas/GetApplicabilityStatementOutput"
- name: addApplicabilityStatement
description: Add a control to a state of applicability with an applicability decision
description: Add a control to a statement of applicability with an applicability decision
hints:
readonly: false
inputSchema:
@@ -8613,7 +8613,7 @@ tools:
outputSchema:
$ref: "#/components/schemas/UpdateApplicabilityStatementOutput"
- name: deleteApplicabilityStatement
description: Delete an applicability statement from a state of applicability
description: Delete an applicability statement from a statement of applicability
hints:
readonly: false
destructive: true

View File

@@ -18,8 +18,8 @@ import (
"go.probo.inc/probo/pkg/page"
)
func NewStateOfApplicability(s *coredata.StateOfApplicability) *StateOfApplicability {
return &StateOfApplicability{
func NewStatementOfApplicability(s *coredata.StatementOfApplicability) *StatementOfApplicability {
return &StatementOfApplicability{
ID: s.ID,
OrganizationID: s.OrganizationID,
Name: s.Name,
@@ -30,33 +30,33 @@ func NewStateOfApplicability(s *coredata.StateOfApplicability) *StateOfApplicabi
}
}
func NewListStatesOfApplicabilityOutput(pg *page.Page[*coredata.StateOfApplicability, coredata.StateOfApplicabilityOrderField]) ListStatesOfApplicabilityOutput {
items := make([]*StateOfApplicability, 0, len(pg.Data))
func NewListStatementsOfApplicabilityOutput(pg *page.Page[*coredata.StatementOfApplicability, coredata.StatementOfApplicabilityOrderField]) ListStatementsOfApplicabilityOutput {
items := make([]*StatementOfApplicability, 0, len(pg.Data))
for _, v := range pg.Data {
items = append(items, NewStateOfApplicability(v))
items = append(items, NewStatementOfApplicability(v))
}
var nextCursor *page.CursorKey
if len(pg.Data) > 0 {
cursorKey := pg.Data[len(pg.Data)-1].CursorKey(pg.Cursor.OrderBy.Field)
nextCursor = &cursorKey
}
return ListStatesOfApplicabilityOutput{
NextCursor: nextCursor,
StatesOfApplicability: items,
return ListStatementsOfApplicabilityOutput{
NextCursor: nextCursor,
StatementsOfApplicability: items,
}
}
func NewApplicabilityStatement(a *coredata.ApplicabilityStatement) *ApplicabilityStatement {
return &ApplicabilityStatement{
ID: a.ID,
StateOfApplicabilityID: a.StateOfApplicabilityID,
ControlID: a.ControlID,
OrganizationID: a.OrganizationID,
SnapshotID: a.SnapshotID,
Applicability: a.Applicability,
Justification: a.Justification,
CreatedAt: a.CreatedAt,
UpdatedAt: a.UpdatedAt,
ID: a.ID,
StatementOfApplicabilityID: a.StatementOfApplicabilityID,
ControlID: a.ControlID,
OrganizationID: a.OrganizationID,
SnapshotID: a.SnapshotID,
Applicability: a.Applicability,
Justification: a.Justification,
CreatedAt: a.CreatedAt,
UpdatedAt: a.UpdatedAt,
}
}