# Flamenco Manager End User Features *End users* are both artists and TDs. ## Farm Management - Downloading and installing Flamenco Manager - Downloading and installing Flamenco Worker - Configuring Flamenco Manager - job types / customisation - storage locations - replace *one-way variables* with *provisioned configuration* - use *path variables* also for config of other areas (Shaman currently requires a configuration setting to be the same value as some path variable) - Connecting Workers to Manager - Managing workers - wakeup/sleep/shutdown/pause - blacklists - host stats (mem/cpu usage, etc.) - Upgrading Flamenco Manager - Shut down, replace executable, restart. - DB migrations via [migrate](https://github.com/golang-migrate/migrate) - Upgrading Flamenco Worker - Shut down, replace executable, restart. - GUI support? ## Job Submission - new Blender Add-on - querying for job types & their parameters - querying for Manager configuration - integrating BAT - Project-association - Not mandatory - Based on metadata filtering ## Job Management - OpenAPI 3/Swagger for REST API, gives nice web interface for documentation and experimenting by TDs. - Web interface - Web sockets for real-time updates. - Maybe also using the REST API for certain operations? Or everything through the web socket? - Reconsider the end-of-life behaviour of jobs - Do we still need "Archive"? - Jobs in "archiving" status probably don't need to be shown in the main jobs list. - Andy: only interesting bit is the job definition itself (which shot was rendered when, etc.) ### Web Views In general: filtering (tasks, jobs, maybe even workers) is important. - Kitsu is nice, allows querying and saving those queries. - Worker status - Similar to what we have now. - Optionally with host info (CPU/mem usage graphs, etc.) - Last-rendered image - Also similar to what we have now. - Optionally switch from server-sent events to websocket to limit communication channels. - Jobs overview - Most important page, good candidate for default view. - Basics similar to current Flamenco Server. - Must include progress indicator - percentage of completed tasks - "X of Y frames" / "X of Y samples" showing on mouse-over - Aggregated view (X active, X failed, X completed, etc.) - Bigger view (than Flamenco Server) of the job list, and less on the side. Not a 50/50% split. Mostly because job names are so long. - Status doesn't need the entire word "COMPLETED", little icon + colour is enough. - Filtering by status is important. - "Edit RNA Overrides" button is used in practice, so keep it around. - "Recreate Job" vs. "Requeue Tasks" is confusing, probably should be merged or "Recreate Job" simply removed. - Add "browse" button to file path job settings, which launches a file browser. Maybe also configurable to show a image sequence viewer. - Tasks per job - Aggregated view *first* (X active, X failed, X completed, etc.) - List of tasks should either just load all tasks or progressively with infinite scroll. Just loading everything is probably best, because that'll allow simple searches with Ctrl+F. - Should allow sorting & filtering. - "Lock task selection" to avoid tasks disappearing. - "Batch" operations (select tasks, or auto-select tasks with a certain status) and hit the "requeue" button (or cancel or whatever). - Settings - Reconsider "settings mode", many people find it confusing. - Should list available job types, including whether they've been customised or not. Might have them editable & allow saving embedded default scripts to disk. ### Actions: Job :::info This documents the behaviour of the current incarnation of Flamenco. ::: Actions are available depending on the job status. Some statuses do not allow any actions. | job status | cancel | requeue | recreate | archive | requeue-failed-tasks | | -------------------:|:------:|:-------:|:--------:|:-------:|:--------------------:| | active | ✅ | | | | ✅ | | canceled | | ✅ | ✅ | ✅ | | | completed | | ✅ | ✅ | ✅ | | | construction-failed | | | ✅ | | | | failed | ✅ | ✅ | | ✅ | | | paused | | ✅ | ✅ | ✅ | | | queued | ✅ | | | | ✅ | | | | | | | | | archived | | | | | | | archiving | | | | | | | cancel-requested | | | | | | | fail-requested | | | | | | | requeued | | | | | | | under-construction | | | | | | | waiting-for-files | | | | | | #### Desired changes - Add action `PAUSE` which can be used when a job is active. - Alternative rename "canceled" status to "stopped", and then "cancel" and "pause" can be the same operation. ### Actions: Task :::info This documents the behaviour of the current incarnation of Flamenco. ::: Actions are available depending on the task status. Some statuses do not allow any actions. | task status | requeue | cancel | | ---------------: | :-----: | :----: | | active | | ✅ | | canceled | ✅ | | | completed | ✅ | | | failed | ✅ | | | queued | | ✅ | | soft-failed | | ✅ | | | | | | cancel-requested | | | | fail-requested | | | | paused | | | | processing | | | ## Authentication TODO: See what OpenAPI 3 has for this. ## Advanced features - Connecting Manager to Server