feat: content provenance and complete frame management workflows
This commit is contained in:
@@ -177,3 +177,33 @@ until real writes are separately approved.
|
||||
|
||||
Browser smoke tests use a disposable Mock account via FRAME_FLOW_TEST_USERNAME
|
||||
and FRAME_FLOW_TEST_PASSWORD; never run the mutation smoke suite against live devices.
|
||||
|
||||
## Current content and completed page workflows
|
||||
|
||||
Dashboard displays the actual current image and recorded content source. Frame Flow
|
||||
stores immutable template/data/profile snapshots when it renders an asset and maps
|
||||
successful upload results to the device/image ID. The current-content endpoint
|
||||
matches the live device image ID; vendor images with no recorded source remain
|
||||
explicitly unknown. Switching externally never makes the previous template appear
|
||||
as the current one. Restore also restores the matching content provenance.
|
||||
|
||||
Templates can load the current recorded template or continue editing a generated
|
||||
local image. They support direct photo import and protected image downloads.
|
||||
Gallery provides search, sorting, dimensions and downloads. Display confirmation
|
||||
supports duration, priority and restoration. History includes operation details.
|
||||
Automation offers content pickers, template profiles, previews and manual execution;
|
||||
playlists offer gallery image checkboxes. Real writes remain blocked by the server
|
||||
regardless of the UI controls.
|
||||
|
||||
Settings persists weather coordinates/provider and image URL host allowlists in
|
||||
SQLite. Open-Meteo provides current model weather and a three-day forecast, cached
|
||||
for ten minutes on demand. Network failures show unavailable/stale data and use a
|
||||
two-minute backoff, without replacing it with fictitious live data. Default remains
|
||||
Mock until configured in Settings. Open-Meteo attribution is included in the UI and
|
||||
weather/dashboard renders. Image URL import is HTTPS-only with explicit hostnames,
|
||||
public-address validation and pinned DNS; redirects and private addresses are blocked.
|
||||
|
||||
Additional v1 endpoints: `/devices/{id}/current-content`, `/assets/{id}/source`,
|
||||
`/providers/weather`, `/settings/weather`, `/settings/image-url`, `/jobs/{id}`,
|
||||
`/jobs/{id}/preview`, `/jobs/{id}/run` (all under `/api/v1`). Existing contracts remain
|
||||
compatible; new endpoints are included in generated OpenAPI and contract tests.
|
||||
|
||||
Reference in New Issue
Block a user