Spotify Plugins for Backstage Release Notes

The following release notes cover the most recent changes from May 2024 / v.1.27.0. For change logs, please view our npm packages.

Please note: the release version corresponding to the release date is that of the Backstage Open Source version. We encourage all customers to upgrade their Backstage instance to the latest version alongside their Spotify Plugins for Backstage upgrades. View Backstage Open Source Release Notes here.

May 2024 / v.1.27.0

Soundcheck

  • Feature
    • Soundcheck now integrates with Gitlab collecting facts and building checks based on data directly from GitHub
    • Added tooltip showing counts on the track insights pages for pass rates
    • Added an exists operator which validates whether data exists at a given path within a fact
    • Users can now export tracks and checks to yaml from the UI. Exports can be performed via the drop down menu on the Track and Check cards on their respective list pages soundcheck-scm-compliance
  • Fixed
    • Fixed discrepancies in Tech Health numbers.
    • Resolved an issue with certification writes and added migration scripts to correct any erroneous rows that have already been written.
    • Fixed an issue that prevented use of the grid view on Soundcheck Tech-Health pages.
    • Resolved an issue that can sometimes occur when reading persisted Tech Health filters from local storage.
    • Pressing the 'View Campaign' button sent to Slack by Soundcheck no longer shows a warning icon next to it when pressed
    • Minor performance improvements to the Track Insights page.
    • Fixed RateLimitErrors being incorrectly logged as fact collection failures.
    • Fixed parsing of factNames that contain /
      • Scopes within fact ref strings can now contain / and : by enclosing the scope in single quotes. For example: scm:'my/branch'/test.
    • Fixed a problem when, in some cases, fact scope is not respected by SCM fact collector.
    • Fixed a problem when, in some cases, fact scope is not respected by Github fact collector.
    • Fixed an issue where the Slack integration was attempting to connect even when no credentials were provided.
  • Change
    • Added Operator and filter extension points for the new backend system
    • Standardized caching by making minor changes to how github collector caches facts
    • Made the factName configuration parameter optional for all SCM collectors, Azure DevOps, GitHub and GitLab Fact Collectors.
    • Added edit option to the drop down menu on summary cards for checks, tracks and campaigns page soundcheck-scm-compliance
    • The rule input field in the Check form for creating and editing checks will now cast string values for booleans and numbers when the form is submitted.
    • Added theme overrides using the following component name CheckResultStateBox for customization of the check result box in the Soundcheck tab of the component pages.
    • The following check status states are available for override:
      • Passed
      • Failed
      • Warning
      • notReported
      • notApplicable

RBAC

  • No update

    This plugin was not updated in this release.

Skill Exchange

  • Feature
    • Custom thumbnails for hacks can be created from a new extension point. The thumbnail is generated from hack metadata and returns a URL to the thumbnail image.
      • When a generator is registered, a panel will be included in the hack forms that allows the user to trigger the thumbnail generation. The generator will be called with the title and pitch of the hack, and the URL returned will be used as the thumbnail for the hack post.
    • This feature is currently in alpha and it is very likely to change in the future.
    • A new configuration setting allows integrators to enable voting for the same hack in multiple categories.
      • To activate this feature, add the skillExchange.experimental.allowMultipleVotesPerHack flag to your app-config.yaml file.
    • Hack followers are now visible on the hack details page.
  • Fixed
    • Fixed an issue with hack card display in search suggestions.
    • Fixed some spacing issues with the new layouts in Hacks and Embeds views.
  • Change
    • Enhanced the Tag input field on the hack input form for a smoother user experience. Now, values remain saved even when the field is deselected, eliminating the need to press enter.
    • Enhanced visual styling of the hack list view.
    • Refined error messages in the hack form for clearer input guidance.
    • Improved hack form usability by highlighting required fields.

Insights

  • Change
    • Made some improvements to the way the configuration schema is handled

April 2024 / v.1.26.0

Soundcheck

  • Feature
    • Soundcheck can now integrate with Jira, collecting facts and building checks based on data directly from Jira

    • Soundcheck can now integrate with Azure DevOps, collecting facts and building checks based on data directly from Azure DevOps

    • Added support for a new fact type “Incidents” to PagerDuty fact collector

    • Soundcheck’s Track Insights view now takes track and check applicability into account

    • Added the ability to override the default initial delay for collections in Soundcheck by providing an initialDelay within a CollectionConfig

  • Fixed
    • Fixed an issue in Soundcheck with limiting executions of scheduled checks when rate limit errors are encountered
    • Fixed issues with data discrepancies when viewing Tech Health results by adding timed tasks which will remove results from latest and history for (a) any entities that are no longer present in catalog and (b) any checks that are missing in the latest tables
    • Fixed an issue that can occur when Soundcheck is interrupted on startup and which may cause data discrepancies between history and latest when viewing the Tech Health results
    • Fixed an issue where scheduled checks created through Soundcheck’s No Code UI would apply to more entities than specified in the filter
    • Fixed an edge case where the Soundcheck overview page could paginate out of order
    • Fixed an issue in Soundcheck limiting the exporting of the full dataset available in Soundcheck’s Tech Health view
    • Fixed an issue in the filter dropdown where owner names could be displayed incorrectly
    • Fixed a pagination issue in Tech Health limiting entities and team pagination from functioning in Soundcheck
  • Change
    • BREAKING: For users still using the legacy backend for Backstage, to maintain functionality of the SCM collector, they will need to update the ScmFactCollector in packages/backend/src/plugins/soundcheck.ts: soundcheck-scm-update
    • Soundcheck now has tooltips to notify users they may not have the ability to configure Collectors that have been defined in YAML soundcheck-collector-tooltip
    • Removed a configuration option to enable the non-virtualized Soundcheck Overview table soundcheck-non-virtualized
    • Removed the createUrlReader utility method (previously used by other Soundcheck packages to construct a UrlReader)
    • Improved the accuracy of how Track progress is calculated from Soundcheck’s Track Insights view

RBAC

  • No update

    This plugin was not updated in this release.

Skill Exchange

  • Feature
    • Newly redesigned cards for Hacks and Events and enabled customization of card styles using the theme overrides. The component and their rules names are:

      • SkillExchangeCard - The main card container.
        • root
      • SkillExchangeCardTitle - The card title.
        • root
      • SkillExchangeCardMedia - Card images.
        • root
      • SkillExchangeCardActions - The card button container.
        • root
      • SkillExchangeCardDescription - Cards descriptions are typically used for the large text content of the card, such as Hack or Event descriptions.
        • root
        • content
      • SkillExchangeCardActionArea - The card action area is used for the primary interaction of the card, such as clicking the card to navigate to a new page. It typically covers the cards title and description.
        • root
    • Google Slides, Loom videos, and videos shared from Google Drive can now be seamlessly viewed directly within the Hack details view when added as demo or pitch resources.

  • Fixed
    • It’s now possible to add labels to Hacks and Events resource links
    • Fixed a performance bug in the Hack lists views

Insights

  • Feature
    • It’s now possible, using app configuration, to filter metrics based on the host where they were collected
    • The plugin UI is now better optimized for the default Backstage theme and should better respect theme customizations.
    • New landing page: Headlines insights-headlines
      • Headlines is a high level overview of the most important insights
      • You can find detailed Users, Catalog, Templates, and Search dashboards under the “Usage” page
  • Fixed
    • Fixed a bug that resulted in rare and sporadic 500 errors during data collection
    • Fixed a bug that could cause entity names to be rendered incorrectly (this now leverages the entity presentation API)
    • Tooltips have been improved throughout all visualizations

Pulse

  • No update

    This plugin was not updated in this release.

March 2024 / v.1.24.0

Soundcheck

  • Feature
    • Soundcheck can now integrate with New Relic, collecting facts and building checks based on data from New Relic.
    • Added filters to the Track Insights page. Adopters can now filter Track Insights by owner, lifecycle, type and/or system.
    • Adopters can now view a preview of the entities that will be affected by filter selections when creating checks, tracks, and campaigns soundcheck-track-details-filters
    • Soundcheck’s distributed job queue’s Redis connection now supports TLS and Redis connection URLs.
    • Soundcheck’s SonarQube integration now supports multiple instances and can collect facts on SonarQube measures.
  • Fixed
    • Fixed the campaign link on the card view of the Tech Health Campaigns page.
    • Fixed overview page route history. Browser controls (such as the forward and back buttons) now navigate the overview page correctly.
    • Fixed an issue with level progress bars on the Track page that caused them to only ever show 0 or 100%.
    • Fixed the results table width on the Soundcheck Overview page.
    • Resolved an issue related to transitive owner filtering.
    • Resolved an issue related to the caching of certain frontend queries.
    • Resolved an issue with aggregation queries which involved a track with filters.
  • Change
    • Improved the performance of the Tech Health and Track Insight pages.
    • Certifications which are triggered by result updates now enqueue certification jobs for improved performance.
    • Modified the Track Insights page so that the owner filter options display group names rather than their entity references.

RBAC

  • No update

    This plugin was not updated in this release.

Skill Exchange

  • Feature
    • The main navigation tabs, search bars, and filter sidebar for Hacks, Embeds and Mentorships have been made sticky when scrolling, so it's easier to use these controls when viewing pages with lots of content.
    • The Hack and Event navigations tabs have been combined into the main header to save screen real estate.
  • Fixed
    • Removed support for the legacy Skill Exchange Docker backend service. Support for this service has been deprecated since version 0.9.0, and disabled by default. Any users still using the legacy backend service should migrate to the new Node.js backend service using the instructions here.
    • Fixed style issue with Hack sidebar navigation when using the dark mode theme.
    • Fixed a bug where commas in Hack names were not being escaped when exporting vote results as a CSV.

Insights

  • Feature
    • Data rows across all dashboards now show totals in addition to per-day aggregations.
    • Tooltips have been added to trends to help clarify their meaning.
  • Fixed
    • Fixed a bug that prevented the expected HTTP status codes from being sent for all HTTP errors.
    • Fixed a bug that prevented user group facets from showing group names in place of their entityRefs.

Pulse

  • No update

    This plugin was not updated in this release.

February 2024 / v.1.23.0

Bundle

  • Feature
    • The new Backstage backend system is now supported by the following plugins:
      • RBAC
      • Soundcheck
      • Insights
      • Skill Exchange
    • This new backend system was built to make it simpler to install backend plugins and keep projects up to date. It also changed the foundation to one that makes it a lot easier to evolve plugins and the system itself with minimal disruption or cause of breaking changes.
    • Benefits to bundle plugin users
      • Simplified Installations
      • Sane Defaults (Easier for adopters who already use the above plugins to keep them up-to-date)
      • Extending Plugins
      • Developer Friendly
    • No migrations or updates are required at this time; customers may continue to run their Backstage backends using the “old” system without issue. If you are already running the new backend system, or plan to migrate in the future, you can find instructions on how to install our plugins in the new backend system in our docs for example.

Soundcheck

  • Feature
    • Soundcheck adopters can now view insights for tracks to help them understand which checks within their tracks need attention along with an entity view that helps them understand the % of checks passing against each entity. soundcheck-track-insights soundcheck-golden-state
    • Soundcheck Overview Page: Campaign cards have been redesigned to appear in a collapsible accordion. The information shown on the cards now aims to give a quick high level summary of the campaign's progress.
    • Campaign Details Page: The progress of the campaign shown on this page now closely mirrors the same grid view of the Overview page. Users will now be able to see how entities are progressing on a per-check basis.
    • Campaign Notifications: Added optional support for campaign email notifications.
    • Tech Health updates
      • All filters on the Tech Health pages have a tooltip with a description of what each filter does.
      • Limited the number of filter options being rendered to improve performance.
      • Fixed rendering issues with Tech Health filters under the dark theme.
      • Improved Tech Health caching and overall performance.
    • Added warning field to a check definition (both YAML and No Code UI). This generates warning outcomes rather than outright failures. A warning suggests that the check did not pass successfully, however, this discrepancy will not impact the entity's certification at the given level.
    • Added in breadcrumb navigation for Soundcheck. soundcheck-breadcrumb-navigation
    • Checks and tracks can now be stored in files and referenced by URL. This will enable configurations to be stored and retrieved via URL (such as within a Github repo) for these Soundcheck configurations.
    • Soundcheck's functionality can now be extended by providing it with custom operators.
    • A default Entity Owner for Soundcheck Tech Health filters is now automatically selected
    • Soundcheck Overview page performance improvements.
    • We've enhanced the system by introducing dynamic rate limit management for Sonarqube, Pagerduty, SCM, Github, and Techinsights TPI fact collectors. Now, these TPI fact collectors emit RateLimitErrors when they encounter 429 errors. In response to this, Soundcheck will pause and retry rate limited requests.
  • Fixed
    • Fixed ‘Days left’ calculation for campaigns.
    • Fixed campaign deletion Slack notification not being sent
    • Fixed an issue that was causing a warning on several Soundcheck pages.
    • Graceful handling of slack API connection errors
    • Fixed an issue where using the search by name feature of the Track library would only search the current page.
    • Resolved an issue with the check validation schema.
    • Front-end validation for descriptions are now more consistent with YAML and backend.
    • Updated catalog utils to leverage one another rather than calling catalog directly.

RBAC

  • No update

    This plugin was not updated in this release.

Skill Exchange

  • Feature
    • Introducing the new and updated Skill Profile skill edit experience, users will now be able to select from a list of suggested skills based off of their current skill selections.
    • Skill suggestions
      • Suggested skills are powered by other users who have similar skill sets.
      • Suggested skills are also powered by discipline associations defined in the skill ingestions YAML. See below for more information.
    • Skill ingestion
      • Skills through ingestion are now treated as the source of truth for all skills used throughout Skill Exchange, rendering previously user created custom skills obsolete.
      • User created custom skills will now be deduped as long as a skill with the same name is defined in the skill ingestion YAML.
      • Skills can now be defined with two extra optional fields: subset and disciplines. Please refer to the Defining Skills for Ingestion section for more information.
    • On the Hack events page, events are categorized by 'Ongoing', 'Upcoming' or 'Past', to easily identify which events are currently running.

Insights

  • Fixed
    • Corrected labels to match the aggregations used on displayed values.
    • Changed the curve smoothing on the Insights charts to better represent the data being shown.
  • Change
    • Added tooltips to the main charts to help inspect the data points.
    • Minor improvements to the trend label to indicate when there is no change.

Pulse

  • No update

    This plugin was not updated in this release.

January 2024 / v.1.22.0

Soundcheck

  • Feature
    • SonarQube integration plugin supports the extraction of the following facts:
      • Projects
      • Project Tags
      • Issues
    • Soundcheck’s Tech Health Page now includes a filter for Entity Systems.
    • Added a defaultSelectedGroupType configuration option to pre-select a group whose spec.type equals the configured type in the group selector on Soundcheck overview page. To enable this option, add the configuration to your app-config.yaml:
    soundcheck:
      overview:
        defaultSelectedGroupType: team
    
    • Users will now be informed when their search filters do not match any entries in the check or track libraries.
    • Users on the campaign's edit form are now able to click on any step heading to go to that step.
    • The Soundcheck overview page will persist and restore the users’ last selected group.
    • Added a field to the track creation form in No-Code UI for a "Documentation URL".
    • If users want to improve Soundcheck Tech Health page performance they can enable data caching.
      • Caching can be configured using the configuration show below:
      # The configuration should be added to the soundcheck portion of app-config.yaml:
      soundcheck:
        techHealth:
          caching:
            trends:
              enabled: true
              cacheTtl: 720
            snapshots:
              enabled: true
              cacheTtl: 15
      
      • caching: A section in which caching per data type can be enabled/disabled. Default value is 'true' for both types.
      • trends: A section in which trend data caching can be configured.
      • snapshots: A section in which snapshot data caching can be configured.
      • enabled: A boolean value indicating whether caching is enabled for the data type. Default value is 'true'.
      • cacheTtl: The number of minutes for which the data will be cached, if enabled. Default value is 15 minutes for snapshots and 1440 (24 hours) for trends.
    • Added loading indicator to overview page.
    • In addition to markdown, check pass and fail messages now also support Liquid templating.
      • The following variables are available for use in templates:
        • entity - The entity the check was executed on.
        • facts - A map of facts used by the check. Individual facts can be looked up in this map by fact reference. For example, facts['catalog:default/entity_descriptor'].
        • Here is an example of a pass message using templates. In this example, Soundcheck would replace {{ entity.metadata.name }} with the name of the entity the check was executed on, and {{ fact.data.integrationKey }} with the PagerDuty integration key from the fact used by the check.
    {{ entity.metadata.name }} has a PagerDuty Integration Key defined: {{ fact.data.integrationKey }}
    
  • Fixed
    • Resolved an issue that could cause errors related to attempting to delete rows from a table before it exists on startup.
    • Improved how the campaign owner name is displayed in Soundcheck Slack notifications.
    • Fixed issue where filters were editable when viewing a Check or Track in read-only mode.
    • Fixed issue that prevents users from viewing Checks and Tracks created via configuration file.
    • Improved the performance of the queries that power Soundcheck's Tech Health aggregations.
    • Fixed autocomplete for facts in the Check form so that options are now properly filtered.
    • Fixed an issue where certain collectors were showing the "Configure" button as clickable when it should have been disabled.
    • Fixed an issue with the loading state of the library pages in Soundcheck.
    • Fixed an edge case in getEntityPassRates. This resolves an issue in an edge case where no results match the given entity refs.
  • Change
    • Entity owner filters in the No Code UI will now allow all groups to be selectable, not just entity owners. This is useful in combination with the nested owner filtering changes introduced in a previous patch.
    • The /results endpoint used to POST check results to Soundcheck has been modified: the endpoint no longer returns a list of updated results back to the caller.
      • If callers still wish to use the old functionality they may add returnUpdatedResults=true as a query parameter to the endpoint URL.
      • As an example, instead of posting results to /api/soundcheck/results, a caller will now need to post to /api/soundcheck/results?returnUpdatedResults=true to get the same response as before.
      • This change minimizes often unused network throughput and reduces the amount of data that needs to be sent over the wire.
    • Added consistent usage of links for the owners of specific campaigns in Soundcheck.
    • Updated visibility for soundcheck backend's secret config values.
    • Soundcheck no longer allows unrecognized keys in configurations. This should make it easier to identify misconfigurations but may cause validation errors with existing misconfigured instances.
    • Added two additional string operators: startsWith and endsWith. The startsWith operator tests if a string starts with a given string. The endsWith operator tests if a string ends with a given string.
    • Editable Collectors are now linkable via the following url structure /collectors/:collectorId.

RBAC

  • Fixed
    • Minor UI fixes and improvements.
  • Change
    • Improved error handling and messaging when testing policies.

Skill Exchange

  • Feature
    • Introducing the hack digest feature, where users can get Slack updates on the hacks they have been following on a configurable schedule.
      • For adopters who have their Slack integration running, and would like to schedule periodic Slack updates (edits to the hack or new comments) to users who follow hacks, they can specify a cron value to their app-config.yaml (or equivalent) file. This cron value dictates the frequency with which users will receive updates on their hacks, if any updates exist since the last updates were sent. See the the following screenshot for an example:
      # The configuration should be added to the skillExchange portion of app-config.yaml:
      skillExchange:
        # ...
        hackUpdateNotificationsCron: '0 17 * * 1'
        # ...
      
      • This example configuration will send out updates to users on hacks they are following at 17:00 every Monday.
  • Fixed
    • Fixed an issue where users would be able to vote on their own hacks.
    • Fixed issue with hack pagination that was stopping you loading more hacks after the first page.
    • Fixed skill search logic to fix a bug in which duplicate search API calls were fired unnecessarily.

Insights

  • No update

    This plugin was not updated in this release.

Pulse

  • No update

    This plugin was not updated in this release.

December 2023 / v.1.21.0

Soundcheck

  • Feature
    • We are thrilled to introduce Campaigns within Soundcheck. Soundcheck's Campaigns feature equips organizations to strategically target and manage specific short-term initiatives including built-in Slack notifications when the status of a campaign changes.
      • Some examples include "Upgrade Spring libraries" to use a specific version of spring boot or "Update log4j lib"
      • Adopters can create, edit, delete, and archive a campaign.
      • Integration with email notifications will follow soon.
    • The PagerDuty Third Party plugin now integrates with Soundcheck. Learn more here.
    • Checks may now compare the value of two different facts. For example, you can create a check which validates that a component's name in the Software Catalog matches the name specified in package.json.
    id: is_metadata_name_package_name
    rule:
      factRef: catalog:default/entity_descriptor
      path: $.metadata.name
      operator: matches
      value:
        factRef: scm:default/package_json_package_name
        path: $.name
    
    • Owner filters on Campaigns, Checks, and Tracks now work hierarchically. For example, if OrgA is the parent of team1 and team2 applying the owner filter on OrgA will make it applicable to entities owned by OrgA, team1, or team2.
    • Check results with the state 'not-applicable' can now be submitted to Soundcheck via its REST API.
    • The soundcheck.checks configuration now supports individual check configurations and arrays of check configurations. This allows you to organize related checks into a file or multiple files and seamlessly include them in the main soundcheck.checks configuration using the $include directive.
  • Fixed
    • Resolved an issue with the GitHub fact collector where a ‘403 Not Modified’ could be interpreted as an error rather than branch protections not being configured under certain circumstances.
    • Resolved an issue that could prevent entity owner filters from being used in Soundcheck's Tech-Health pages.
    • Resolved an issue with fact collector permissions being inadvertently tied to track permissions.
    • Resolved an issue that was preventing boolean comparisons in checks from working correctly when the check was created through the UI.
    • Resolved an issue that could prevent filters from being applied to Github fact collections configured through the UI.
  • Change
    • Improved certification history cleanup logic. It now retains certain history outside of the specified window so that the Tech Health page can correctly calculate historical aggregations.
    • Improved check result history cleanup logic. It now retains certain history outside of the specified window so that the Tech Health page can correctly calculate historical aggregations.
    • Relaxed Soundcheck’s validation of entity references to allow for names longer than 64 characters.
    • Minor performance improvement when persisting check results.
    • Increased payload size limits to support the submission of larger batches of results and/or facts.
    • Added the possibility to set up advanced check and track applicability filters to extend entity filter functionality. Custom filter functions can now be passed to the Soundcheck Builder when instantiating Soundcheck to perform arbitrary applicability evaluation. See the soundcheck-backend README for full details.
    • The Github fact collector will now return the previously retrieved branch protection data when Github responds with '404 Not Modified' instead of undefined.
    • Added strict enforcement of fact collector configuration schemas. Unrecognized keys are no longer allowed to help users identify misconfigurations.

RBAC

  • Feature
    • Introduced Policy Tester: a system that tests the behavior of RBAC policies.
      • This feature allows RBAC policy admins to configure tests against their permissions, providing a comprehensive view of policy decisions prior to production release.
      • The interface enables administrators to selectively choose specific permissions, and observe the outcomes applied to designated role(s) within their policy. policy-tester-permissions-roles-declaration policy-tester-decision-breakdown
  • Fixed
    • Fixed a bug where stale data could be shown in the UI after publishing a policy.

Skill Exchange

  • Feature
    • New hack views, voting, and browsing experience are now available.
      • New features as explained in the limited October update are:
        • Hack context views and list view
        • Hack thumbnails
        • Hack voting updates
        • Vote management panel
  • Fixed
    • Failed Slack responses will no longer remove the original message.
    • Fixed issue where hack members were able to vote on their own hacks.
  • Change
    • Instrumentation is updated for new Hack view
    • Added consistent title headers across hacks, embeds, and mentorships.

Insights

  • No update

    This plugin was not updated in this release.

Pulse

  • No update

    This plugin was not updated in this release.

November 2023 / v.1.20.3

Soundcheck

  • Feature
    • The Create Track page now includes the ability to add a Track Owner to the Track Form. Defaults to the logged in user. track-owner-dropdown
    • The UI for check descriptions, check passed messages, check failed messages, and track descriptions now use a markdown editor.
    • Checks are now linkable by ID using the following url format soundcheck/checks/:checkId.
      • Pages will now properly link to the check instead of the checks list page.
    • Tracks are now linkable by ID via the following url format soundcheck/tracks/:trackId.
      • Pages will now properly link to the track instead of the tracks list page.
    • Soundcheck now provides an endpoint for aggregations at /aggregations, enabling programmatic access to Soundcheck's aggregation functionality.
    • Soundcheck now initializes check result history data upon startup when check result history is enabled for the first time.
    • Improved fact persistence performance.
    • The Github fact collector now uses conditional requests to improve rate limit utilization.
    • Collectors and checks are no longer executed immediately, instead they have a delay so that the initial execution follows the specified cadence.
    • Soundcheck’s README was updated to make it more clear how to install the GitHub, SCM, and TechInsights Soundcheck backend fact collector modules.
  • Fixed
    • Resolved an issue that was preventing fact collectors configured through the UI from restoring their configuration after Backstage is restarted.
    • Resolved an issue that could prevent a fact collection task from being aborted.

RBAC

  • No update

    This plugin was not updated in this release.

Skill Exchange

  • Feature
    • Added the ability to tag users in hack comments.
  • Fixed
    • Skills without defined levels are no longer included on a user's profile.
    • Updated line heights on hack cards to be more consistent.
    • Resolved spacing bug for bulleted markdown lists.
    • Updated the vote count logic when using vote sessions with unlimited number of votes for hacks.
  • Change
    • BREAKING: The Skill Exchange Slack integration now supports adding embed and mentorship participants directly through a button in Slack (instead of linking to the post).
      • If you are currently using Skill Exchange with Slack, you have to make changes in order to keep using the Slack integration. For instructions, see the README.
    • The default sort for the Events page is now sorted by last updated date in descending order.
    • Flexible is now the default hack location option.

Insights

  • No update

    This plugin was not updated in this release.

Pulse

  • No update

    This plugin was not updated in this release.

October 2023 / v.1.19.0

Soundcheck

  • Feature
    • Soundcheck users can now export reports in .csv format from the Tech Health pages.
      • Export reports of current status of checks, tracks, entities, and teams in csv format and share them offline. soundcheck-tech-health-download-report
    • Added a grid view for Checks, Tracks, Entities, and Teams tabs on the Tech Health page.
    • Added entity type/lifecycle/kind filters for the Tech Health page.
  • Fixed
    • Resolved an issue with Check filters generated via UI not applying to parent Tracks.
    • Resolved an edge case where the displayed entity counts on the Overview page tabs could be mismatched.
    • Updated default page pagination to 10 and enabled pagination options on the Soundcheck Checks and Tracks pages.
    • Fixed an issue with nested check rules.
    • Fixed an issue where check filters were not included when creating or updating a check via the Soundcheck UI.
    • The overview table footer now shows the entities metadata.title when available rather than the humanized entity ref.
    • Improved github API (octokit) error logging.
  • Change
    • Fact collectors may now optionally include a name and brief description. This will help users identify and describe fact collectors.

RBAC

  • No update

    This plugin was not updated in this release.

Skill Exchange

  • Feature
    • New Hack features available are now available, use the following steps to opt-in to the following features:
      • Hack context views Active, Votable, Past, My Hacks, and Following allow users to quickly narrow focus for browsing and searching hacks.
      • List view in Active context allows users to browse more hacks at one time while still viewing key hack details.
      • Identicons generated from hack title text help break up the list view and give hacks a unique visual identifier.
      • Hack votes can be cast directly from cards in the Votable context view without having to open and close a hack.
      • A new vote management panel allows users to quickly review and edit Hack votes.
  • Fixed
    • Fixed an issue that caused duplicate saved search notifications to be sent.
    • Fixed an issue where Event create/edit renders links in preview.
    • Fixed an issue where links in create hacks preview would navigate users away from the form.
  • Change
    • Updated chip icons in search bar.

Insights

  • No update

    This plugin was not updated in this release.

Pulse

  • Feature
    • Pulse now offers a Progress Bar that helps track engagement of surveys and is automatically available to Pulse users. With the Progress Bar, respondents are informed of their progress, which can help minimize survey abandonment rates. pulse-progress-bar

September 2023 / v.1.18.0

Soundcheck

  • Feature
    • Soundcheck users have access to a single, aggregated view of metrics and trends that gives teams and leaders the ability to understand the tech health of their components.
      • Soundcheck now contains a “Tech Health” tab where users can both view and filter aggregate Soundcheck results across teams, components, checks, and tracks.
    • Users can now configure the Github fact collector via Soundcheck’s No Code UI .
      • If you already have a config YAML file setup, you will be unable to use No Code UI to configure your collector. In order to use the No Code UI, simply remove the YAML file/reference and you will have access to configure from No Code UI.
      • Configure is only enabled if the user has the collector update permission.
    • Introduced before and after date operators, expanding Soundcheck’s capabilities to assess whether a provided date/time fact value occurs earlier or later than a specified date/time, or relative to the current date/time adjusted by a duration.
  • Fixed
    • Resolved an issue where newly added Checks would not immediately show up in the Track UI.
    • Soundcheck's ScmFactCollector can now be dynamically configured with new collector configurations after startup.
    • Resolved an issue where newly added Checks would not immediately show up in the Track UI.
    • Resolved an issue where changing Fact was not clearing the Path/Operator/Value fields in the Check UI.
    • Resolved an issue where the text for warning messages on the Soundcheck Group page was not accurate.
    • Tooltips in the overview table now support markdown in check descriptions.
  • Change
    • Fact collectors may now optionally include a name and brief description. This will help users identify and describe fact collectors.

RBAC

  • No update

    This plugin was not updated in this release.

Skill Exchange

  • Feature
    • Users can now add defined labels to specify priority levels for their Embed posts.
  • Fixed
    • Fixed a bug that caused initial page search events not to be sent across Embeds, Mentorships, and Hacks.
  • Change
    • Removed unnecessary messaging functionality from Embeds and Mentorships.

Insights

  • No update

    This plugin was not updated in this release.

Pulse

  • No update

    This plugin was not updated in this release.

August 2023 / v.1.17.0

Soundcheck

  • Feature
    • Support for multiple "expressions" per level when creating check rules has been added. This provides greater flexibility when creating expressions for checks and allows multiple sets of expressions, which enables more complex rule creation.
    • Added /tracks endpoint, providing programmatic access to Soundcheck tracks. See the Soundcheck README for full details and query parameters.
    • Soundcheck's No Code UI now supports the creation and editing of check schedules. This allows users to create schedules for their checks and provides both the ability to specify schedules in cron notation or in an ‘every three days’ type specification.
  • Fixed
    • Fact collection no longer occurs one minute after startup, instead each fact collector executes on their specified schedule(s). This limits the surge of fact collection during initialization and can help to alleviate rate-limiting restrictions.
    • Check and Track Pages’ pagination is fixed. Users can navigate through their checks and tracks with the pagination controls at the bottom of those pages with greater ease.
    • Increased the number of certifications returned when populating the Overview page. Upcoming fixes will add pagination to the Overview page. This release significantly increases the number of entities that the Overview page can load to 500 from 50.
      • Correlated: A virtualized table is now used by default on Soundcheck's overview page. With the potential for a much larger number of components to be present on the Overview page, the page has been modified to be virtualized which will prevent performance degradation when viewing a large number of components.
    • Resolved an issue with check/track filters where an error message would be displayed when the facet had no values.
  • Change
    • Fact collectors may now optionally include a name and brief description. This will help users identify and describe fact collectors.

RBAC

  • No update

    This plugin was not updated in this release.

Skill Exchange

  • Feature
    • Added a hover feature for Skill Exchange post chips.
  • Fixed
    • Fixed issue in Embeds and Mentorships where adding a participant created a new post owner instead of creating a new post connection.
    • Fixed long URLs cutting off Hack details on viewing Hacks.
  • Change
    • Save Search notifications are enabled by default on Embeds and Mentorships when Slack contact integration is enabled.
    • Updated styling of skill chips to improve readability.
    • Updated label styling for Mentorship and Embed posts.

Insights

  • Change
    • Insights now captures a more complete group hierarchy related to signed in users. This means that if groups are organized hierarchically in the Software Catalog, Insights captures not only the groups that a user is directly a member of, but also that group's parents, recursively up the org hierarchy. This allows the user dashboard to be segmented not just by teams, but also by other higher-level groups like departments or business units.
    • It's now possible to configure a filter for what types of groups are captured, for example: filtering out groups that only exist to grant access to applications, interest groups, etc.

Pulse

  • No update

    This plugin was not updated in this release.

July 2023 / v.1.16.0

Soundcheck

  • Feature
    • Added a No-Code UI for checks and tracks management. No-Code UI is a powerful user interface built into the Soundcheck plugin that allows users to manage checks and tracks without writing YAML code. For more information, check out the documentation.
    • Integrated Soundcheck with the RBAC plugin. Admins can now use the RBAC plugin to manage (allow and restrict) what individual users or groups can do within Soundcheck. For next steps, check out the documentation.
  • Fixed
    • Added "No certifications available" warning on Soundcheck overview page in case the selected group doesn't own any entities that have applicable tracks configured.
    • We now allow configuring checks for null rules in Soundcheck (see example below).
    checks:
      - id: has_description
        rule:
          factRef: github:default/repo_details
          path: $.description
          operator: notEqual
          value: null
        passedMessage: Repo has a description
        failedMessage: Repo does not have a description
    
  • Change
    • Soundcheck programs are now called Soundcheck tracks - we believe that the term “track” provides a clearer and more intuitive understanding of the program's content. You may still see some references to “Programs” throughout Soundcheck (for example in .yaml configuration); future releases will cover the renaming of the remaining occurrences.

RBAC

  • Fixed
    • Fixed a bug affecting performance for scrolling through members when assigning a role.

Skill Exchange

  • Feature
    • Added the ability to filter Mentorships posts by location.
    • Added pagination to Home page search and teams to search results with highlighting.
  • Fixed
    • Fixed a bug where modifying a hack's status might remove associated skills.
    • Users no longer need to refresh a page after saving or following posts to see their changes reflected.
    • Closing a hack detail modal will no longer cause the list view to reload and scroll to the top of the page.
    • Fixed error that occurs while deleting hack event vote session.
    • Fixed error when modifying the categories on an existing event.
    • Fixed a bug causing an error when deleting hacks with comments.
    • Fixed issues with skill ingestion and user management of default skills.
      • If an integrator now sets the systemUser configuration for skill ingestion, then those skills will be visible to other users.
      • Custom skills a user creates are not visible to other users to add to their profile. Only their user-created skills and the default skills are available.
      • If the System User deletes a skill, then it's removed from any post and user profiles it's related to.
  • Change
    • Minor UI accessibility improvements to embed and mentorship cards.
    • Minor improvements to the home page search autocomplete and filters.
    • Embeds and mentorships are now ordered by creation date, with the newest entries first.
    • Deleting an event now unlinks it from any associated hacks.
    • Clicking the 'Delete' button in the hack and event edit forms will scroll the confirmation message into view.

Pulse

  • No update

    This plugin was not updated in this release.

Insights

  • Feature
    • Added advanced filtering and segmentation functionality to gain valuable insights into Backstage adoption with the default dimensions like 'User group', 'Entity kind' and 'Lifecycle' or custom dimensions.
    • Added custom period selection for any date range going back 90 days
    • Added tailored dashboards for surfacing insights into user, catalog, search and template usage activity insights user dashboard engagement metrics
  • Change
    • Moved insights from the accounts page on backstage.spotify.com to a frontend plugin with insights surfaced directly in a customer’s Backstage instance. Current customers will need to undergo a low-lift migration by installing the frontend Insights plugin.

June 2023 / v.1.15.0

Soundcheck

  • Feature
    • Added support for displaying tabs for entities without types (like entities with kind System or Domain) on the Soundcheck Overview page.
      • Such entities will be grouped by their kind and displayed on the tabs with corresponding names (in case at least one track is applicable to such entities).
  • Fixed
    • Resolved an issue with resolving Azure DevOps URLs.
  • Change
    • Updated Readme.md to include how to create catalog and Soundcheck checks.

RBAC

  • Fixed
    • Fixed an bug causing the frontend to show an error when options property is missing in a policy.
    • Fixed a bug where the "any-allow" resolution strategy was not honored when importing a policy using the UI "import" button. The system now correctly matches the imported policy's resolution strategy.
    • Minor accessibility improvements.
    • Minor UI tweaks and improvements.

Skill Exchange

  • Feature
    • Added the ability to filter Embed posts by location. This includes custom location ingestion so that organization-specific locations can be used to filter posts.
  • Fixed
    • Fixed a bug to improve searchability of Skill Profiles.
    • Fixed contrast text when creating an Embed post.
  • Change
    • Search results where a filter is set to a specific location no longer also include locations that are "flexible".
    • Updated navigation text for Embeds and Hacks.
    • Minor UI improvements to the skills listed on Embed cards.
    • Minor styling fix to the Embed text editor placeholders.

Pulse

  • No update

    This plugin was not updated in this release.

Insights

  • No update

    This plugin was not updated in this release.

May 2023 / v.1.14.0

Soundcheck

  • Feature
    • The Github fact collector now supports collecting facts on the languages used within a repository.
      • This means you can now create checks based on the specific languages detected in your repository. For example, if you have a website component and want to ensure it’s built using TypeScript, you can set up a check to verify that with this new feature.
    • Added initial integration with Azure DevOps. This integration enables Soundcheck to collect information on your software components from their Azure DevOps projects.
  • Fixed
    • Numerous enhancements to ensure compliance with accessibility standards.
    • Soundcheck can now execute a check if at least one fact within an Any clause is present rather than requiring all facts.
    • Instead of needing all the facts within an Any clause, we’ve made it possible for Soundcheck to execute a check as long as at least one fact is present. You can now create rules based on the availability of just one fact, making your checks more versatile and adaptable to your specific needs.
    • Addressed a small issue with the Github fact collector where, if no branch protections were in place an error message would be logged, causing unnecessary confusion.
    • Resolved an issue related to joining paths for certain Source Control Management (SCM) providers.
    • Resolved an issue related to scheduled checks. Previously, the results of these checks were not being persisted as they should have been. Now the results of scheduled checks are being persisted as intended.
  • Change
    • Fact collector installation instructions are now updated in the README.

RBAC

  • Feature
    • Advanced Resolution Strategies for RBAC
      • RBAC policy authors can now customize authorization resolution for users with multiple roles. Set your decision resolution strategy effortlessly from our new policy options page shown below: decision resolution strategy with options of any allow or first-match
    • Set the default resolution strategy to 'any-allow' for new authorization policies. The default for policies created previously will remain 'first-match'.

Skill Exchange

  • Feature
    • Added pagination to Home page search and teams to search results with highlighting.
    • Clicking the 'Delete' button in the Hack and Event edit forms will scroll the confirmation message into view.
  • Fixed
    • Minor patch that fixes contact labels overlapping input borders.
    • Fixed issue when pasting content from Google Docs into the Rich Text Editor fields in Skill Exchange post forms.
    • Fixed issue where modifying a hack's status might remove associated skills.
    • Fixed bug where closing a hack detail modal would cause the list view to reload and reset the scroll to the top of the page.
    • Fixed a bug for saving and following posts that required users to refresh the page in order to see their changes reflected.
  • Change
    • Minor UI improvement to the detailed view pages.
    • Minor UI improvements to the Home navigation on smaller screens.
    • Minor improvements to the Home page search autocomplete and filters.
    • Increased spacing between paragraphs in text content to improve readability.
    • Minor updates to user interaction instrumentation events.

Pulse

  • No update

    This plugin was not updated in this release.

Insights

  • Change
    • Insights is soon moving away from backstage.spotify.com (read more on this blog) first with added support for the Insights Backend plugin. Here’s what you need to know:
    • There is a new Insights backend package, @spotify/backstage-plugin-insights-backend, which you should install as soon as possible. Support for using the proxy-based configuration will be removed in the future.
    • @spotify/backstage-plugin-analytics-module-insights has been updated to forward analytics events to the new Insights backend plugin. If you are unable to install the Insights backend at this time, you can add this configuration to temporarily keep proxy-based event forwarding:
    app:
      analytics:
        backstageInsights:
          useProxy: true
    

April 2023 / v.1.13.0

Soundcheck

  • Feature
    • Added "No Level" badges to the tables on the Soundcheck overview page. no level
    • Added tooltips to checks in the overview page results table. tooltips overview
    • Added a message in the checks list of a level to indicate to a user when the level has no checks enabled. no checks
    • The overview page can now accept a custom title.
      • Set this in your App.tsx file as a property of the SoundcheckOverviewPage:
    <SoundcheckOverviewPage title="My Custom Title" />
    
    • The Soundcheck entity card can now accept a custom title.
      • Set this in your EntityPage.tsx file as a property of the EntitySoundcheckCard:
    <EntitySoundcheckCard title="My Custom Title" />
    
    • Added operators supporting comparison of semantic versions.
    • Facts submitted to the /facts endpoint may now be cached by providing a cache configuration
    • Fact timestamps are now optional, defaulting to submission time.
    • Added Soundcheck / Tech Insights integration, allowing the use of Tech Insight facts from within Soundcheck.
  • Change
    • Made improvements to the loading of the overview page table. The table can now support the display of more components. We made this change so that the overview page would be more performant for teams that own a large number of components.
  • Fixed
    • Fixed issue where the Learn More URL was not being rendered.
    • Removed extra scrollbars from the Soundcheck overview page.
    • Resolved an issue with checks executed against multiple entities. Before, if multiple entities relied on a single fact collector, sometimes the results would not be reported correctly.
    • Fixed 401 error when fetching entities from the catalog with authentication middleware. This was preventing the SoundCheck overview from loading, if an authentication middleware was used.
    • Resolved an issue with the Soundcheck fact store that caused records to be re-inserted instead of updated. This caused the Soundcheck database to grow for no reason.
    • Resolved browser warnings on the overview page.
    • Updated styling to resolve misaligned borders for the tables on the overview page.
    • Resolved an issue with the validation of facts submitted to the /facts endpoint.

RBAC

  • Feature
    • Moved the action buttons on the Policy page into a context menu.
  • Fixed
    • Fixed the permission decision dialog showing no options when any plugin returned invalid permission metadata.

Skill Exchange

  • Change
    • As of version 0.9.0, Skill Exchange no longer requires a Docker service backend to operate, and replaces it with the @spotify/backstage-plugin-skill-exchange-backend plugin. This greatly simplifying the installation and maintenance of the Skill Exchange plugin. After updating to this version you'll be able to safely remove the Docker service and its containers. Migration of the existing data is possible by configuring the backend plugin to connect to the existing database used by the Docker service. For more information about this and how to upgrade, please refer to the migration section of the Skill Exchange plugin. The Docker backend service is now deprecated, and support will cease with the next version. If you'd like to opt out of this update and keep using an external Docker service for the time being, you can do so by following these configuration instructions.
    • Filtering in the search dropdowns for Embeds and Mentorships is now case-insensitive.
    • Prevent empty searches in home, embeds, mentorships and hacks.
    • Improved highlighting of invalid media fields in the Hack form for better understandability.
    • The "Interested in Contributing" button is now hidden on the details page for Adoptable hacks that haven't been claimed yet.
    • Stop error message when using filter dropdown for Skill Exchange posts in development environment.
  • Fixed
    • Fixed a bug with adding or searching for a custom skill containing the letter E or M.
    • Fixed a bug where empty skill names were allowed as custom skills.
    • Fixed a stale cache issue when bookmarking Embeds and Mentorships.
    • Fixed a bug that would cause an error to appear when a user edited their skills.

Pulse

  • No update

    This plugin was not updated in this release.

Insights

  • No update

    This plugin was not updated in this release.

March 2023 / v.1.12.0

Soundcheck

  • Feature
    • Added a virtualizeOverviewPage configuration option to only render parts of the Soundcheck overview page that are in-view. This improves performance for teams that have a large amount of entities.
      • To enable this option, add the configuration to your app-config.yaml:
    soundcheck:
      virtualizeOverviewPage: true
    
    • Added ability to filter entity types out of the Soundcheck overview page if they have no associated entities.
      • For example in the screenshot below, the fictional team Backstage does not have any Libraries associated with it and we do not show the tab in soundcheck filter overview
    • Program descriptions now support markdown content.
    • Added the Soundcheck Fact Framework, including support for fact collection and check execution. See the README for additional details.
    • Added SoundcheckBuilder which simplifies wiring up soundcheck-backend.
    • Added GitHub integration for fact extraction from GitHub repositories. See the modules README for additional details, including configuration details. github fact framework integration
    • Added SCM module for out-of-the-box third party integration with select common source control management providers. scm fact framework integration
    • Initial release of soundcheck-client. Provides a FactsApi for submitting facts to soundcheck as well as a FactsClient which implements the API and which can be used to submit facts to a soundcheck instance.
  • Change
    • Cleaned up some unnecessary output in published packages.
    • Added Fact Framework utilities shared between Soundcheck backend and frontend.

RBAC

  • Feature
    • Added possibility to filter role’s members by namespace. rbac-filter-members-by-namespace
    • Group users and groups in a single namespace and view namespaces when there is more than one namespace in the catalog.
    • Moved the action buttons on the Policy page into a context menu. rbac-policy-context-menu
  • Fixed
    • Fixed an issue where the row on the members table does not expand to the full width of the table.
    • Fixed the permission decision dialog showing no options when any plugin returned invalid permission metadata.

Skill Exchange

  • Change
    • Updated User and Team dropdown fields in Hacks and Embed forms to use the Catalog API for finding entities, rather than the Search API. This means search indexing no longer needs to be enabled to create new posts.
  • Fixed
    • Fixed routing issues where users cannot create or view Hack events.

Pulse

  • No update

    This plugin was not updated in this release.

Insights

  • No update

    This plugin was not updated in this release.

February 2023 / v.1.11.0

Soundcheck

  • No update

    This plugin was not updated in this release.

RBAC

  • Feature
    • The role’s member table now shows the namespace of the members if it differs from the default namespace (following the same pattern as the members search dropdown and catalog page).
    • Added automatic sorting for the members table by type, namespace, and alphabetically, rather than by order added.
  • Fixed
    • Minor UI accessibility improvements.

Skill Exchange

  • Fixed
    • Fixed a bug that could cause the SkillProfileDecoratorFactory to be executed unnecessarily.

Pulse

  • No update

    This plugin was not updated in this release.

Insights

  • No update

    This plugin was not updated in this release.

January 2023 / v.1.10.0

Soundcheck

  • Feature
    • Check results now validate entity references.
      • Soundcheck now returns an error if a check result with an invalidly formatted entity reference is submitted to the /results endpoint. Read more about this new feature.

RBAC

  • Fixed
    • Resolved an issue where users were unable to view the diffing between two policies due to the absence of an active policy.
    • Fixed issue logging informative “Policy started” message multiple times.
    • Minor UI tweaks and improvements.

Skill Exchange

  • No update

    This plugin was not updated in this release.

Pulse

  • No update

    This plugin was not updated in this release.

Insights

  • No update

    This plugin was not updated in this release.