Documentation
¶
Overview ¶
Code generated by ent. DO NOT EDIT. This file is generated to provide type-safe workflow domains for approval scopes.
Code generated by ent. DO NOT EDIT. This should be above the package name declaration for go tooling to treat this as generated. This file is generated to detect edge mutations for workflow triggers.
Code generated by ent. DO NOT EDIT. This file is generated to keep workflow registries in sync with ent schemas.
Index ¶
- Variables
- func ExtractChangedEdges(m ent.Mutation) ([]string, map[string][]string, map[string][]string)
- func GetEligibleFields(objectType enums.WorkflowObjectType) []string
- func IsFieldEligible(objectType enums.WorkflowObjectType, field string) bool
- func IsWorkflowEligible(objectType enums.WorkflowObjectType) bool
- func ValidateDomainFields(objectType enums.WorkflowObjectType, fields []string) error
- type WorkflowDomain
Constants ¶
This section is empty.
Variables ¶
var ( // DomainActionPlanStatus is the approval domain for ActionPlan.status DomainActionPlanStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeActionPlan, Fields: []string{"status"}, } // DomainActionPlanDetails is the approval domain for ActionPlan.details DomainActionPlanDetails = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeActionPlan, Fields: []string{"details"}, } // DomainActionPlanDetailsJSON is the approval domain for ActionPlan.details_json DomainActionPlanDetailsJSON = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeActionPlan, Fields: []string{"details_json"}, } // DomainActionPlanWorkflowEligibleMarker is the approval domain for ActionPlan.workflow_eligible_marker DomainActionPlanWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeActionPlan, Fields: []string{"workflow_eligible_marker"}, } // DomainCampaignWorkflowEligibleMarker is the approval domain for Campaign.workflow_eligible_marker DomainCampaignWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"workflow_eligible_marker"}, } // DomainCampaignStatus is the approval domain for Campaign.status DomainCampaignStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"status"}, } // DomainCampaignIsActive is the approval domain for Campaign.is_active DomainCampaignIsActive = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"is_active"}, } // DomainCampaignScheduledAt is the approval domain for Campaign.scheduled_at DomainCampaignScheduledAt = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"scheduled_at"}, } // DomainCampaignDueDate is the approval domain for Campaign.due_date DomainCampaignDueDate = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"due_date"}, } // DomainCampaignIsRecurring is the approval domain for Campaign.is_recurring DomainCampaignIsRecurring = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"is_recurring"}, } // DomainCampaignRecurrenceFrequency is the approval domain for Campaign.recurrence_frequency DomainCampaignRecurrenceFrequency = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"recurrence_frequency"}, } // DomainCampaignRecipientCount is the approval domain for Campaign.recipient_count DomainCampaignRecipientCount = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"recipient_count"}, } // DomainCampaignResendCount is the approval domain for Campaign.resend_count DomainCampaignResendCount = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaign, Fields: []string{"resend_count"}, } // DomainCampaignTargetWorkflowEligibleMarker is the approval domain for CampaignTarget.workflow_eligible_marker DomainCampaignTargetWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaignTarget, Fields: []string{"workflow_eligible_marker"}, } // DomainCampaignTargetStatus is the approval domain for CampaignTarget.status DomainCampaignTargetStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaignTarget, Fields: []string{"status"}, } // DomainCampaignTargetSentAt is the approval domain for CampaignTarget.sent_at DomainCampaignTargetSentAt = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaignTarget, Fields: []string{"sent_at"}, } // DomainCampaignTargetCompletedAt is the approval domain for CampaignTarget.completed_at DomainCampaignTargetCompletedAt = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeCampaignTarget, Fields: []string{"completed_at"}, } // DomainControlTitle is the approval domain for Control.title DomainControlTitle = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"title"}, } // DomainControlReferenceID is the approval domain for Control.reference_id DomainControlReferenceID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"reference_id"}, } // DomainControlAuditorReferenceID is the approval domain for Control.auditor_reference_id DomainControlAuditorReferenceID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"auditor_reference_id"}, } // DomainControlResponsiblePartyID is the approval domain for Control.responsible_party_id DomainControlResponsiblePartyID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"responsible_party_id"}, } // DomainControlStatus is the approval domain for Control.status DomainControlStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"status"}, } // DomainControlReferenceFramework is the approval domain for Control.reference_framework DomainControlReferenceFramework = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"reference_framework"}, } // DomainControlReferenceFrameworkRevision is the approval domain for Control.reference_framework_revision DomainControlReferenceFrameworkRevision = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"reference_framework_revision"}, } // DomainControlCategory is the approval domain for Control.category DomainControlCategory = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"category"}, } // DomainControlCategoryID is the approval domain for Control.category_id DomainControlCategoryID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"category_id"}, } // DomainControlSubcategory is the approval domain for Control.subcategory DomainControlSubcategory = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"subcategory"}, } // DomainControlControlOwnerID is the approval domain for Control.control_owner_id DomainControlControlOwnerID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"control_owner_id"}, } // DomainControlWorkflowEligibleMarker is the approval domain for Control.workflow_eligible_marker DomainControlWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeControl, Fields: []string{"workflow_eligible_marker"}, } // DomainEvidenceWorkflowEligibleMarker is the approval domain for Evidence.workflow_eligible_marker DomainEvidenceWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeEvidence, Fields: []string{"workflow_eligible_marker"}, } // DomainIdentityHolderWorkflowEligibleMarker is the approval domain for IdentityHolder.workflow_eligible_marker DomainIdentityHolderWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeIdentityHolder, Fields: []string{"workflow_eligible_marker"}, } // DomainIdentityHolderStatus is the approval domain for IdentityHolder.status DomainIdentityHolderStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeIdentityHolder, Fields: []string{"status"}, } // DomainIdentityHolderIsActive is the approval domain for IdentityHolder.is_active DomainIdentityHolderIsActive = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeIdentityHolder, Fields: []string{"is_active"}, } // DomainIdentityHolderStartDate is the approval domain for IdentityHolder.start_date DomainIdentityHolderStartDate = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeIdentityHolder, Fields: []string{"start_date"}, } // DomainIdentityHolderEndDate is the approval domain for IdentityHolder.end_date DomainIdentityHolderEndDate = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeIdentityHolder, Fields: []string{"end_date"}, } // DomainInternalPolicyStatus is the approval domain for InternalPolicy.status DomainInternalPolicyStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeInternalPolicy, Fields: []string{"status"}, } // DomainInternalPolicyDetails is the approval domain for InternalPolicy.details DomainInternalPolicyDetails = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeInternalPolicy, Fields: []string{"details"}, } // DomainInternalPolicyDetailsJSON is the approval domain for InternalPolicy.details_json DomainInternalPolicyDetailsJSON = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeInternalPolicy, Fields: []string{"details_json"}, } // DomainInternalPolicyWorkflowEligibleMarker is the approval domain for InternalPolicy.workflow_eligible_marker DomainInternalPolicyWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeInternalPolicy, Fields: []string{"workflow_eligible_marker"}, } // DomainPlatformWorkflowEligibleMarker is the approval domain for Platform.workflow_eligible_marker DomainPlatformWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypePlatform, Fields: []string{"workflow_eligible_marker"}, } // DomainPlatformBusinessPurpose is the approval domain for Platform.business_purpose DomainPlatformBusinessPurpose = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypePlatform, Fields: []string{"business_purpose"}, } // DomainPlatformScopeStatement is the approval domain for Platform.scope_statement DomainPlatformScopeStatement = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypePlatform, Fields: []string{"scope_statement"}, } // DomainPlatformStatus is the approval domain for Platform.status DomainPlatformStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypePlatform, Fields: []string{"status"}, } // DomainPlatformContainsPii is the approval domain for Platform.contains_pii DomainPlatformContainsPii = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypePlatform, Fields: []string{"contains_pii"}, } // DomainProcedureStatus is the approval domain for Procedure.status DomainProcedureStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeProcedure, Fields: []string{"status"}, } // DomainProcedureDetails is the approval domain for Procedure.details DomainProcedureDetails = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeProcedure, Fields: []string{"details"}, } // DomainProcedureDetailsJSON is the approval domain for Procedure.details_json DomainProcedureDetailsJSON = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeProcedure, Fields: []string{"details_json"}, } // DomainProcedureWorkflowEligibleMarker is the approval domain for Procedure.workflow_eligible_marker DomainProcedureWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeProcedure, Fields: []string{"workflow_eligible_marker"}, } // DomainSubcontrolTitle is the approval domain for Subcontrol.title DomainSubcontrolTitle = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"title"}, } // DomainSubcontrolReferenceID is the approval domain for Subcontrol.reference_id DomainSubcontrolReferenceID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"reference_id"}, } // DomainSubcontrolAuditorReferenceID is the approval domain for Subcontrol.auditor_reference_id DomainSubcontrolAuditorReferenceID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"auditor_reference_id"}, } // DomainSubcontrolResponsiblePartyID is the approval domain for Subcontrol.responsible_party_id DomainSubcontrolResponsiblePartyID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"responsible_party_id"}, } // DomainSubcontrolStatus is the approval domain for Subcontrol.status DomainSubcontrolStatus = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"status"}, } // DomainSubcontrolReferenceFramework is the approval domain for Subcontrol.reference_framework DomainSubcontrolReferenceFramework = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"reference_framework"}, } // DomainSubcontrolReferenceFrameworkRevision is the approval domain for Subcontrol.reference_framework_revision DomainSubcontrolReferenceFrameworkRevision = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"reference_framework_revision"}, } // DomainSubcontrolCategory is the approval domain for Subcontrol.category DomainSubcontrolCategory = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"category"}, } // DomainSubcontrolCategoryID is the approval domain for Subcontrol.category_id DomainSubcontrolCategoryID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"category_id"}, } // DomainSubcontrolSubcategory is the approval domain for Subcontrol.subcategory DomainSubcontrolSubcategory = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"subcategory"}, } // DomainSubcontrolControlOwnerID is the approval domain for Subcontrol.control_owner_id DomainSubcontrolControlOwnerID = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"control_owner_id"}, } // DomainSubcontrolWorkflowEligibleMarker is the approval domain for Subcontrol.workflow_eligible_marker DomainSubcontrolWorkflowEligibleMarker = WorkflowDomain{ ObjectType: enums.WorkflowObjectTypeSubcontrol, Fields: []string{"workflow_eligible_marker"}, } )
Single-field domain constants for each workflow-eligible field
var ErrEmptyDomainFields = fmt.Errorf("domain requires at least one field")
ErrEmptyDomainFields is returned when no fields are provided for a domain
var ErrInvalidDomainField = fmt.Errorf("field is not workflow-eligible for object type")
ErrInvalidDomainField is returned when a field is not workflow-eligible for the object type
var ErrInvalidObjectType = fmt.Errorf("object type is not workflow-eligible")
ErrInvalidObjectType is returned when an object type is not workflow-eligible
var WorkflowEligibleEdges = map[string][]string{ generated.TypeActionPlan: edgeList( "approver", "delegate", "workflow_object_refs", ), generated.TypeControl: edgeList( "evidence", "control_objectives", "tasks", "narratives", "risks", "action_plans", "procedures", "internal_policies", "comments", "discussions", "control_owner", "delegate", "responsible_party", "workflow_object_refs", ), generated.TypeEvidence: edgeList( "workflow_object_refs", ), generated.TypeInternalPolicy: edgeList( "approver", "delegate", "file", "comments", "discussions", "workflow_object_refs", ), generated.TypeProcedure: edgeList( "approver", "delegate", "controls", "subcontrols", "internal_policies", "programs", "narratives", "risks", "tasks", "comments", "discussions", "file", "workflow_object_refs", ), generated.TypeSubcontrol: edgeList( "evidence", "control_objectives", "tasks", "narratives", "risks", "action_plans", "procedures", "internal_policies", "comments", "discussions", "control_owner", "delegate", "responsible_party", "control", "control_implementations", "mapped_to_subcontrols", "mapped_from_subcontrols", "workflow_object_refs", ), }
var WorkflowEligibleFields = map[enums.WorkflowObjectType]map[string]struct{}{ enums.WorkflowObjectTypeActionPlan: { "status": {}, "details": {}, "details_json": {}, "workflow_eligible_marker": {}, }, enums.WorkflowObjectTypeCampaign: { "workflow_eligible_marker": {}, "status": {}, "is_active": {}, "scheduled_at": {}, "due_date": {}, "is_recurring": {}, "recurrence_frequency": {}, "recipient_count": {}, "resend_count": {}, }, enums.WorkflowObjectTypeCampaignTarget: { "workflow_eligible_marker": {}, "status": {}, "sent_at": {}, "completed_at": {}, }, enums.WorkflowObjectTypeControl: { "title": {}, "reference_id": {}, "auditor_reference_id": {}, "responsible_party_id": {}, "status": {}, "reference_framework": {}, "reference_framework_revision": {}, "category": {}, "category_id": {}, "subcategory": {}, "control_owner_id": {}, "workflow_eligible_marker": {}, }, enums.WorkflowObjectTypeEvidence: { "workflow_eligible_marker": {}, }, enums.WorkflowObjectTypeIdentityHolder: { "workflow_eligible_marker": {}, "status": {}, "is_active": {}, "start_date": {}, "end_date": {}, }, enums.WorkflowObjectTypeInternalPolicy: { "status": {}, "details": {}, "details_json": {}, "workflow_eligible_marker": {}, }, enums.WorkflowObjectTypePlatform: { "workflow_eligible_marker": {}, "business_purpose": {}, "scope_statement": {}, "status": {}, "contains_pii": {}, }, enums.WorkflowObjectTypeProcedure: { "status": {}, "details": {}, "details_json": {}, "workflow_eligible_marker": {}, }, enums.WorkflowObjectTypeSubcontrol: { "title": {}, "reference_id": {}, "auditor_reference_id": {}, "responsible_party_id": {}, "status": {}, "reference_framework": {}, "reference_framework_revision": {}, "category": {}, "category_id": {}, "subcategory": {}, "control_owner_id": {}, "workflow_eligible_marker": {}, }, }
WorkflowEligibleFields maps object types to their workflow-eligible field names. Use this to validate that fields in a domain are valid for the object type.
Functions ¶
func ExtractChangedEdges ¶
ExtractChangedEdges inspects the mutation to determine which edge relationships were modified. It returns: edge names, added IDs per edge, removed IDs per edge.
func GetEligibleFields ¶ added in v1.5.10
func GetEligibleFields(objectType enums.WorkflowObjectType) []string
GetEligibleFields returns the workflow-eligible fields for an object type. Returns nil if the object type is not workflow-eligible.
func IsFieldEligible ¶ added in v1.5.10
func IsFieldEligible(objectType enums.WorkflowObjectType, field string) bool
IsFieldEligible returns true if the field is workflow-eligible for the object type
func IsWorkflowEligible ¶ added in v1.5.10
func IsWorkflowEligible(objectType enums.WorkflowObjectType) bool
IsWorkflowEligible returns true if the object type has workflow-eligible fields
func ValidateDomainFields ¶ added in v1.5.10
func ValidateDomainFields(objectType enums.WorkflowObjectType, fields []string) error
ValidateDomainFields checks that all fields are workflow-eligible for the object type. Returns nil if valid, or an error describing the first invalid field.
Types ¶
type WorkflowDomain ¶ added in v1.5.10
type WorkflowDomain struct {
// ObjectType is the workflow object type this domain applies to
ObjectType enums.WorkflowObjectType
// Fields is the sorted list of field names in this domain
Fields []string
}
WorkflowDomain represents a canonical approval domain for workflow proposals. A domain is the combination of an object type and the fields requiring approval.
func MustNewWorkflowDomain ¶ added in v1.5.10
func MustNewWorkflowDomain(objectType enums.WorkflowObjectType, fields []string) WorkflowDomain
MustNewWorkflowDomain creates a validated domain and panics if validation fails. Use this for compile-time constant domains where validation errors indicate programmer error.
func NewWorkflowDomain ¶ added in v1.5.10
func NewWorkflowDomain(objectType enums.WorkflowObjectType, fields []string) (WorkflowDomain, error)
NewWorkflowDomain creates a validated domain for an object type and fields. Fields are automatically sorted to ensure canonical ordering. Returns an error if the object type or any field is not workflow-eligible.
func ParseDomainKey ¶ added in v1.5.10
func ParseDomainKey(key string) (WorkflowDomain, error)
ParseDomainKey parses a domain key string back into a WorkflowDomain. Expected format: "ObjectType:field1,field2" or "ObjectType" for empty fields.
func (WorkflowDomain) Contains ¶ added in v1.5.10
func (d WorkflowDomain) Contains(other WorkflowDomain) bool
Contains returns true if this domain contains all fields of the other domain
func (WorkflowDomain) Equals ¶ added in v1.5.10
func (d WorkflowDomain) Equals(other WorkflowDomain) bool
Equals returns true if two domains have the same object type and fields
func (WorkflowDomain) Key ¶ added in v1.5.10
func (d WorkflowDomain) Key() string
Key returns the canonical domain key including object type prefix. Format: "ObjectType:field1,field2,field3" (fields are sorted).
func (WorkflowDomain) String ¶ added in v1.5.10
func (d WorkflowDomain) String() string
String implements fmt.Stringer