Support nested folders in `config/queries/` for query organization
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- sql, typescript
Línea de trabajo
Empieza leyendo AppManager.getAppQuery(), getQueries() en plugins/server/utils.js y generateQueriesFromDescribe() en typegen; después, inspecciona cómo gestionan flat readdir y path.basename. Se considera terminado cuando los archivos .sql anidados se resuelvan en claves de consulta relativas estables, la validación acepte el separador elegido y la generación de tipos y la búsqueda en frontend cubran los ejemplos documentados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Support nested folders in config/queries/ for query organization
Problem
As the number of SQL queries in a project grows, config/queries/ becomes a flat bag of files with no way to organize them by feature or domain. The only option is naming conventions (e.g. nego_chart_data.sql, trip_summary.sql), which doesn't scale well and provides no structural separation.
Current behavior
AppManagerhardcodesqueriesDirtopath.resolve(process.cwd(), "config/queries")fs.readdir()is non-recursive — subdirectories are silently ignored- Query key validation (
/^[a-zA-Z0-9_-]+$/) rejects any delimiter that could encode a path generate-types(typegen) also uses flatreaddir+path.basename
Proposed behavior
Allow queries to live in subdirectories:
config/queries/
negotiations/
chart_data.sql
spend_summary.sql
dashboard/
trip_summary.sql
trips_by_day.sql
docs/
annotations.obo.sql
Query key derivation would use the relative path with a separator (e.g. / or .):
negotiations/chart_dataornegotiations.chart_data
Frontend usage:
useAnalyticsQuery('negotiations/chart_data', params)
Minimal change required
The fix is small — roughly 3-4 locations need updating:
AppManager.getAppQuery()— changefs.readdir()tofs.readdir(dir, { recursive: true })and adjust filename matching to include relative subdirectory pathsgetQueries()inplugins/server/utils.js— same recursive readdir changegenerateQueriesFromDescribe()in typegen — derive query names from relative paths instead of justpath.basename()- Query key validation regex — allow
/or.as a path separator
Workarounds
Currently using prefix naming (nego_*, trip_*) which works but doesn't provide IDE folder navigation or structural grouping benefits.
- Lenguaje dominante
- TypeScript
- Estrellas
- 119
- Forks
- 36
- Merge medio
- 4 d 16 h
- PR fusionados (30 d)
- 37
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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 databricks/appkit
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
databricks/appkit#729 ·
Los mantenedores suelen responder en 3 días
-
@databricks/lakebase: pool drops maxLifetimeSeconds and other pg options, so connections never recycle and Unity Catalog claims access fails after 4 hoursPosiblemente ocupada @billmcmillin la tomó hace 5 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
databricks/appkit#718 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
databricks/appkit#699 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 3/5 Medio día Aptitud para principiantes 42/100
databricks/appkit#656 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 28/100
databricks/appkit#648 · 2 comentarios ·
Los mantenedores suelen responder en 3 días
Todos los issues de databricks/appkit
Issues similares
-
Add "append" and "prepend" slots for vue-vuetify extended renderersPosiblemente ocupada @simeyc la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
eclipsesource/jsonforms#2668 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
README の通知条件を実際の判定処理に合わせるPosiblemente ocupada @unhappychoice la tomó hoy. Abiertofactory:in-progress priority:medium
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
unhappychoice/oss-issue-opener#395 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug Website
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
OWASP/OWASP-Hunting#88 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día