Skip to content

Expose a reusable downstream app consumer contract - #147

Closed
vitormattos wants to merge 2 commits into
mainfrom
feat/downstream-app-consumer-contract
Closed

vitormattos wants to merge 2 commits into
mainfrom
feat/downstream-app-consumer-contract

Conversation

@vitormattos

Copy link
Copy Markdown
Member

Summary

Add a generic downstream-app contract so Nextcloud app repositories can reuse this environment without copying its Compose topology.

Changes

  • add APP_SOURCE, APP_ID and optional APP_SETUP_HOOK to the worker lifecycle;
  • mount the downstream checkout into both Nextcloud and nginx through a reusable Compose fragment;
  • keep the app path stable at /var/www/html/apps-extra/<APP_ID>;
  • run an optional setup hook as the mapped www-data user after Nextcloud is ready;
  • keep worker/project naming, mutable state, database selection, logs and teardown owned by the existing lifecycle;
  • document a minimal Compose include adapter for devcontainers instead of duplicating the infrastructure topology;
  • add contract tests for invalid identifiers/hook traversal;
  • add an integration test with two consumers using the same logical app path, different source checkouts and independent teardown.

Compatibility

Existing workers that do not set APP_SOURCE behave exactly as before.

The contract remains generic to Nextcloud app development and contains no LibreSign-specific setup logic.

Validation

  • commits created through the signed Git MCP;
  • DCO trailers match the configured identity;
  • GitHub reports the OpenPGP signatures as verified;
  • CI will validate the existing database worker matrix plus the new downstream-consumer integration.

Closes #143

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>

Copy link
Copy Markdown
Member Author

Superseded by #148. The original downstream-app contract made the worker aware of a primary app (APP_ID / APP_SOURCE) and duplicated responsibilities already represented by apps-extra. #148 has been rewritten around a generic Compose extension contract instead, which supports multiple apps and project-specific services without adding an app-specific lifecycle to NCDD.

@vitormattos vitormattos closed this Oct 4, 2026
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.

Expose a reusable downstream devcontainer integration contract

1 participant