# Applications

Endpoints for serving and routing platform applications to users

## Install a new application from ZIP file

 - [POST /api/v1/apps](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps/post.md): Uploads and installs a new application from a ZIP archive. The application is created in a disabled state by default unless the 'enable' parameter is set to true. Requires authentication and the Apps.Manage RBAC permission. The installation is logged in the audit trail.

RBAC: requires Apps.Manage

## List globally available applications

 - [GET /api/v1/apps](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps/get.md): Returns a list of applications available at the global entry point. These applications are accessible to all users.

## List all enabled applications

 - [GET /api/v1/apps/enabled](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1enabled/get.md): Returns a list of all currently enabled applications on the platform. Only applications in enabled state are returned. No authentication required.

## List all installed applications

 - [GET /api/v1/apps/installed](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1installed/get.md): Returns a list of all installed applications on the platform, including both enabled and disabled applications. No authentication required.

## List user's available applications

 - [GET /api/v1/apps/user](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1user/get.md): Returns a list of applications available to the authenticated user, including both globally available and user-specific applications.

## Remove application from user's list

 - [DELETE /api/v1/apps/user/{appId}](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1user~1%7Bappid%7D/delete.md): Removes the specified application from the authenticated user's personal application list.

## Add application to user's list

 - [PUT /api/v1/apps/user/{appId}](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1user~1%7Bappid%7D/put.md): Adds the specified application to the authenticated user's personal application list, making it available in their user-specific context.

## Update an existing application from ZIP file

 - [PUT /api/v1/apps/{appId}](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D/put.md): Updates an existing application by uploading a new ZIP archive. The application manifest in the ZIP must match the existing application ID. Requires authentication and the Apps.Manage RBAC permission. The update is logged in the audit trail.

RBAC: requires Apps.Manage

## Get application details by ID

 - [GET /api/v1/apps/{appId}](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D/get.md): Returns the complete application definition including manifest, routes, and configuration for the specified application ID.

## Delete an application

 - [DELETE /api/v1/apps/{appId}](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D/delete.md): Permanently deletes an application from the platform. The application cannot be deleted if it's set as default for any routes. This operation is irreversible. Requires authentication and the Apps.Manage RBAC permission.

RBAC: requires Apps.Manage

## Set application as platform default

 - [PUT /api/v1/apps/{appId}/default](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D~1default/put.md): Sets the specified application as the default handler for its declared routes at the platform level. This affects all users who haven't set their own defaults. Requires authentication and the Apps.Manage RBAC permission. Resets route caches after update.

RBAC: requires Apps.Manage

## Disable an application

 - [PUT /api/v1/apps/{appId}/disable](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D~1disable/put.md): Disables an enabled application, removing its routes and functionality from user access. The application cannot be disabled if it's set as default for any routes. Requires authentication and the Apps.Manage RBAC permission. Unregisters the application's routes upon disabling.

RBAC: requires Apps.Manage

## Enable an application

 - [PUT /api/v1/apps/{appId}/enable](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D~1enable/put.md): Enables a disabled application, making its routes and functionality available to users. The application must not already be enabled. Requires authentication and the Apps.Manage RBAC permission. Registers the application's routes upon enabling.

RBAC: requires Apps.Manage

## Get application with usage statistics

 - [GET /api/v1/apps/{appId}/stats](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D~1stats/get.md): Returns the application definition along with usage statistics including install count, active users, and other metrics.

## Set application as user's default

 - [PUT /api/v1/apps/{appId}/user-default](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D~1user-default/put.md): Sets the specified application as the default handler for its declared routes for the authenticated user. This overrides platform-level defaults for this user.

## Remove user's default application

 - [DELETE /api/v1/apps/{appId}/user-default](https://docs.wellesley.social/openapi/applications/paths/~1api~1v1~1apps~1%7Bappid%7D~1user-default/delete.md): Removes the user's default application setting for the specified application's routes, reverting to platform defaults.

