Release Notes
Here you find the release notes including all changes.
[1.0.0-beta2] - 2026-04-30
The release of 1.0-beta2 — Wiggling Waterbear 🐻 delivers bug fixes and further improvements across all services. We are excited to be moving even closer to the stable 1.0 release!
Key Highlights:
Reporting: A new reporting management command is now available, allowing you to generate reports tailored to the specific needs of your radio station.
Enhanced Playout Control: We’ve improved manual intervention during live broadcasts. You can add and replace media on the fly, or extend the duration of the current timeslot. Since the Playout Engine now also uses NATS for communication, most changes to broadcast data in Dashboard are now almost immediately reflected in the playout scheduler.
Episode Recording Guardrails: The Battery Cut & Glue background job now automatically crops and prepares potentially missing episode recordings, ensuring they are ready for any scheduled repetitions over the next 24 hours. Administrators can define the retention period for episode and block recordings in the radio settings.
Breaking Changes
Ensure to update the following environment variables accordingly:
Cut-Glue File extension setting
AURA_BATTERY_CUT_GLUE_FILE_FORMATis not prefixed with a ‘.’ anymore.Engine Recorder File extension setting
AURA_ENGINE_RECORDER_FILE_FORMATis not prefixed with a ‘.’ anymore.
Changelog
Added
aura: Documentation: Additional info in many areas of the Django admin section.
aura: Documentation: Developer info on CBA Integration for radio websites.
aura: Documentation: New show settings for “storage quota” and “number of people involved”.
aura: The radio station fixture allows setting the default show upload quota.
aura: Documentation: Info on Steering background jobs.
aura: Sentry configuration for Dashboard Clock.
aura: Documentation: Add terms overview.
aura: Documentation: Additions on how contributors are oganized.
aura: Developer targets to collect, add and generate list of contributors.
aura: Documentation: Info on contributed reporting script.
aura: Documentation: Additional info on bind-mounts in the backup section.
aura: Documentation: New section on multi-language content.
aura: Documentation: Reworked the studio clock documentation.
aura: Documentation: Language source configuration in fixtures.
aura: Documentation: New optional
AURA_AUDIO_STOREandAURA_LOGSparameters formake aura-web.initandmake aura-playout.init.steering: Extensions for upload quota handling in Steering (steering#372)
steering:
involved_people_countfield toShowmodel (steering#377)steering: Management commands to generate reports (steering#379)
dashboard: When creating repetition schedules, users can now select the initial broadcast to start the repetition with.
dashboard: The number of involved people and the show quota can now be set in the show settings.
dashboard: The used-up show quota is now displayed in the show settings.
dashboard: Removing items from combobox now requires confirmation.
dashboard: Creating a schedule now requires confirmation.
dashboard: The license selection now includes a link to a help page for choosing a license.
dashboard: The Free slots calendar view now shows the start and end of free slots.
dashboard-clock: Display filenames provided by Engine API, as a fallback for metadata.
dashboard-clock: Add
make testto run all npm tests.dashboard-clock: Add basic test coverage.
dashboard-clock: Add optional Sentry/Glitchtip error tracking.
engine: pass filename to playlog engine#177
engine: instant timetable updates on nats events engine#168
engine: script for docker healthchecks aura#335
engine-api: Playlog entries now have a filename attribute.
engine-core: Updated Liquidsoap 2.4.1 to 2.4.2
engine-core: Post filename entry to playlog engine#177
engine-recorder: script for docker healthchecks aura#335
Changed
aura: More basic
dashboard-clockDocker Compose health check.aura: Documentation: Split user guide sections on show and episode related topics.
aura: Documentation: Update provisioning and OIDC pages in admin guide
aura: Documentation: User Guide and Developer Guide rework, update of screenshots.
aura: Documentation: Update navigation chapter
aura: Documentation: Update user and profile chapter
aura: Documentation: Update monitoring, media management and broadcast sections.
aura:
make versiondoes not require Poetry anymore.aura: Make targets for development and production separated for clarity.
aura: BREAKING: Cut-Glue File extension setting
AURA_BATTERY_CUT_GLUE_FILE_FORMATis not prefixed with a ‘.’ anymore!aura: BREAKING: Engine-Recorder File extension setting
AURA_ENGINE_RECORDER_FILE_FORMATis not prefixed with a ‘.’ anymore!steering: A schedule’s
first_dateand the recurrence rule’sby_weekdaysmust correspond (steering#380)steering: List the name(s) of the show(s) a show collides with in the Conflict Resolutions (steering#381)
battery: Cut-Glue background now also job checks for availability of recordings for scheduled repetitions within the next 24h
battery: Media ownership is now checked through steering rather than re-implementing the logic in the media store.
battery: Claims for users associated with an OIDC authentication token are now cached more efficiently.
dashboard: File uploads now always show up with their filename instead of a tagged title.
dashboard: The prolongation button is now disabled for as long as the prolongation is in progress.
dashboard: Text fields with multiline input now show up with a height of at least two lines.
dashboard: The dark mode setting is now hidden as it is not yet fully implemented.
dashboard: License selection for media sources is no longer required.
dashboard-clock: Improve responsive layout.
dashboard-clock: Display AM/PM time suffixes as superscript.
dashboard-clock: Extend testing section in README.md.
engine: no pre-roll on active intervention, instead delay is set engine#118
engine: do not fade out/in same stream/live source during intervention engine#175
Fixed
aura: The license fixture for “public domain” does not require an author anymore.
aura: Optional arguments for custom audio store and log location in
make aura-web.initandmake aura-playout.init.aura: Fixed a few absolute image paths in the documentation.
steering: Conflict resolution woes (steering#383)
steering:
showNameforce-injected into Schedule and TimeSlot representations (steering#384)battery: Cut-Glue file extensions are not prefixed with a ‘.’ anymore
battery: The
attach_media_sourcejob now gracefully handles steering’s API errors.battery: The
BATTERY_LOG_LEVELenv var is now actually being used in the logging configuration.battery: Malformed UUIDs in filters no longer cause internal server errors.
dashboard: Open buttons for empty menu dropdowns are now hidden.
dashboard: The warning for creating schedules that start in the past now takes the time in addition to the date into account.
dashboard: Improved accessibility of HTML editor fields.
dashboard: Fixed some actions being erroneously shown to users lacking permissions.
dashboard: The account page now has a translation language switch for translated profile content.
dashboard: Show names in the mobile nav header support HTML now.
dashboard: Time units in duration inputs now accept mixed-case spelling.
dashboard: Duration inputs enforce positive values now.
dashboard: The image dialog no longer has bright scroll bars.
dashboard: Button states in the image editor are more discernible.
dashboard: The auto-enabled crop mode for aspect-ratio enforcement no longer requires interaction with the crop rectangle.
dashboard: The image editor crop mode validation is now accessible.
engine: handle engine-core socket CoreConnection errors engine-core#114
engine: heartbeats where not sent on a frequency of 1 engine#178
engine-core: Deprecation warning “on_connect” got fixed
engine-core: Deprecation warning “insert_metadata” got fixed
engine-recorder: rounding issues in filenames get cleaned through periodic filename sanitisation engine-recorder#49
[1.0.0-beta1-hotfix1] - 2026-03-21
Fixed
steering: Import of show fixtures result in broken UI (aura#587).
battery: Users will now automatically receive the correct permissions for creating pipelines and uploading files (aura#586).
[1.0.0-beta1] - 2026-03-12
The release of Beta 1 — Bold Bison 🦬 marks a major milestone for AURA. As the software suite enters Beta, we are officially “going green”.
We are trading in the fossil-fuelled Tank for our new Python container service: Battery. This transition allows us to “recharge” our infrastructure with:
Media Store: A dedicated service for managing and processing media. It replaces the Go-based uploader that previously fuelled AURA from the Tank.
Cut & Glue: A service for cropping show recordings, now integrated into the common container.
Battery provides a renewable foundation for future micro-services and long-running jobs, while streamlining our tech stack for better maintainability.
Please read the Battery migration guide below for more information.
Contributors
Huge thanks to everyone contributing to AURA, whether in your spare time or as part of your work at community radio stations.
This time, we’d like to give a special shout-out to:
@kmohrf for developing filerohr, the audio processing pipeline that serves as the backbone of our new Media Store.
@renatn for providing a database query script as a sample for RTR reporting. This is a great help while we work on bringing a native reporting UI to AURA.
Breaking Changes
Many environment variables have been added or replaced. Consider updating your configuration based
on the new sample.env files and consult the docs.
These changes only affect specialized API usage:
The
tankandtank-cut-glueservices have been replaced by the newbatteryservice. Consider checking the Battery API documentation for the new endpoints.Engine API endpoints for retrieving track service information changed from
/engine/api/v1/trackserviceto/engine/api/v1/playlog,/engine/api/v1/trackservice/currentto/engine/api/v1/playlog/current. Use the filtercontainsMusic=trueto only retrieve music tracks.Not breaking per se, but internal logic simplification – Steering now automatically creates and assigns Media objects along with Episode, Show, and Schedule objects. This means that when working with Media Source via the API, you can always expect an existing Media object you can relate to.
Battery Migration
Battery replaces the Tank service in AURA. Migrating files is currently not supported. This guide covers the necessary changes for getting the services back up, as a few manual steps are required for existing AURA installations.
Run
make setup-aura-web-dirsto create the log directory for BatteryNew environment variables have been added. Update any existing
.envfile with the new variables insample.envand remove any old variables related to Tank.
New variables in aura-web .env file are:
AURA_BATTERY_VERSION=1.0.0-beta1
AURA_BATTERY_DB_NAME=battery
AURA_BATTERY_DB_USER=battery
AURA_BATTERY_OIDC_CLIENT_ID=283718
Generate a secret with openssl rand -hex 16 for each of these new variables:
AURA_BATTERY_MEDIA_STORE_STEERING_TOKEN=
AURA_BATTERY_SECRET_KEY=
AURA_BATTERY_DB_PASS=
AURA_BATTERY_OIDC_CLIENT_SECRET=
AURA_DASHBOARD_CLOCK_BATTERY_TOKEN=
AURA_ENGINE_BATTERY_TOKEN=
In case you are using aura-playout, add the value of the AURA_ENGINE_BATTERY_TOKEN to your
playout .env file:
AURA_ENGINE_BATTERY_TOKEN=<value of AURA_ENGINE_BATTERY_TOKEN from aura-web>
Restart AURA Web
Wait for the services to settle. You might see an exception from one of Battery’s workers with regard to the database. This happens on the first start and the worker will recover automatically once the Battery service is up.
Run the following command manually in your shell:
docker compose exec steering /bin/sh -c 'steering create_oidc_client battery confidential --client-id "$BATTERY_OIDC_CLIENT_ID" --client-secret "$BATTERY_OIDC_CLIENT_SECRET" -r code -u "$BATTERY_CALLBACK_BASE_URL"'
This registers the Battery service as an OIDC client with Steering.
That’s it. Please report any issues you encounter.
Changelog
battery: Initial release.
Added
aura: Documentation: Auth section stub in the Developer Guide.
aura: Documentation: Admin section in the User Guide features basic info on background jobs.
aura: Documentation: Battery installation guide.
aura: Documentation: Cut-Glue specific settings
aura: Battery service and its configuration.
aura: Health check API endpoint under
/clock/api/health.aura: AURA Web health check for Dashboard Clock now checks against the new health API endpoint.
aura: Log file for Dashboard Clock under
logs/dashboard-clock.log.aura: New env var
AURA_DASHBOARD_CLOCK_LOG_LEVELin AURA Web.aura: New env var
AURA_BATTERY_CUT_GLUE_FILE_FORMATin AURA Webaura: AURA-Playout dev options
AURA_ENGINE_VIRTUAL_*to enable purely virtual audio setupaura: Documentation: added virtual audio device developer documentation
aura: Added
steeringandbatterydependencies todashboard-clockin AURA Web.aura: Documentation on media source inheritance.
aura: Documentation on contributors field concepts.
aura: Documentation on moved broadcast dates.
aura: Documentation on license information as part of CBA Media URL import.
aura: Documentation on using the required language-code object format for fixtures.
aura: Documentation on LDAP authentication via email.
aura: Documentation on mapping LDAP groups to Django group using group mirroring.
aura: Documentation on unused permission fields.
aura: Documentation on show deactivation and effect on first and last broadcast date.
aura: Documentation on timeslot expansion UI and manual interventions required due to conflicts.
steering: Run tests against SQLite and PostgreSQL (steering#336)
steering: Option to duplicate Django group via UI, instead of rename only (steering#366)
steering: Filter
?hasCbaIdto/episodesAPI endpoint (steering#374)dashboard: The list of broadcasts now displays the original broadcast date in case the broadcast is a repetition.
dashboard: The episode assignment dialog now supports filtering based on other criteria like non-broadcast episodes or episodes from a certain point in time.
dashboard: The program week calendar entries now show a repetition icon for repetitions.
dashboard: The program day calendar now shows the original broadcast date for repetitions.
dashboard: The selection of languages for translation is now based on the language assignments of the context (show, episode) if the radio’s translation language source has been set to Assigned Languages.
dashboard: Translatable fields are easier to identifier now.
dashboard-clock: Display file name for upcoming media sources, as a fallback for metadata.
dashboard-clock: Display repetition status for episodes.
dashboard-clock: Clock is now compatible with the Battery API. Battery is also part of the health check logic. For connectivity it requires the
AURA_DASHBOARD_CLOCK_BATTERY_TOKENenvironment variable to be set.dashboard-clock: Three analogue clock modes are now available for selection: Click the clock to switch between them (clock face with logo background, pure clock face and logo-only view).
dashboard-clock: When hovering the logo, the app version is displayed.
dashboard-clock: Marquee effect when media doesn’t fit container
dashboard-clock: Media source type for media sources is now displayed.
dashboard-clock: When cover image is not in 1:1 aspect ratio, contain the image in cover area and render blurred background to fill the gaps
dashboard-clock: Add env var
AURA_DASHBOARD_CLOCK_PLAYLOG_QUERY_OFFSET_SECONDSto configure an offset to include playlogs with too early start times (defaults to 1.0 seconds).dashboard-clock: Add Cache-Control headers and server-side caching to API responses for program, settings, and health endpoints.
dashboard-clock: Log file for Dashboard Clock (
dashboard-clock.log).dashboard-clock: Introduce
AURA_DASHBOARD_CLOCK_LOG_LEVELfor configurable debug log suppression.dashboard-clock: Enhance error logging across SSE endpoints by including API URLs and detailed error information.
dashboard-clock: Health check API endpoint (
/api/health).engine-api: PATCH/PUT endpoints to update the duration of a playlog
engine-core: Updated Liquidsoap 2.4.0 to 2.4.1
engine-core: Added native m3u support
engine-core: Added automatic creation of virtual audio interfaces for testing purposes
Changed
aura: Sample configuration files updated.
aura: Sample fixtures update Station settings now provide options to language and translation settings. All translatable fields are now multi-language.
aura: Breaking: Engine API endpoints for retrieving track service information changed from
/engine/api/v1/trackserviceto/engine/api/v1/playlog,/engine/api/v1/trackservice/currentto/engine/api/v1/playlog/current. Use the filtercontainsMusic=trueto only retrieve music tracks.aura: Update documentation on mobile browser support.
steering: Include Steering logs in stdout / Docker logs (steering#342)
steering: Replace Poetry with uv (steering#359)
steering: Create and assign media along with Episode, Show, and Schedule (steering#375)
dashboard: The media uploader gives more feedback on the upload progress.
dashboard: When creating a repetition schedule, the recurrence rule will now default to the recurrence rule of the original schedule.
dashboard: The edit past switch in the program week calendar has been removed.
dashboard: Users who are allowed to change the past or current program will be shown a soft warning instead.
dashboard-clock: Instead of Engine API
trackserviceendpoint, theplaylogendpoints are now used.dashboard-clock: Reworked health status information: move mouse over the health status dot to see detailed information.
dashboard-clock: Active media source has no pulsing dot anymore, but a pulsing media type.
dashboard-clock: Overall responsive layout and styling improvements. The analog clock is now more contrasty.
dashboard-clock: Improved media source whitespace handling and pill divider alignment.
dashboard-clock: When no playlogs are available, past and current planned media sources are not displayed anymore for more clarity. Instead a badge, indicating that there is no playout connection, is displayed.
dashboard-clock: Prevent redundant SSE emissions for health and broadcasts by tracking last sent data.
dashboard-clock: Performance improvements by fetching episode, file metadata, and playlogs in parallel.
dashboard-clock: Improved SSE communication between clock client and server, to properly handle disconnections and automatically reconnect after 10 seconds.
dashboard-clock: Added UI feedback for connection loss: dashboard is hidden, loading spinner and error badge are shown.
dashboard-clock: When using English date/time format, AM/PM in the digital clock is now displayed as superscript.
dashboard-clock: Label for remaining time is now “COUNTDOWN”.
engine: engine now uses engine-cores native m3u support instead of its own implementation
engine: engine now uses the new battery media-store instead of tank
engine-api: Instead, the playout endpoint is now readable without authorization
engine-api: and can be filtered with the
containsMusic=truequery parameter.engine-core: engine-core now updates the duration of the previous playlog on engine-api to prevent overlaps
Removed
engine-api: Breaking: The trackservice endpoint has been removed.
aura: Tank service and its configuration.
aura: Tank Cut & Glue service and its configuration.
aura: Documentation: Tank references in the installation and developer guides.
dashboard-clock:
AURA_ENGINE_API_TOKENis no longer required to access engine-apidashboard-clock: **Breaking:**Tank API is no longer supported.
dashboard-clock: Removed footer section.
Fixed
aura: Fix “/engine” route not passing query params (aura#552)
aura: Installing aura-web from main branch fails exec: “poetry”: executable file not found (aura#551)
aura: Exposed port of Dashboard Clock.
aura: Documentation: Fixed an issue with line-in channel configuration index.
steering: Error while editing the duration of an episode currently broadcast (steering#358)
steering: Server error after clicking annual prolonging button (steering#360)
steering: The Steering
profilesendpoint ignores theisActiveparameter (steering#362)steering: Fixture samples missing translated fields, resulting in broken API endpoints (steering#363)
steering: Aura Web Docker compose starting issue with
can(steering#364)steering: Re-broadcast based on repetition schedule creates its own episode, rather referencing the original one (steering#365)
steering: RuntimeWarning about DateTimeField receiving a naive datetime (steering#367)
steering: Annual Prolongation: Conflict with timeslot which should not exist per schedule (steering# 368)
steering: Django permission dialog comes after every login now (steering#369)
steering: steering-worker errors (steering#373)
dashboard: CBA Ids are correctly saved now
dashboard: The breadcrumb navigation no longer overflows for some dynamic content
dashboard-clock: Recalculate duration components using total seconds and prevent negative time.
dashboard-clock: SSE connection is now properly closed on client disconnect.
dashboard-clock: German translation for media inheritance.
dashboard-clock: Fixed false positive warning “Active media source type mismatch” when no playlogs are available.
engine: stream sources with shorter duration than the whole timeslot did not end on time
engine: error kept beign logged after updating an invalid stream
engine: fix case in which stopping line in sources lead to error
engine: infinite play attempts on broken sources with unknown PlayState
engine: misleading error log ‘Bad Request’ on ConnectionError
engine: No playlog for scheduled episodes with stream sources where posted in some cases
engine: playlog duration was too long on items that where started past start time
engine-api: The API docs now generate a usable server URL.
engine-core: several ambiguous variable names where changed to prevent warnings
engine-recorder: ‘jack’ source format failed because no jack daemon was available
[1.0.0-alpha9] - 2025-12-19
We are pleased to announce Alpha 9 — Laughing Llama 🦙. This release introduces a range of usability, scheduling, and architectural improvements. Key highlights are outlined below; additional changes are documented in the changelog further down.
Program and Content Management
The Dashboard now supports multi-language input for show, episode, and profile data, making it easier to reach a broader audience. The Dashboard has been significantly improved for mobile devices and is now largely usable on phones and tablets.
Scheduling has been extended with repetition schedules, which are schedules linked to existing ones and enable automatic re-broadcasting of previous content. The calendar and profile views have been enhanced with additional filters and expanded information display.
A new prolongation view allows program managers to perform annual timeslot extensions more efficiently.
The Studio Clock has also received several improvements, including visibility into the currently active episode and the media source being played.
Playout and Recording
Playout now supports configuring multiple line-in channels in combination with the auto-connect feature. During episode playout, operators have additional live intervention options to prevent dead air or incorrect audio broadcast.
With numerous fixes and improvements to the Engine, along with the upgrade from Liquidsoap 2.2.5 to 2.4.0, major stability improvements have been achieved for the playout components.
The recorder now supports the amd64, arm/v7, and arm64 architectures and is ALSA-compatible
by default, allowing installation on single-board computers like Raspberry Pi.
Architecture
To improve scalability and future readiness, AURA now integrates a messaging system based on
NATS, plus a new proxy service named can. This enables service clients to
receive data update notifications more efficiently and reliably.
AURA Web now integrates the lightweight task queue huey, providing a solid foundation for executing background jobs such as annual timeslot extensions and other long-running tasks.
Breaking Changes
Due to changes affecting multiple environment variables, we strongly recommend updating your
entire .env files to match the structure of the provided sample.env files.
Additionally, the structure of the sample fixtures has changed to support multi-language content. Please update any custom radio fixtures to ensure your installation continues to function correctly.
The OIDC client configuration for the Dashboard has changed. When upgrading an existing
installation, update the client configuration to use the Authorization Code Flow (code). Refer to
the documentation for details.
Environment variable changes:
AURA Playout environment variables
AURA_ENGINE_INPUT_CHANNEL_LEFTchanged toAURA_ENGINE_INPUT_CHANNEL_0_LEFT,AURA_ENGINE_INPUT_CHANNEL_RIGHTchanged toAURA_ENGINE_INPUT_CHANNEL_0_RIGHT.New required environment variable
AURA_PLAYOUT_HOSTfor Web and Playout. It enables API communication between multiple AURA instances and replacesAURA_ENGINE_API_INTERNAL_URL.New variable
AURA_NATS_API_TOKENneeds to be set, to configure the new NATS messaging system integration.
Changelog
Added
aura: Engine Recorder Docker Image is now available as a MultiArch build, supporting
amd64,arm/v7andarm64architectures.aura: Added messaging system powered by NATS. Administrators need to set the
AURA_NATS_API_TOKENin the environment file.aura: Configuration of multiple Line-In channels through env vars AURA_ENGINE_INPUT_CHANNEL_0_LEFT/RIGHT up to AURA_ENGINE_INPUT_CHANNEL_4_LEFT/RIGHT.
aura: Playout intervention options: possibility to modify currently active timeslots.
aura: Documentation on translations for multi-language content.
can: Initial release.
tank: Provide ability to use
/etc/aura/tank.yamlas an optional configuration override (tank#51)tank: Option for batch query for “files” API endpoints by passing list of IDs (tank#104)
dashboard: The dashboard now (mostly) works on phones and tablets.
dashboard: Users can now add translations for texts used in shows, episodes, and profiles.
dashboard: The login form now shows detailed error messages for failed logins.
dashboard: The per-page-schedule-count in the schedule list is now configurable.
dashboard: Users can now create repetition schedules.
dashboard: The media info now exposes filenames of uploaded files.
dashboard: The profile list can now be filtered so that it only shows profiles that have an account.
dashboard: We now display assigned shows in the profile list.
dashboard: The CBA media resolver will now add credits and license information to created media sources.
dashboard: The dashboard’s session credentials are now cleared when logging out from the steering admin interface.
dashboard: Image uploads now require an explicit confirmation in regard to image usage rights.
dashboard: The program week calendar can now be filtered to show empty episodes.
dashboard: The list of associated broadcasts in the episode/ broadcast detail page now links to the
dashboard: individual broadcast detail pages.
dashboard: A new page for prolonging the radio’s program and schedules has been added.
dashboard-clock: Display stream URL for stream media sources.
dashboard-clock: New badge indicating states of currently playing media source (General media source name, automatic media scheduling as part of the fallback show feature, fallback due to no media sources, fallback due invalid media source, media inheritance source).
dashboard-clock: Station logo is now displayed in the main section, with radio station name as a fallback.
dashboard-clock: Current broadcast now also displays episode details.
dashboard-clock: Countdown and current media source badge feature a “On Air” label, including “pulsing dot” for better focus.
dashboard-clock: Some messages now feature icons for better alert state communication.
dashboard-clock: Stop watches for debugging and performance analysis.
dashboard-clock: More translated text labels.
engine: Playout intervention: possibility to modify currently active timeslots engine#46, engine#48, engine#49
engine: Play re-broadcast as part of repetition schedule engine#162
engine-core: Configuration of multiple Line-In channels through env vars
AURA_ENGINE_INPUT_CHANNEL_0_LEFT/RIGHTup toAURA_ENGINE_INPUT_CHANNEL_4_LEFT/RIGHT
Changed
aura: Simplified setup for localhost installation in development and testing environments and updated documentation accordingly.
aura: Documentation on required specific for M3U file structure currently required: Every file entry needs a preceding
#EXTINF:191,Artist Name Track Titleline entry. Streams are not allowed contents.aura: Documentation on container and database operations extended.
aura: Breaking: Structure of sample-fixtures has changed, supporting multi-language content now. Update any custom radio fixtures, in order to keep your installation working.
aura: Breaking: OIDC client configuration for Dashboard changed. When upgrading an existing installation change client configuration to
code (Authorization Code Flow).aura: Improved documentation on various environment variable settings for AURA Web and Playout.
aura: Updated Liquidsoap 2.2.5 to 2.4.0.
aura: Breaking Changed env var
AURA_ENGINE_INPUT_CHANNEL_LEFTtoAURA_ENGINE_INPUT_CHANNEL_0_LEFT.aura: Breaking Changed env var
AURA_ENGINE_INPUT_CHANNEL_RIGHTtoAURA_ENGINE_INPUT_CHANNEL_0_RIGHT.aura: engine-recorder uses ALSA by default, PipeWire can be enabled optionally.
tank: Rename user in Dockerfile from
apptoaura(tank#76)dashboard: [BREAKING] The OIDC authentication flow for the dashboard changed from
id_token tokentocode.dashboard: This requires a change in the steering configuration. Open the
dashboard: steering client configuration
dashboard: for the dashboard, select the
coderesponse type and save the changes.dashboard: Page layouts are now more consistent across the dashboard.
dashboard: The navbar has been redesigned to be more consistent and pretty.
dashboard: Filter, order, and pagination parameters are now mostly stored in the URL making them shareable.
dashboard: The show name field now uses the HTML editor.
dashboard: The image browser only displays images that are owned by or related to the current user.
dashboard: The list tables now all show 12 items by default.
dashboard: The timeslot move/shorten/extend dialogs have been merged into a single dialog.
dashboard: The media source editor layout has been changed to be more consistent.
dashboard: The option to apply a solution to all conflicts with a schedule has been improved so that
dashboard: it is obvious that it has been applied.
dashboard: The week calendar’s resolution is now saved as a preference.
dashboard: Various small improvements.
dashboard-clock: Remaining broadcast time bigger and more prominent.
dashboard-clock: Longer minute hand for analogue clock, improve general contrast
dashboard-clock: Service status widget now updating state independent of other API requests.
dashboard-clock: Improved query performance: Using batch requests where available and SSE communication within clock client-server.
dashboard-clock: Basic responsive layout, alignment and font size improvements.
dashboard-clock: Instead of 3s, API data is now refreshed with a 900ms delay.
dashboard-clock: Improved footer.
engine-core: Updated Liquidsoap 2.2.5 to 2.4.0
engine-core: Breaking Changed env var
AURA_ENGINE_INPUT_CHANNEL_LEFTtoAURA_ENGINE_INPUT_CHANNEL_0_LEFTengine-core: Breaking Changed env var
AURA_ENGINE_INPUT_CHANNEL_RIGHTtoAURA_ENGINE_INPUT_CHANNEL_0_RIGHTengine-recorder: Use ALSA by default, allow adding PipeWire optionally engine-recorder#47
Removed
aura: Warning about Ogg audio file upload issues in Firefox this is now supported by Firefox and Dashboard provides some fix on top.
aura: Obsolete environment variable
AURA_ENGINE_API_INTERNAL_URL.
Fixed
aura: Breaking: New required environment variable
AURA_PLAYOUT_HOSTfor Web and Playout. It enables API communication between multiple AURA instances and replacesAURA_ENGINE_API_INTERNAL_URL(aura#515).aura: Documentation: Remove environment variable not required for playout config.
aura: Documentation: Fixed an issue with line-in channel configuration index.
tank-cut-glue:
/etc/aura/tank-cut-glue.yamlwas not loaded within aura-web setup.tank-cut-glue: Wrong Steering API url used during timeslot lookup (tank-cut-glue#34).
tank-cut-glue: adapt data handling to steerings new list response format
dashboard: Multiple text overflow issues have been fixed.
dashboard: The dashboard version no longer shows a
-dirtysuffix.dashboard: The HTML editor now produces better and less verbose HTML.
dashboard: Shows are now ordered by their name, not their slug.
dashboard: For dates that don’t round to a full minute, the seconds are now displayed everywhere.
dashboard: Underlined content is no longer stripped in the HTML editor.
dashboard: Changes to media and media sources are now picked up in the calendar views.
dashboard: The week filter in the week calendar now works around the turn of the year.
dashboard: The import logs no longer wrap the time column causing every log line to take up at least two lines.
dashboard: Video files can now be uploaded as audio, working around a bug in Firefox.
dashboard: The drag button in the media editor is now hidden if there is only one media source.
dashboard: The alignment of the conflict resolver dialog has been improved to work on smaller screens.
dashboard: There is no longer a stray media source label when the media sources are inherited.
dashboard: Various small fixes.
engine: Scheduling MP3 stream fails engine#152
engine-api:
AURA_ENGINE_API_LOG_LEVELandAURA_ENGINE_API_LOG_FILEnow work as expected.engine-core: File based media not played after queue got cleared engine-core#101
engine-core: Wrong playlist_folder path in engine-core.yaml engine-core#95
engine-core: Engine-Core fails to play Fallback in some edge cases engine-core#90
engine-core: Disabled fallback source triggers additional track updates engine-core#24
engine-core: Fallback plays in between scheduled media-sources of same episode engine-core#100
engine-core: Fallback source not detected in playlog engine-core#99
engine-core: Some streams start playing, but missing playlog entries engine-core#98
engine-core: Wrong track duration posted in playlog engine-core#89
[1.0.0-alpha8] - 2025-10-01
The release of Alpha 8 — Attuned Aardvark 🐷 brings together several essential updates.
AURA Playout & Recording Back on Track
Thanks to our new team member, Leon, the playout services are once again fully compatible with the AURA API. This means you can resume playout testing with confidence.
But that’s not all: the software suite now includes the Cut & Glue agent, which automatically creates second-accurate episode recordings in the background using your block recordings.
This enhancement allows you to manually schedule episode repetitions based on previous episode recordings – completely automated. We encourage you to give this feature a try!
Studio Clock Overhaul
The studio clock, available at /clock, has received a complete overhaul. In addition to the
analog clock, it now includes:
A digital clock, including the current date.
An episode countdown, starting to blink in the last 10 seconds.
A display of the next two upcoming episodes.
You can customize the clock dashboard branding, such as station name and logo, in your radio station settings. It automatically localizes text and date-time information based on your settings (English, German).
Additionally, the health of your AURA instance is now visualized with service status indicators for Steering, Engine, and Tank.
Powerful Conflict Resolution Interface
Alongside countless UI feature additions and improvements, the biggest achievement is the new conflict resolution interface.
You can now easily navigate timeslot collisions and visually select the appropriate resolution — all while staying within the calendar view.
As an added bonus, the new Help switch assists you in resolving conflicts with ease.
Breaking Changes
All
.envconfiguration files have many settings changed. Recreate the configuration or carefully diff compare existing ones. Find details in the changelog below.The audio store folder structure is updated and relevant init scripts are adapted. Either manually update the paths or re-install AURA.
AURA_AUDIO_STORE_FALLBACKgot removed, insteadAURA_AUDIO_STORE_POOLis now used. It should point toaudio/poolinstead ofaudio/pool/fallback.For ease of installation, we recommend deleting Tank volumes and any existing uploads. To keep using files stored before this version, ensure the
formatfield in thefilestable has the correct value: https://gitlab.servus.at/aura/tank/-/issues/96#note_25596Host/Host+ roles now require a
change_timeslotpermission. This permission is automatically provided with new installations. You can also reset to default permissions on existing installations.
Known Issue
For some local installations (aura.local) there is some Tank OIDC connectivity
issue. If you experience such problem, check the AURA Web Installation Guide
on how to temporary set the extra_hosts for Tank. After aura#467
is fixed the workaround can be removed.
Changelog
Added
aura: Known Issue: Info on a known issue with TANK OIDC connection in aura.local environment (see AURA Web installation guide or aura#467).
aura: Documentation on browser-related date-time format.
aura: Documentation on how to use the new “Import from CBA” feature.
aura: Documentation on new radio station settings (field limitations and HTML support).
aura: Admin docs now mention cropping agent related information (Cut & Glue).
aura: Documentation on the studio clock.
aura: Documentation on the new conflict resolution interface.
aura: Add Tank Cut&Glue service to the AURA Web Docker Compose. Available block recordings are now automatically cut and glued, matching the exact episode duration.
aura: Documentation: Info on Icecast client configuration for the playout.
aura: Add an aura-recorder config option to enable ALSA support (engine-recorder#46).
steering: Category subtitle and description are now editable in the administration backend.
steering: Update categories fixture to provide a default value for
subtitle.steering: Station Settings: Provide fields to store max length configuration for episode/show fields (steering#248)
steering: Media Source Inheritance to be resolved by
steering(steering#272)steering: Implement Media Source API in
steering(steering#276)steering: Testcases Roles and Permissions (steering#287)
steering: Django Authentication via Email (Local + LDAP) (steering#289)
steering: API Docs: Infos on available filters for endpoints (steering#294)
steering: Implement update of timeslot start/end (steering#295)
steering: Add Radio Station config for “default show media source” template (steering#300)
steering: Breaking: Host/Host+ roles now require a
change_timeslotpermission.tank: The
Filemodel has aFormatfield (tank#96)tank: Config option to disable normalization for uploads (tank#92)
tank: Config option to disable conversion for uploads (tank#96)
dashboard: Users can now edit the media of already broadcast episodes.
dashboard: Users can now shorten and extend broadcasts.
dashboard: The dashboard now shows its exact version number, not only the
dashboard: most recently released version.
dashboard: Sentry or Sentry-compatible tools like GlitchTip can now be used
dashboard: to monitor the dashboard.
dashboard: Duration inputs can now be in-/decremented with arrow keys
dashboard: and the mouse wheel.
dashboard: CBA URLs can now be imported directly via the
dashboard: URL import dialog in the media editor.
dashboard: Profiles in the profile selection field now link directly to the
dashboard: profile details page.
dashboard: The profile details page now lists the shows a profile is assigned to.
dashboard: The first/ last broadcast of a show can now be seen on its settings page.
dashboard: Sort operations that typically involve dragging (e.G. for media sources)
dashboard: now support simple up/down buttons when the user uses a keyboard.
dashboard: The broadcast and schedule menu headers now link to their respective
dashboard: detail pages.
dashboard: Profiles can now be created from the profile list page.
dashboard: Profile previews now show a little bit more information about the profile.
dashboard: The conflict resolution now offers more options to resolve certain schedule
dashboard: conflicts, shows the overall progress and other relevant information.
dashboard-clock: Display a countdown for the current show.
dashboard-clock: Display the current date.
dashboard-clock: Display and additional digital clock.
dashboard-clock: Display available state of connected services (API of Steering, Tank, Engine).
dashboard-clock: Display “later timeslot”, which is the timeslot after the next timeslot.
dashboard-clock: Media played from the Station Fallback Pool is visually marked as music tracks.
dashboard-clock: All UI text is now translated in English and German. The used language is determined by the browser locale setting.
engine: Ability to re-broadcast episodes from recordings provided by
tank-cut-glue(engine#150)engine: Config option
record_date_formatto specify the formatstring used byengine-recorderengine-recorder: Added an option to enable ALSA support (engine-recorder#46)
Changed
aura: Simplified documentation on how to configure audio interface channels for playout.
aura: Breaking: All
.envconfiguration files have many settings changed. Recreate the configuration or carefully diff compare existing ones.aura: Breaking: The audio store folder structure is updated and relevant init scripts are adapted. Either manually update the paths or re-install AURA.
aura: Breaking: Many service configuration files have changed. If you are using an service config override, check for changes.
aura: Breaking:
AURA_AUDIO_STORE_FALLBACKgot removed, insteadAURA_AUDIO_STORE_POOLis now used. It should point toaudio/poolinstead ofaudio/pool/fallback.aura: The fixture
radioettings.jsongot extended.aura: Update categories fixture to provide a default value for
subtitle.aura: Datetime format of show and block recordings got changed
aura: Add icecast stream output configuration example to admin aura-playout install manual
steering: Upgrade Django to 5.2, the next LTS version (steering#271)
steering: Change the ordering of Schedules (steering#302)
steering: Compute startand end-date of a show and provide via API (read-only) (steering#304)
steering: Timeslot creation with automatic episode association (steering#310)
tank: Breaking: Changed API user
enginetoread-apiand env varAURA_ENGINE_SECRETtoAURA_TANK_API_SECRET. This secret is now used for Engine and Dashboard Clock.tank: Breaking: To keep using files stored before this version, ensure the
formatfield in thefilestable has the correct value: https://gitlab.servus.at/aura/tank/-/issues/96#note_25596tank: Update Go to version to 1.24 (tank#89)
tank: Update Audio Store Structure in
tank(tank#94)tank:
/filesroute now exposesformat(tank#96)tank-cut-glue: Changed the aura user and group ID from 2872 to 872.
tank-cut-glue: Use Alpha 8 APIs to provide compatibility with AURA-Web (tank-cut-glue#32)
tank-cut-glue: Adapted sample configs to match current AURA settings (tank-cut-glue#31)
tank-cut-glue: Changed default date format
tank-cut-glue: made check interval and audio_block_interval configurable
dashboard: All inputs dealing with numbers now use tabular nums, making
dashboard: the input spacing more consistent.
dashboard: Moving broadcasts (as well as shorten/extend) now supports the full
dashboard: conflict resolution instead of only deleting the conflicting broadcasts.
dashboard: Loading indicators have been unified across the dashboard.
dashboard: The profile section on the user settings page will now be displayed even
dashboard: if the user is not assigned to any profiles.
dashboard: Layout and visual cues of the broadcast/schedule menu have been changed
dashboard: to clarify the information hierarchy.
dashboard: Entries in the day calendar no longer have icons signifying some
dashboard: sort of relevance.
dashboard: The layout of the schedule creation dialog has been updated to be more
dashboard: consistent with other dialogs.
dashboard: The dashboard no longer shows an end date for one-time schedules.
dashboard-clock: Huge refactoring how API sources are used: Instead of retrieving data from Engine API only, data is now also fetched from Steering and Tank directly.
dashboard-clock: Overall look & feel and responsiveness. Improved color coding concept.
dashboard-clock: The clock dashboard is driven by the radio station settings in Steering.
engine: Breaking: Generalized Tank API user
enginetoread-apiand env varAURA_ENGINE_SECRETtoAURA_TANK_API_SECRETengine: Initial folder structure of the audio store got updated (aura#349)
engine: Breaking: Changed env var
AURA_AUDIO_STORE_SOURCEtoAURA_AUDIO_STORE_UPLOADengine: Breaking: Changed env var
AURA_AUDIO_STORE_PLAYLISTtoAURA_AUDIO_STORE_M3Uengine: Breaking: Changed config option
source_foldertoupload_folderengine: Breaking: Removed config option
source_extensionengine: Updated Engine to use Alpha 8 APIs to provide compatibility with AURA-Web (engine#118, engine#164)
engine: File upload extensions are now provided by tank (engine#165)
engine-api: Engine-API has been ported to Django.
engine-api: The trackservice endpoint now only returns music.
engine-api: The playlog endpoint now requires authentication.
engine-api: Token, basic, and session authentication are supported.
engine-api: The health and synchronization endpoints have been removed.
engine-core: Initial folder structure of the audio store got updated. (aura#349)
engine-core: Breaking: Changed env var
AURA_AUDIO_STORE_SOURCEtoAURA_AUDIO_STORE_UPLOAD.engine-core: Breaking: Changed env var
AURA_AUDIO_STORE_PLAYLISTtoAURA_AUDIO_STORE_M3U.engine-core: Breaking:
AURA_AUDIO_STORE_FALLBACKgot removed, insteadAURA_AUDIO_STORE_POOLis now used. It should point toaudio/poolinstead ofaudio/pool/fallback.engine-core: Updated Engine-Core to use Alpha 8 APIs to provide compatibility with AURA-Web. (engine#118)
engine-core: Reworked the way playlog information is passed from Engine, through Engine-Core to Egnine API
engine-recorder: Updated default datetime format
Removed
aura: Remove obsolete configuration file “dashboard-clock.json”.
aura: Documentation: Remove outdated “Organize Schedules and Timeslots” page.
steering: Length limitation for topics (steering#292)
engine: Internal media source inheritance logic (engine#157)
Fixed
aura: Documentation: Line input and output channel assignment was swapped in playout configuration steps.
aura: Fix proxy-redirect when using external OIDC client (contributed by Unicode IT).
aura: Documentation: Assignment of AURA-Playout line in/out channels was swapped
steering: All models can now be filtered by
isActiveflags, for example?isActive=trueor?isActive=1.steering: Media Permission Host (steering#288)
steering: Conflict Resolution: In some cases, not all options for resolution are displayed (steering#291)
steering: Categories: Some data model fields are missing in Django UI and Fixtures + Filter by isActive not working (steering#293)
steering: Adding new Music Focus through the admin interface raises an IntegrityError (steering#296)
steering: Wrong media-source source url in aura-structuredaudio (steering#301)
steering: Permission denied on media upload local file (steering#306)
steering: Timeslots repetitionOfId not set on /program/playout endpoint (steering#307)
steering: Missing GMT+2 on conflict resolution backend time display (steering#315)
steering: Schedule and broadcast dates do not correspond (steering#316)
tank: Permission denied on media upload local file (tank#95)
tank: Uploading files through dashboard assigns metadata from different files (tank#97)
tank: CBA media import (tank#98)
tank: Media uploads through dashboard fails (#100)
tank-cut-glue: use unix timestamp for AudioBlock s_time
tank-cut-glue: use WSGI app as entrypoint for prod
dashboard: Various accessibility issues have been fixed.
dashboard: Some fields that should have been hidden for some users are now hidden.
dashboard: An edge case that prevented the sorting of media sources has been fixed.
dashboard: The dashboard now shows an error if the media source order cannot be updated.
dashboard: Some issues where long show names cause overflow have been fixed.
dashboard: Seconds can now be added to time inputs and are displayed across the app.
dashboard: The conflict resolution for a new schedule now returns to the schedule
dashboard: creation dialog if the conflict resolution has been aborted.
dashboard: Native control colors now align with the rest of the UI.
dashboard-clock: Issue where next timeslot is not displayed correctly in some cases.
dashboard-clock: Issue where the UI flickers on updates.
engine: Removed deprecated @property attribute for compatibility with newer python versions (engine#163)
engine: Reworked Automated Fadeout to prevent errors (engine#151)
engine: Infinite errors on failing http stream sources (engine#154)
engine:
make apiprovided outdated commandline flags toopenapi-python-clientengine-core: Playlog timestamp format.
engine-core: Channel loudness to low in contrast to other fallback channel audio. (engine-core#23)
engine-core: Assignment of line in/out channels are swapped. (engine-core#87)
engine-core: Station fallback is posting wrong playlog data to Engine API (engine-core#88)
[1.0.0-alpha7] - 2025-05-23
The release AURA Alpha 7 — Helpful Hedgehog 🦔 brings several enhancements aimed at improving usability and integration. The calendar has been redesigned to provide clearer media source information and now works more smoothly with the show area, resulting in a more consistent and efficient workflow. These changes help unify planning and execution tasks within the application.
Improvements to schedule management offer users better control and reliability. The release also introduces basic LDAP connectivity, offering support of enterprise-level authentication and user management.
Important: This release does still not include an updated version of AURA Playout. Due to limited resources, the playout components are currently incompatible with the AURA API, hence the playout is not working. Attempting to use these services will result in errors. We will provide updates as soon as this situation changes.
Added
aura: Documentation: New calendar UI, week and date picker.
aura: Documentation: Info on media source states and their meaning in calendar view.
aura: Documentation: Updates on multiple changes in the show and calendar view.
aura: Documentation: Update info on sidebar, navigation and related information.
steering: Store reference of the user uploaded the content for legal purposes, like licensing (steering#230)
steering: Extend Steering API documentation for /schedules (steering#237)
steering: LDAP config options (environment variables or config file) (steering#266)
steering: Provide API to move timeslot (steering#267)
tank: Description field to the file model (tank#87)
dashboard: It is now possible to span existing schedules when using the mouse to create schedules if
dashboard: The action did not start on an existing schedule.
dashboard: The conflict resolution dialog now allows users to skip to the next unresolved collision.
dashboard: The conflict resolution dialog now allows users to apply a resolution to all applicable collisions.
dashboard: A single broadcast date can now be moved to a new start time.
dashboard: The day calendar now shows an indicator for repeated episodes.
dashboard: The show categories are now listed as part of the day calendar entries.
dashboard: Users can now skip to a specific week in the week calendar with the help of a week picker.
dashboard: Users can now skip to a specific day in the day calendar with the help of a date picker.
dashboard: The week calendar resolution can now be changed either through the select field above
dashboard: or by keeping Alt/Option pressed while scrolling in the calendar view.
dashboard: When users are logged out during a session, the current URL is retained, and they will be redirected
dashboard: to the last page they have used after logging back in again.
dashboard: Schedules can now be created and edited in the show area.
dashboard: The week calendar entries now show a small indicator icon for missing or invalid media.
dashboard: The day calendar entries now show detailed information on the assigned media.
dashboard: The week calendar entries can now be filtered/adapted to make it easier to achieve certain recurring tasks.
dashboard: Links to detail pages in overviews for shows, broadcast dates, episodes, and schedules now
dashboard: cover whitespace and non-interactive content.
dashboard: Instead of a modal dialog week and calendar entries now show a dropdown menu that includes
dashboard: short but informative info on the broadcast date and schedule, actions, and links to pages in the show area.
dashboard: Broadcast date lists in the show area now have a dropdown menu with deep links and common actions.
Changed
steering: Extend Steering API documentation for /schedules (steering#237)
steering: Rename Django session cookie (steering#260)
tank:
filesroute now accepts a description (tank#87)dashboard: The navigation no longer keeps the navigation of the last selected show open.
dashboard: This is to avoid confusion.
dashboard: Broadcast dates in the calendar now show the actual start and end time
dashboard: for dates that start in the week/day prior or end in the week/day after.
dashboard: The day and week calendar are now separate pages.
dashboard: When creating a schedule, users must now enter a duration instead of an end time.
dashboard: The feature to create schedule repetitions has been temporarily deactivated
dashboard: pending an improved spec in alpha8.
dashboard: Multiple pages received better support for shareable URLs
dashboard: (e.g., day/week calendar and pages with broadcast date overviews).
dashboard: The title of the show is now always displayed in the week calendar, even for very short events.
dashboard: The terms for Sendetermine/broadcast dates and Sendeschema/schedules were unified across the dashboard.
dashboard: Day calendar entries now show the episode title (instead of the summary).
Fixed
aura: Engine API is now reachable in a distributed setup (aura#421)
steering: Oauth2 Authentication returns Error 403 instead of 401 when access_token has expired (steering#177)
steering: Correct API documentation for images endpoint (steering#264)
steering: Media can only be edited by a Superadmin, independently of who uploaded it Calendar does not render (steering#265)
steering: Show ID not considered properly when updating media (steering#268)
steering: Endpoint /media returns unordered items (steering#269)
steering: Bug: Two timeslots in the calendar appear with the same start time (steering#275)
steering: Schedule start/end time mismatch timeslot start/end time (steering#277)
steering: Permissions for hosts (steering#283)
steering: Timeslot move operations considers self as conflict (steering#284)
steering: AURA Web installation with default config not working (steering#466)
dashboard: Fixed missing or incorrect translations.
dashboard: Fixed a bug that sometimes caused the english translation to show 24-hour time strings.
dashboard: Fixed a bug that caused empty slots in the week calendar at the beginning or start of a week.
dashboard: Fixed multiple accessibility bugs.
dashboard: Fixed a scroll overflow bug in the week calendar.
dashboard: Fixed a bug that displayed daily recurring schedules with a weekday name.
dashboard: Entries in the conflict resolver without any collisions can no longer be selected.
dashboard: The UI for creating/assigning episodes in the broadcast date list is now disabled/removed
dashboard: if the user lacks the required permissions.
dashboard: Fixed some unlocalized time representations.
dashboard: Endtime of new schedules is no longer rounded to minute-accuracy.
dashboard: Schedule 404 errors now redirect to the schedule overview page.
[1.0.0-alpha6] - 2025-02-26
We’re excited to introduce AURA Alpha 6 — Wondrous Whale 🐳, a major update that brings a more flexible and intuitive experience for managing episodes, broadcast dates, and media sources. This release makes it easier than ever to organize and track broadcasts.
Under the hood, we’ve made significant improvements to our data model and API, ensuring greater stability and future-proofing. Episodes can now be saved independently from their broadcast dates, and media sources are now stored in Steering, streamlining content management.
Additionally, you can now assign licenses to media sources, giving you more control over content rights and distribution. We’ve also enhanced user documentation across multiple areas, providing clearer guidance and support for all users.
Breaking Changes:
No updated AURA Playout: This release does not include an updated version of AURA Playout. Due to limited resources, the playout components are currently incompatible with the AURA API. Attempting to use these services will result in errors. We will provide updates as soon as this situation changes.
Default PostgreSQL version is now 16: The default PostgreSQL version has been upgraded to 16. Please refer to the documentation for instructions on upgrading your database version.
Single migration step in Tank: Tank now requires only one migration step. You will need to re-create the database and delete the existing files.
Icecast server removed from Docker Compose: The (previously unused) Icecast server has been removed from the default Docker Compose settings.
Read on for the full details of what’s new in AURA Alpha 6!
Added
aura: Documentation: How to deal with multiple media source assignments and length information.
aura: Documentation: Add info on import logs for file media sources.
aura: Documentation: Playout-mode for M3U playlists (linear) and fallback media (random).
aura: Documentation: Explain new Episode and Broadcast UI mechanics.
aura: Documentation: Info on new Media Description and CBA ID form field.
aura: Documentation: How to renew schedules and available settings.
aura: Documentation: Metadata editing for file uploads.
aura: Documentation: Episode Licenses.
aura: Documentation: Learn about different media source states.
aura: Documentation: Info on Firefox OGG upload bug.
aura: Documentation: Better explanation on default media sources, station fallback and their behaviour.
steering: Minimal unit test suite for steering (steering#43)
steering: Ability to move individual timeslots (steering#128)
steering:
PlaylistandPlaylistEntrymodels and endpoints (steering#251)steering: Document how to set duration of playlist entries in API definition (steering#252)
steering:
ContentLicensemodel to be referenced byImageandMediaSource(steering#256)steering:
media-sourcesendpoint.tank: Database SQLite support. (tank#52)
dashboard: The CBA ID field has been added to the episode editor.
dashboard: The media description field has been added to the episode editor.
dashboard: Episodes can now be edited and created independently of their timeslots.
dashboard: Media uploads are not handled in the background and users no longer have to stay
dashboard: on page of the media manager for uploads to succeed.
dashboard: Users can now delete episodes.
dashboard: Users may add licensing information to media sources.
Changed
aura: BREAKING: Default Postgres version for is now 16. Refer to the documentation for how to upgrade database version (aura#393).
steering: Filter sensitive information from public API endpoints (steering#217)
steering: Renamed
Notemodel intoEpisode(steering#249)steering: Renamed
playlistfield in theEpisodemodel (steering#257)steering: Renamed
PlaylistandPlaylistEntrymodels intoMediaandMediaSource(steering#258)steering: Permissions for “episode and broadcast date” (steering#263)
tank: BREAKING: There is only one migration step. You need to re-create the database and delete the existing files.
tank: Update Go version to 1.23 (tank#84)
dashboard: Timeslot filter now filters by date not datetime.
dashboard: The media editor expert mode is gone. One can now simply add new media sources.
dashboard: The link editor now auto-prepends
https://for URLs without a protocol.dashboard: Reworked media preview and notifications in timeslot and episode list.
Removed
aura: BREAKING: Remove Icecast server as part of the AURA Docker Compose, since radio stations usually have their own Icecast server in place. As a result the Docker Compose startup warnings on missing variables is also gone (aura#410).
tank:
PlaylistandPlaylistEntrymodels and migrations,playlistsAPI routes and related code. (tank#83)tank: Generated docs.go from version control were removed (tank#30)
Fixed
aura: Let’s Encrypt certificates are now properly persisted beyond container restarts (aura#422).
steering: Links not added when creating a new profile (steering#254)
steering: Test
test_generate_timeslots_weekendsfails on weekends (steering#255)steering: Cannot edit media sources with Program Manager/Host/Host+ role (steering#259)
steering: Unable to create repetition schedule (steering#261)
steering: Can’t upload images after introduction of ContentLicense relation (steering#262)
tank: /imports endpoint doesn’t return running imports (tank#85)
dashboard: Tank import log line numbers and timestamps are no longer selectable.
dashboard: Image previews now use the configured aspect ratio if one has been set.
dashboard: The image editor is now disabled and shows a warning if image operations cannot be performed.
dashboard: Media source manager will show errors through all stages of a media upload.
dashboard: HTML in show name is now rendered correctly everywhere.
dashboard: The link editor now displays errors if users entered an invalid URL.
dashboard: Selected show no longer interferes with site navigation.
dashboard: Media sources of aired episodes can no longer be edited.
[1.0.0-alpha5-hotfix1] - 2024-11-18
This hotfix release solves an issue with HTTP/HTTPS settings and TLS certificate retrieval (aura#405).
To apply the hotfix, checkout the tag 1.0.0-alpha5-hotfix1.
[1.0.0-alpha5] - 2024-11-05
We’re excited to introduce Alpha-5 — Capable Capybara 🐖, bringing significant new features and enhancements to improve user experience and technical functionality. This release includes new user interfaces for managing User & Host Profiles, expanded Image Management capabilities, and support for M3U playlist assignments. Users can now also access configurable line-in channels and view unmoderated program slots directly in the AURA calendar.
On the technical side, this release includes documentation and installation scripts for Pipewire, an upgrade to the latest Liquidsoap version, and enhanced tools for user permission management and timeslot conflict resolution.
Breaking Changes:
New configuration file
aura/config/services/sample-config/dashboard-clock.json. A copy also needs to be available ataura/config/services/dashboard-clock.json. Just re-runmake aura-web.initto create some initial version.Since many default assignments of permissions to groups have been changed, re-set to the defaults as per documentation, unless your are doing a fresh installation. Any modifications have to be re-applied.
The Steering API resource
Hostis replaced byProfile.The default protocol is now set to HTTP (
AURA_HOST_PROTO=http).CertBot is now disabled by default (
AURA_HOST_CERTBOT_ENABLE=false) and variable renamed from (RUN_CERTBOT) for consistency withAURA_HOST_CERTBOT_EMAIL.Changed the aura user and group ID from
2872to872. Callmake aura-user.rm && make aura-user.addto re-create. The runmake aura-web.init && make aura-playout.initto update permissions. Then rundocker system pruneand, if your are using playout, delete the socket volumedocker volume rm aura-playout_aura_engine_socket. Other volumes need to be updated, in order to keep their data (sudo chown -R aura:aura /var/lib/docker/volumes/aura-web_steering_media/_data && sudo chown -R aura:aura /var/lib/docker/volumes/aura-web_steering_static/_data/)Tank’s database mapper is upgraded to GORM v2. That means migrations cannot be applied and you have to purge your existing Tank database.
New API URL to retrieve the calendar information from Steering is
/api/v1/program/playout.Replaced the
engine-core.iniconfiguration withengine-core.yamlData type of
timeslot_idin Engine services changed toStringsince it now may hold UUIDs.
Deprecated:
The environment variables
AURA_ENGINE_OUTPUT_DEVICE,AURA_ENGINE_INPUT_DEVICEare not used anymore
Added
aura: Documentation: Image management.
aura: Documentation: Info on how recordings can be archived using a cronjob.
aura: Documentation: Fallback program configuration and usage.
aura: Documentation: User and profile management.
aura: The documentation now features a sitemap and is better equipped for search engines.
aura: Dashboard Clock now features a Docker Compose healthcheck.
aura: BREAKING: New configuration file
config/services/sample-config/dashboard-clock.json. A copy also needs to be available atconfig/services/dashboard-clock.json. Just re-runmake aura-web.initto create some initial version.aura: The Makefile is now able to auto-detect
AURA_HOME. That means you can install AURA in any directory of your choice.aura: The API endpoint for retrieving Dashboard Clock data from Engine API is now configurable.
aura: The admin docs feature a frequently asked questions section with first questions and answers.
steering:
basicandcalendarprogram routes. (steering#239)steering: Example Values in API (steering#111)
steering: Radio Station settings (steering#222)
steering: Permissions for editing
HostandUserProfile(steering#227)steering: Choice of database back-end using a database URL (steering#231)
steering: Permission for editing the “schedule default playlist” (steering#234)
steering: Settings
CORS_ALLOWED_ORIGINSandSITE_URLare read from the environment (steering#245)tank: The setting
DATABASE_URLis now read from the environment.tank: The settings
CORS_ALLOWED_ORIGINS,CORS_ALLOWD_HEADER,CORS_ALLOWED_METHODS,tank:
TANK_CORS_ALLOW_CREDENTIALSandTANK_CORS_DEBUGare read from the environment (tank#78)tank: `make release’ target to the Makefile (tank#70)
dashboard: M3U media sources can now be added to the playout.
dashboard: New profile and user management pages have been added.
dashboard: An experimental dark mode has been added.
dashboard: Images can now be flipped, mirrored and cropped in the image editor.
dashboard: Images must now match the required aspect ratios defined in the radio settings.
dashboard: Shows can now be filtered by category.
dashboard: The calendar day and week view now show detailed information on fallback slots.
dashboard-clock: Configuration is now provided via JSON file with sensible defaults, allowing you to setup AURA more quickly.
engine: Ability to handle virtual timeslots. Such timeslots are generated by the fallback program feature.
engine: added error handling if no matching channel type is found
engine-core: Added a feature to connect audio ports on startup configured via environment variables (engine-core#68)
engine-core: Added instructions and configurations to install a headless PipeWire session (engine-core#80)
engine-core: Added the option to add multiple outgoing icecast stream endpoints
engine-core: Added the option to add multiple audio input devices
engine-recorder: Added repository badges.
engine-recorder: Set up pre-commit and added configuration.
Changed
aura: BREAKING: Since many default assignments of permissions to groups have been changed, re-set to the defaults as per documentation, unless your are doing a fresh installation. Any modifications have to be re-applied.
aura: Documentation: Reworked structure and contents of the admin guide.
aura: Documentation: All references to “programme” are no named “program”.
aura: Documentation: All references to “host” are replaced by “profile”.
aura: BREAKING: The API resource
Hostis replaced byProfile.aura: Default fixture for radio station settings.
aura: Sample config for engine.
aura: Updated configuration file
config/services/sample-config/steering.py.aura: The studio clock is now always reachable via
/clock. There is no setting to disable anymore.aura: BREAKING: The default protocol is now set to HTTP (
AURA_HOST_PROTO=http).aura: The host name now features a sample setting for quickstart (
AURA_HOST_NAME=aura.local).aura: BREAKING: CertBot is now disabled by default (
RUN_CERTBOT=false).aura: Generally improved documentation on Base URL and Let’s Encrypt certificate retrieval.
aura: Documentation: Details on Base URL and Let’s Encrypt settings.
aura: Documentation: Details on configuring a second Reverse Proxy.
aura: BREAKING: Changed the aura user and group ID from
2872to872. Callmake aura-user.rm && make aura-user.addto re-create. The runmake aura-web.init && make aura-playout.initto update permissions. Then rundocker system pruneand, if your are using playout, delete the socket volumedocker volume rm aura-playout_aura_engine_socket. Other volumes need to be updated, in order to keep their data (sudo chown -R aura:aura /var/lib/docker/volumes/aura-web_steering_media/_data && sudo chown -R aura:aura /var/lib/docker/volumes/aura-web_steering_static/_data/)aura: Renamed
in_line_xtoaura_engine_line_in_xandlineout_toaura_engine_line_out_.aura: Postgres version defaults to 16 now.
steering: Changed the aura user and group ID from 2872 to 872.
steering:
playoutis now part of the program routes and generates virtual timeslot (steering#120)steering: Update permission names to more descriptive terms (steering#233)
steering: Python version and image is 3.12 (steering#246)
tank: Changed the aura user and group ID from 2872 to 872.
tank: BREAKING: Upgrade to GORM v2 and gormigrate v2. (tank#36)
tank: The data volume needs to be deleted and re-created.
tank: The files and folders from the audio store need to be deleted.
tank: Setup pre-commit and add configuration for Tank (tank#63)
tank: Update Go image to 1.22 (tank#73)
tank: Properly authorize requests to read a playlist (tank#77)
tank: GET /imports is now a valid request, without
showId(tank#81)dashboard: Line-in inputs are now based on the radio settings instead of being hardcoded.
dashboard: Deselection of images is now part of the dialog instead of the image preview.
dashboard: The visual appearance of the calendar day view has been completely overhauled.
dashboard: Data being fetched from the server is now being aggregated to improve performance and reduce the number of flashes of content.
dashboard: Users can now end a schedule after a specific timeslot, replacing the previous option of manually deleting timeslots in the backend.
dashboard-clock: Refactored Web Component into several, maintainable Svelte Components.
dashboard-clock: Dashboard Clock is now based on Svelte 4.
engine: BREAKING: New API URL to retrieve the calendar information from steering is
/api/v1/program/playout.engine: Schema and implementation of the Steering API client matching the new response.
engine: Media sources holding some M3U playlist, now expect a
m3u://...prefix instead ofplaylist://.engine: Better handling for broken or invalid stream media sources.
engine: Changed the aura user and group ID from 2872 to 872.
engine: Renamed
in_line_xtoaura_engine_line_in_xandlineout_toaura_engine_line_out_.engine: Improved test coverage further.
engine-api: Changed the aura user and group ID from 2872 to 872.
engine-core: BREAKING: Changed the aura user and group ID from 2872 to 872.
engine-core: Changed the environment variables
AURA_ENGINE_OUTPUT_CHANNEL_LEFT,AURA_ENGINE_OUTPUT_CHANNEL_RIGHT,AURA_ENGINE_INPUT_CHANNEL_LEFT,AURA_ENGINE_INPUT_CHANNEL_RIGHTto hold full names obtainable withpw-link -ioengine-core: Updated the liquidsoap version to
2.2.5engine-core: BREAKING: Replaced the
.iniconfiguration with.yamlengine-core: Changed the log level from Integer to String
engine-core: Changed the namespaces for some telnet commands, due to the restriction of unique names in the new liquidsoap version
engine-core: Renamed
in_line_toaura_engine_line_in_andlineout_toaura_engine_line_out_.engine-core: BREAKING: Update the timeslot_id data type to string
engine-recorder: Changed the aura user and group ID from 2872 to 872.
engine-recorder: Make coverage now outputs coverage percent in console.
engine-recorder: Added PipeWire as the Media Server
Deprecated
engine-core: The environment variables
AURA_ENGINE_OUTPUT_DEVICE,AURA_ENGINE_INPUT_DEVICEare not used anymore
Removed
aura: Removed configuration file
config/services/sample-config/dashboard-clock.env.aura: Completely removed Dashboard Clock configuration section in AURA Web
sample.env, allowing a much more hassle-free setup.aura: Remove unnecessary setting
AURA_ENGINE_API_BIND_URLandAURA_ENGINE_API_EXTERNAL_URLfrom configuration.aura: Remove fixture
host.json.dashboard-clock: Removed configuration via environment variables.
engine: Removed
max_retriesandretry_delayfrom config (#74)engine-core: Removed the wireplumber scripts to connect ports, use
pw-linkinstead (engine-core#68)engine-core: Removed some environment variables in favour of yaml settings
engine-core: Removed the mono option for icecast streaming endpoints
engine-core: Removed all environment variables for
AURA_ENGINE_STREAM_OUTPUTengine-recorder: Removed the Sync feature #40
Fixed
aura: Fix multiple issues with Dashboard Clock environment variables names.
steering:
ours-endconflict solution offered in nonsensical scenarios (steering#220)steering:
ours-bothassigns invalid show for second part of split episode (steering#221)steering: AURA does not apply summer-winter time shift correctly (steering#225)
steering: when I upload a file as host, the file is not shown in dashboard (steering#226)
steering: Update default group permission set that is delivered on install …the User Guide. (steering#236)
steering: auto-generation of notes during install/setup of AURA seems to fail (steering#238)
steering: as a host, I can neither view nor upload audio files (steering#247)
tank: as a host, I can neither view nor upload audio files (tank#79)
dashboard: Filenames are no longer used as alternative text for images.
dashboard: Image license and license related fields are now properly saved.
dashboard: Image license requirements are now properly validated.
dashboard: Show danger zone is now hidden if it doesn’t contain any actionable items due to permissions.
dashboard: Error handling for media sources has been improved.
dashboard: The HTML editor now behaves more like a normal input field.
dashboard: Assets are now cached for better performance.
dashboard: The image picker no longer retains any unsaved changes after the dialog has been closed.
dashboard: View state like search, filter and ordering parameters are now reflected in the URL so users can share URLS.
dashboard: The currently selected show is cleared after logout.
dashboard: Fixed minor UIand UI-related accessibility issues, as well as typos.
engine-api: Fixed issues with datetime and timezone handling when posting to the “playlog” and “clock” endpoints.
[1.0.0-alpha4] - 2024-04-18
The release of Alpha 4 — Raving Raccoon features:
Permission Management: Easily manage permissions for roles such as Program Managers and Hosts, as well as individual users.
Radio Station Settings: Administrators now have the ability to configure global station settings conveniently within the new admin area.
Playout Refactoring: The Engine component has undergone significant improvements. It now caches data efficiently without the need for a database server. Program data is cached transparently using JSON files. Additionally, the scheduling and program polling logic has been refactored and validated using OpenAPI interfaces.
Improved Test Coverage: We have substantially increased test coverage in both Steering and Engine components. Most components now provide badges displaying the overall test coverage.
Breaking Changes: All nested API endpoints in Steering and Tank that were deprecated in the previous release have now been removed.
Explore further details on all additional changes below.
Added
aura: New fixture
radiosettings.jsonfor defining radio station settings.aura: User Guide: Documentation on radio station settings.
aura: Admin Guide: Info on running Docker Engine as a daemon in production.
aura: User Guide: Documentation on data visibility, permission and roles in radio administration.
aura: New Gitlab issue templates for Bug Report and Epic.
aura: New “at a glance” overview for release workflow.
steering:
Playlistmodel as placeholder for custom permissions.steering: The route for
schedulescan now handle PATCH requests that don’t involve conflict resolution (steering#218)steering:
RadioSettingsmodel, admin, serializer, viewset and route to expose them (steering#173)steering: Management command and Makefile target to delete OIDC client (steering#219)
dashboard: Implemented basic permissions so that unprivileged users either can’t see or can’t edit data they are not allowed to see or edit.
dashboard: Episodes that the dashboard detects as invalid (e.g. those with a negative duration) are now highlighted with a yellow background and red stripes and should be reported.
dashboard: The menu now has a link to the steering administration page.
engine: Lots of test cases.
Changed
aura: Admin Guide: More details on configuring reverse proxies.
aura: User Guide: Manage groups improved.
aura: User Guide: Extended “User and host profile” documentation.
steering: The image URLs are now exposed as
urland include the protocol to avoid mixed-media warnings (steering#194)steering: The
titleof aNoteis nullable (steering#203)steering: A
Noteis attached to aTimeslotupon creation (steering#214)tank: The job-timeout for the importer is now thirty minutes for Docker.
dashboard: Calendar event color scheme has been re-worked to be more readable and distinguishes between owned and other shows.
dashboard: Reworked calendar dialogs and grouped related information and actions.
dashboard: Drastically reduced asset sizes and therefore improved app load times.
dashboard: The Delete all following episodes-functionality has been temporarily disabled.
dashboard: The show quick selector has been removed because we provide similar functionality on the show overview page.
engine: Engine now requires at least Python 3.11.
engine: Major refactoring of the scheduling mechanices. As a consequence the database dependency for caching is removed. Instead caching is performed in form of
jsonfiles located in the configuredcache_dirfolder.
Removed
aura: All database related configuration got removed from Engine. Compare and update your
.envfile.aura: User Guide: Safari support is removed once again.
steering: Nested routes for shows, show/timeslots, show/schedules, show/schedule/timeslot (aura#126)
tank: Nested routes for show/files, show/files and show/playlists (aura#126)
engine: All database related settings and dependencies. When updating from an existing deployment, remember to compare the new config files and remove relevant entries.
Fixed
aura: AURA Web health-checks updated to work with Docker Engine 26+.
dashboard: Fixed some visual spacing issues with dialogs.
dashboard: The title column in the episode list will now always display a title or placeholder.
dashboard: Users can now always abort the conflict resolution mode in the calendar.
dashboard: Fixed some rendering issues for certain conflict resolutions in the calendar.
dashboard: Fixed some missing, misleading and invalid translations in the calendar.
engine: Issue where the configuration values for
retry_delayandmax_retriesare mixed up.
Security
engine: The codebase is now audited using the security tool Bandit.
[1.0.0-alpha3] - 2024-02-29
The release of Alpha 3 — Playful Platypus marks a significant milestone with a comprehensive overhaul of the user interface and the play-out stack, introducing many eagerly anticipated features.
The dashboard has undergone a complete redesign in appearance, navigation and functionality. Notable additions in the show area include dialogs for managing show settings, episodes, image uploads, extended metadata assignments, assignment of media sources, and more.
The play-out engine now leverages the state-of-the-art audio server PipeWire, providing users with low-latency audio routing options for a smooth playback experience. PipeWire is seamlessly integrated into various recent Linux distributions such as Debian 12 and Ubuntu 22.04.
To facilitate understanding of the new features, the User Guide has been enriched with additional information. Simultaneously, the Administration Guide has undergone enhancements to expedite the AURA setup process.
Additional features include data backup and restoration capabilities, improved logging, and simplified importing of default datasets.
Breaking Changes: Many API implementations are improved to follow best practices. This includes the naming of parameters and properties. The approach how uploaded audio files are stored in the database and on the filesystem got revised. Lastly, most installation steps and their documentation got reworked. Due to the amount of breaking changes we recommend re-installing AURA from scratch.
Deprecated: We want to remind you, that nested API endpoints in Steering and Tank are deprecated. They will be removed with the release of Alpha 4. Try to migrate to the non-nested version of an endpoint and report back if you are facing issues. For more details, check out api.aura.radio and the detailed changelog below.
Security: Upgrade to Docker Engine 25.0.2 or later due to a security vulnerability in runc.
Added
aura: CLI command
make versionto display the current version.aura: Documentation: Configure playout using PipeWire.
aura: Documentation: Many chapters in the user documentation on the new features in the show and episode user interfaces.
aura: New make commands to create sample fixtures and import fixtures (
aura-web.fixtures-create,aura-web.fixtures-import).aura: New make commands to backup and restore Docker Volumes (
make aura-volume.backup,make aura-volume.restore).aura: Documentation: Chapter to learn how to backup config and data.
aura: Documentation: Aura Web now features a Quick Install Guide.
aura: Ability to load system settings with sample and custom fixtures.
steering:
ownersoptional field inHostmodel as many-to-many reference toUser(steering#166)steering:
languageandtopicoptional fields inNotemodel (steering#169)steering:
contributorsfield inNotemodel (steering#159)steering:
PRIVILEGED_GROUPandENTITLED_GROUPSsettings to implement groups and permissions (steering#177)steering:
FILTER_ACTIVE_SHOWS_USINGsettings to filter active shows and OIDC scope claims (steering#175)steering:
ShowManagerto annotate a show with its max (last) timeslot start (steering#175)steering:
is_activeboolean field inLinkTypemodel (steering#187)steering:
addtimeslotsmanagement command to renew schedules for one year (steering#108)tank: Un-nested routes for playlists, files, imports, etc. (tank#65)
dashboard: Added license selection in image picker.
dashboard: Added show overview page with grid and table view including pagination, search and extensive ordering capabilities.
dashboard: The state of save operations is now communicated to users.
dashboard: The media page has been removed in favor of inline editors in the episode and show management pages.
dashboard: Hierarchical pages now display a breadcrumb navigation.
dashboard: Show pages now display update/create metadata.
dashboard: All pages and subviews now have unique and shareable URLs.
dashboard: A new login page has been added.
dashboard: Shows can now be deleted.
dashboard: The show slug can now be changed.
dashboard: Languages and topics can now be set for individual episodes/notes.
dashboard: Show on-air and next-up info for episodes.
dashboard: Added support for viewing past episodes.
dashboard: Added support for viewing inactive schedules.
dashboard: Platform and social media links can now be added to shows and episodes.
dashboard: Content fields now have a WYSIWYG-HTML editor.
dashboard-clock: Sample API data for testing provided via
/test/api.jsonengine: Additional logging while loading playlist entries (#136)
engine-api:
make api: generate, merge and clean files according to api specs inschemas/openapi-engine.yaml(#37)engine-core: PipeWire as the media server inside the docker container
engine-core: Docker compose support for easier building of local containers
engine-core: WirePlumber script to automatically connect ports
engine-core: WirePlumber script to list device ports
engine-recorder: Added a option to configure the sub directories where the audio files are saved (engine-recorder#36)
engine-recorder: Added local docker build (engine-recorder#31)
engine-recorder: Added docker compose
Changed
aura: Documentation: Add details on how to release a service in the developer docs.
aura: BREAKING: Update naming and meaning of several make commands and according documentation. Re-read the docs carefully when installing.
aura: Docker images are now tagged and published with
maininstead ofunstable.aura: The
aurauser is now created as a system user.aura: Documentation: Multiple content and structure improvements in the Administration Guide.
aura: Documentation: CertBot in Aura Web installation is now enabled by default. Disable, when not needed.
aura: Sample configuration override for
engine-apiis now inYAMLformat, instead ofINI.aura: Update
engine-recordersample configuration for override.aura: Nginx is running rootless now. This improves security and fixes some other permission bugs.
aura: Replace
AURA_ENGINE_RECORDER_AUDIO_DEVICEwithAURA_ENGINE_RECORDER_AUDIO_SOURCEandAUDIO_DEVICEwithAUDIO_SOURCE, (engine-recorder#32)steering: BREAKING: The IDs of the “owned shows” and the “public shows” are now listed as
ownedShowIdsandpublicShowIdsin the OICD scope claims.steering:
note_idandshow_idare read-only fields of theTimeslotSerializer(steering#171)steering:
Note.tagsare exposed as list of strings (steering#158)steering: Django’s model permissions and additional custom permissions are now used (steering#177)
steering:
typeinLinkmodel is now foreign key reference to theLinkTypemodel. The serializers expect atypeId(steering#187)tank: BREAKING: The database and directory structure has changed. Since there is no way to migrate the data for this update, you need to re-create the database and delete the existing files and folders from the audio store.
tank: BREAKING: The endpoints to create files and playlists now require a
showIdin the JSON payload.tank: BREAKING: API endpoints now require
showId(int) instead of theshowName(string).tank: The duration is now in seconds and is stored as a float.
tank: The job-timeout for the importer is now three minutes for Docker.
tank: Show uploads are stored in folders named after the ids instead of the slugs. (tank#37)
tank: error and info log files now have timestamps (tank#68)
tank: The endpoint to upload a file with Flow JS no longer requires a
showId.tank: The endpoint to list the playlists now lists all, the ones by a show or the ones that include a file.
dashboard: The global navigation has been moved to a sidebar.
dashboard: The global navigation now includes contextualized submenus.
dashboard: The show admin selector now uses an inline selection mechanism instead of a dialog.
dashboard: The help link in the footer now directly links to the AURA documentation.
dashboard: The page-size selection for the episode table has been moved to the table footer.
dashboard: The range-end selection in the episode table has been removed.
dashboard: The range-start selection in the episode table is now positioned right next to the table header.
dashboard: The episode/note editor is now a separate page instead of a modal.
dashboard: The show deactivation button has been moved to the Danger zone and now requires confirmation.
dashboard: The show page has been split into two separate pages for episodes/schedules and basic settings.
dashboard: Related individual fields in the basic show settings have been restructured into structured blocks.
dashboard: Updated/harmonized terms used in show pages.
dashboard: The unimplemented settings page has been removed.
engine: Configuration using yaml instead of ini files (#120)
engine: Change default database password to string to avoid parsing errors (#120)
engine: Use datatype float instead of int for
trackDuration(#132)engine-api: Configuration using yaml instead of ini files (#34)
engine-api: Use datatype float instead of int for
trackDuration(#51)engine-api: Change default database password to string to avoid parsing errors (#54)
engine-core: Default sound system is now JACK, not ALSA
engine-core: Docs: Update README with new PipeWire based installation
engine-recorder: Renamed the input.file field to input.source (engine-recorder#32)
engine-recorder: Renamed the input.file_format field to input.source_format (engine-recorder#32)
engine-recorder: Replaced
AURA_ENGINE_RECORDER_AUDIO_DEVICEwithAURA_ENGINE_RECORDER_AUDIO_SOURCEandAUDIO_DEVICEwithAUDIO_SOURCE, (engine-recorder#32)
Deprecated
aura: Nested API endpoints in Steering and Tank are deprecated and will be removed in the next release. Compare the specification at api.aura.radio and update your API client as soon as possible. Please report if you are facing issues.
steering: Nested routes for shows, show/timeslots, show/schedules, show/schedule/timeslot will be removed with alpha-4.
tank: Nested routes for show/files and show/playlists will be removed with alpha-4.
Removed
steering:
note_idandshowfields from theTimeslotmodel (steering#171)steering:
typefield fromLinkTypemodel (steering#187)steering:
ownerandslugfields fromNotemodel.engine-api: Remove endpoint
/playlog/report/{year_month}(#48)engine-core: Dropped ALSA in Docker support in favour of PipeWire + JACK
Fixed
aura: To avoid permission problems re-run the commands
make aura-web.initormake aura-playout.initrespectively.aura: Warning when executing the make target for adding the aura user.
aura: Consolidated the structure for custom configuration and fixtures in AURA Web.
aura: Due to certificate retrieval issues, certbot is now running on port
80(#276).aura: Missing image in the documentation under a administration / update and maintain.
aura: Allow optional trailing slash for
/trackserviceendpoints and don’t redirect (engine-api#25).aura: Documentation: Replace
AURA_RECORDER_AUDIO_STORE_HOSTwithAURA_AUDIO_STORE, (engine-recorder#39)dashboard: Fixed overflow issues for in image picker.
dashboard: Ensure save errors due to connection issues are properly communicated to the user.
dashboard: Fixed keyboard selection support in image picker.
dashboard: Fixed overflow issues in calendar.
dashboard: Fixed overflow issues in show quick selector for long show titles.
engine: Fix redundant logging while loading playlist entry (#136)
engine: Fix line-in source selection (#141)
engine-core: Smooth play-out latency and buffering for analog audio input (engine-core#50)
engine-recorder: Fixed a bug where the audio files where always saved with the
_%ssuffix (engine-recorder#35)
Security
aura: Upgrade to Docker Engine 25.0.2 or later due to security vulnerability in runc.
[1.0.0-alpha2] - 2023-06-29
The release of Alpha 2 — Precise Pheasant ships with plenty of essential improvements, both under the hood and on the user interface level.
The Data Model has been extended and refined to provide a foundation for the requirements of participating radios. Additional recurrence rules have been added as part of the default configuration.
The User Interface has undergone a facelift and has been updated with features and enhancements, especially in the calendar and show view.
Administrators are now served with log files for all services. In order to avoid permission errors,
also re-run the make aura-user.add command. This now creates directories for logs and audio
with correct permissions for the aura user.
Breaking Changes:
Some configuration settings for the Docker Compose bundles have been changed. Either adapt your current
.envfile accordingly or start with a fresh one.The API has been improved to follow best practices. This includes the naming of parameters and properties.
Deprecated:
Nested API endpoints in Steering and Tank are now deprecated. Try to migrate to the non-nested version of an endpoint and report back if you are facing issues.
For more details, check out api.aura.radio and the detailed changelog below.
Added
aura: Add development target
make dev.merge-changelogto create a merged changelog, helping to prepare release notes.aura: Add release notes section at docs.aura.radio
aura: Add Tank Cut & Glue API to api.aura.radio.
aura: Add default Audio Store directory
/var/audio/importused for audio file imports via filesystem (aura#172).aura: Add default setting for
AURA_AUDIO_STORE_RECORDINGSto the playoutsample.envfile.aura: Add audio targets for the Makefile to start and disable PulseAudio.
aura: Add optional engine-recorder profile to aura-playout.
aura: Add an log file for NGINX, aura-web (#147).
aura: Documentation: Add more details to the Radio Station Administration chapter.
aura: Documentation: Add chapter on deleting and deactivating users in the User Guide.
aura: Documentation: Add more info on switching between releases to the Administration Guide.
aura: Add directories to
logsandaudioto avoid permission errors (#209)steering:
Imageconcrete model to handle all instances.steering: API endpoint
/api/v1/images/to add, update and delete images.steering: Add
Hostadmindashboard: a new show selector to the navbar (#122, f9762d85).
dashboard: a new image picker that can be used to upload new and select existing images (#89, #139, e0fd0a76, b335d801, 57e1e10f).
dashboard: ability to add internal notes to a show (#146, 319cf540).
dashboard: information on empty slots between shows and a progress indicator for the currently playing show
dashboard: to the calendar day-view (#155, 9ac48a55, 2a68a7ac).
dashboard: a progress indicator for the currently playing show to the calendar week-view (#156, b52672dd).
dashboard: ability to add and remove individual contributors to the show notes based on the show owners (#170, #146, aa707763).
dashboard: ability to add tags to show notes (#146, 560d8dda).
engine: API responses from Steering and Tank are now cached in
cache_direngine-api: Test coverage (
make coverage#40)engine-api: Badge displaying coverage result (#40)
Changed
aura: Update sample configuration files for services in
config/service/sample-config.aura: Rename environment variable
AURA_ENGINE_SERVER_TIMEOUTtoAURA_ENGINE_SERVER_TIMEOUTin playoutsample.env.aura: Increase default value for
AURA_ENGINE_SERVER_TIMEOUTin playoutsample.env, to avoid malfunctions when idle (aura#165).aura: Documentation: Update Contribution Guidelines and Coding Conventions in the Developer Guide.
aura: Documentation: Extend section for developers on performing releases.
aura: Change
/trackserviceendpoints to/engine/api/v1/trackserviceand/engine/api/v1/trackservice/currentaccording to API namespace conventions (aura#190).steering: The
Host,Note,Showmodels & serializers reference the newImage.steering: The
logofield in theShowmodel is a reference toImage.steering: The “conflict resolution” methods of
Scheduleare now service functions.steering: Update all APIs to return attributes / properties in camelCase notation (aura#141)
steering: Use
_idsuffix for all object reference in REST APIs (aura#166)steering: Use blank strings instead of nullable strings in REST APIs (aura#167)
steering: Upgrade Poetry dependencies and Django to the next LTS version (steering#137)
dashboard: The timeslot overview has been fully revised (4ef88279).
dashboard: The timeslot show notes editor has been fully revised (#141, 57e1e10f).
dashboard: Past schedules are now hidden in the show manager (#120, 8cd743de).
dashboard: Schedules are now shown with their respective start and end date (#121, f9dc6fef).
dashboard: The calendar day-view has been fully revised (#155, 9ac48a55, 2a68a7ac).
dashboard: The slots in the calendar week-view have been from 30 to 15 minutes to make it easier to
dashboard: create shorter slots (#151, 3fc47383).
dashboard: Very short timeslots in the calendar week-view now take up less space (#151, 3fc47383, bfe7f813).
dashboard: Show start and end time in calendar tooltip if the event is too short to render it as content (#173, cf5ac12e).
dashboard: The show manager interface for editing the show details has been overhauled, changing the overall appearance
dashboard: and the way some of the fields are edited (db7dc49d).
dashboard-clock: Provide properties in API schemas in CamelCase notation (aura#141)
engine: Provide properties in API schemas in CamelCase notation (aura#141)
engine-api: Make properties in API schemas in CamelCase notation (aura#141)
engine-api: Avoid deprecation warning by replacing JSON encoder (#35)
engine-api: Change HTTP status codes (204 No Content) for successful but empty POST/PUT responses, adapt tests (#5)
engine-core: Make properties in API schemas in CamelCase notation (aura#141)
engine-core: Configuration: Renamed environment variable
AURA_ENGINE_SERVER_TIMEOUTtoAURA_ENGINE_SERVER_TIMEOUTengine-core: and configuration setting
telnet_server_timeouttoserver_timeout.engine-core: Configuration: Increase default value for
server_timeout, to avoid malfunctions when idle (aura#165)
Deprecated
aura: Nested API endpoints in Steering and Tank are now deprecated. Compare the specification at api.aura.radio
Removed
steering: The abstract
ModelWithImageFieldsfrom the program models.steering: The
ThumbnailsMixinfrom the program serializers.steering: The abstract
ModelWithCreatedUpdatedFieldsfrom the program models.dashboard: Non-functional nav button to broadcast management on show detail page (#133, e4083e66).
engine: Remove mail service as it will be replaced by Prometheus monitoring (engine#109)
Fixed
aura: Fix an issue where
make aura-user.addcauses an unrelated Python error, raised from another command (#183).aura: Fix the location of the Docker Compose bundles in the README.
aura: Fix an issue where
/trackservicewas not reachable (#159).aura: Fix an issue where some settings in the
.envand.ymlwhere not applied correctly (#160).aura: Fix an issue with the
aura-playouttargets in the Makefile (#168).aura: Documentation: Replace old “meta” repository references with “aura”.
steering: use kebab-case in URLs
steering: don’t output invalid PPOI format
steering: note image should allow null values
steering: don’t force REST API consumers to set
repetition_offor timeslotssteering: The timeslot generation leaves the
last_dateunset if it is null.steering: Note.tags attribute not updated via API (steering#157)
steering: make subtitle field in Category a CharField
dashboard: Navigation would sometimes freeze, after an application error in the playlists view (#132, e4083e66).
dashboard: Calendar would sometimes crash if playlist data is missing (#132, a3e8e3b0).
dashboard: Switching between the weekand day-view in the calendar no longer squishes the week-view (#153, e28eb4f7).
dashboard: The calendar uses entire viewport height now (#154, 4c90f277).
dashboard: Users are now able to create a timeslot in a calendar week slot that has already started (#167, 3d4e9b28).
dashboard: HTML in the show title, short description and description is now correctly rendered (#129, 649b4c0b).
engine: Fix an issue where the Engine version is displayed in the logs wrongly
engine-api: Fix an issue where the configuration file is overwritten in the
make init.devtargetengine-api: Fix an issue where the Docker Compose healthcheck failed (#39)
engine-api: Fix broken endpoint
/trackservice(aura#185)engine-core: Telnet server sample config not working (engine-core#45).
engine-core: Extend and improve output for
make help.engine-recorder: Fixed a bug where the recorder would not start when trying to record a web stream (aura#182)
[1.0.0-alpha1] - 2023-03-02
Initial release.