Files
AXP-Resurection/specs/001-development-environment/data-model.md
T
sunfish-admin 12d2179c20 AXP Magisk resurrection track: Speckit 009 port AXP/LOS22 to LOS23.
Ship Magisk like GOLDEN; KernelSU optional recycle only; parallel to sunfish-a16-rom standby.
2026-09-16 21:56:22 +00:00

2.7 KiB

Data model (operational): 001-development-environment

This is not an application domain model. It records host/Git/service entities for planning clarity. No ORM, no API schemas.

Entities

Host (rom-dev01)

Field Notes
OS Ubuntu 24.04 LTS (precondition)
Capacity ~6 vCPU / 52 GB / 2 TB / 32 GB swap
Network Public IPv4 NIC; no required internal NIC
Management External Salt saltenv=base + project config

Account android-build

Field Notes
Type Unprivileged login user
Owns /srv/rom/{src,references,tooling,ccache,artifacts,logs} (as documented)
Must not Need root to compile; own Gitea/Semaphore system dirs

Meta working tree

Path Purpose
/home/android-build/sunfish-a16-rom Spec Kit + specs + docs (Cursor Remote SSH)

Path root /srv/rom

Child Purpose Populated in 001?
src/ Future Android trees Empty (no sync)
references/ Future AXP/reference Empty
tooling/ Project tooling helpers (not Spec Kit checkout) Partial OK
ccache/ CCACHE_DIR Yes (dir + env)
artifacts/ Laptop handoff Dummy file for smoke
logs/ Bootstrap/preflight logs Yes
secrets/ Restricted placeholder Empty; no keygen

GiteaInstance

Field Notes
Bind Loopback / non-public
Repos sunfish-a16-rom, sunfish-rom-manifest, sunfish-rom-build, sunfish-rom-patches
Canonical Yes after first successful push of meta repo

GitMirror (off-VM)

Field Notes
Location Laptop bare mirrors (initial)
Direction Laptop pulls (clone --mirror / remote update); no VM→laptop SSH
Scope All four project repos
Success At least one verified mirror cycle

AnsibleController / SemaphoreInstance

Field Notes
Host rom-dev01
First job Environment smoke playbook
Exposure Same private access model as Gitea

Relationships

AdminSSH ──manages──► Host packages/systemd/firewall
android-build ──writes──► /srv/rom (build-related trees)
GiteaInstance ──hosts──► four Repositories
Laptop ──mirrors──► Repositories (bare)
SemaphoreInstance ──runs──► Ansible smoke playbook on Host
Laptop Cursor ──RemoteSSH──► Host workspace
Laptop ──rsync──► /srv/rom/artifacts (pull)

State transitions (meta Git)

  1. laptop-staging-only
  2. copied-to-host (pre-Gitea)
  3. gitea-canonical (push complete)
  4. mirrored-off-vm (SC-007)

Do not destroy state (1) until (3) and (4) succeed.