Skip to content

feat: added TeamAppProviderRegistry, to to shift the creation and vie… - #3089

Draft
hiobjan wants to merge 1 commit into
masterfrom
feat/app-registry-for-teams
Draft

hiobjan wants to merge 1 commit into
masterfrom
feat/app-registry-for-teams

Conversation

@hiobjan

@hiobjan hiobjan commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

…w of apps from circles to the apps

Summary

With this approach the creation and view of the apps, that belong to a team is shifted from the circles app to the integrated app.

Flow

1. Register the App

Each app registers its ITeamAppProvider implementation through:
$context->registerTeamAppProvider(TeamsProvider::class);

TeamAppProviderRegistry discovers enabled providers, checks their identity, and obtains their order, compatibility routes, and optional browser-module URL.

2. Initialize the Teams Page

PageController.php publishes those descriptors as initial state.
The frontend registry creates a host-side adapter for each provider. It also imports and validates the optional mount-only module.

3. Load a Team’s Navigation

After membership loads, TeamPage loads the team’s resources and calls the app store.
For each provider, the host requests:
GET /ocs/v2.php/apps/circles/teams/{teamId}/apps/{providerId}/navigation

The response contains entries, actions, and represented resource keys, not resource content.

4. Build the Sidebar

The app store validates and namespaces entries as providerId:entryId.
TeamNavigation displays them. Resource keys prevent the same resource appearing again in the generic shared-resource list.

5. Open the Resource

Entry has href: navigate to the owning app. Deck and Collectives render and authorize the resource there.
Entry has no href: navigate to /team/{teamId}/app/{providerId}/{entryId}, rendered by TeamAppView.

6. Clean Up

Changing entries destroys the previous view. Leaving the team aborts its context and requests. A late-finishing mount is immediately cleaned up.

Selection Is Separate

/navigation/selection stores the resource IDs chosen for navigation.

Implementations

TODO

  • Migrate existing resources
  • ...

Checklist

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

@codecov

codecov Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

@hiobjan
hiobjan force-pushed the feat/app-registry-for-teams branch 2 times, most recently from ae87ec6 to 42c9c55 Compare October 27, 2026 09:40
Signed-off-by: Janina Hiob <janina.hiob@dataport.de>
@hiobjan
hiobjan force-pushed the feat/app-registry-for-teams branch from 42c9c55 to fed00ea Compare October 27, 2026 12:39

This branch has not been deployed

No deployments
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.

Show resources embedded in the Teams app

1 participant