#201 Apps: Implement app registry service layer
Description
Edit## Parent Epic: #195
## Description
Create the service layer for app registry operations.
## Location
engine/apps/registry.py
## AppRegistryService Class
### App CRUD
- create_app(conn, publisher_id, app_data) -> App
- get_app(conn, app_id) -> App | None
- get_app_by_name(conn, publisher_id, app_name) -> App | None
- list_apps(conn, filters, pagination) -> list[App]
- update_app(conn, app_id, updates) -> App
- delete_app(conn, app_id) -> bool (soft delete)
### Version Management
- create_version(conn, app_id, version_data) -> AppVersion
- get_version(conn, version_id) -> AppVersion | None
- get_latest_version(conn, app_id, channel='stable') -> AppVersion
- list_versions(conn, app_id) -> list[AppVersion]
- publish_version(conn, version_id) -> AppVersion
- deprecate_version(conn, version_id) -> AppVersion
### Installation Management
- install_app(conn, tenant_id, app_id, version_id, config) -> Installation
- uninstall_app(conn, tenant_id, app_id) -> bool
- get_installation(conn, tenant_id, app_id) -> Installation
- list_installations(conn, tenant_id) -> list[Installation]
- update_installation_config(conn, installation_id, config) -> Installation
- upgrade_installation(conn, installation_id, version_id) -> Installation
- enable_app(conn, installation_id) -> Installation
- disable_app(conn, installation_id) -> Installation
### App Discovery
- search_apps(conn, query, category, tags) -> list[App]
- list_categories(conn) -> list[str]
- get_marketplace_apps(conn, visibility='public') -> list[App]
### Secrets Management
- set_app_secret(conn, tenant_id, app_id, secret_name, secret_path) -> bool
- delete_app_secret(conn, tenant_id, app_id, secret_name) -> bool
- list_app_secrets(conn, tenant_id, app_id) -> list[str]
### Execution Logging
- log_execution(conn, log_data) -> None
- get_execution_logs(conn, filters, pagination) -> list[ExecutionLog]
## Data Classes
- App, AppVersion, Installation, ExecutionLog
- Use dataclasses for type safety
## SQL Queries
All queries in engine/sql/queries/apps.sql per guideline
## Testing
- Full CRUD tests
- Pagination tests
- Filter tests
- Concurrent access tests
Comments
Loading comments...
Context
Loading context...
Audit History
View AllLoading audit history...