ObjectStackObjectStack

Change Management

Change Management protocol schemas

Source: packages/spec/src/system/change-management.zod.ts

TypeScript Usage

import { ChangeImpactSchema, ChangePrioritySchema, ChangeRequestSchema, ChangeStatusSchema, ChangeTypeSchema, RollbackPlanSchema } from '@objectstack/spec/system';
import type { ChangeImpact, ChangePriority, ChangeRequest, ChangeStatus, ChangeType, RollbackPlan } from '@objectstack/spec/system';

// Validate data
const result = ChangeImpactSchema.parse(data);

ChangeImpact

Properties

PropertyTypeRequiredDescription
levelEnum<'low' | 'medium' | 'high' | 'critical'>Impact level
affectedSystemsstring[]Affected systems
affectedUsersnumberoptionalAffected user count
downtime{ required: boolean; durationMinutes?: number }optionalDowntime information

Nested Shape: ChangeImpact.downtime

PropertyTypeRequiredDescription
requiredbooleanDowntime required
durationMinutesnumberoptionalDowntime duration

ChangePriority

Allowed Values

  • critical
  • high
  • medium
  • low

ChangeRequest

Properties

PropertyTypeRequiredDescription
idstringChange request ID
titlestringChange title
descriptionstringChange description
typeEnum<'standard' | 'normal' | 'emergency' | 'major'>Change type
priorityEnum<'critical' | 'high' | 'medium' | 'low'>Change priority
statusEnum<'draft' | 'submitted' | 'in-review' | 'approved' | 'scheduled' | 'in-progress' | 'completed' | 'failed' | 'rolled-back' | 'cancelled'>Change status
requestedBystringRequester user ID
requestedAtnumberRequest timestamp
impact{ level: Enum<'low' | 'medium' | 'high' | 'critical'>; affectedSystems: string[]; affectedUsers?: number; downtime?: object }Impact assessment
implementation{ description: string; steps: object[]; testing?: string }Implementation plan
rollbackPlan{ description: string; steps: object[]; testProcedure?: string }Rollback plan
schedule{ plannedStart: number; plannedEnd: number; actualStart?: number; actualEnd?: number }optionalSchedule
securityImpact{ assessed: boolean; riskLevel?: Enum<'none' | 'low' | 'medium' | 'high' | 'critical'>; affectedDataClassifications?: Enum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>[]; requiresSecurityApproval: boolean; … }optionalSecurity impact assessment per ISO 27001:2022 A.8.32
approval{ required: boolean; approvers: object[] }optionalApproval workflow
attachments{ name: string; url: string }[]optionalAttachments
metadataRecord<string, any>optionalCustom metadata key-value pairs for extensibility

Nested Shape: ChangeRequest.impact

PropertyTypeRequiredDescription
levelEnum<'low' | 'medium' | 'high' | 'critical'>Impact level
affectedSystemsstring[]Affected systems
affectedUsersnumberoptionalAffected user count
downtime{ required: boolean; durationMinutes?: number }optionalDowntime information

Nested Shape: ChangeRequest.implementation

PropertyTypeRequiredDescription
descriptionstringImplementation description
steps{ order: number; description: string; estimatedMinutes: number }[]Implementation steps
testingstringoptionalTesting procedure

Nested Shape: ChangeRequest.rollbackPlan

PropertyTypeRequiredDescription
descriptionstringRollback description
steps{ order: number; description: string; estimatedMinutes: number }[]Rollback steps
testProcedurestringoptionalTest procedure

Nested Shape: ChangeRequest.schedule

PropertyTypeRequiredDescription
plannedStartnumberPlanned start time
plannedEndnumberPlanned end time
actualStartnumberoptionalActual start time
actualEndnumberoptionalActual end time

Nested Shape: ChangeRequest.securityImpact

PropertyTypeRequiredDescription
assessedbooleanWhether security impact has been assessed
riskLevelEnum<'none' | 'low' | 'medium' | 'high' | 'critical'>optionalSecurity risk level
affectedDataClassificationsEnum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>[]optionalAffected data classifications
requiresSecurityApprovalbooleanoptional (default: false)Whether security team approval is required
reviewedBystringoptionalSecurity reviewer user ID
reviewedAtnumberoptionalSecurity review timestamp
reviewNotesstringoptionalSecurity review notes or conditions

Nested Shape: ChangeRequest.approval

PropertyTypeRequiredDescription
requiredbooleanApproval required
approvers{ userId: string; approvedAt?: number; comments?: string }[]Approvers

Nested Shape: ChangeRequest.attachments[number]

PropertyTypeRequiredDescription
namestringAttachment name
urlstringAttachment URL

ChangeStatus

Allowed Values

  • draft
  • submitted
  • in-review
  • approved
  • scheduled
  • in-progress
  • completed
  • failed
  • rolled-back
  • cancelled

ChangeType

Allowed Values

  • standard
  • normal
  • emergency
  • major

RollbackPlan

Properties

PropertyTypeRequiredDescription
descriptionstringRollback description
steps{ order: number; description: string; estimatedMinutes: number }[]Rollback steps
testProcedurestringoptionalTest procedure

Nested Shape: RollbackPlan.steps[number]

PropertyTypeRequiredDescription
ordernumberStep order
descriptionstringStep description
estimatedMinutesnumberEstimated duration

On this page