LocalAuthority / README.md
Newer Older
95 lines | 3.697kb
Xdev Host Manager authored a week ago
1
# Madagascar Local Authority
Xdev Host Manager authored a week ago
2

            
Xdev Host Manager authored a week ago
3
Local authority for Madagascar hosts, DNS manifests, work orders, and host certificates.
Xdev Host Manager authored a week ago
4

            
Bogdan Timofte authored a week ago
5
The development checkout lives locally at:
6

            
7
```text
8
/Users/bogdan/Documents/Workspaces/Xdev/Madagascar/LocalAuthority
9
```
10

            
Bogdan Timofte authored a week ago
11
The canonical GitPrep repository is:
12

            
13
```text
14
git@192.168.2.102:repositories/bogdan/LocalAuthority.git
15
```
16

            
Bogdan Timofte authored a week ago
17
The runtime instance lives on jumper and remains the local source for operational registry data:
Xdev Host Manager authored a week ago
18

            
Bogdan Timofte authored 4 days ago
19
- `var/host-manager.sqlite` - runtime source of truth for host registry and Work Orders
20
- `config/hosts.yaml` - seed/snapshot export for host registry compatibility
Xdev Host Manager authored a week ago
21
- `config/local-hosts.tsv` - DNS manifest exported for local resolvers
Bogdan Timofte authored 4 days ago
22
- `config/work-orders.yaml` - seed/snapshot export for confirmable operational changes
Xdev Host Manager authored a week ago
23
- `scripts/host_manager.pl` - Perl-only web app
Xdev Host Manager authored a week ago
24
- `scripts/sync_local_hosts.sh` - local DNS sync to jumper and as01
Xdev Host Manager authored a week ago
25
- `scripts/ca_manager.sh` - local OpenSSL CA helper for host certificates
Xdev Host Manager authored a week ago
26

            
27
The public `xdev.ro` zone is maintained in the separate DNS public-zone repository.
28

            
29
Runtime path:
30

            
31
```text
32
/usr/local/xdev-host-manager
33
```
34

            
35
Secrets live outside git in `/etc/xdev/host-manager.env`.
Xdev Host Manager authored a week ago
36

            
Xdev Host Manager authored a week ago
37
The product name is **Madagascar Local Authority**. The technical service, Unix user, repository path, and environment files still use `host-manager`.
38

            
Bogdan Timofte authored 4 days ago
39
The web UI is OTP-protected for all registry data, downloads, exports, and writes. Automation should consume generated exports with dedicated read-only access, not unauthenticated HTTP.
Xdev Host Manager authored a week ago
40

            
Bogdan Timofte authored a week ago
41
For agent/operator context, see:
42

            
43
- [`agents.md`](agents.md)
Bogdan Timofte authored 4 days ago
44
- [`.doc/database.md`](.doc/database.md)
Bogdan Timofte authored a week ago
45
- [`.doc/development-log.md`](.doc/development-log.md)
46
- [`.doc/host-manager.md`](.doc/host-manager.md)
47
- [`.doc/local-hosts.md`](.doc/local-hosts.md)
48

            
Bogdan Timofte authored 4 days ago
49
## Local development and live testing
Bogdan Timofte authored a week ago
50

            
Bogdan Timofte authored 4 days ago
51
Work on application code locally. Do not leave changes parked in a dirty working
52
tree; commit small, coherent changes so they cannot be lost during deploy,
53
reset, or context switches.
Bogdan Timofte authored a week ago
54

            
55
```bash
56
cd /Users/bogdan/Documents/Workspaces/Xdev/Madagascar/LocalAuthority
Bogdan Timofte authored 4 days ago
57
git status --short
58
git add ...
59
git commit -m "Describe the change"
Bogdan Timofte authored a week ago
60
```
61

            
Bogdan Timofte authored 4 days ago
62
For live testing, push the committed code to the runtime checkout on jumper:
63

            
64
```bash
65
git push jumper-runtime HEAD:main
66
```
67

            
68
The jumper receive hook validates the Perl scripts, restarts `host-manager`,
69
writes `BUILD`, and checks `/healthz`.
70

            
71
For archival/canonical history, push the same commits to GitPrep:
72

            
73
```bash
74
git push origin main
75
```
76

            
77
`scripts/deploy_to_jumper.sh` remains available as an explicit rsync deploy
78
tool, but the normal development loop is commit plus push: `jumper-runtime` for
79
live testing, `origin`/GitPrep for archive and sharing.
Bogdan Timofte authored a week ago
80

            
Bogdan Timofte authored 4 days ago
81
`config/` is not deployed by default. The live source of truth is `var/host-manager.sqlite`; `hosts.yaml`, `local-hosts.tsv`, and `work-orders.yaml` are seed/snapshot/export files that should not replace runtime data during normal code pushes. Deploy config only when intentionally replacing seed/export files:
Bogdan Timofte authored a week ago
82

            
83
```bash
84
scripts/deploy_to_jumper.sh --include-config
85
```
86

            
Xdev Host Manager authored a week ago
87
The default internal domain is `madagascar.xdev.ro`. Short aliases are derived automatically from FQDNs, so `autonas01.madagascar.xdev.ro` also publishes `autonas01` without declaring it separately.
88

            
Bogdan Timofte authored 4 days ago
89
Name removals with operational impact go through a Work Order. A WO records intent first; the operational checklist must be completed before confirmation can update the SQLite registry, mark the WO as confirmed, and regenerate `local-hosts.tsv`. Resolver sync remains an explicit operator step.
Xdev Host Manager authored a week ago
90

            
Xdev Host Manager authored a week ago
91
The local host CA stores private material outside git under `var/ca`. Initialize it on jumper with:
92

            
93
```bash
94
sudo scripts/ca_manager.sh init
95
```