Skip to content

Add app_type field to App model (desktop/web/service)#138

Open
qzMalekuz wants to merge 1 commit into
cytoscape:masterfrom
qzMalekuz:feature/app-type-field
Open

Add app_type field to App model (desktop/web/service)#138
qzMalekuz wants to merge 1 commit into
cytoscape:masterfrom
qzMalekuz:feature/app-type-field

Conversation

@qzMalekuz

Copy link
Copy Markdown

Summary

The current App model has no way to distinguish between Desktop, Web,
and Service Apps. This is the foundational schema change needed to turn
the App Store into a unified multi-platform catalog.

This PR introduces an app_type field to the App model with three
supported values: desktop, web, and service.

Changes

  • apps/models.py: Add APP_TYPE_* constants, APP_TYPE_CHOICES,
    and app_type = CharField(max_length=10, choices=..., default='desktop', db_index=True) to the App model
  • dbmigration/add_app_type.py: Raw SQL migration script for existing
    deployments — defaults all existing rows to 'desktop' for full backward
    compatibility
  • apps/tests.py: AppTypeTestCase covering default value, persistence
    for all three types, invalid value rejection via full_clean(), and
    queryset filtering

Backward Compatibility

All existing App rows default to 'desktop'. No existing functionality
is affected.

Context

This is the Week 1 deliverable from the GSoC 2026 proposal for the
multi-platform catalog project. Follow-up PRs will add ServiceAppMetadata,
admin filters, health monitoring, and the /backend/service_apps/ API
endpoint.

Closes #128

@qzMalekuz

Copy link
Copy Markdown
Author

Hi @coleslaw481 @d2fong @jingjingbic,

This is the foundational schema change from my GSoC 2026 proposal (multi-platform catalog project).
The app_type field replaces the insufficient is_service boolean and supports three platform states: desktop(default), web, and service.
All existing rows default to desktop so nothing breaks.

Happy to adjust the field design, choices, or migration approach based on your feedback before I move on to Week 2 (ServiceAppMetadata + admin filters).

Thanks,
Zafar

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.

Missing data model for Cytoscape Web Service App metadata (URL, health status, validation)

1 participant