@@ -42,7 +42,7 @@ because the module path `query-to-header` is not a valid Go identifier):
4242 parameter (` Remove ` ), rewrites ` req.URL.RawQuery ` , then calls ` next.ServeHTTP ` .
4343- ** ` query_to_header_test.go ` ** — table-style tests built around ` httptest.NewRequest ` /
4444 ` httptest.NewRecorder ` , asserting on header/query state observed inside a stub ` next ` handler.
45- - ** ` .traefik.yaml ` ** — the plugin manifest required by the Traefik Plugin Catalog
45+ - ** ` .traefik.yml ` ** — the plugin manifest required by the Traefik Plugin Catalog
4646 (` displayName ` , ` type: middleware ` , ` import ` , ` summary ` , ` testData ` used to validate the
4747 catalog example config matches ` Config ` 's JSON shape).
4848
@@ -54,6 +54,23 @@ the version, commit, tag, and push (`github.release: false`, `npm.publish: false
5454resulting ` vX.Y.Z ` tag triggers ` .github/workflows/release.yml ` , which runs ` goreleaser ` to
5555actually publish the GitHub Release.
5656
57+ ## Traefik Plugin Catalog requirements
58+
59+ The catalog (https://plugins.traefik.io ) polls GitHub daily and imports repositories that meet
60+ all of these criteria — breaking any of them silently stops catalog updates:
61+
62+ - Repository must not be a fork.
63+ - The ` traefik-plugin ` topic must be set on the GitHub repository.
64+ - ` .traefik.yml ` must exist at repo root with a valid ` testData ` property matching ` Config ` 's
65+ JSON shape.
66+ - A valid ` go.mod ` must exist at repo root.
67+ - The plugin must be versioned via git tag (source is pulled from the Go module proxy, not a
68+ branch).
69+ - Any package dependencies must be vendored and committed — moot here since this plugin has none.
70+
71+ If the catalog's import fails, it opens an issue on this repo explaining the problem and pauses
72+ re-import attempts until that issue is closed.
73+
5774## Conventions to preserve
5875
5976- Keep ` New ` and ` CreateConfig ` signatures exact — Traefik's plugin loader calls them by
0 commit comments