LocalAuthority / agents.md
1 contributor
59 lines | 2.564kb

Agent Notes

Madagascar Local Authority is the local authority application for the Madagascar network.

Start with these documents:

  • README.md - current repository, deployment model, runtime paths, GitPrep remote.
  • .doc/database/ - SQLite runtime store schema, table docs, seed rules, backup and restore.
  • .doc/host-manager.md - application behavior, OTP, Work Orders, local CA, registry rules.
  • .doc/local-hosts.md - local DNS rules, resolver sync, source priority.
  • .doc/development-log.md - development log index with component logs under .doc/development-logs/.

Operational rules:

  • Develop in this checkout: /Users/bogdan/Documents/Workspaces/Xdev/Madagascar/LocalAuthority.
  • Canonical git remote is GitPrep: git@192.168.2.102:repositories/bogdan/LocalAuthority.git.
  • Jumper is the runtime/deployment target, not the primary editing location.
  • Development work must be committed locally before testing or archiving; do not leave useful changes as forgotten dirty working-tree state.
  • Push committed code to jumper-runtime for live testing on jumper.
  • Push committed code to origin/GitPrep for archival/canonical history.
  • scripts/deploy_to_jumper.sh is available for explicit rsync deploys, but the normal development loop is commit plus push.
  • Runtime registry and Work Orders live in var/host-manager.sqlite on jumper.
  • Do not deploy config/ unless the user explicitly asks to replace seed/snapshot/export files.
  • Treat config/hosts.yaml, config/local-hosts.tsv, and config/work-orders.yaml as compatibility exports/seeds, not the live source of truth.
  • Do not install npm, pip, or CPAN packages directly on hosts. Distribution packages are acceptable when needed.
  • Perl from the distribution and core/distribution modules are allowed.
  • CPAN modules are allowed only after requesting an audit and RPM packaging for the local audited repository.
  • Secrets live outside git, mainly under /etc/xdev/host-manager.env on jumper.

Before code changes:

git status --short

Before deployment:

perl -c scripts/host_manager.pl
perl -c scripts/mdns_host_seed.pl

Normal live-test deployment after a committed change:

git push jumper-runtime HEAD:main

Archive/canonical push:

git push origin main

After deployment, verify:

ssh jumper.madagascar.xdev.ro 'systemctl is-active host-manager && curl -fsS http://127.0.0.1:8088/healthz >/dev/null'