{% extends "base.html" %} {% block title %}{{ app.name }} — Admin{% endblock %} {% block content %}

{{ app.name }}

{{ app.app_type|upper }} · {{ app.slug }} · v{{ manifest.get('version', '—') }} {% if app.is_active %}active{% else %}inactive{% endif %}

Package Maintenance & Updates

{{ app.source_type|upper }}
Installation Source
{{ app.source_type|upper }}
{{ app.source_url or 'Local ZIP' }}
Runtime Environment
Python {{ dep_report.python_version_current if dep_report else '3.x' }}
Mode: {{ config.get('APP_VENV_MODE', 'singular') }}
{% if app.source_type == 'git' %}

One-Click Git Update

Pulls latest commits from the remote repository, executes an automated AST security scan, verifies and updates dependencies, and reloads the WSGI cache.

{% else %}

Upgrade via Replacement ZIP

Upload a new ZIP package to replace this application's files. An automated security audit and dependency check will be executed before applying.

{% endif %}

Dependency Inspector & Runtime Compatibility

{{ config.get('APP_VENV_MODE', 'singular') }}
{% if dep_report %}
PYTHON VERSION
Python {{ dep_report.python_version_current }}
{% if dep_report.python_version_ok %} Compatible {% else %} Mismatch {% endif %} (Req: {{ dep_report.python_version_required or 'Any' }})
ENVIRONMENT MODE
{% if dep_report.venv_mode == 'singular' %}Single Shared Environment{% else %}Isolated Virtual Environment{% endif %}
{% if dep_report.conflicts %} {{ dep_report.conflicts|length }} Conflicts {% else %} No Conflicts {% endif %}
{% if dep_report.conflicts %}
Dependency Conflicts:
    {% for c in dep_report.conflicts %}
  • {{ c }}
  • {% endfor %}
{% endif %} {% if dep_report.items %}
{% for item in dep_report.items %} {% endfor %}
Package Name Declared Specifier Installed Version Status
{{ item.name }} {{ item.specifier or 'any' }} {{ item.installed_version or '—' }} {% if item.status == 'satisfied' %} Satisfied {% elif item.status == 'to_install' %} To Install {% else %} Conflict {% endif %} {{ item.message or '' }}
{% else %}

No requirements.txt declared for this sub-application. Using host environment packages.

{% endif %} {% else %}

No dependency analysis available.

{% endif %}
{% for item in rendered %}

{{ item.panel.label }}

{% if item.panel.endpoint %} custom panel {% else %} generated form {% endif %}
{{ item.html|safe }}
{% endfor %} {% if schema %}

Settings

generated form
{% for desc in schema %} {% set key = desc.key %} {% set label = desc.label or key %} {% set vtype = desc.type or 'json' %} {% set value = configs.get(key, desc.default) %}
{% if vtype == 'boolean' %} {% elif vtype == 'color' %} {% elif vtype == 'integer' %} {% elif vtype == 'textarea' %} {% else %} {% endif %}
{% endfor %}
{% endif %}
{% endblock %} {% block extra_js %} {% endblock %}