Skip to content

Add ExApp development runbooks and a minimal reference ExApp - #962

Draft
oleksandr-nc wants to merge 4 commits into
mainfrom
docs/exapp-dev-guide
Draft

Add ExApp development runbooks and a minimal reference ExApp#962
oleksandr-nc wants to merge 4 commits into
mainfrom
docs/exapp-dev-guide

Conversation

@oleksandr-nc

@oleksandr-nc oleksandr-nc commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

This adds three runbooks under docs/appapi/, written (like AGENTS.md) so that both humans and AI coding agents can follow them end to end:

  • dev-environment.md: a from-scratch local dev environment on nextcloud-docker-dev with a HaRP daemon and a manual-install daemon, with a Verify gate after every stage.
  • exapp-development.md: the ExApp contract for any language (endpoints, auth in both directions, packaging for HaRP) and the two development loops (manual-install fast loop, docker-install with a local-image registry mapping).
  • exapp-ai-maintenance.md: fixing or extending an installed ExApp: get the source, change it, rebuild the image, redeploy through app_api:app:update --info-xml with a registry ... to local mapping.

examples/minimal_exapp/ is a framework-free single-file ExApp implementing exactly the raw contract (heartbeat, enabled, init with OCS progress reporting, auth validation both directions, unix-socket mode for HaRP). It doubles as the guide's smoke test and as the porting reference for non-Python languages. Excluded from the release archive via .nextcloudignore.

Everything stated was verified live against master + HaRP 0.4.3: all deploy loops, the injected environment, the heartbeat/init transcripts. As the acceptance test, a fresh agent executed the whole guide from a clean clone on a machine it had never seen: clone to deployed-and-answering ExApp in 19 minutes without human help, and its findings (plus an adversarial review pass) are folded into the text.

The release archive now includes docs/ (one removed line in .nextcloudignore, ~100 KB): the server bundle and store archives follow that file, so installed instances get AGENTS.md with all its runbooks next to it, version-matched and available offline; that matters most for exapp-ai-maintenance.md, which is written for production use. examples/ stays repository-only and is linked absolutely from the shipped docs.

Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
…ntenance runbooks

Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant