Skip to content

Commit 387929e

Browse files
committed
fix: rename .traefik.yaml to .traefik.yml for catalog compliance
The Traefik Plugin Catalog requires the manifest file to be named exactly .traefik.yml; .traefik.yaml is not recognized and would silently block catalog imports.
1 parent 0f4f3e1 commit 387929e

3 files changed

Lines changed: 19 additions & 2 deletions

File tree

File renamed without changes.

AGENTS.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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
5454
resulting `vX.Y.Z` tag triggers `.github/workflows/release.yml`, which runs `goreleaser` to
5555
actually 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

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ middleware to fail to load (validated in `New`, at construction time, not per-re
125125
|--------------------------------|----------------------------------------------------------------------|
126126
| `query_to_header.go` | Plugin implementation: `Config`, `CreateConfig`, `New`, `ServeHTTP`. |
127127
| `query_to_header_test.go` | Unit tests using `httptest`. |
128-
| `.traefik.yaml` | Plugin manifest required by the Traefik Plugin Catalog. |
128+
| `.traefik.yml` | Plugin manifest required by the Traefik Plugin Catalog. |
129129
| `go.mod` | No third-party dependencies — required for Yaegi compatibility. |
130130
| `.golangci.yml` | Lint configuration. |
131131
| `justfile` | `lint`, `test`, `vendor`, `clean` recipes (run with [`just`](https://just.systems)). |

0 commit comments

Comments
 (0)