Flamenco/FEATURES.md

82 lines
3.8 KiB
Markdown
Raw Normal View History

2022-02-01 17:09:47 +00:00
# Flamenco-NG Features
This file lists the features that ought to be implemented at some point in time.
It will likely be expanded over time while forgotten features of Flamenco v2 are
rediscovered.
2022-02-28 14:30:50 +00:00
Note that list is **not** in any specific order.
2022-02-01 17:09:47 +00:00
## Manager
- [x] OpenAPI implementation that actually runs as a server process
- [x] Process lifecycle management, clean shutdown
2022-02-22 13:39:53 +00:00
- [x] Task Scheduler
- [x] Unify command definition (type/parameters in persistence layer, name/settings in API layer)
2022-02-28 11:09:07 +00:00
- [x] Job status change handling
- [ ] Port the old 'fail-requested' task status handling code to the new Manager
2022-02-01 17:09:47 +00:00
- [ ] Task timeout monitoring
- [ ] Worker Blacklisting & failed task requeueing
- [ ] Worker timeout monitoring
2022-02-28 11:09:07 +00:00
- [x] Worker-assigned task re-queueing on sign-off
2022-02-22 13:39:53 +00:00
- [x] Variable replacement
- [x] Configuration file reading
2022-02-01 17:09:47 +00:00
- [ ] Configuration provisioning support
- [ ] Shaman integration
- [ ] Worker sleep schedule
- [ ] Web frontend for Worker management
- [ ] Web frontend for Job & Task management
- [ ] Web frontend for configuration management
- [ ] Frontend authentication
- [x] Worker API authentication
- [ ] User/Job Submission API authentication
- [ ] Last rendered image display
- [ ] Per-job last rendered image
- [ ] Auto-removal of old Workers
- [ ] Shaman/Job settings: Distinction between "can be auto-deleted" jobs and "must be kept around" jobs.
- [ ] Sending data upstream to Flamenco Overwatch
- [ ] Job archival / task cleanup
## Worker
- [x] OpenAPI client that actually runs as a process
- [x] Process lifecycle management, clean shutdown
2022-02-22 13:39:53 +00:00
- [x] Task executor
- [x] Command runner
2022-02-28 11:09:07 +00:00
- [x] Log uploader
2022-02-01 17:09:47 +00:00
- [ ] POSIX signal handling (sleep/wake up)
- [x] Implement `frames-to-video` command.
- [x] Implement `move-directory` command.
2022-04-08 12:34:38 +00:00
- [x] Refactor CLI-running code by analyzing the current Blender and FFmpeg commands.
- [x] Re-queueing of task at shutdown of the main context (i.e. when pressing Ctrl+C). Since the context is closed, everything shuts down, but then it's too late to cleanly communicate to the Manager that the current task should be requeued.
2022-02-01 17:09:47 +00:00
## Both
- [x] Worker registration & auto-reregistration
- [x] Worker API authentication
- [x] Worker sign on/off
- [ ] Worker status change management, including lazy status changes
2022-02-22 13:39:53 +00:00
- [x] Task status change handling
2022-02-01 17:09:47 +00:00
- [ ] Worker test mode
- [ ] Worker registration secret (to protect the Manager from arbitrary Workers registering)
2022-03-08 14:04:03 +00:00
- [x] UPnP/SSDP for automatic Manager finding
2022-02-22 13:39:53 +00:00
2022-02-01 17:09:47 +00:00
## Blender Add-on
- [x] Communication with the Flamenco Manager API
2022-02-01 17:09:47 +00:00
- [ ] Job construction
- [x] BAT-packing
- [ ] uploading to Shaman
2022-02-28 14:30:50 +00:00
- [ ] User authentication
2022-03-09 22:26:06 +00:00
- [ ] Editable job names (for rendering multiple jobs from the same filename)
- [ ] Add `options={'HIDDEN'}` to the Flamenco RNA properties.
- [ ] Add eTag-like checksum to the job types. The aim is to prevent artists from sending in a new job with an old job. This can happen when the job type is changed on the Manager, but in Blender the "refresh" button wasn't pressed yet. This should only cover the job settings, not the rest of the compiler script.
2022-03-15 16:48:54 +00:00
- [ ] Frame Range: allow automatically syncing with scene frame start/end.
2022-03-17 09:53:15 +00:00
- [ ] Don't take output settings from the current scene, but have separate settings for Flamenco. To be fleshed out still.
## Nice to have / new features
- [ ] Notification system to push "job done" messages to. Ideally would be in a form/shape that allows sending a message to Rocket.Chat, Matrix, Telegram, Discord, email, webbrowser, push URL-encoded/JSON/XML to some URL, stuff like that. Idea by Dan McLaughlin.
- [ ] Notification client inside Blender itself, so that you get a message when your job is done.
- [ ] Separate the OpenAPI definition of Shaman from the rest of Flamenco Manager. That way a part of BAT can also use the code generator. It also is the first step towards running Shaman as a standalone service.