
Managing tracks via the No-Code UI
Creating a new track
When you click Create a track, you’ll be prompted to choose how you want to proceed:- Create Custom Track – Build a track from scratch with full control over checks and configuration.
- Use Spotify Templates – Use pre-built Spotify Templates to automatically create tracks, checks, and required integrations, and get started faster. The templates are built using Spotify’s extensive experience and best practices, ensuring you benefit from proven approaches and industry-leading expertise.

Creating a custom track
To create a track, give your track a meaningful name and a description, and select the filters and checks that you want to use.

Creating tracks using Spotify Templates
Spotify Track Templates are ready-to-use tracks designed to make onboarding fast and easy. Spotify Track Templates automatically create tracks, checks, and required integration configuration, so teams can start getting value from Soundcheck with minimal setup. By using Spotify Track Templates, teams can skip manual configuration and move straight to evaluating and improving engineering standards. The setup guides you through three simple steps:-
Select Source Control Provider
Select which Soundcheck source code management (SCM) integration will be used to collect repository data, such as branch protection rules.
The selected integration must match your primary catalog provider:
- GitHub
- GitLab
- Azure DevOps

-
Select Tracks
Choose which tracks you want to add to Soundcheck. For each track, you can:
- Review the checks included in the track
- See which integrations are required for those checks to run successfully
- Checks that are missing integration configurations will be auto-configured

-
Run Checks
This step provides an overview, allowing you to review which tracks, checks, and integrations have been created.
Checks will run automatically according to their configured schedule.
However, you can also run checks for the selected entities to immediately validate your setup.
You’ll see instant results, allowing you to confirm that integrations are working correctly and that data is flowing as expected.

Editing a track
Once a track is created, you will be able to manage and edit your track on its detail page. From the tracks listing page, you will see an option to edit your track, which will bring you to the details page shown below.
Configure mode for YAML-sourced tracks
Tracks defined in YAML configuration files (viaapp-config.yaml) cannot be edited and saved through the UI because they are not stored in the Soundcheck database. However, you can use Configure mode to work with these tracks using the full form tooling.
When you open the action menu for a YAML-sourced track, a Configure button appears instead of Edit. Clicking it opens the track form in Configure mode, which:
- Opens directly to a Preview YAML step so you can immediately see the YAML output.
- Lets you navigate back through all form steps to modify details, levels, checks, and filters.
- Replaces the Save button with an Export button that downloads the track as a YAML file.
- Replaces the Cancel button with a Close button that shows a confirmation dialog before discarding your changes.
Configure mode does not persist any changes to the database. To apply your
changes, export or copy the YAML and update your configuration files
(
app-config.yaml or the referenced YAML files) manually.Export to YAML
Individual tracks can be saved as YAML via the dropdown menu on the track cards.
Export all tracks button on the top toolbar.

Export entities to CSV
On a track’s detail page, the entity list can be exported to CSV using the Export button in the toolbar. The export respects any active filters, so the downloaded file contains exactly the entities visible on screen. The CSV includes the following columns: Name, Pass Rate, Passed, Failed, Warning, Error, Not Reported, Exempt, System, Type, Lifecycle, Kind, Owner, and Entity Ref. Owner, System, Type, and Lifecycle are enriched from the Backstage Software Catalog.Exports are limited to 5,000 entities. If the filtered list exceeds this
limit, a warning toast is displayed indicating how many entities were included
out of the total.
Import from YAML
Tracks can be created from YAML via theImport YAML track(s) button on the top toolbar.
The tracks will be created in the Soundcheck database and can be modified later just like other tracks created via the UI.
If using RBAC, make sure that your user has soundcheck.track.create permission.

- YAML file may contain either a single track or an array of tracks.
- If the YAML file contains tracks with IDs that already exist in Soundcheck, such tracks will be skipped and the import will continue as normal.
- If one or more tracks fail to import, their IDs will be listed in the warning banner and the import of the remaining tracks will continue as normal.
Managing tracks via yaml configuration
Tracks can be created in code via yaml configuration files.Overall Shape Of A Track
The following is an example of a descriptor file for a Soundcheck Track:Adding yaml tracks to your track library
To add tracks defined in a yaml file to your track library, you need to source them in youapp-config.yaml. You have the option of storing them locally or remotely.
Here is an example configuration should your tracks yaml files be local to your Backstage project:
app-config.yaml
app-config.yaml in a similar manner. Here is an example configuration:
app-config.yaml
Note: you cannot combine local and remote sourcing for tracks files. This includes the usage of $include within a remotely sourced tracks file. The below option will NOT work:
app-config.yaml
Remote file update options
Theremote_file_updates object is optional configuration allowing you to control if and when Soundcheck looks for updates within your remote files. This configuration is global for Soundcheck, so will apply to both track and check files. If not explicitly set, see the below for default values.
Migrating tracks from yaml to no-code UI
To migrate the tracks from yaml to no-code UI follow these steps:- Remove references to tracks from
soundcheck.tracks(exsoundcheck.programs) configuration. - Import yaml tracks previously referenced in
soundcheck.tracks(exsoundcheck.programs) configuration using the “Import from YAML” button located on the Tracks tab in the UI.
Track Fields
The Track object is composed of some top level summary fields as well as more complex nested fields for filters and levels.Level Fields
Thelevel object is composed of several top-level summary fields and a repeated check definition field.
Check Fields
Thecheck object defines the atomic unit of work within the Soundcheck certification process.
Badge Fields
Custom Badge Images
You can customize the appearance of badges at the track level by providing a custom SVG image, this lets you use unique visual identities for different tracks or levels. To use a custom badge image, specify an inline SVG block in thesvg field of the badge configuration:
Filter
filter is used to narrow down applicability for both tracks and checks using catalog filters,
with the exception of the CATALOG_FILTER_EXISTS symbol.
See filters for more details.
Draft Tracks
You can now mark tracks asdraft. Draft tracks are perfect for testing and verification, allowing
you to refine your track before making it visible by default. Draft tracks are hidden from
Soundcheck Entity Card,
Soundcheck Entity Tab and Soundcheck Overview pages.
Besides the visibility, draft tracks function the same as non-draft tracks (applicable entities are
certified and certifications are stored in the database).
To view the draft tracks on Soundcheck Entity Tab, click on the small gear icon
beside the list of tracks for the component, and select Show Draft Tracks and Campaigns:

false will make this track visible on
Soundcheck pages listed above.
Integrating with Soundcheck
Soundcheck enables developers to evaluate software components against standards through the creation of tracks, levels, and checks.Fact Framework
Soundcheck’s fact framework collects information about an entity using Fact Collectors or the Facts API.Fact Collectors
Third Party Integrations
Fact Checks
Fact checks define rules that determine whether a check result should pass or fail.Executing Checks
Fact checks are executed, or triggered, by Soundcheck in the following ways:- A dependent fact is updated, either through fact collectors or via the Facts API.
- A fact check is scheduled, in which case Soundcheck will automatically execute the check on the specified frequency.
- A fact check is manually triggered via the Checks API.
REST API
We include a REST API for Tracks. See API Reference for details.Certifications and Badges
Certification is the outcome of passing all applicable checks within a level. Badges are visualizing certification status for tracks and their levels.Medal Badges
Medal badges incentivize Engineers to complete levels through Gamification. Component owners can achieve bronze, silver, and gold badges upon completion of related levels. A level is completed when all checks within the level are passing and all previous levels are completed.
Status Badges
Status badges show how many checks are passing within each level and the entire track. A status of one level does not depend on statuses of other levels within the track.
Certification History
By default, Soundcheck retains certification history for entities and their applicable tracks. This feature allows tracking of the highest certified levels for every entity and their applicable tracks over time. The default retention period is 120 days, and is configurable. Certification history data is used by Soundcheck Tech Health page to visualize snapshots and trends of the highest certified levels for every entity and their applicable tracks. It’s also possible for other systems to integrate with certification history by reading from the Soundcheck database directly.Modifying Certification History Settings
To disable certification history, setsoundcheck.certifications.history.enable to false
in config:
app-config.yaml
retentionTimeInDays. For example, this config will instruct Soundcheck to retain history for the
past year:
app-config.yaml
app-config.yaml
Reading Certification History
Certification history is stored in thecertification_history table in the
Soundcheck database. Unless overridden in Backstage
configuration,
the Soundcheck database will be part of the main Backstage database, and named
backstage_plugin_soundcheck.
Certification History Schema
certification_id- Unique identifier for the certification (primary key).entity_ref- Entity reference that the certification relates to.owner_entity_ref[optional] - Software catalog entity that owns the entity this certification is for.track_id- Unique identifier for the track this certification is for.scope- The scope of check results this certification was created for.highest_level[optional] - Rank of the highest certified level. Null if no level is certified.certification_date- The date of the certification.last_updated- The timestamp indicating the date and time when the certification was last updated.
Updating Certification History
Certification history is typically updated automatically when track levels or filters are modified in the UI. However, if a YAML track is updated, recertification will not occur automatically. Additionally, migrating a UI track to YAML will result in the deletion of its certification history. To regenerate a track’s certification history based on its current configuration, click the “Recertify” button in the dropdown menu on the track card. The track will be recertified for the duration specified by thesoundcheck.certifications.history.retentionTimeInDays config, up to a maximum of 365 days.

Appendix
Recommended GitHub Settings Track
Pre-builtRecommended GitHub Settings track is based on the GitHub checks
configuration and defined as follows:
Basic SCM Compliance Track
Pre-builtBasic SCM Compliance track is based on the SCM checks
configuration and defined as follows: