Remove deprecated config fields (proxyUrl, sslKeyPemPath, sslCertPemPath) in 3.0
- Dominant language
- TypeScript
- Stars
- 249
- Forks
- 176
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 20
Description
## Summary
Remove the deprecated top-level config fields `proxyUrl`, `sslKeyPemPath`, and `sslCertPemPath` from the schema, types, and config loader. These fields are already flagged `deprecated: true` in `config.schema.json` and have been superseded by `upstreamProxy` and `tls.key` / `tls.cert` respectively.
## Why defer to 3.0
Removing these fields is a breaking change: after the upgrade, the app will fail to start unless users clean up their config files. That's not acceptable inside the 2.x line, so this work should land in the next major.
## Context
- Discussed in #1514 (review thread with @jescalada).
- The removal was briefly included in #1514 as commit `c48d0bf` but reverted in [4234c16](https://github.com/finos/git-proxy/commit/4234c16fbddca7abc10f08fc4bd2285e0a58ec44) to keep #1514 non-breaking.
## Scope
- Drop `proxyUrl`, `sslKeyPemPath`, `sslCertPemPath` from `config.schema.json`.
- Regenerate `src/config/generated/config.ts`.
- Remove the legacy fallback logic in `src/config/index.ts` (`mergeConfigurations`, `getProxyUrl`, `getTLSKeyPemPath`, `getTLSCertPemPath`).
- Simplify `FullGitProxyConfig` to plain `Required` (drop `OptionalTopLevelConfigKey`).
- Update reference docs (`website/docs/configuration/reference.mdx`).
- Improve the config-load error message so users hitting a removed/unknown key get a clear "this field is no longer supported, use X" instead of the current misleading "expected boolean but got X" (per @jescalada's note in #1514).
## Migration for users
| Deprecated field | Replacement |
|---|---|
| `proxyUrl` | `upstreamProxy` |
| `sslKeyPemPath` | `tls.key` |
| `sslCertPemPath` | `tls.cert` |
Contributor guide
Assessment
This issue has not been assessed yet.