apiGet sends params as ?input=<JSON> instead of named query params — all GET commands with parameters fail (400)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 85/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
Línea de trabajo
Comienza en src/client.ts y compara apiGet con las convenciones de los parámetros de consulta en openapi.json. Ejecuta un comando parametrizado como dokploy compose one --composeId <valid-id> --json y, después, comprueba que los comandos GET usan claves de consulta con nombre y se completan correctamente en lugar de fallar con el estado 400.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Any CLI command that maps to a GET endpoint with query parameters fails:
dokploy compose one --composeId <valid-id> --json
# Request failed with status code 400
This affects every "read one" / "search" style command across the API (compose one, application one, project one, mysql one, registry one, *.search, *.readLogs, etc. — anything backed by a GET with query params in openapi.json). Commands backed by POST (deploy, delete, update, create) are unaffected.
Root cause
In src/client.ts:
export async function apiGet(
endpoint: string,
params?: Record<string, unknown>,
) {
const client = createClient();
const query = params
? `?input=${encodeURIComponent(JSON.stringify(params))}`
: "";
const response = await client.get(`/trpc/${endpoint}${query}`);
return response.data?.result?.data?.json ?? response.data;
}
This wraps all params into one JSON-encoded input query string — the convention for calling tRPC procedures directly. But the REST surface this CLI actually targets (per its own openapi.json) expects each parameter as its own named query key, e.g. ?composeId=<id>, not a JSON blob under input.
Confirmed directly: the same request, same auth, sent as a plain named query param instead of through the CLI, succeeds:
curl -s -H "x-api-key: $DOKPLOY_AUTH_TOKEN" \
"https://<host>/api/compose.one?composeId=<valid-id>"
# returns the full object correctly
Suggested fix
const response = await client.get(`/trpc/${endpoint}`, { params });
Environment
@dokploy/cli 0.29.14 (also reproduced on 0.3.0 — not version-specific).
- Lenguaje dominante
- TypeScript
- Estrellas
- 152
- Forks
- 46
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Dokploy/cli
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 62/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
Todos los issues de Dokploy/cli
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
[Bug]: Matrix progress drafts fail with "Matrix runtime not initialized" during tool activity Abiertobug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Client support matrix inclusion Abiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
calcite-components needs triage refactor
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Esri/calcite-design-system#15203 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
fullcalendar/fullcalendar#8106 ·