Change Management
Change Management protocol schemas
Change Type Enum
Classification of change requests based on risk and approval requirements. Follows ITIL change management best practices.
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
| Property | Type | Required | Description |
|---|---|---|---|
| level | Enum<'low' | 'medium' | 'high' | 'critical'> | ✅ | Impact level |
| affectedSystems | string[] | ✅ | Affected systems |
| affectedUsers | number | optional | Affected user count |
| downtime | { required: boolean; durationMinutes?: number } | optional | Downtime information |
ChangePriority
Allowed Values
criticalhighmediumlow
ChangeRequest
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| id | string | ✅ | Change request ID |
| title | string | ✅ | Change title |
| description | string | ✅ | Change description |
| type | Enum<'standard' | 'normal' | 'emergency' | 'major'> | ✅ | Change type |
| priority | Enum<'critical' | 'high' | 'medium' | 'low'> | ✅ | Change priority |
| status | Enum<'draft' | 'submitted' | 'in-review' | 'approved' | 'scheduled' | 'in-progress' | 'completed' | 'failed' | 'rolled-back' | 'cancelled'> | ✅ | Change status |
| requestedBy | string | ✅ | Requester user ID |
| requestedAt | number | ✅ | Request 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 } | optional | Schedule |
| securityImpact | { assessed: boolean; riskLevel?: Enum<'none' | 'low' | 'medium' | 'high' | 'critical'>; affectedDataClassifications?: Enum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>[]; requiresSecurityApproval: boolean; … } | optional | Security impact assessment per ISO 27001:2022 A.8.32 |
| approval | { required: boolean; approvers: object[] } | optional | Approval workflow |
| attachments | { name: string; url: string }[] | optional | Attachments |
| metadata | Record<string, any> | optional | Custom metadata key-value pairs for extensibility |
ChangeStatus
Allowed Values
draftsubmittedin-reviewapprovedscheduledin-progresscompletedfailedrolled-backcancelled
ChangeType
Allowed Values
standardnormalemergencymajor
RollbackPlan
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| description | string | ✅ | Rollback description |
| steps | { order: number; description: string; estimatedMinutes: number }[] | ✅ | Rollback steps |
| testProcedure | string | optional | Test procedure |