# Data Model: VPS Image Migration ## Host Profile - **Purpose**: Defines a named system configuration (e.g., vps). - **Key fields**: - `name` (string, unique) - `target_environment` (string, e.g., Linode) - `services_required` (list of service identifiers) - `secrets_required` (list of secret identifiers) ## Image Artifact - **Purpose**: Represents a build output used to provision a VPS. - **Key fields**: - `image_type` (string, Linode-compatible) - `build_reference` (string, build timestamp or revision) - `host_profile` (reference to Host Profile) ## Bootstrap Secret Material - **Purpose**: Material required to unlock secrets on the host. - **Key fields**: - `bootstrap_method` (enum: generated-on-host) - `recipient_public_key` (string) - `enrollment_status` (enum: pending, enrolled) ## Deployment Target - **Purpose**: The environment where the image is launched. - **Key fields**: - `provider` (string) - `region` (string) - `instance_id` (string) ## Rebuild Trigger - **Purpose**: Represents an authorized rebuild action for the VPS. - **Key fields**: - `actor` (string) - `requested_at` (datetime) - `status` (enum: queued, running, succeeded, failed) ## Relationships - Host Profile 1..* Image Artifact - Host Profile 1..* Bootstrap Secret Material - Deployment Target 1..1 Image Artifact - Rebuild Trigger *..1 Host Profile