---
title: "Important: The shipped route enhancer configuration can be imported"
manual: "Academic Programs"
version: "main"
source: "Changelog/3.0/Important-RouteEnhancerConfigurationIsValid.rst"
rendered: "2026-09-27T09:40:45+00:00"
---

# Important: The shipped route enhancer configuration can be imported {#important-1787055000}

## Description {#description}

This extension ships a ready made route enhancer for its program list plugin in
`Configuration/Yaml/Routes.yaml`, meant to be pulled into a site
configuration:

**config/sites/my_site/config.yaml**

```yaml
imports:
  - resource: 'EXT:academic_programs/Configuration/Yaml/Routes.yaml'
```

That file was indented with tab characters. YAML forbids a tab as indentation,
so it was never valid YAML: importing it aborts the whole site configuration
with the `ParseException` *A YAML file cannot contain tabs as indentation*.
It has not been usable since it was added.

Three further defects made it a no-op even once it parsed:

-   The enhancer key was misspelled `AacdemicPrograms`. The key only names
    the enhancer within the site configuration and appears in no URL, but it is
    what an integrator reads and copies.
-   `plugin: List` named a plugin that does not exist. The plugins this
    extension registers are `ProgramList` and `ProgramDetails`, so
    the enhancer bound to the argument namespace of neither.
-   There was no `routes:` key. An Extbase enhancer registers one route per
    entry of that list, so an enhancer without it contributes nothing whatever
    else it declares.

The file now carries a complete enhancer for the program list plugin, mapping
the sorting of the list into the path.

## Impact {#impact}

The file parses, can be imported into a site configuration, and produces
speaking URLs for the sorting arguments of the program list — for example
`/programs/last-updated/desc` instead of a query string. The mapped values
are those of `\FGTCLB\AcademicPrograms\Enumeration\SortingOptions`, which is
also what the select fields of the plugin offer.

The sorting and filter form shipped with the plugin submits by POST, and the
plugin answers with a redirect to such a URL, see [Feature: Program filter selections have a URL](Feature-FilterSelectionsHaveAUrl.html#feature-1790226102).

## Affected Installations {#affected-installations}

All installations of this extension. Nothing has to be done, and nothing can
have depended on the previous state: a site configuration that imported the file
did not load at all.

An installation that worked around this by copying the enhancer into its own
site configuration keeps that copy, including the spelling and the defects it
copied. A key below `routeEnhancers` is freely chosen and appears in no
URL, so renaming it there is optional; the `plugin` value and the missing
`routes:` list are not.
