64 lines
1.8 KiB
Markdown
64 lines
1.8 KiB
Markdown
# Browse and Install Partner Apps
|
|
|
|
**ID:** ORG-010
|
|
**Priority:** Medium
|
|
**Status:** Planned
|
|
**Phase:** 3
|
|
|
|
## User Story
|
|
As an organization owner, I want to browse and install partner apps from the AppStore so that my organization can benefit from third-party integrations.
|
|
|
|
## Acceptance Criteria
|
|
- [ ] Browse available partner apps in the AppStore
|
|
- [ ] Search apps by name or description
|
|
- [ ] Filter apps by category
|
|
- [ ] View curated sections (Featured, Popular, New)
|
|
- [ ] View app details (description, screenshots, pricing)
|
|
- [ ] See app install count and ratings
|
|
- [ ] Install/connect a partner app to the organization
|
|
- [ ] Uninstall/disconnect a partner app
|
|
- [ ] View installed apps list
|
|
|
|
## Technical Notes
|
|
- Partner apps are submitted by other organizations (DEV-008)
|
|
- Apps must be approved by platform admins before appearing in store
|
|
- Uses `IPartnerApp` with `appStoreMetadata`
|
|
- Connection uses same `IAppConnection` as global apps
|
|
|
|
## Data Model
|
|
|
|
```typescript
|
|
interface IPartnerApp {
|
|
id: string;
|
|
type: 'partner';
|
|
data: {
|
|
name: string;
|
|
description: string;
|
|
logoUrl: string;
|
|
appUrl: string;
|
|
ownerOrganizationId: string;
|
|
oauthCredentials: IOAuthCredentials;
|
|
appStoreMetadata: {
|
|
shortDescription: string;
|
|
longDescription: string;
|
|
screenshots: string[];
|
|
category: string;
|
|
tags: string[];
|
|
pricing: { model: 'free' | 'paid' | 'freemium' };
|
|
};
|
|
approvalStatus: TAppApprovalStatus;
|
|
isPublished: boolean;
|
|
installCount: number;
|
|
};
|
|
}
|
|
```
|
|
|
|
## UI Components
|
|
- **AppsView** - App Store tab with search and categories
|
|
- **AppStoreDetailView** (`/account/org/:orgName/apps/store/:appId`) - Full app details page
|
|
|
|
## Related Stories
|
|
- ORG-009: Connect Global Apps
|
|
- ORG-011: Create Custom OIDC Apps
|
|
- DEV-008: Submit App to AppStore
|