LocalAuthority / README.md
Newer Older
94 lines | 3.732kb
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
Bogdan Timofte authored a day ago
20
- `config/hosts.yaml` - finished host registry export and seed for new databases
Bogdan Timofte authored 4 days ago
21
- `config/work-orders.yaml` - seed/snapshot export for confirmable operational changes
Xdev Host Manager authored a week ago
22
- `scripts/host_manager.pl` - Perl-only web app
Bogdan Timofte authored a day ago
23
- `scripts/sync_local_hosts.sh` - resolver configuration action for jumper and as01, sourced from the runtime DB on jumper
Xdev Host Manager authored a week ago
24
- `scripts/ca_manager.sh` - local OpenSSL CA helper for host certificates
Xdev Host Manager authored a week ago
25

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

            
28
Runtime path:
29

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

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

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

            
Bogdan Timofte authored 4 days ago
38
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
39

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

            
42
- [`agents.md`](agents.md)
Bogdan Timofte authored 4 days ago
43
- [`.doc/database/`](.doc/database/README.md)
Bogdan Timofte authored 4 days ago
44
- [`.doc/development-log.md`](.doc/development-log.md) - index pentru development logs pe componente
Bogdan Timofte authored a week ago
45
- [`.doc/host-manager.md`](.doc/host-manager.md)
46
- [`.doc/local-hosts.md`](.doc/local-hosts.md)
47

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

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

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

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

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

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

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

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

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

            
Bogdan Timofte authored a day ago
80
`config/` is not deployed by default. The live source of truth is `var/host-manager.sqlite`; `hosts.yaml` is the finished host export/seed and `work-orders.yaml` is a compatibility seed/snapshot. Deploy config only when intentionally replacing seed/export files:
Bogdan Timofte authored a week ago
81

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

            
Xdev Host Manager authored a week ago
86
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.
87

            
Bogdan Timofte authored a day ago
88
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 queue resolver sync. Resolver sync remains an explicit operator action and reads runtime records from the jumper database.
Xdev Host Manager authored a week ago
89

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

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