Release Notes
Here you find the release notes including all changes.
[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.