init
This commit is contained in:
49
specs/003-vps-image-migration/data-model.md
Normal file
49
specs/003-vps-image-migration/data-model.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user