Sanitize codebase, reorganize docs, and add missing deploy files
Remove dead code identified in docs/SANITIZATION-REVIEW.md:
- app/blueprints/content_old.py and app/blueprints/playlist.py
- app/models/group.py, app/utils/nginx_config_reader.py
- orphaned templates (content_list, edit_content, upload_content,
player_page) and the related group/Template references
Result: 6 blueprints, 82 routes, no dead modules or orphan templates.
Add files that deploy.sh and docker-entrypoint.sh already require but
which were never tracked:
- https_manager.py (referenced by deploy.sh, migrate_network.sh,
docker-entrypoint.sh)
- Caddyfile.example (seeded by deploy.sh; its absence aborts deploy)
Relocate generated Graphify artifacts from graphify-out/ to
docs/graphify-out/ (110 files, no content change) and archive the
superseded docs under docs/.
Ignore hygiene:
- ignore ad-hoc .env backups (.env.bak*) — they contain live secrets
- keep the pre-sanitization snapshots (docs/legacy code/,
docs/old_code_documentation/) on disk but out of the repo
Fix .env.example: drop a duplicated config block, genericize the
hardcoded host IP, and document HOSTNAME_INTERNAL.
This commit is contained in:
@@ -0,0 +1,369 @@
|
||||
# Models package for digiserver-v2.
|
||||
|
||||
> God node · 13 connections · [/home/scheianu/digiserver-v2/app/models/__init__.py](file:///home/scheianu/digiserver-v2/app/models/__init__.py#L1)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as Models package for digiserver-v2.
|
||||
participant P1 as PlayerEdit
|
||||
participant P2 as receive_edited_media()
|
||||
participant P3 as log_action()
|
||||
participant P4 as PlayerUser
|
||||
participant P5 as Group
|
||||
participant P6 as Admin blueprint for user management and system settings.
|
||||
participant P7 as CaddyConfigGenerator
|
||||
participant P8 as Decorator to require admin role for route access.
|
||||
participant P9 as Display admin panel with system overview.
|
||||
participant P10 as Create a new user account.
|
||||
participant P11 as Change user role between user and admin.
|
||||
participant P12 as Delete a user account.
|
||||
participant P13 as Change application theme.
|
||||
participant P14 as Upload custom logo for application.
|
||||
participant P15 as Clear all server logs.
|
||||
participant P16 as Display user management page.
|
||||
participant P17 as Get system information as JSON.
|
||||
participant P18 as Display leftover media files not assigned to any playlist.
|
||||
participant P19 as Delete all leftover images that are not part of any playlist
|
||||
participant P20 as Delete all leftover videos that are not part of any playlist
|
||||
participant P21 as Delete a single leftover content file
|
||||
participant P22 as Show system dependencies status.
|
||||
participant P23 as Install LibreOffice for PPTX conversion.
|
||||
participant P24 as Install Emoji Fonts for better UI display.
|
||||
participant P25 as Logo customization page.
|
||||
participant P26 as Upload login page logo.
|
||||
participant P27 as Display and manage users that edit images on players.
|
||||
participant P28 as Update editing user name.
|
||||
participant P29 as Display HTTPS configuration management page.
|
||||
participant P30 as Update HTTPS configuration.
|
||||
participant P31 as Get current HTTPS configuration status as JSON.
|
||||
participant P32 as Path to the persisted player-build settings (in the instance folder).
|
||||
participant P33 as Display the 'Build player files for deployment' admin page.
|
||||
participant P34 as Build/refresh the staged player code and/or write its base config.
|
||||
participant P35 as API blueprint for REST endpoints and player communication.
|
||||
participant P36 as Rate limiting decorator. Args: max_requests: Maximum number of
|
||||
participant P37 as Decorator to verify player authentication via auth code.
|
||||
participant P38 as API health check endpoint.
|
||||
participant P39 as Get server SSL certificate.
|
||||
participant P40 as Authenticate a player and return auth code and configuration. Request J
|
||||
participant P41 as Verify an auth code and return player information. Request JSON:
|
||||
participant P42 as Get playlist using hostname and quickconnect code (Kivy player compatible).
|
||||
participant P43 as Get playlist for a specific player. Requires player authentication via
|
||||
participant P44 as Get current playlist version for a player. Lightweight endpoint for pla
|
||||
participant P45 as Get cached playlist for a player based on assigned playlist.
|
||||
participant P46 as Receive feedback/status updates from players (Kivy player compatible).
|
||||
participant P47 as Get current status of a player (public endpoint for monitoring).
|
||||
participant P48 as Get progress of a file upload.
|
||||
participant P49 as Get system information and statistics.
|
||||
participant P50 as List all content with basic information.
|
||||
participant P51 as Get recent server logs. Query parameters: limit: Number of logs
|
||||
participant P52 as Receive edited media from player. Expected multipart/form-data: - i
|
||||
participant P53 as Test SSH connection to a remote host. Request JSON: hostname: T
|
||||
participant P54 as Deploy player code to a remote host via SSH. Request JSON: host
|
||||
participant P55 as Handle 404 errors in API.
|
||||
participant P56 as Handle 405 errors in API.
|
||||
participant P57 as Handle 500 errors in API.
|
||||
participant P58 as Players blueprint for player management and display.
|
||||
participant P59 as Display list of all players.
|
||||
participant P60 as Add a new player with optional SSH deployment.
|
||||
participant P61 as Regenerate authentication code for a player.
|
||||
participant P62 as Redirect to manage player page (combined view).
|
||||
participant P63 as Manage player - edit credentials, assign playlist, view logs.
|
||||
participant P64 as Display all edited media files from this player.
|
||||
participant P65 as Display a tabular report of all edited media from this player.
|
||||
participant P66 as Display player fullscreen view (no authentication required for players).
|
||||
participant P67 as Get playlist for a player based on their assigned playlist. Args:
|
||||
participant P68 as Legacy endpoint - Content reordering now handled in playlist management.
|
||||
participant P69 as Delete multiple players at once.
|
||||
participant P70 as Assign multiple players to a playlist.
|
||||
participant P71 as Return deployment status for all players (used by polling JS).
|
||||
participant P72 as Reorder items in player's playlist.
|
||||
participant P73 as Remove content from player's playlist.
|
||||
participant P74 as Content model for media files.
|
||||
participant P75 as Main playlist management page.
|
||||
participant P76 as View all media files in the library.
|
||||
participant P77 as Delete a media file and remove it from all playlists.
|
||||
participant P78 as Create a new playlist.
|
||||
participant P79 as Manage content in a specific playlist.
|
||||
participant P80 as Add content to playlist.
|
||||
participant P81 as Create a web link content item from the Upload Media page. Optionally adds
|
||||
participant P82 as Create a web link content item and add it to the playlist.
|
||||
participant P83 as Remove content from playlist.
|
||||
participant P84 as Remove multiple content items from playlist.
|
||||
participant P85 as Reorder content in playlist.
|
||||
participant P86 as Update content muted setting in playlist.
|
||||
participant P87 as Update content edit_on_player_enabled setting in playlist.
|
||||
participant P88 as Update content duration in playlist.
|
||||
participant P89 as Display upload media page.
|
||||
participant P90 as Process and optimize image files.
|
||||
participant P91 as Process and optimize video files for Raspberry Pi playback.
|
||||
participant P92 as Process PDF files by converting each page to PNG images.
|
||||
participant P93 as Process large files (PDF, PPTX, Video) in background thread.
|
||||
participant P94 as Process PowerPoint presentation files by converting slides to images.
|
||||
participant P95 as Create a Full HD (1920x1080) image from PIL Image object, centered on white back
|
||||
participant P96 as Resize image to exactly Full HD (1920x1080) maintaining aspect ratio with center
|
||||
participant P97 as Optimize and resize image file to Full HD (1920x1080) maintaining aspect ratio.
|
||||
participant P98 as Upload media files to library with type-specific processing.
|
||||
participant P99 as Assign a player to a playlist.
|
||||
participant P100 as Playlist
|
||||
participant P101 as HTTPSConfig
|
||||
participant P102 as Content
|
||||
participant P103 as User
|
||||
participant P104 as Player
|
||||
participant P105 as ServerLog
|
||||
participant P106 as PlayerFeedback
|
||||
P0->>+ P1: uses
|
||||
P1-->>- P0: return
|
||||
P1->>+ P0: uses
|
||||
P0-->>- P1: return
|
||||
P1->>+ P2: calls
|
||||
P2-->>- P1: return
|
||||
P2->>+ P3: calls
|
||||
P3-->>- P2: return
|
||||
P2->>+ P1: calls
|
||||
P1-->>- P2: return
|
||||
P2->>+ P4: calls
|
||||
P4-->>- P2: return
|
||||
P2->>+ P5: calls
|
||||
P5-->>- P2: return
|
||||
P1->>+ P6: uses
|
||||
P6-->>- P1: return
|
||||
P6->>+ P1: uses
|
||||
P1-->>- P6: return
|
||||
P6->>+ P4: uses
|
||||
P4-->>- P6: return
|
||||
P6->>+ P7: uses
|
||||
P7-->>- P6: return
|
||||
P1->>+ P8: uses
|
||||
P8-->>- P1: return
|
||||
P8->>+ P1: uses
|
||||
P1-->>- P8: return
|
||||
P8->>+ P4: uses
|
||||
P4-->>- P8: return
|
||||
P8->>+ P7: uses
|
||||
P7-->>- P8: return
|
||||
P1->>+ P9: uses
|
||||
P9-->>- P1: return
|
||||
P1->>+ P10: uses
|
||||
P10-->>- P1: return
|
||||
P1->>+ P11: uses
|
||||
P11-->>- P1: return
|
||||
P1->>+ P12: uses
|
||||
P12-->>- P1: return
|
||||
P1->>+ P13: uses
|
||||
P13-->>- P1: return
|
||||
P1->>+ P14: uses
|
||||
P14-->>- P1: return
|
||||
P1->>+ P15: uses
|
||||
P15-->>- P1: return
|
||||
P1->>+ P16: uses
|
||||
P16-->>- P1: return
|
||||
P1->>+ P17: uses
|
||||
P17-->>- P1: return
|
||||
P1->>+ P18: uses
|
||||
P18-->>- P1: return
|
||||
P1->>+ P19: uses
|
||||
P19-->>- P1: return
|
||||
P1->>+ P20: uses
|
||||
P20-->>- P1: return
|
||||
P1->>+ P21: uses
|
||||
P21-->>- P1: return
|
||||
P1->>+ P22: uses
|
||||
P22-->>- P1: return
|
||||
P1->>+ P23: uses
|
||||
P23-->>- P1: return
|
||||
P1->>+ P24: uses
|
||||
P24-->>- P1: return
|
||||
P1->>+ P25: uses
|
||||
P25-->>- P1: return
|
||||
P1->>+ P26: uses
|
||||
P26-->>- P1: return
|
||||
P1->>+ P27: uses
|
||||
P27-->>- P1: return
|
||||
P1->>+ P28: uses
|
||||
P28-->>- P1: return
|
||||
P1->>+ P29: uses
|
||||
P29-->>- P1: return
|
||||
P1->>+ P30: uses
|
||||
P30-->>- P1: return
|
||||
P1->>+ P31: uses
|
||||
P31-->>- P1: return
|
||||
P1->>+ P32: uses
|
||||
P32-->>- P1: return
|
||||
P1->>+ P33: uses
|
||||
P33-->>- P1: return
|
||||
P1->>+ P34: uses
|
||||
P34-->>- P1: return
|
||||
P1->>+ P35: uses
|
||||
P35-->>- P1: return
|
||||
P1->>+ P36: uses
|
||||
P36-->>- P1: return
|
||||
P1->>+ P37: uses
|
||||
P37-->>- P1: return
|
||||
P1->>+ P38: uses
|
||||
P38-->>- P1: return
|
||||
P1->>+ P39: uses
|
||||
P39-->>- P1: return
|
||||
P1->>+ P40: uses
|
||||
P40-->>- P1: return
|
||||
P1->>+ P41: uses
|
||||
P41-->>- P1: return
|
||||
P1->>+ P42: uses
|
||||
P42-->>- P1: return
|
||||
P1->>+ P43: uses
|
||||
P43-->>- P1: return
|
||||
P1->>+ P44: uses
|
||||
P44-->>- P1: return
|
||||
P1->>+ P45: uses
|
||||
P45-->>- P1: return
|
||||
P1->>+ P46: uses
|
||||
P46-->>- P1: return
|
||||
P1->>+ P47: uses
|
||||
P47-->>- P1: return
|
||||
P1->>+ P48: uses
|
||||
P48-->>- P1: return
|
||||
P1->>+ P49: uses
|
||||
P49-->>- P1: return
|
||||
P1->>+ P50: uses
|
||||
P50-->>- P1: return
|
||||
P1->>+ P51: uses
|
||||
P51-->>- P1: return
|
||||
P1->>+ P52: uses
|
||||
P52-->>- P1: return
|
||||
P1->>+ P53: uses
|
||||
P53-->>- P1: return
|
||||
P1->>+ P54: uses
|
||||
P54-->>- P1: return
|
||||
P1->>+ P55: uses
|
||||
P55-->>- P1: return
|
||||
P1->>+ P56: uses
|
||||
P56-->>- P1: return
|
||||
P1->>+ P57: uses
|
||||
P57-->>- P1: return
|
||||
P1->>+ P58: uses
|
||||
P58-->>- P1: return
|
||||
P1->>+ P59: uses
|
||||
P59-->>- P1: return
|
||||
P1->>+ P60: uses
|
||||
P60-->>- P1: return
|
||||
P1->>+ P61: uses
|
||||
P61-->>- P1: return
|
||||
P1->>+ P62: uses
|
||||
P62-->>- P1: return
|
||||
P1->>+ P63: uses
|
||||
P63-->>- P1: return
|
||||
P1->>+ P64: uses
|
||||
P64-->>- P1: return
|
||||
P1->>+ P65: uses
|
||||
P65-->>- P1: return
|
||||
P1->>+ P66: uses
|
||||
P66-->>- P1: return
|
||||
P1->>+ P67: uses
|
||||
P67-->>- P1: return
|
||||
P1->>+ P68: uses
|
||||
P68-->>- P1: return
|
||||
P1->>+ P69: uses
|
||||
P69-->>- P1: return
|
||||
P1->>+ P70: uses
|
||||
P70-->>- P1: return
|
||||
P1->>+ P71: uses
|
||||
P71-->>- P1: return
|
||||
P1->>+ P72: uses
|
||||
P72-->>- P1: return
|
||||
P1->>+ P73: uses
|
||||
P73-->>- P1: return
|
||||
P1->>+ P74: uses
|
||||
P74-->>- P1: return
|
||||
P1->>+ P75: uses
|
||||
P75-->>- P1: return
|
||||
P1->>+ P76: uses
|
||||
P76-->>- P1: return
|
||||
P1->>+ P77: uses
|
||||
P77-->>- P1: return
|
||||
P1->>+ P78: uses
|
||||
P78-->>- P1: return
|
||||
P1->>+ P79: uses
|
||||
P79-->>- P1: return
|
||||
P1->>+ P80: uses
|
||||
P80-->>- P1: return
|
||||
P1->>+ P81: uses
|
||||
P81-->>- P1: return
|
||||
P1->>+ P82: uses
|
||||
P82-->>- P1: return
|
||||
P1->>+ P83: uses
|
||||
P83-->>- P1: return
|
||||
P1->>+ P84: uses
|
||||
P84-->>- P1: return
|
||||
P1->>+ P85: uses
|
||||
P85-->>- P1: return
|
||||
P1->>+ P86: uses
|
||||
P86-->>- P1: return
|
||||
P1->>+ P87: uses
|
||||
P87-->>- P1: return
|
||||
P1->>+ P88: uses
|
||||
P88-->>- P1: return
|
||||
P1->>+ P89: uses
|
||||
P89-->>- P1: return
|
||||
P1->>+ P90: uses
|
||||
P90-->>- P1: return
|
||||
P1->>+ P91: uses
|
||||
P91-->>- P1: return
|
||||
P1->>+ P92: uses
|
||||
P92-->>- P1: return
|
||||
P1->>+ P93: uses
|
||||
P93-->>- P1: return
|
||||
P1->>+ P94: uses
|
||||
P94-->>- P1: return
|
||||
P1->>+ P95: uses
|
||||
P95-->>- P1: return
|
||||
P1->>+ P96: uses
|
||||
P96-->>- P1: return
|
||||
P1->>+ P97: uses
|
||||
P97-->>- P1: return
|
||||
P1->>+ P98: uses
|
||||
P98-->>- P1: return
|
||||
P1->>+ P99: uses
|
||||
P99-->>- P1: return
|
||||
P0->>+ P4: uses
|
||||
P4-->>- P0: return
|
||||
P0->>+ P100: uses
|
||||
P100-->>- P0: return
|
||||
P0->>+ P101: uses
|
||||
P101-->>- P0: return
|
||||
P0->>+ P102: uses
|
||||
P102-->>- P0: return
|
||||
P0->>+ P103: uses
|
||||
P103-->>- P0: return
|
||||
P0->>+ P104: uses
|
||||
P104-->>- P0: return
|
||||
P0->>+ P105: uses
|
||||
P105-->>- P0: return
|
||||
P0->>+ P5: uses
|
||||
P5-->>- P0: return
|
||||
P0->>+ P106: uses
|
||||
P106-->>- P0: return
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### rationale_for
|
||||
- [[__init__.py]] `EXTRACTED`
|
||||
- [[__init__.py]] `EXTRACTED`
|
||||
- [[__init__.py]] `EXTRACTED`
|
||||
|
||||
### uses
|
||||
- [[PlayerEdit]] `INFERRED`
|
||||
- [[PlayerUser]] `INFERRED`
|
||||
- [[Playlist]] `INFERRED`
|
||||
- [[HTTPSConfig]] `INFERRED`
|
||||
- [[Content]] `INFERRED`
|
||||
- [[User]] `INFERRED`
|
||||
- [[Player]] `INFERRED`
|
||||
- [[ServerLog]] `INFERRED`
|
||||
- [[Group]] `INFERRED`
|
||||
- [[PlayerFeedback]] `INFERRED`
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
Reference in New Issue
Block a user