@malloy-publisher/app 0.0.114 → 0.0.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/dist/api-doc.yaml +634 -362
  2. package/dist/assets/{Chip-DpRfGWL9.js → Chip-BlLPwrfU.js} +1 -1
  3. package/dist/assets/{Container-pCaIjpH5.js → Container-DSVPh3gE.js} +1 -1
  4. package/dist/assets/{DialogTitle-Df6dToBj.js → DialogTitle-bD8VuT8c.js} +1 -1
  5. package/dist/assets/{Edit-Do7LZWER.js → Edit-_LnCy6KM.js} +1 -1
  6. package/dist/assets/FormControlContext-DignhH4k.js +1 -0
  7. package/dist/assets/{HomePage-pfv0GYQd.js → HomePage-LX1tISWU.js} +1 -1
  8. package/dist/assets/{MainPage-1RQ43yX6.js → MainPage-IcOw9T0o.js} +1 -1
  9. package/dist/assets/{MenuItem-BWMnNgqP.js → MenuItem-BdqihbmU.js} +1 -1
  10. package/dist/assets/{Modal-BbVeNLvO.js → Modal-D0aofeJ-.js} +1 -1
  11. package/dist/assets/{ModelPage-BFSBWoUi.js → ModelPage-Cmj_3prB.js} +1 -1
  12. package/dist/assets/{MoreVert-Dh8A2FDF.js → MoreVert-YhnXQ3v5.js} +1 -1
  13. package/dist/assets/{PackagePage-Dbb4lm1F.js → PackagePage-CA_3_grb.js} +2 -2
  14. package/dist/assets/{ProjectPage-Ccyp5m5h.js → ProjectPage-CTEKaYN6.js} +1 -1
  15. package/dist/assets/{RouteError-soNErEMV.js → RouteError-DBjBbJQ4.js} +1 -1
  16. package/dist/assets/{WorkbookPage-D_yrMjqR.js → WorkbookPage-BQqJ6KAQ.js} +1 -1
  17. package/dist/assets/{index-BS_9W4Tt.js → index-BAfm35bA.js} +60 -60
  18. package/dist/assets/{index-B_Z1qGAK.js → index-Bxv0Yt4A.js} +1 -1
  19. package/dist/assets/{index-CZpA8zwK.js → index-CvMj3zFy.js} +1 -1
  20. package/dist/assets/{index.es20-DzH7kq4S.js → index.es20-DX-qKVln.js} +1 -1
  21. package/dist/assets/{index.es23-C-bQftBc.js → index.es23-MhA_BS7D.js} +2 -2
  22. package/dist/assets/{index.es287-BsK0ZRDU.js → index.es309-BadtNHpe.js} +1 -1
  23. package/dist/assets/{index.es288-pwa92z63.js → index.es310-CxNQu9Er.js} +1 -1
  24. package/dist/assets/{index.es291-LYy-CnOC.js → index.es313-CDQEwRNq.js} +1 -1
  25. package/dist/assets/{index.es296-BxlxlVr1.js → index.es318-BEizWri7.js} +1 -1
  26. package/dist/assets/{index.es304-jV2gZBYS.js → index.es326-DRDRxpfM.js} +1 -1
  27. package/dist/assets/{index.es305-DrF4mmwj.js → index.es327-Beb6eJic.js} +1 -1
  28. package/dist/assets/{index.es308-CZZGZfCL.js → index.es330-CwuXg3fJ.js} +1 -1
  29. package/dist/assets/{index.es312-CM4OW1Tu.js → index.es334-Dm2bZsvo.js} +1 -1
  30. package/dist/assets/{index.es315-CSNCJz_t.js → index.es337-BRS6prNj.js} +1 -1
  31. package/dist/assets/{index.es318-BnlIqKdP.js → index.es340-CpGpgGPq.js} +1 -1
  32. package/dist/assets/{index.es319-BqfPxZyn.js → index.es341-CzpxUkrh.js} +1 -1
  33. package/dist/assets/{index.es333-DrlQlC9C.js → index.es355-Cw1hwz7b.js} +1 -1
  34. package/dist/assets/{index.es334-CrN25jeJ.js → index.es356-Lf8oNwCV.js} +1 -1
  35. package/dist/assets/{index.es335-BMF1iNAk.js → index.es357-BSyhsBZc.js} +1 -1
  36. package/dist/assets/{index.es337-DddOBpwk.js → index.es359-DlQPvmEf.js} +1 -1
  37. package/dist/assets/{index.es342-5MyjXhLR.js → index.es364-BdLXGlNW.js} +1 -1
  38. package/dist/assets/{index.es344-BpzCATdh.js → index.es366-CeOBTy3D.js} +1 -1
  39. package/dist/assets/{index.es345-CcT82qyg.js → index.es367-BTU6dC7H.js} +1 -1
  40. package/dist/assets/{index.es350-DT_CVHOb.js → index.es372-CAP3LJB5.js} +1 -1
  41. package/dist/assets/{index.es351-IRimHV8f.js → index.es373-Bn0SN4Qr.js} +1 -1
  42. package/dist/assets/{index.es353-e0DSyH1F.js → index.es375-DHsDDgUb.js} +1 -1
  43. package/dist/assets/{index.es354-DvXzIB3B.js → index.es376-DiakK4K7.js} +1 -1
  44. package/dist/assets/{index.es355-BpinPwMf.js → index.es377-BVmV6Pw5.js} +1 -1
  45. package/dist/assets/{index.es358-B2FwChKl.js → index.es380-DWVjI1nw.js} +1 -1
  46. package/dist/assets/{index.es360-B11Uptoy.js → index.es382-DZZkqdlU.js} +1 -1
  47. package/dist/assets/{index.es361-CqPSZKxw.js → index.es383-DrYUPMBY.js} +1 -1
  48. package/dist/assets/{index.es362-kID_QP2b.js → index.es384-O2h4x2O1.js} +1 -1
  49. package/dist/assets/{index.es368-DEU47Nmo.js → index.es390-CENsXSpU.js} +1 -1
  50. package/dist/assets/{index.es369-BAVwPVpH.js → index.es391-DGinr4O5.js} +1 -1
  51. package/dist/assets/{index.es370-CQSqpEY2.js → index.es392-B96aw5eg.js} +1 -1
  52. package/dist/assets/{index.es371-DSPIJ8l-.js → index.es393-BB41wM4d.js} +1 -1
  53. package/dist/assets/{index.es373-CTLjf8LZ.js → index.es395-CyeA1Xjk.js} +1 -1
  54. package/dist/assets/{index.es377-BFPElb8k.js → index.es399-Bsi68PlA.js} +1 -1
  55. package/dist/assets/{index.es378-Bi8-8y3Z.js → index.es400-BAaaKxaT.js} +1 -1
  56. package/dist/assets/{index.es386-BRbfYhrv.js → index.es408-Cox8sqBq.js} +1 -1
  57. package/dist/assets/{index.es389-SMY2M5Dd.js → index.es411-BIcB0nnx.js} +1 -1
  58. package/dist/assets/{index.es392-fGYxK-uk.js → index.es414-NSiQAL9E.js} +1 -1
  59. package/dist/assets/{index.es395--SrhnzjM.js → index.es417-CJHHUEgP.js} +1 -1
  60. package/dist/assets/{index.es399-BP5VLghY.js → index.es421-DlzZ1edh.js} +1 -1
  61. package/dist/assets/{index.es401-CopVMHFF.js → index.es423-Blu2B8df.js} +1 -1
  62. package/dist/assets/{index.es409-C0EaxmtL.js → index.es431-BcO6TXny.js} +1 -1
  63. package/dist/assets/{index.es410-B2INzLoQ.js → index.es432-DR7oVH16.js} +1 -1
  64. package/dist/assets/{index.es417-B6GOQZs3.js → index.es439-D-FInR6T.js} +1 -1
  65. package/dist/assets/{index.es418-Dt4O9kPw.js → index.es440-C8xLRtnr.js} +1 -1
  66. package/dist/assets/{index.es428-BGqtBs8m.js → index.es450-BWJL1ivC.js} +1 -1
  67. package/dist/assets/{index.es432-BzFuvoyF.js → index.es454-B4gLruiC.js} +1 -1
  68. package/dist/assets/{index.es438-DvNyQZ9B.js → index.es460-Dk4iQbdz.js} +1 -1
  69. package/dist/assets/{index.es443-DC0KqCTi.js → index.es465-DPM1K1vX.js} +1 -1
  70. package/dist/assets/{index.es444-CTooryRZ.js → index.es466-Cz5i94Jb.js} +1 -1
  71. package/dist/assets/{index.es446-DGMBZ3_7.js → index.es468-CEal6hHe.js} +1 -1
  72. package/dist/assets/{index.es450-BCWIDv3j.js → index.es472-Dn7NJgh3.js} +1 -1
  73. package/dist/assets/{index.es452-B8WGaHgy.js → index.es474-DmO_iZ7H.js} +1 -1
  74. package/dist/assets/{index.es454-Cp0AvzKu.js → index.es476-AEEjznls.js} +1 -1
  75. package/dist/assets/{index.es457-C87oaIOo.js → index.es479-CVK23V1l.js} +1 -1
  76. package/dist/assets/{index.es458-CBexwHfM.js → index.es480-Dg2zCIZf.js} +1 -1
  77. package/dist/assets/{index.es462-DGwyl90J.js → index.es484-B8fRb4PI.js} +1 -1
  78. package/dist/assets/{index.es464-Dzf6WDCJ.js → index.es486-DugRqL_s.js} +1 -1
  79. package/dist/assets/{index.es471-BOZxaHLN.js → index.es493-Cq9aUzhz.js} +1 -1
  80. package/dist/assets/{index.es473-C4VYB3vo.js → index.es495-DHLZUspl.js} +1 -1
  81. package/dist/assets/{index.es475-OnXMAP7q.js → index.es497-BvzzhJTZ.js} +1 -1
  82. package/dist/assets/{index.es479-H38Vf5YC.js → index.es501-BjGaL-C6.js} +1 -1
  83. package/dist/assets/{index.es489-Cm4BEHNL.js → index.es511-DRqxYg4O.js} +1 -1
  84. package/dist/assets/{index.es490-DtqPpdnf.js → index.es512-B0vqeVAK.js} +1 -1
  85. package/dist/assets/{index.es497-BvZ-y4_B.js → index.es519-3ouX9M5g.js} +1 -1
  86. package/dist/assets/{index.es498-DeJOiud8.js → index.es520-BWdPHKc-.js} +1 -1
  87. package/dist/assets/{index.es7-Lspe9b-6.js → index.es7-BnSyqMUG.js} +1 -1
  88. package/dist/assets/{index.modern-J74LOUay.js → index.modern-BNyuNLQP.js} +1 -1
  89. package/dist/assets/{index.umd-iTdVE6k1.js → index.umd-DjRNKlAu.js} +1 -1
  90. package/dist/assets/{listItemTextClasses-D0rI_qhy.js → listItemTextClasses-BZy8G2qL.js} +1 -1
  91. package/dist/index.html +1 -1
  92. package/package.json +2 -2
  93. package/dist/assets/FormControlContext-Ccuzn_SP.js +0 -1
  94. /package/dist/assets/{index.es276-CG6Dc4jp.js → index.es298-CG6Dc4jp.js} +0 -0
  95. /package/dist/assets/{index.es284-DsBKuouk.js → index.es306-DsBKuouk.js} +0 -0
  96. /package/dist/assets/{index.es285-D_z4Izcz.js → index.es307-D_z4Izcz.js} +0 -0
  97. /package/dist/assets/{index.es286-727ZlQH0.js → index.es308-727ZlQH0.js} +0 -0
  98. /package/dist/assets/{index.es289-Dn00JSTd.js → index.es311-Dn00JSTd.js} +0 -0
  99. /package/dist/assets/{index.es290-COJ4H7py.js → index.es312-COJ4H7py.js} +0 -0
  100. /package/dist/assets/{index.es292-Bu5BbsvL.js → index.es314-Bu5BbsvL.js} +0 -0
  101. /package/dist/assets/{index.es293-7O62HKoU.js → index.es315-7O62HKoU.js} +0 -0
  102. /package/dist/assets/{index.es294-BPT9niGB.js → index.es316-BPT9niGB.js} +0 -0
  103. /package/dist/assets/{index.es295-Dhn9LcZ4.js → index.es317-Dhn9LcZ4.js} +0 -0
  104. /package/dist/assets/{index.es297-eg146-Ew.js → index.es319-eg146-Ew.js} +0 -0
  105. /package/dist/assets/{index.es298-Du268qiB.js → index.es320-Du268qiB.js} +0 -0
  106. /package/dist/assets/{index.es299-fje9CFhw.js → index.es321-fje9CFhw.js} +0 -0
  107. /package/dist/assets/{index.es300-BwXTMy5W.js → index.es322-BwXTMy5W.js} +0 -0
  108. /package/dist/assets/{index.es301-3xVqZejG.js → index.es323-3xVqZejG.js} +0 -0
  109. /package/dist/assets/{index.es302-xW4inM5L.js → index.es324-xW4inM5L.js} +0 -0
  110. /package/dist/assets/{index.es303-DHo0CJ0O.js → index.es325-DHo0CJ0O.js} +0 -0
  111. /package/dist/assets/{index.es306-C3t2pwGQ.js → index.es328-C3t2pwGQ.js} +0 -0
  112. /package/dist/assets/{index.es307-DNquZEk8.js → index.es329-DNquZEk8.js} +0 -0
  113. /package/dist/assets/{index.es309-BHOwM8T6.js → index.es331-BHOwM8T6.js} +0 -0
  114. /package/dist/assets/{index.es310-DxSadP1t.js → index.es332-DxSadP1t.js} +0 -0
  115. /package/dist/assets/{index.es311-DbXoA79R.js → index.es333-DbXoA79R.js} +0 -0
  116. /package/dist/assets/{index.es313-Bp6g37R7.js → index.es335-Bp6g37R7.js} +0 -0
  117. /package/dist/assets/{index.es314-sacFqUAJ.js → index.es336-sacFqUAJ.js} +0 -0
  118. /package/dist/assets/{index.es316-C7gG9l05.js → index.es338-C7gG9l05.js} +0 -0
  119. /package/dist/assets/{index.es317-Dsg_Bt_b.js → index.es339-Dsg_Bt_b.js} +0 -0
  120. /package/dist/assets/{index.es320-D9R-vmeu.js → index.es342-D9R-vmeu.js} +0 -0
  121. /package/dist/assets/{index.es321-BPhBrDlE.js → index.es343-BPhBrDlE.js} +0 -0
  122. /package/dist/assets/{index.es322-C-TU5hQ_.js → index.es344-C-TU5hQ_.js} +0 -0
  123. /package/dist/assets/{index.es323-DtFQj3wx.js → index.es345-DtFQj3wx.js} +0 -0
  124. /package/dist/assets/{index.es324-m2LEI-9-.js → index.es346-m2LEI-9-.js} +0 -0
  125. /package/dist/assets/{index.es325-BoXegm-a.js → index.es347-BoXegm-a.js} +0 -0
  126. /package/dist/assets/{index.es326-B9wLZaAG.js → index.es348-B9wLZaAG.js} +0 -0
  127. /package/dist/assets/{index.es327-ClGRhx96.js → index.es349-ClGRhx96.js} +0 -0
  128. /package/dist/assets/{index.es328-DEIpsLCJ.js → index.es350-DEIpsLCJ.js} +0 -0
  129. /package/dist/assets/{index.es329-BgYniUM_.js → index.es351-BgYniUM_.js} +0 -0
  130. /package/dist/assets/{index.es330-COcR7UxN.js → index.es352-COcR7UxN.js} +0 -0
  131. /package/dist/assets/{index.es331-BjQB5zDj.js → index.es353-BjQB5zDj.js} +0 -0
  132. /package/dist/assets/{index.es332-C-nORZOA.js → index.es354-C-nORZOA.js} +0 -0
  133. /package/dist/assets/{index.es336-BX77sIaO.js → index.es358-BX77sIaO.js} +0 -0
  134. /package/dist/assets/{index.es338-B-DoSBHF.js → index.es360-B-DoSBHF.js} +0 -0
  135. /package/dist/assets/{index.es339-bCA53EVm.js → index.es361-bCA53EVm.js} +0 -0
  136. /package/dist/assets/{index.es340-w-ucz2PV.js → index.es362-w-ucz2PV.js} +0 -0
  137. /package/dist/assets/{index.es341-Dayu4EKP.js → index.es363-Dayu4EKP.js} +0 -0
  138. /package/dist/assets/{index.es343-DKXYxT9g.js → index.es365-DKXYxT9g.js} +0 -0
  139. /package/dist/assets/{index.es346-DfxzS6Rs.js → index.es368-DfxzS6Rs.js} +0 -0
  140. /package/dist/assets/{index.es347-SKMF96pI.js → index.es369-SKMF96pI.js} +0 -0
  141. /package/dist/assets/{index.es348-ajMbGru0.js → index.es370-ajMbGru0.js} +0 -0
  142. /package/dist/assets/{index.es349--30QC5Em.js → index.es371--30QC5Em.js} +0 -0
  143. /package/dist/assets/{index.es352-B430Bg39.js → index.es374-B430Bg39.js} +0 -0
  144. /package/dist/assets/{index.es356-CM8KxXT1.js → index.es378-CM8KxXT1.js} +0 -0
  145. /package/dist/assets/{index.es357-B1SYOhNW.js → index.es379-B1SYOhNW.js} +0 -0
  146. /package/dist/assets/{index.es359-DkBy-JyN.js → index.es381-DkBy-JyN.js} +0 -0
  147. /package/dist/assets/{index.es363-BILxekzW.js → index.es385-BILxekzW.js} +0 -0
  148. /package/dist/assets/{index.es364-C5wWYbrZ.js → index.es386-C5wWYbrZ.js} +0 -0
  149. /package/dist/assets/{index.es365-HzYwdGDm.js → index.es387-HzYwdGDm.js} +0 -0
  150. /package/dist/assets/{index.es366-T-Tgc4AT.js → index.es388-T-Tgc4AT.js} +0 -0
  151. /package/dist/assets/{index.es367-ifBTmRxC.js → index.es389-ifBTmRxC.js} +0 -0
  152. /package/dist/assets/{index.es372-BMj5Y0dO.js → index.es394-BMj5Y0dO.js} +0 -0
  153. /package/dist/assets/{index.es374-BjABl1g7.js → index.es396-BjABl1g7.js} +0 -0
  154. /package/dist/assets/{index.es375-xI-RfyKK.js → index.es397-xI-RfyKK.js} +0 -0
  155. /package/dist/assets/{index.es376-ySlJ1b_l.js → index.es398-ySlJ1b_l.js} +0 -0
  156. /package/dist/assets/{index.es379-BQoSv7ci.js → index.es401-BQoSv7ci.js} +0 -0
  157. /package/dist/assets/{index.es380-w8dY5SsB.js → index.es402-w8dY5SsB.js} +0 -0
  158. /package/dist/assets/{index.es381-TU54ms6u.js → index.es403-TU54ms6u.js} +0 -0
  159. /package/dist/assets/{index.es382-DREVFZK8.js → index.es404-DREVFZK8.js} +0 -0
  160. /package/dist/assets/{index.es383-BfivnA6A.js → index.es405-BfivnA6A.js} +0 -0
  161. /package/dist/assets/{index.es384-P4WzXJd0.js → index.es406-P4WzXJd0.js} +0 -0
  162. /package/dist/assets/{index.es385-BAng5TT0.js → index.es407-BAng5TT0.js} +0 -0
  163. /package/dist/assets/{index.es387-B5lbUyaz.js → index.es409-B5lbUyaz.js} +0 -0
  164. /package/dist/assets/{index.es388-mebxcVVE.js → index.es410-mebxcVVE.js} +0 -0
  165. /package/dist/assets/{index.es390-XBlWyCtg.js → index.es412-XBlWyCtg.js} +0 -0
  166. /package/dist/assets/{index.es391-BfCpw3nA.js → index.es413-BfCpw3nA.js} +0 -0
  167. /package/dist/assets/{index.es393-Cc5clBb7.js → index.es415-Cc5clBb7.js} +0 -0
  168. /package/dist/assets/{index.es394-IuBKFhSY.js → index.es416-IuBKFhSY.js} +0 -0
  169. /package/dist/assets/{index.es396-Du5NY7AG.js → index.es418-Du5NY7AG.js} +0 -0
  170. /package/dist/assets/{index.es397-Bvotw-X0.js → index.es419-Bvotw-X0.js} +0 -0
  171. /package/dist/assets/{index.es398-UIAJJxZW.js → index.es420-UIAJJxZW.js} +0 -0
  172. /package/dist/assets/{index.es400-D9-PGadD.js → index.es422-D9-PGadD.js} +0 -0
  173. /package/dist/assets/{index.es402-sdHcTMYB.js → index.es424-sdHcTMYB.js} +0 -0
  174. /package/dist/assets/{index.es403-Ci6OQyBP.js → index.es425-Ci6OQyBP.js} +0 -0
  175. /package/dist/assets/{index.es404-BC5c_5Pe.js → index.es426-BC5c_5Pe.js} +0 -0
  176. /package/dist/assets/{index.es405-Tz6hzZYG.js → index.es427-Tz6hzZYG.js} +0 -0
  177. /package/dist/assets/{index.es406-DB_GagMm.js → index.es428-DB_GagMm.js} +0 -0
  178. /package/dist/assets/{index.es407-DLbgOhZU.js → index.es429-DLbgOhZU.js} +0 -0
  179. /package/dist/assets/{index.es408-B0XVJmRM.js → index.es430-B0XVJmRM.js} +0 -0
  180. /package/dist/assets/{index.es411-shcSOmrb.js → index.es433-shcSOmrb.js} +0 -0
  181. /package/dist/assets/{index.es412-D4Tzg5kh.js → index.es434-D4Tzg5kh.js} +0 -0
  182. /package/dist/assets/{index.es413-Deuh7S70.js → index.es435-Deuh7S70.js} +0 -0
  183. /package/dist/assets/{index.es414-BUEGK8hf.js → index.es436-BUEGK8hf.js} +0 -0
  184. /package/dist/assets/{index.es415-BNioltXt.js → index.es437-BNioltXt.js} +0 -0
  185. /package/dist/assets/{index.es416-JqZropPD.js → index.es438-JqZropPD.js} +0 -0
  186. /package/dist/assets/{index.es419-LKU2TuZ1.js → index.es441-LKU2TuZ1.js} +0 -0
  187. /package/dist/assets/{index.es420-BFLt1xDp.js → index.es442-BFLt1xDp.js} +0 -0
  188. /package/dist/assets/{index.es421-DKykz6zU.js → index.es443-DKykz6zU.js} +0 -0
  189. /package/dist/assets/{index.es422-B3ZDOciz.js → index.es444-B3ZDOciz.js} +0 -0
  190. /package/dist/assets/{index.es423-CSHBycmS.js → index.es445-CSHBycmS.js} +0 -0
  191. /package/dist/assets/{index.es424-BIEUsx6d.js → index.es446-BIEUsx6d.js} +0 -0
  192. /package/dist/assets/{index.es425-B48N-Iqd.js → index.es447-B48N-Iqd.js} +0 -0
  193. /package/dist/assets/{index.es426-BY-TUvya.js → index.es448-BY-TUvya.js} +0 -0
  194. /package/dist/assets/{index.es427-zocC4JxJ.js → index.es449-zocC4JxJ.js} +0 -0
  195. /package/dist/assets/{index.es429-Cza_XSSt.js → index.es451-Cza_XSSt.js} +0 -0
  196. /package/dist/assets/{index.es430-Bg-kzb6g.js → index.es452-Bg-kzb6g.js} +0 -0
  197. /package/dist/assets/{index.es431-DhUJRlN_.js → index.es453-DhUJRlN_.js} +0 -0
  198. /package/dist/assets/{index.es433-C8lEn-DE.js → index.es455-C8lEn-DE.js} +0 -0
  199. /package/dist/assets/{index.es434-DhMKtDLN.js → index.es456-DhMKtDLN.js} +0 -0
  200. /package/dist/assets/{index.es435-CwjWoCRV.js → index.es457-CwjWoCRV.js} +0 -0
  201. /package/dist/assets/{index.es436-CzouJOBO.js → index.es458-CzouJOBO.js} +0 -0
  202. /package/dist/assets/{index.es437-B1bQXN8T.js → index.es459-B1bQXN8T.js} +0 -0
  203. /package/dist/assets/{index.es439-5LuOXUq_.js → index.es461-5LuOXUq_.js} +0 -0
  204. /package/dist/assets/{index.es440-DWJ3fJO_.js → index.es462-DWJ3fJO_.js} +0 -0
  205. /package/dist/assets/{index.es441-DJlmqQ1C.js → index.es463-DJlmqQ1C.js} +0 -0
  206. /package/dist/assets/{index.es442-QhoSD0DR.js → index.es464-QhoSD0DR.js} +0 -0
  207. /package/dist/assets/{index.es445-Be6lgOlo.js → index.es467-Be6lgOlo.js} +0 -0
  208. /package/dist/assets/{index.es447-BJ4Li9vH.js → index.es469-BJ4Li9vH.js} +0 -0
  209. /package/dist/assets/{index.es448-DQVVAn-B.js → index.es470-DQVVAn-B.js} +0 -0
  210. /package/dist/assets/{index.es449-BJGe-b2p.js → index.es471-BJGe-b2p.js} +0 -0
  211. /package/dist/assets/{index.es451-BLhTXw86.js → index.es473-BLhTXw86.js} +0 -0
  212. /package/dist/assets/{index.es453-atvbtKCR.js → index.es475-atvbtKCR.js} +0 -0
  213. /package/dist/assets/{index.es455-DkLiglaE.js → index.es477-DkLiglaE.js} +0 -0
  214. /package/dist/assets/{index.es456-C1w2a3ep.js → index.es478-C1w2a3ep.js} +0 -0
  215. /package/dist/assets/{index.es459-Cf8iN4DR.js → index.es481-Cf8iN4DR.js} +0 -0
  216. /package/dist/assets/{index.es460-COK4E0Yg.js → index.es482-COK4E0Yg.js} +0 -0
  217. /package/dist/assets/{index.es461-BknIz3MU.js → index.es483-BknIz3MU.js} +0 -0
  218. /package/dist/assets/{index.es463-BeQkCIfX.js → index.es485-BeQkCIfX.js} +0 -0
  219. /package/dist/assets/{index.es465-BSxZ-RaX.js → index.es487-BSxZ-RaX.js} +0 -0
  220. /package/dist/assets/{index.es466-C7L56vO4.js → index.es488-C7L56vO4.js} +0 -0
  221. /package/dist/assets/{index.es467-CUnW07Te.js → index.es489-CUnW07Te.js} +0 -0
  222. /package/dist/assets/{index.es468-C1XDQQGZ.js → index.es490-C1XDQQGZ.js} +0 -0
  223. /package/dist/assets/{index.es469-CQjiPCtT.js → index.es491-CQjiPCtT.js} +0 -0
  224. /package/dist/assets/{index.es470-DQ1-QYvQ.js → index.es492-DQ1-QYvQ.js} +0 -0
  225. /package/dist/assets/{index.es472-BbSNqyBO.js → index.es494-BbSNqyBO.js} +0 -0
  226. /package/dist/assets/{index.es474-CB2ApiWb.js → index.es496-CB2ApiWb.js} +0 -0
  227. /package/dist/assets/{index.es476-B_m7g4N7.js → index.es498-B_m7g4N7.js} +0 -0
  228. /package/dist/assets/{index.es477-B6W0miNI.js → index.es499-B6W0miNI.js} +0 -0
  229. /package/dist/assets/{index.es478-BMR_PYu6.js → index.es500-BMR_PYu6.js} +0 -0
  230. /package/dist/assets/{index.es480-Dj6nwHGl.js → index.es502-Dj6nwHGl.js} +0 -0
  231. /package/dist/assets/{index.es481-BpWG_bgh.js → index.es503-BpWG_bgh.js} +0 -0
  232. /package/dist/assets/{index.es482-BVUVsWT6.js → index.es504-BVUVsWT6.js} +0 -0
  233. /package/dist/assets/{index.es483-CAQ2eGtk.js → index.es505-CAQ2eGtk.js} +0 -0
  234. /package/dist/assets/{index.es484-BFOHcciG.js → index.es506-BFOHcciG.js} +0 -0
  235. /package/dist/assets/{index.es485-CdO5JTpU.js → index.es507-CdO5JTpU.js} +0 -0
  236. /package/dist/assets/{index.es486-CJaU5se_.js → index.es508-CJaU5se_.js} +0 -0
  237. /package/dist/assets/{index.es487-DYoNaHQp.js → index.es509-DYoNaHQp.js} +0 -0
  238. /package/dist/assets/{index.es488-m4uW47V2.js → index.es510-m4uW47V2.js} +0 -0
  239. /package/dist/assets/{index.es491-nyqBNV6O.js → index.es513-nyqBNV6O.js} +0 -0
  240. /package/dist/assets/{index.es492-C6j12Q_x.js → index.es514-C6j12Q_x.js} +0 -0
  241. /package/dist/assets/{index.es493-7A4Fjokl.js → index.es515-7A4Fjokl.js} +0 -0
  242. /package/dist/assets/{index.es494-CB0Krxn9.js → index.es516-CB0Krxn9.js} +0 -0
  243. /package/dist/assets/{index.es495-DCE3LsBG.js → index.es517-DCE3LsBG.js} +0 -0
  244. /package/dist/assets/{index.es496-C3FkfJm5.js → index.es518-C3FkfJm5.js} +0 -0
  245. /package/dist/assets/{index.es499-CVw76BM1.js → index.es521-CVw76BM1.js} +0 -0
  246. /package/dist/assets/{index.es500-HnGAYVZD.js → index.es522-HnGAYVZD.js} +0 -0
  247. /package/dist/assets/{index.es501-BVz_zdnA.js → index.es523-BVz_zdnA.js} +0 -0
  248. /package/dist/assets/{index.es502-C3khCPGq.js → index.es524-C3khCPGq.js} +0 -0
  249. /package/dist/assets/{index.es503-D-2ljcwZ.js → index.es525-D-2ljcwZ.js} +0 -0
  250. /package/dist/assets/{index.es504-Cv9koXgw.js → index.es526-Cv9koXgw.js} +0 -0
  251. /package/dist/assets/{index.es505-CD_QflpE.js → index.es527-CD_QflpE.js} +0 -0
  252. /package/dist/assets/{index.es506-DRW-0cLl.js → index.es528-DRW-0cLl.js} +0 -0
  253. /package/dist/assets/{index.es507-C-_shW-Y.js → index.es529-C-_shW-Y.js} +0 -0
  254. /package/dist/assets/{index.es508-LGGdnPYs.js → index.es530-LGGdnPYs.js} +0 -0
  255. /package/dist/assets/{index.es509-C3mMm8J8.js → index.es531-C3mMm8J8.js} +0 -0
  256. /package/dist/assets/{index.es510-BzJJZx-M.js → index.es532-BzJJZx-M.js} +0 -0
  257. /package/dist/assets/{index.es511-BXkSAIEj.js → index.es533-BXkSAIEj.js} +0 -0
  258. /package/dist/assets/{index.es512-BgDCqdQA.js → index.es534-BgDCqdQA.js} +0 -0
  259. /package/dist/assets/{index.es513-C8M2exoo.js → index.es535-C8M2exoo.js} +0 -0
  260. /package/dist/assets/{index.es514-DHJKELXO.js → index.es536-DHJKELXO.js} +0 -0
  261. /package/dist/assets/{index.es515-Cuk6v7N8.js → index.es537-Cuk6v7N8.js} +0 -0
  262. /package/dist/assets/{index.es516-DH5Ifo-i.js → index.es538-DH5Ifo-i.js} +0 -0
  263. /package/dist/assets/{index.es517-E3gJ1_iC.js → index.es539-E3gJ1_iC.js} +0 -0
  264. /package/dist/assets/{index.es518-DAi9KRSo.js → index.es540-DAi9KRSo.js} +0 -0
  265. /package/dist/assets/{index.es519-D7oLnXFd.js → index.es541-D7oLnXFd.js} +0 -0
  266. /package/dist/assets/{index.es520-BfjtVDDH.js → index.es542-BfjtVDDH.js} +0 -0
  267. /package/dist/assets/{index.es521-DnULxvSX.js → index.es543-DnULxvSX.js} +0 -0
  268. /package/dist/assets/{index.es522-CkXjmgJE.js → index.es544-CkXjmgJE.js} +0 -0
  269. /package/dist/assets/{index.es523-CfQXZHmo.js → index.es545-CfQXZHmo.js} +0 -0
  270. /package/dist/assets/{index.es524-DWedfzmr.js → index.es546-DWedfzmr.js} +0 -0
  271. /package/dist/assets/{index.es525-DUszq2jm.js → index.es547-DUszq2jm.js} +0 -0
  272. /package/dist/assets/{index.es526-B7mTdjB0.js → index.es548-B7mTdjB0.js} +0 -0
  273. /package/dist/assets/{index.es527-D5KoaKCx.js → index.es549-D5KoaKCx.js} +0 -0
  274. /package/dist/assets/{index.es528-BfHTSMKl.js → index.es550-BfHTSMKl.js} +0 -0
  275. /package/dist/assets/{index.es529-B0m2ddpp.js → index.es551-B0m2ddpp.js} +0 -0
  276. /package/dist/assets/{index.es530-CyktbL80.js → index.es552-CyktbL80.js} +0 -0
  277. /package/dist/assets/{index.es531-Csfq5Kiy.js → index.es553-Csfq5Kiy.js} +0 -0
  278. /package/dist/assets/{index.es532-CafNBF8u.js → index.es554-CafNBF8u.js} +0 -0
  279. /package/dist/assets/{index.es533-CTRr51gU.js → index.es555-CTRr51gU.js} +0 -0
  280. /package/dist/assets/{index.es534-D4h5O-jR.js → index.es556-D4h5O-jR.js} +0 -0
  281. /package/dist/assets/{index.es535-C39BiMTA.js → index.es557-C39BiMTA.js} +0 -0
  282. /package/dist/assets/{index.es536-Ddv68eIx.js → index.es558-Ddv68eIx.js} +0 -0
  283. /package/dist/assets/{index.es537-GBQ2dnAY.js → index.es559-GBQ2dnAY.js} +0 -0
  284. /package/dist/assets/{index.es538-PoHY5YXO.js → index.es560-PoHY5YXO.js} +0 -0
  285. /package/dist/assets/{index.es539-3e1v2bzS.js → index.es561-3e1v2bzS.js} +0 -0
  286. /package/dist/assets/{index.es540-CS3Unz2-.js → index.es562-CS3Unz2-.js} +0 -0
  287. /package/dist/assets/{index.es541-bN70gL4F.js → index.es563-bN70gL4F.js} +0 -0
  288. /package/dist/assets/{index.es542-CmCqftbK.js → index.es564-CmCqftbK.js} +0 -0
  289. /package/dist/assets/{index.es543-Ds-gbosJ.js → index.es565-Ds-gbosJ.js} +0 -0
  290. /package/dist/assets/{index.es544-CjDtw9vr.js → index.es566-CjDtw9vr.js} +0 -0
  291. /package/dist/assets/{index.es545-BthQWCQV.js → index.es567-BthQWCQV.js} +0 -0
  292. /package/dist/assets/{index.es546-DqwNpetd.js → index.es568-DqwNpetd.js} +0 -0
  293. /package/dist/assets/{index.es547-Bw305WKR.js → index.es569-Bw305WKR.js} +0 -0
  294. /package/dist/assets/{index.es548-DXbdFlpD.js → index.es570-DXbdFlpD.js} +0 -0
  295. /package/dist/assets/{index.es549-L9t79GZl.js → index.es571-L9t79GZl.js} +0 -0
  296. /package/dist/assets/{index.es550-CbfX1IO0.js → index.es572-CbfX1IO0.js} +0 -0
  297. /package/dist/assets/{index.es551-DBQeEorK.js → index.es573-DBQeEorK.js} +0 -0
  298. /package/dist/assets/{index.es552-BEBZ7ncR.js → index.es574-BEBZ7ncR.js} +0 -0
  299. /package/dist/assets/{index.es553-Bkuqu6BP.js → index.es575-Bkuqu6BP.js} +0 -0
  300. /package/dist/assets/{index.es554-D0r3Knsf.js → index.es576-D0r3Knsf.js} +0 -0
  301. /package/dist/assets/{index.es555-CVO1_9PV.js → index.es577-CVO1_9PV.js} +0 -0
package/dist/api-doc.yaml CHANGED
@@ -1,54 +1,112 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: Malloy Publisher - Semantic Model Serving API
4
- description:
5
- The Malloy Publisher - Semantic Model Serving API serves Malloy packages. A Malloy package is a directory of Malloy models (.malloy files),
6
- Malloy notebooks (.malloynb files), and embedded datbases (.parque files) with a malloy-publisher.json manifest at the package's root directory.
7
- For example, see the Malloy samples packages (https://github.com/malloydata/malloy-samples) repo.
4
+ description: |
5
+ The Malloy Publisher - Semantic Model Serving API provides comprehensive access to Malloy packages and their associated resources.
6
+ A Malloy package is a directory containing Malloy models (.malloy files), Malloy notebooks (.malloynb files), and embedded databases
7
+ (.parquet files) with a malloy-publisher.json manifest at the package's root directory.
8
+
9
+ ## Key Features
10
+
11
+ - **Project Management**: Create and manage projects with their associated packages and connections
12
+ - **Package Lifecycle**: Full CRUD operations for Malloy packages and their versions
13
+ - **Model & Notebook Access**: Retrieve and execute Malloy models and notebooks
14
+ - **Connection Management**: Secure database connection configuration and testing
15
+ - **Query Execution**: Execute queries against models and retrieve results
16
+ - **Watch Mode**: Real-time file watching for development workflows
17
+
18
+ ## Resource Hierarchy
19
+
20
+ The API follows a hierarchical resource structure:
21
+ ```
22
+ Projects
23
+ ├── Connections
24
+ ├── Packages
25
+ │ ├── Models
26
+ │ ├── Notebooks
27
+ │ ├── Databases
28
+ │ └── Schedules
29
+ └── Watch Mode
30
+ ```
31
+
32
+ For examples, see the Malloy samples packages (https://github.com/malloydata/malloy-samples) repository.
8
33
  version: v0
34
+
9
35
  servers:
10
36
  - url: /api/v0/
37
+ description: PublisherAPI server
38
+
39
+ tags:
40
+ - name: publisher
41
+ description: Publisher status and health check operations
42
+ - name: projects
43
+ description: Project lifecycle management including creation, configuration, and deletion of data modeling projects
44
+ - name: connections
45
+ description: Database connection management for secure data source configuration and access
46
+ - name: packages
47
+ description: Package management for Malloy data models, including versioning and distribution
48
+ - name: models
49
+ description: Malloy model access and compilation operations
50
+ - name: notebooks
51
+ description: Malloy notebook access and execution operations
52
+ - name: queryresults
53
+ description: Query execution and result retrieval operations
54
+ - name: databases
55
+ description: Embedded database management and access
56
+ - name: schedules
57
+ description: Scheduled task management and monitoring
58
+ - name: watch-mode
59
+ description: Real-time file watching for development workflows
11
60
 
12
61
  paths:
13
62
  /status:
14
63
  get:
15
64
  tags:
16
- - publisher
65
+ - publisher
17
66
  operationId: get-status
18
- summary: Server status
67
+ summary: Get server status and health information
68
+ description: |
69
+ Returns the current status of the Malloy Publisher server, including initialization state,
70
+ available projects, and server timestamp. This endpoint is useful for health checks and
71
+ monitoring server availability.
19
72
  responses:
20
- '200':
73
+ "200":
21
74
  description: Returns server status
22
75
  content:
23
76
  application/json:
24
77
  schema:
25
- $ref: '#/components/schemas/ServerStatus'
78
+ $ref: "#/components/schemas/ServerStatus"
26
79
 
27
80
  /connections/test:
28
81
  post:
29
82
  tags:
30
83
  - connections
31
84
  operationId: test-connection-configuration
32
- summary: Test a connection configuration before adding it to the project
85
+ summary: Test database connection configuration
86
+ description: |
87
+ Validates a database connection configuration without adding it to any project.
88
+ This endpoint allows you to test connection parameters, credentials, and network
89
+ connectivity before committing the connection to a project. Useful for troubleshooting
90
+ connection issues and validating configurations during setup.
33
91
  requestBody:
34
92
  required: true
35
93
  content:
36
94
  application/json:
37
95
  schema:
38
- $ref: '#/components/schemas/Connection'
96
+ $ref: "#/components/schemas/Connection"
39
97
  responses:
40
98
  "200":
41
99
  description: Connection test result
42
100
  content:
43
101
  application/json:
44
102
  schema:
45
- $ref: '#/components/schemas/ConnectionStatus'
103
+ $ref: "#/components/schemas/ConnectionStatus"
46
104
  "400":
47
- $ref: "#/components/responses/BadRequestError"
105
+ $ref: "#/components/responses/BadRequest"
48
106
  "401":
49
- $ref: "#/components/responses/UnauthorizedError"
107
+ $ref: "#/components/responses/Unauthorized"
50
108
  "404":
51
- $ref: "#/components/responses/NotFoundError"
109
+ $ref: "#/components/responses/NotFound"
52
110
  "500":
53
111
  $ref: "#/components/responses/InternalServerError"
54
112
 
@@ -57,10 +115,14 @@ paths:
57
115
  tags:
58
116
  - projects
59
117
  operationId: list-projects
60
- summary: Returns a list of the Projects hosted on this server.
118
+ summary: List all available projects
119
+ description: |
120
+ Retrieves a list of all projects currently hosted on this Malloy Publisher server.
121
+ Each project contains metadata about its packages, connections, and configuration.
122
+ This endpoint is typically used to discover available projects and their basic information.
61
123
  responses:
62
124
  "200":
63
- description: A list of the Projects names.
125
+ description: A list of all available projects
64
126
  content:
65
127
  application/json:
66
128
  schema:
@@ -68,22 +130,24 @@ paths:
68
130
  items:
69
131
  $ref: "#/components/schemas/Project"
70
132
  "401":
71
- $ref: "#/components/responses/UnauthorizedError"
133
+ $ref: "#/components/responses/Unauthorized"
72
134
  "500":
73
135
  $ref: "#/components/responses/InternalServerError"
74
136
  post:
75
137
  tags:
76
138
  - projects
77
139
  operationId: create-project
78
- summary: Creates a new project.
140
+ summary: Create a new project
141
+ description: |
142
+ Creates a new Malloy project with the specified configuration. A project serves as a
143
+ container for packages, connections, and other resources. The project will be initialized
144
+ with the provided metadata and can immediately accept packages and connections.
79
145
  requestBody:
80
146
  required: true
81
147
  content:
82
148
  application/json:
83
149
  schema:
84
- type: object
85
- items:
86
- $ref: '#/components/schemas/Project'
150
+ $ref: "#/components/schemas/Project"
87
151
  responses:
88
152
  "200":
89
153
  description: Returns the project created
@@ -92,7 +156,7 @@ paths:
92
156
  schema:
93
157
  $ref: "#/components/schemas/Project"
94
158
  "401":
95
- $ref: "#/components/responses/UnauthorizedError"
159
+ $ref: "#/components/responses/Unauthorized"
96
160
  "500":
97
161
  $ref: "#/components/responses/InternalServerError"
98
162
 
@@ -101,14 +165,18 @@ paths:
101
165
  tags:
102
166
  - projects
103
167
  operationId: get-project
104
- summary: Returns metadata about the project.
168
+ summary: Get project details and metadata
169
+ description: |
170
+ Retrieves detailed information about a specific project, including its packages,
171
+ connections, configuration, and metadata. The reload parameter can be used to
172
+ refresh the project state from disk before returning the information.
105
173
  parameters:
106
174
  - name: projectName
107
175
  in: path
108
- description: Name of project
176
+ description: Name of the project
109
177
  required: true
110
178
  schema:
111
- type: string
179
+ $ref: "#/components/schemas/IdentifierPattern"
112
180
  - name: reload
113
181
  in: query
114
182
  description: Load / reload the project before returning result
@@ -117,37 +185,39 @@ paths:
117
185
  type: boolean
118
186
  responses:
119
187
  "200":
120
- description: Metadata about the project.
188
+ description: Project details and metadata
121
189
  content:
122
190
  application/json:
123
191
  schema:
124
192
  $ref: "#/components/schemas/Project"
125
193
  "401":
126
- $ref: "#/components/responses/UnauthorizedError"
194
+ $ref: "#/components/responses/Unauthorized"
127
195
  "404":
128
- $ref: "#/components/responses/NotFoundError"
196
+ $ref: "#/components/responses/NotFound"
129
197
  "500":
130
198
  $ref: "#/components/responses/InternalServerError"
131
199
  patch:
132
200
  tags:
133
201
  - projects
134
202
  operationId: update-project
135
- summary: Updates a project.
203
+ summary: Update project configuration
204
+ description: |
205
+ Updates the configuration and metadata of an existing project. This allows you to
206
+ modify project settings, update the README, change the location, or update other
207
+ project-level properties. The project must exist and be accessible.
136
208
  parameters:
137
209
  - name: projectName
138
210
  in: path
139
- description: Name of project
211
+ description: Name of the project
140
212
  required: true
141
213
  schema:
142
- type: string
214
+ $ref: "#/components/schemas/IdentifierPattern"
143
215
  requestBody:
144
216
  required: true
145
217
  content:
146
218
  application/json:
147
219
  schema:
148
- type: object
149
- items:
150
- $ref: '#/components/schemas/Project'
220
+ $ref: "#/components/schemas/Project"
151
221
  responses:
152
222
  "200":
153
223
  description: Returns the project updated
@@ -156,21 +226,25 @@ paths:
156
226
  schema:
157
227
  $ref: "#/components/schemas/Project"
158
228
  "401":
159
- $ref: "#/components/responses/UnauthorizedError"
229
+ $ref: "#/components/responses/Unauthorized"
160
230
  "500":
161
231
  $ref: "#/components/responses/InternalServerError"
162
232
  delete:
163
233
  tags:
164
234
  - projects
165
235
  operationId: delete-project
166
- summary: Deletes a project.
236
+ summary: Delete a project
237
+ description: |
238
+ Permanently deletes a project and all its associated resources including packages,
239
+ connections, and metadata. This operation cannot be undone, so use with caution.
240
+ The project must exist and be accessible for deletion.
167
241
  parameters:
168
242
  - name: projectName
169
243
  in: path
170
- description: Name of project
244
+ description: Name of the project
171
245
  required: true
172
246
  schema:
173
- type: string
247
+ $ref: "#/components/schemas/IdentifierPattern"
174
248
  responses:
175
249
  "200":
176
250
  description: Returns the project deleted
@@ -179,9 +253,9 @@ paths:
179
253
  schema:
180
254
  $ref: "#/components/schemas/Project"
181
255
  "401":
182
- $ref: "#/components/responses/UnauthorizedError"
256
+ $ref: "#/components/responses/Unauthorized"
183
257
  "404":
184
- $ref: "#/components/responses/NotFoundError"
258
+ $ref: "#/components/responses/NotFound"
185
259
  "500":
186
260
  $ref: "#/components/responses/InternalServerError"
187
261
 
@@ -190,17 +264,21 @@ paths:
190
264
  tags:
191
265
  - connections
192
266
  operationId: list-connections
193
- summary: Returns a list of the connections in the project.
267
+ summary: List project database connections
268
+ description: |
269
+ Retrieves a list of all database connections configured for the specified project.
270
+ Each connection includes its configuration, type, and status information. This endpoint
271
+ is useful for discovering available data sources within a project.
194
272
  parameters:
195
273
  - name: projectName
196
274
  in: path
197
- description: Name of project
275
+ description: Name of the project
198
276
  required: true
199
277
  schema:
200
- type: string
278
+ $ref: "#/components/schemas/IdentifierPattern"
201
279
  responses:
202
280
  "200":
203
- description: A list of the connections in the project.
281
+ description: A list of database connections in the project
204
282
  content:
205
283
  application/json:
206
284
  schema:
@@ -208,7 +286,7 @@ paths:
208
286
  items:
209
287
  $ref: "#/components/schemas/Connection"
210
288
  "401":
211
- $ref: "#/components/responses/UnauthorizedError"
289
+ $ref: "#/components/responses/Unauthorized"
212
290
  "500":
213
291
  $ref: "#/components/responses/InternalServerError"
214
292
 
@@ -217,65 +295,72 @@ paths:
217
295
  tags:
218
296
  - connections
219
297
  operationId: get-connection
220
- summary: Returns a connection.
298
+ summary: Get connection details
299
+ description: |
300
+ Retrieves detailed information about a specific database connection within a project.
301
+ This includes connection configuration, credentials (if accessible), and metadata.
302
+ Useful for inspecting connection settings and troubleshooting connectivity issues.
221
303
  parameters:
222
304
  - name: projectName
223
305
  in: path
224
- description: Name of project
306
+ description: Name of the project
225
307
  required: true
226
308
  schema:
227
- type: string
309
+ $ref: "#/components/schemas/IdentifierPattern"
228
310
  - name: connectionName
229
311
  in: path
230
- description: Name of connection
312
+ description: Name of the connection
231
313
  required: true
232
314
  schema:
233
- type: string
315
+ $ref: "#/components/schemas/IdentifierPattern"
234
316
  responses:
235
317
  "200":
236
- description: A connection.
318
+ description: Connection details and configuration
237
319
  content:
238
320
  application/json:
239
321
  schema:
240
322
  $ref: "#/components/schemas/Connection"
241
323
  "401":
242
- $ref: "#/components/responses/UnauthorizedError"
324
+ $ref: "#/components/responses/Unauthorized"
243
325
  "404":
244
- $ref: "#/components/responses/NotFoundError"
326
+ $ref: "#/components/responses/NotFound"
245
327
  "500":
246
328
  $ref: "#/components/responses/InternalServerError"
247
329
 
248
-
249
330
  /projects/{projectName}/connections/{connectionName}/test:
250
331
  get:
251
332
  tags:
252
333
  - connections
253
334
  operationId: test-connection
254
- summary: Returns a test.
335
+ summary: Test existing project connection
336
+ description: |
337
+ Tests the connectivity and configuration of an existing database connection within a project.
338
+ This endpoint validates that the connection can be established, credentials are valid,
339
+ and the database is accessible. Useful for monitoring connection health and troubleshooting.
255
340
  parameters:
256
341
  - name: projectName
257
342
  in: path
258
- description: Name of project
343
+ description: Name of the project
259
344
  required: true
260
345
  schema:
261
- type: string
346
+ $ref: "#/components/schemas/IdentifierPattern"
262
347
  - name: connectionName
263
348
  in: path
264
- description: Name of connection
349
+ description: Name of the connection
265
350
  required: true
266
351
  schema:
267
- type: string
352
+ $ref: "#/components/schemas/IdentifierPattern"
268
353
  responses:
269
354
  "200":
270
355
  description: OK
271
356
  content:
272
357
  application/json:
273
358
  schema:
274
- $ref: '#/components/schemas/ConnectionStatus'
359
+ $ref: "#/components/schemas/ConnectionStatus"
275
360
  "401":
276
- $ref: "#/components/responses/UnauthorizedError"
361
+ $ref: "#/components/responses/Unauthorized"
277
362
  "404":
278
- $ref: "#/components/responses/NotFoundError"
363
+ $ref: "#/components/responses/NotFound"
279
364
  "500":
280
365
  $ref: "#/components/responses/InternalServerError"
281
366
 
@@ -285,20 +370,26 @@ paths:
285
370
  - connections
286
371
  operationId: get-sqlsource
287
372
  deprecated: true
288
- summary: Returns a SQL source.
373
+ summary: Get SQL source (deprecated)
374
+ description: |
375
+ **DEPRECATED**: This endpoint is deprecated and may be removed in future versions.
376
+ Use the POST version instead for better security and functionality.
377
+
378
+ Creates a Malloy source from a SQL statement using the specified connection.
379
+ The SQL statement is executed to generate a source definition that can be used in Malloy models.
289
380
  parameters:
290
381
  - name: projectName
291
382
  in: path
292
- description: Name of project
383
+ description: Name of the project
293
384
  required: true
294
385
  schema:
295
- type: string
386
+ $ref: "#/components/schemas/IdentifierPattern"
296
387
  - name: connectionName
297
388
  in: path
298
- description: Name of connection
389
+ description: Name of the connection
299
390
  required: true
300
391
  schema:
301
- type: string
392
+ $ref: "#/components/schemas/IdentifierPattern"
302
393
  - name: sqlStatement
303
394
  in: query
304
395
  description: SQL statement
@@ -307,35 +398,40 @@ paths:
307
398
  type: string
308
399
  responses:
309
400
  "200":
310
- description: A SQL source.
401
+ description: SQL source information
311
402
  content:
312
403
  application/json:
313
404
  schema:
314
405
  $ref: "#/components/schemas/SqlSource"
315
406
  "401":
316
- $ref: "#/components/responses/UnauthorizedError"
407
+ $ref: "#/components/responses/Unauthorized"
317
408
  "404":
318
- $ref: "#/components/responses/NotFoundError"
409
+ $ref: "#/components/responses/NotFound"
319
410
  "500":
320
411
  $ref: "#/components/responses/InternalServerError"
321
412
  post:
322
413
  tags:
323
414
  - connections
324
415
  operationId: post-sqlsource
325
- summary: Returns a SQL source.
416
+ summary: Create SQL source from statement
417
+ description: |
418
+ Creates a Malloy source from a SQL statement using the specified database connection.
419
+ The SQL statement is executed to generate a source definition that can be used in Malloy models.
420
+ This is the preferred method over the deprecated GET version as it provides better security
421
+ and supports larger SQL statements.
326
422
  parameters:
327
423
  - name: projectName
328
424
  in: path
329
- description: Name of project
425
+ description: Name of the project
330
426
  required: true
331
427
  schema:
332
- type: string
428
+ $ref: "#/components/schemas/IdentifierPattern"
333
429
  - name: connectionName
334
430
  in: path
335
- description: Name of connection
431
+ description: Name of the connection
336
432
  required: true
337
433
  schema:
338
- type: string
434
+ $ref: "#/components/schemas/IdentifierPattern"
339
435
  requestBody:
340
436
  description: SQL statement to fetch the SQL source
341
437
  required: true
@@ -348,15 +444,15 @@ paths:
348
444
  type: string
349
445
  responses:
350
446
  "200":
351
- description: A SQL source.
447
+ description: SQL source information
352
448
  content:
353
449
  application/json:
354
450
  schema:
355
451
  $ref: "#/components/schemas/SqlSource"
356
452
  "401":
357
- $ref: "#/components/responses/UnauthorizedError"
453
+ $ref: "#/components/responses/Unauthorized"
358
454
  "404":
359
- $ref: "#/components/responses/NotFoundError"
455
+ $ref: "#/components/responses/NotFound"
360
456
  "500":
361
457
  $ref: "#/components/responses/InternalServerError"
362
458
 
@@ -365,20 +461,24 @@ paths:
365
461
  tags:
366
462
  - connections
367
463
  operationId: get-tablesource
368
- summary: Returns a table source.
464
+ summary: Get table source information
465
+ description: |
466
+ Retrieves information about a specific table or view from the database connection.
467
+ This includes table schema, column definitions, and metadata. The table can be specified
468
+ by either tableKey or tablePath parameters, depending on the database type.
369
469
  parameters:
370
470
  - name: projectName
371
471
  in: path
372
- description: Name of project
472
+ description: Name of the project
373
473
  required: true
374
474
  schema:
375
- type: string
475
+ $ref: "#/components/schemas/IdentifierPattern"
376
476
  - name: connectionName
377
477
  in: path
378
- description: Name of connection
478
+ description: Name of the connection
379
479
  required: true
380
480
  schema:
381
- type: string
481
+ $ref: "#/components/schemas/IdentifierPattern"
382
482
  - name: tableKey
383
483
  in: query
384
484
  description: Table key
@@ -393,15 +493,15 @@ paths:
393
493
  type: string
394
494
  responses:
395
495
  "200":
396
- description: A table source.
496
+ description: Table source information
397
497
  content:
398
498
  application/json:
399
499
  schema:
400
500
  $ref: "#/components/schemas/TableSource"
401
501
  "401":
402
- $ref: "#/components/responses/UnauthorizedError"
502
+ $ref: "#/components/responses/Unauthorized"
403
503
  "404":
404
- $ref: "#/components/responses/NotFoundError"
504
+ $ref: "#/components/responses/NotFound"
405
505
  "500":
406
506
  $ref: "#/components/responses/InternalServerError"
407
507
 
@@ -410,29 +510,33 @@ paths:
410
510
  tags:
411
511
  - connections
412
512
  operationId: list-tables
413
- summary: Returns a list of tables available in the specified schema.
513
+ summary: List tables in database schema
514
+ description: |
515
+ Retrieves a list of all tables and views available in the specified database schema.
516
+ This endpoint is useful for discovering available data sources and exploring the database
517
+ structure. The schema must exist in the connection for this operation to succeed.
414
518
  parameters:
415
519
  - name: projectName
416
520
  in: path
417
- description: Name of project
521
+ description: Name of the project
418
522
  required: true
419
523
  schema:
420
- type: string
524
+ $ref: "#/components/schemas/IdentifierPattern"
421
525
  - name: connectionName
422
526
  in: path
423
- description: Name of connection
527
+ description: Name of the connection
424
528
  required: true
425
529
  schema:
426
- type: string
530
+ $ref: "#/components/schemas/IdentifierPattern"
427
531
  - name: schemaName
428
532
  in: path
429
- description: Name of schema
533
+ description: Name of the schema
430
534
  required: true
431
535
  schema:
432
- type: string
536
+ $ref: "#/components/schemas/IdentifierPattern"
433
537
  responses:
434
538
  "200":
435
- description: A list of table names available in the specified schema.
539
+ description: A list of table names available in the specified schema
436
540
  content:
437
541
  application/json:
438
542
  schema:
@@ -440,9 +544,9 @@ paths:
440
544
  items:
441
545
  type: string
442
546
  "401":
443
- $ref: "#/components/responses/UnauthorizedError"
547
+ $ref: "#/components/responses/Unauthorized"
444
548
  "404":
445
- $ref: "#/components/responses/NotFoundError"
549
+ $ref: "#/components/responses/NotFound"
446
550
  "500":
447
551
  $ref: "#/components/responses/InternalServerError"
448
552
 
@@ -451,23 +555,27 @@ paths:
451
555
  tags:
452
556
  - connections
453
557
  operationId: list-schemas
454
- summary: Returns a list of schemas available in the connection.
558
+ summary: List database schemas
559
+ description: |
560
+ Retrieves a list of all schemas (databases) available in the specified connection.
561
+ Each schema includes metadata such as name, description, and whether it's the default schema.
562
+ This endpoint is useful for exploring the database structure and discovering available data sources.
455
563
  parameters:
456
564
  - name: projectName
457
565
  in: path
458
- description: Name of project
566
+ description: Name of the project
459
567
  required: true
460
568
  schema:
461
- type: string
569
+ $ref: "#/components/schemas/IdentifierPattern"
462
570
  - name: connectionName
463
571
  in: path
464
- description: Name of connection
572
+ description: Name of the connection
465
573
  required: true
466
574
  schema:
467
- type: string
575
+ $ref: "#/components/schemas/IdentifierPattern"
468
576
  responses:
469
577
  "200":
470
- description: A list of schemas available in the connection with metadata.
578
+ description: A list of schemas available in the connection with metadata
471
579
  content:
472
580
  application/json:
473
581
  schema:
@@ -475,9 +583,9 @@ paths:
475
583
  items:
476
584
  $ref: "#/components/schemas/SchemaName"
477
585
  "401":
478
- $ref: "#/components/responses/UnauthorizedError"
586
+ $ref: "#/components/responses/Unauthorized"
479
587
  "404":
480
- $ref: "#/components/responses/NotFoundError"
588
+ $ref: "#/components/responses/NotFound"
481
589
  "500":
482
590
  $ref: "#/components/responses/InternalServerError"
483
591
 
@@ -487,20 +595,26 @@ paths:
487
595
  - connections
488
596
  operationId: get-querydata
489
597
  deprecated: true
490
- summary: Returns a query and its results.
598
+ summary: Execute SQL query (deprecated)
599
+ description: |
600
+ **DEPRECATED**: This endpoint is deprecated and may be removed in future versions.
601
+ Use the POST version instead for better security and functionality.
602
+
603
+ Executes a SQL statement against the specified database connection and returns the results.
604
+ The query results include data, metadata, and execution information.
491
605
  parameters:
492
606
  - name: projectName
493
607
  in: path
494
- description: Name of project
608
+ description: Name of the project
495
609
  required: true
496
610
  schema:
497
- type: string
611
+ $ref: "#/components/schemas/IdentifierPattern"
498
612
  - name: connectionName
499
613
  in: path
500
- description: Name of connection
614
+ description: Name of the connection
501
615
  required: true
502
616
  schema:
503
- type: string
617
+ $ref: "#/components/schemas/IdentifierPattern"
504
618
  - name: sqlStatement
505
619
  in: query
506
620
  description: SQL statement
@@ -515,35 +629,39 @@ paths:
515
629
  type: string
516
630
  responses:
517
631
  "200":
518
- description: A query and its results.
632
+ description: Query execution results
519
633
  content:
520
634
  application/json:
521
635
  schema:
522
636
  $ref: "#/components/schemas/QueryData"
523
637
  "401":
524
- $ref: "#/components/responses/UnauthorizedError"
638
+ $ref: "#/components/responses/Unauthorized"
525
639
  "404":
526
- $ref: "#/components/responses/NotFoundError"
640
+ $ref: "#/components/responses/NotFound"
527
641
  "500":
528
- $ref: "#/components/responses/InternalServerError"
642
+ $ref: "#/components/responses/InternalServerError"
529
643
  post:
530
644
  tags:
531
645
  - connections
532
646
  operationId: post-querydata
533
- summary: Returns a query and its results.
647
+ summary: Execute SQL query
648
+ description: |
649
+ Executes a SQL statement against the specified database connection and returns the results.
650
+ This is the preferred method over the deprecated GET version as it provides better security
651
+ and supports larger SQL statements. The results include data, metadata, and execution information.
534
652
  parameters:
535
653
  - name: projectName
536
654
  in: path
537
- description: Name of project
655
+ description: Name of the project
538
656
  required: true
539
657
  schema:
540
- type: string
658
+ $ref: "#/components/schemas/IdentifierPattern"
541
659
  - name: connectionName
542
660
  in: path
543
- description: Name of connection
661
+ description: Name of the connection
544
662
  required: true
545
663
  schema:
546
- type: string
664
+ $ref: "#/components/schemas/IdentifierPattern"
547
665
  - name: options
548
666
  in: query
549
667
  description: Options
@@ -562,15 +680,15 @@ paths:
562
680
  type: string
563
681
  responses:
564
682
  "200":
565
- description: A query and its results.
683
+ description: Query execution results
566
684
  content:
567
685
  application/json:
568
686
  schema:
569
687
  $ref: "#/components/schemas/QueryData"
570
688
  "401":
571
- $ref: "#/components/responses/UnauthorizedError"
689
+ $ref: "#/components/responses/Unauthorized"
572
690
  "404":
573
- $ref: "#/components/responses/NotFoundError"
691
+ $ref: "#/components/responses/NotFound"
574
692
  "500":
575
693
  $ref: "#/components/responses/InternalServerError"
576
694
 
@@ -580,20 +698,26 @@ paths:
580
698
  - connections
581
699
  operationId: get-temporarytable
582
700
  deprecated: true
583
- summary: Returns a temporary table.
701
+ summary: Create temporary table (deprecated)
702
+ description: |
703
+ **DEPRECATED**: This endpoint is deprecated and may be removed in future versions.
704
+ Use the POST version instead for better security and functionality.
705
+
706
+ Creates a temporary table from a SQL statement using the specified connection.
707
+ Temporary tables are useful for storing intermediate results during complex queries.
584
708
  parameters:
585
709
  - name: projectName
586
710
  in: path
587
- description: Name of project
711
+ description: Name of the project
588
712
  required: true
589
713
  schema:
590
- type: string
714
+ $ref: "#/components/schemas/IdentifierPattern"
591
715
  - name: connectionName
592
716
  in: path
593
- description: Name of connection
717
+ description: Name of the connection
594
718
  required: true
595
719
  schema:
596
- type: string
720
+ $ref: "#/components/schemas/IdentifierPattern"
597
721
  - name: sqlStatement
598
722
  in: query
599
723
  description: SQL statement
@@ -602,35 +726,40 @@ paths:
602
726
  type: string
603
727
  responses:
604
728
  "200":
605
- description: A temporary table.
729
+ description: Temporary table information
606
730
  content:
607
731
  application/json:
608
732
  schema:
609
733
  $ref: "#/components/schemas/TemporaryTable"
610
734
  "401":
611
- $ref: "#/components/responses/UnauthorizedError"
735
+ $ref: "#/components/responses/Unauthorized"
612
736
  "404":
613
- $ref: "#/components/responses/NotFoundError"
737
+ $ref: "#/components/responses/NotFound"
614
738
  "500":
615
739
  $ref: "#/components/responses/InternalServerError"
616
740
  post:
617
741
  tags:
618
742
  - connections
619
743
  operationId: post-temporarytable
620
- summary: Returns a temporary table.
744
+ summary: Create temporary table
745
+ description: |
746
+ Creates a temporary table from a SQL statement using the specified database connection.
747
+ This is the preferred method over the deprecated GET version as it provides better security
748
+ and supports larger SQL statements. Temporary tables are useful for storing intermediate
749
+ results during complex queries and data processing workflows.
621
750
  parameters:
622
751
  - name: projectName
623
752
  in: path
624
- description: Name of project
753
+ description: Name of the project
625
754
  required: true
626
755
  schema:
627
- type: string
756
+ $ref: "#/components/schemas/IdentifierPattern"
628
757
  - name: connectionName
629
758
  in: path
630
- description: Name of connection
759
+ description: Name of the connection
631
760
  required: true
632
761
  schema:
633
- type: string
762
+ $ref: "#/components/schemas/IdentifierPattern"
634
763
  requestBody:
635
764
  description: SQL statement to create the temporary table
636
765
  required: true
@@ -643,35 +772,38 @@ paths:
643
772
  type: string
644
773
  responses:
645
774
  "200":
646
- description: A temporary table.
775
+ description: Temporary table information
647
776
  content:
648
777
  application/json:
649
778
  schema:
650
779
  $ref: "#/components/schemas/TemporaryTable"
651
780
  "401":
652
- $ref: "#/components/responses/UnauthorizedError"
781
+ $ref: "#/components/responses/Unauthorized"
653
782
  "404":
654
- $ref: "#/components/responses/NotFoundError"
783
+ $ref: "#/components/responses/NotFound"
655
784
  "500":
656
785
  $ref: "#/components/responses/InternalServerError"
657
786
 
658
-
659
787
  /projects/{projectName}/packages:
660
788
  get:
661
789
  tags:
662
790
  - packages
663
791
  operationId: list-packages
664
- summary: Returns a list of the Packages hosted on this server.
792
+ summary: List project packages
793
+ description: |
794
+ Retrieves a list of all Malloy packages within the specified project. Each package
795
+ contains models, notebooks, databases, and other resources. This endpoint is useful
796
+ for discovering available packages and their basic metadata.
665
797
  parameters:
666
798
  - name: projectName
667
799
  in: path
668
- description: Name of project
800
+ description: Name of the project
669
801
  required: true
670
802
  schema:
671
- type: string
803
+ $ref: "#/components/schemas/IdentifierPattern"
672
804
  responses:
673
805
  "200":
674
- description: A list of the Packages names.
806
+ description: A list of all packages in the project
675
807
  content:
676
808
  application/json:
677
809
  schema:
@@ -679,31 +811,33 @@ paths:
679
811
  items:
680
812
  $ref: "#/components/schemas/Package"
681
813
  "401":
682
- $ref: "#/components/responses/UnauthorizedError"
814
+ $ref: "#/components/responses/Unauthorized"
683
815
  "500":
684
816
  $ref: "#/components/responses/InternalServerError"
685
817
  "501":
686
- $ref: "#/components/responses/NotImplementedError"
818
+ $ref: "#/components/responses/NotImplemented"
687
819
  post:
688
820
  tags:
689
821
  - packages
690
822
  operationId: create-package
691
- summary: Creates a new package.
823
+ summary: Create a new package
824
+ description: |
825
+ Creates a new Malloy package within the specified project. A package serves as a
826
+ container for models, notebooks, embedded databases, and other resources. The package
827
+ will be initialized with the provided metadata and can immediately accept content.
692
828
  parameters:
693
829
  - name: projectName
694
830
  in: path
695
- description: Name of project
831
+ description: Name of the project
696
832
  required: true
697
833
  schema:
698
- type: string
834
+ $ref: "#/components/schemas/IdentifierPattern"
699
835
  requestBody:
700
836
  required: true
701
837
  content:
702
838
  application/json:
703
839
  schema:
704
- type: object
705
- items:
706
- $ref: '#/components/schemas/Package'
840
+ $ref: "#/components/schemas/Package"
707
841
  responses:
708
842
  "200":
709
843
  description: Returns the package created
@@ -712,25 +846,30 @@ paths:
712
846
  schema:
713
847
  $ref: "#/components/schemas/Package"
714
848
  "401":
715
- $ref: "#/components/responses/UnauthorizedError"
849
+ $ref: "#/components/responses/Unauthorized"
716
850
  "500":
717
851
  $ref: "#/components/responses/InternalServerError"
718
852
  "501":
719
- $ref: "#/components/responses/NotImplementedError"
853
+ $ref: "#/components/responses/NotImplemented"
720
854
 
721
855
  /projects/{projectName}/packages/{packageName}:
722
856
  get:
723
857
  tags:
724
858
  - packages
725
859
  operationId: get-package
726
- summary: Returns the package metadata.
860
+ summary: Get package details and metadata
861
+ description: |
862
+ Retrieves detailed information about a specific package, including its models, notebooks,
863
+ databases, and metadata. The reload parameter can be used to refresh the package state
864
+ from disk before returning the information. The versionId parameter allows access to
865
+ specific package versions.
727
866
  parameters:
728
867
  - name: projectName
729
868
  in: path
730
- description: Name of project
869
+ description: Name of the project
731
870
  required: true
732
871
  schema:
733
- type: string
872
+ $ref: "#/components/schemas/IdentifierPattern"
734
873
  - name: packageName
735
874
  in: path
736
875
  description: Package name
@@ -739,10 +878,10 @@ paths:
739
878
  type: string
740
879
  - name: versionId
741
880
  in: query
742
- description: Version ID
881
+ description: Version identifier for the package
743
882
  required: false
744
883
  schema:
745
- type: string
884
+ $ref: "#/components/schemas/VersionIdPattern"
746
885
  - name: reload
747
886
  in: query
748
887
  description: Load / reload the package before returning result
@@ -751,45 +890,47 @@ paths:
751
890
  type: boolean
752
891
  responses:
753
892
  "200":
754
- description: Package metadata.
893
+ description: Package details and metadata
755
894
  content:
756
895
  application/json:
757
896
  schema:
758
897
  $ref: "#/components/schemas/Package"
759
898
  "401":
760
- $ref: "#/components/responses/UnauthorizedError"
899
+ $ref: "#/components/responses/Unauthorized"
761
900
  "404":
762
- $ref: "#/components/responses/NotFoundError"
901
+ $ref: "#/components/responses/NotFound"
763
902
  "500":
764
903
  $ref: "#/components/responses/InternalServerError"
765
904
  "501":
766
- $ref: "#/components/responses/NotImplementedError"
905
+ $ref: "#/components/responses/NotImplemented"
767
906
  patch:
768
907
  tags:
769
908
  - packages
770
909
  operationId: update-package
771
- summary: Updates a package.
910
+ summary: Update package configuration
911
+ description: |
912
+ Updates the configuration and metadata of an existing package. This allows you to
913
+ modify package settings, update the description, change the location, or update other
914
+ package-level properties. The package must exist and be accessible.
772
915
  parameters:
773
916
  - name: projectName
774
917
  in: path
775
- description: Name of project
918
+ description: Name of the project
776
919
  required: true
777
920
  schema:
778
- type: string
921
+ $ref: "#/components/schemas/IdentifierPattern"
779
922
  - name: packageName
780
923
  in: path
781
- description: Name of package
924
+ description: Name of the package
782
925
  required: true
783
926
  schema:
784
- type: string
927
+ $ref: "#/components/schemas/IdentifierPattern"
785
928
  requestBody:
786
929
  required: true
787
930
  content:
788
931
  application/json:
789
932
  schema:
790
- type: object
791
- items:
792
- $ref: '#/components/schemas/Package'
933
+ $ref: "#/components/schemas/Package"
793
934
  responses:
794
935
  "200":
795
936
  description: Returns the package updated
@@ -798,31 +939,35 @@ paths:
798
939
  schema:
799
940
  $ref: "#/components/schemas/Package"
800
941
  "401":
801
- $ref: "#/components/responses/UnauthorizedError"
942
+ $ref: "#/components/responses/Unauthorized"
802
943
  "404":
803
- $ref: "#/components/responses/NotFoundError"
944
+ $ref: "#/components/responses/NotFound"
804
945
  "500":
805
946
  $ref: "#/components/responses/InternalServerError"
806
947
  "501":
807
- $ref: "#/components/responses/NotImplementedError"
948
+ $ref: "#/components/responses/NotImplemented"
808
949
  delete:
809
950
  tags:
810
951
  - packages
811
952
  operationId: delete-package
812
- summary: Deletes a package.
953
+ summary: Delete a package
954
+ description: |
955
+ Permanently deletes a package and all its associated resources including models,
956
+ notebooks, databases, and metadata. This operation cannot be undone, so use with caution.
957
+ The package must exist and be accessible for deletion.
813
958
  parameters:
814
959
  - name: projectName
815
960
  in: path
816
- description: Name of project
961
+ description: Name of the project
817
962
  required: true
818
963
  schema:
819
- type: string
964
+ $ref: "#/components/schemas/IdentifierPattern"
820
965
  - name: packageName
821
966
  in: path
822
- description: Name of package
967
+ description: Name of the package
823
968
  required: true
824
969
  schema:
825
- type: string
970
+ $ref: "#/components/schemas/IdentifierPattern"
826
971
  responses:
827
972
  "200":
828
973
  description: Returns the package deleted
@@ -831,42 +976,46 @@ paths:
831
976
  schema:
832
977
  $ref: "#/components/schemas/Package"
833
978
  "401":
834
- $ref: "#/components/responses/UnauthorizedError"
979
+ $ref: "#/components/responses/Unauthorized"
835
980
  "404":
836
- $ref: "#/components/responses/NotFoundError"
981
+ $ref: "#/components/responses/NotFound"
837
982
  "500":
838
983
  $ref: "#/components/responses/InternalServerError"
839
984
  "501":
840
- $ref: "#/components/responses/NotImplementedError"
985
+ $ref: "#/components/responses/NotImplemented"
841
986
 
842
987
  /projects/{projectName}/packages/{packageName}/models:
843
988
  get:
844
989
  tags:
845
990
  - models
846
991
  operationId: list-models
847
- summary: Returns a list of relative paths to the models in the package.
992
+ summary: List package models
993
+ description: |
994
+ Retrieves a list of all Malloy models within the specified package. Each model entry
995
+ includes the relative path, package name, and any compilation errors. This endpoint
996
+ is useful for discovering available models and checking their status.
848
997
  parameters:
849
998
  - name: projectName
850
999
  in: path
851
- description: Name of project
1000
+ description: Name of the project
852
1001
  required: true
853
1002
  schema:
854
- type: string
1003
+ $ref: "#/components/schemas/IdentifierPattern"
855
1004
  - name: packageName
856
1005
  in: path
857
- description: Name of package
1006
+ description: Name of the package
858
1007
  required: true
859
1008
  schema:
860
- type: string
1009
+ $ref: "#/components/schemas/IdentifierPattern"
861
1010
  - name: versionId
862
1011
  in: query
863
- description: Version ID
1012
+ description: Version identifier for the package
864
1013
  required: false
865
1014
  schema:
866
- type: string
1015
+ $ref: "#/components/schemas/VersionIdPattern"
867
1016
  responses:
868
1017
  "200":
869
- description: A list of relative paths to the models in the package.
1018
+ description: A list of models in the package
870
1019
  content:
871
1020
  application/json:
872
1021
  schema:
@@ -874,91 +1023,99 @@ paths:
874
1023
  items:
875
1024
  $ref: "#/components/schemas/Model"
876
1025
  "401":
877
- $ref: "#/components/responses/UnauthorizedError"
1026
+ $ref: "#/components/responses/Unauthorized"
878
1027
  "404":
879
- $ref: "#/components/responses/NotFoundError"
1028
+ $ref: "#/components/responses/NotFound"
880
1029
  "500":
881
1030
  $ref: "#/components/responses/InternalServerError"
882
1031
  "501":
883
- $ref: "#/components/responses/NotImplementedError"
1032
+ $ref: "#/components/responses/NotImplemented"
884
1033
 
885
1034
  /projects/{projectName}/packages/{packageName}/models/{path}:
886
1035
  get:
887
1036
  tags:
888
1037
  - models
889
1038
  operationId: get-model
890
- summary: Returns a Malloy model.
1039
+ summary: Get compiled Malloy model
1040
+ description: |
1041
+ Retrieves a compiled Malloy model with its source information, queries, and metadata.
1042
+ The model is compiled using the specified version of the Malloy compiler. This endpoint
1043
+ provides access to the model's structure, sources, and named queries for use in applications.
891
1044
  parameters:
892
1045
  - name: projectName
893
1046
  in: path
894
- description: Name of project
1047
+ description: Name of the project
895
1048
  required: true
896
1049
  schema:
897
- type: string
1050
+ $ref: "#/components/schemas/IdentifierPattern"
898
1051
  - name: packageName
899
1052
  in: path
900
- description: Name of package.
1053
+ description: Name of the package
901
1054
  required: true
902
1055
  schema:
903
1056
  type: string
904
1057
  - name: path
905
1058
  in: path
906
- description: Path to model wihin the package.
1059
+ description: Path to the model within the package
907
1060
  required: true
908
1061
  schema:
909
- type: string
1062
+ $ref: "#/components/schemas/PathPattern"
910
1063
  - name: versionId
911
1064
  in: query
912
- description: Version ID
1065
+ description: Version identifier for the package
913
1066
  required: false
914
1067
  schema:
915
- type: string
1068
+ $ref: "#/components/schemas/VersionIdPattern"
916
1069
  responses:
917
1070
  "200":
918
- description: A Malloy model.
1071
+ description: Compiled Malloy model
919
1072
  content:
920
1073
  "application/json":
921
1074
  schema:
922
1075
  $ref: "#/components/schemas/CompiledModel"
923
1076
  "401":
924
- $ref: "#/components/responses/UnauthorizedError"
1077
+ $ref: "#/components/responses/Unauthorized"
925
1078
  "404":
926
- $ref: "#/components/responses/NotFoundError"
1079
+ $ref: "#/components/responses/NotFound"
927
1080
  "424":
928
1081
  $ref: "#/components/responses/ModelCompilationError"
929
1082
  "500":
930
1083
  $ref: "#/components/responses/InternalServerError"
931
1084
  "501":
932
- $ref: "#/components/responses/NotImplementedError"
1085
+ $ref: "#/components/responses/NotImplemented"
933
1086
 
934
1087
  /projects/{projectName}/packages/{packageName}/notebooks:
935
1088
  get:
936
1089
  tags:
937
1090
  - notebooks
938
1091
  operationId: list-notebooks
939
- summary: Returns a list of relative paths to the notebooks in the package.
1092
+ summary: List package notebooks
1093
+ description: |
1094
+ Retrieves a list of all Malloy notebooks within the specified package. Each notebook entry
1095
+ includes the relative path, package name, and any compilation errors. This endpoint
1096
+ is useful for discovering available notebooks and checking their status.
940
1097
  parameters:
941
1098
  - name: projectName
942
1099
  in: path
943
- description: Name of project
1100
+ description: Name of the project
944
1101
  required: true
945
1102
  schema:
946
- type: string
1103
+ $ref: "#/components/schemas/IdentifierPattern"
947
1104
  - name: packageName
948
1105
  in: path
949
- description: Name of package
1106
+ description: Name of the package
950
1107
  required: true
951
1108
  schema:
952
- type: string
1109
+ $ref: "#/components/schemas/IdentifierPattern"
953
1110
  - name: versionId
954
1111
  in: query
955
- description: Version ID
1112
+ description: Version identifier for the package
956
1113
  required: false
957
1114
  schema:
958
- type: string
1115
+ $ref: "#/components/schemas/VersionIdPattern"
959
1116
  responses:
960
1117
  "200":
961
- description: A list of relative paths to the models in the package.
1118
+ description: A list of models in the package
962
1119
  content:
963
1120
  application/json:
964
1121
  schema:
@@ -966,45 +1123,49 @@ paths:
966
1123
  items:
967
1124
  $ref: "#/components/schemas/Notebook"
968
1125
  "401":
969
- $ref: "#/components/responses/UnauthorizedError"
1126
+ $ref: "#/components/responses/Unauthorized"
970
1127
  "404":
971
- $ref: "#/components/responses/NotFoundError"
1128
+ $ref: "#/components/responses/NotFound"
972
1129
  "500":
973
1130
  $ref: "#/components/responses/InternalServerError"
974
1131
  "501":
975
- $ref: "#/components/responses/NotImplementedError"
1132
+ $ref: "#/components/responses/NotImplemented"
976
1133
 
977
1134
  /projects/{projectName}/packages/{packageName}/notebooks/{path}:
978
1135
  get:
979
1136
  tags:
980
1137
  - notebooks
981
1138
  operationId: get-notebook
982
- summary: Returns a Malloy notebook.
1139
+ summary: Get compiled Malloy notebook
1140
+ description: |
1141
+ Retrieves a compiled Malloy notebook with its cells, results, and metadata. The notebook
1142
+ is compiled using the specified version of the Malloy compiler. This endpoint provides
1143
+ access to the notebook's structure, cells, and execution results for use in applications.
983
1144
  parameters:
984
1145
  - name: projectName
985
1146
  in: path
986
- description: Name of project
1147
+ description: Name of the project
987
1148
  required: true
988
1149
  schema:
989
- type: string
1150
+ $ref: "#/components/schemas/IdentifierPattern"
990
1151
  - name: packageName
991
1152
  in: path
992
- description: Name of package.
1153
+ description: Name of the package
993
1154
  required: true
994
1155
  schema:
995
1156
  type: string
996
1157
  - name: path
997
1158
  in: path
998
- description: Path to notebook wihin the package.
1159
+ description: Path to notebook within the package.
999
1160
  required: true
1000
1161
  schema:
1001
1162
  type: string
1002
1163
  - name: versionId
1003
1164
  in: query
1004
- description: Version ID
1165
+ description: Version identifier for the package
1005
1166
  required: false
1006
1167
  schema:
1007
- type: string
1168
+ $ref: "#/components/schemas/VersionIdPattern"
1008
1169
  responses:
1009
1170
  "200":
1010
1171
  description: A Malloy notebook.
@@ -1013,42 +1174,47 @@ paths:
1013
1174
  schema:
1014
1175
  $ref: "#/components/schemas/CompiledNotebook"
1015
1176
  "401":
1016
- $ref: "#/components/responses/UnauthorizedError"
1177
+ $ref: "#/components/responses/Unauthorized"
1017
1178
  "404":
1018
- $ref: "#/components/responses/NotFoundError"
1179
+ $ref: "#/components/responses/NotFound"
1019
1180
  "500":
1020
1181
  $ref: "#/components/responses/InternalServerError"
1021
1182
  "501":
1022
- $ref: "#/components/responses/NotImplementedError"
1183
+ $ref: "#/components/responses/NotImplemented"
1023
1184
 
1024
1185
  /projects/{projectName}/packages/{packageName}/queryResults/{path}:
1025
1186
  get:
1026
1187
  tags:
1027
1188
  - queryresults
1028
1189
  operationId: execute-query
1029
- summary: Returns a query and its results.
1190
+ summary: Execute Malloy query
1191
+ description: |
1192
+ Executes a Malloy query against a model and returns the results. The query can be specified
1193
+ as a raw Malloy query string or by referencing a named query within the model. This endpoint
1194
+ supports both ad-hoc queries and predefined model queries, making it flexible for various
1195
+ use cases including data exploration, reporting, and application integration.
1030
1196
  parameters:
1031
1197
  - name: projectName
1032
1198
  in: path
1033
- description: Name of project
1199
+ description: Name of the project
1034
1200
  required: true
1035
1201
  schema:
1036
- type: string
1202
+ $ref: "#/components/schemas/IdentifierPattern"
1037
1203
  - name: packageName
1038
1204
  in: path
1039
- description: Name of package
1205
+ description: Name of the package
1040
1206
  required: true
1041
1207
  schema:
1042
- type: string
1208
+ $ref: "#/components/schemas/IdentifierPattern"
1043
1209
  - name: path
1044
1210
  in: path
1045
- description: Path to model within the package.
1211
+ description: Path to the model within the package
1046
1212
  required: true
1047
1213
  schema:
1048
- type: string
1214
+ $ref: "#/components/schemas/PathPattern"
1049
1215
  - in: query
1050
1216
  name: query
1051
- description: Query string to execute on the model. If the query is paramter is set, the queryName parameter must be empty.
1217
+ description: Query string to execute on the model. If the query parameter is set, the queryName parameter must be empty.
1052
1218
  required: false
1053
1219
  schema:
1054
1220
  type: string
@@ -1060,7 +1226,7 @@ paths:
1060
1226
  type: string
1061
1227
  - in: query
1062
1228
  name: queryName
1063
- description: Name of a query to execute on a source in the model. Requires the sourceName parameter is set. If the queryName is paramter is set, the query parameter must be empty.
1229
+ description: Name of a query to execute on a source in the model. Requires the sourceName parameter is set. If the queryName parameter is set, the query parameter must be empty.
1064
1230
  required: false
1065
1231
  schema:
1066
1232
  type: string
@@ -1072,50 +1238,54 @@ paths:
1072
1238
  type: string
1073
1239
  responses:
1074
1240
  "200":
1075
- description: A query and its results.
1241
+ description: Query execution results
1076
1242
  content:
1077
1243
  "application/json":
1078
1244
  schema:
1079
1245
  $ref: "#/components/schemas/QueryResult"
1080
1246
  "400":
1081
- $ref: "#/components/responses/BadRequestError"
1247
+ $ref: "#/components/responses/BadRequest"
1082
1248
  "401":
1083
- $ref: "#/components/responses/UnauthorizedError"
1249
+ $ref: "#/components/responses/Unauthorized"
1084
1250
  "404":
1085
- $ref: "#/components/responses/NotFoundError"
1251
+ $ref: "#/components/responses/NotFound"
1086
1252
  "500":
1087
1253
  $ref: "#/components/responses/InternalServerError"
1088
1254
  "501":
1089
- $ref: "#/components/responses/NotImplementedError"
1255
+ $ref: "#/components/responses/NotImplemented"
1090
1256
 
1091
1257
  /projects/{projectName}/packages/{packageName}/databases:
1092
1258
  get:
1093
1259
  tags:
1094
1260
  - databases
1095
1261
  operationId: list-databases
1096
- summary: Returns a list of relative paths to the databases embedded in the package.
1262
+ summary: List embedded databases
1263
+ description: |
1264
+ Retrieves a list of all embedded databases within the specified package. These are typically
1265
+ DuckDB databases stored as .parquet files that provide local data storage for the package.
1266
+ Each database entry includes metadata about the database structure and content.
1097
1267
  parameters:
1098
1268
  - name: projectName
1099
1269
  in: path
1100
- description: Name of project
1270
+ description: Name of the project
1101
1271
  required: true
1102
1272
  schema:
1103
- type: string
1273
+ $ref: "#/components/schemas/IdentifierPattern"
1104
1274
  - name: packageName
1105
1275
  in: path
1106
- description: Name of package
1276
+ description: Name of the package
1107
1277
  required: true
1108
1278
  schema:
1109
- type: string
1279
+ $ref: "#/components/schemas/IdentifierPattern"
1110
1280
  - name: versionId
1111
1281
  in: query
1112
- description: Version ID
1282
+ description: Version identifier for the package
1113
1283
  required: false
1114
1284
  schema:
1115
- type: string
1285
+ $ref: "#/components/schemas/VersionIdPattern"
1116
1286
  responses:
1117
1287
  "200":
1118
- description: A list of relative paths to the databases embedded in the package.
1288
+ description: A list of embedded databases in the package
1119
1289
  content:
1120
1290
  application/json:
1121
1291
  schema:
@@ -1123,42 +1293,46 @@ paths:
1123
1293
  items:
1124
1294
  $ref: "#/components/schemas/Database"
1125
1295
  "401":
1126
- $ref: "#/components/responses/UnauthorizedError"
1296
+ $ref: "#/components/responses/Unauthorized"
1127
1297
  "404":
1128
- $ref: "#/components/responses/NotFoundError"
1298
+ $ref: "#/components/responses/NotFound"
1129
1299
  "500":
1130
1300
  $ref: "#/components/responses/InternalServerError"
1131
1301
  "501":
1132
- $ref: "#/components/responses/NotImplementedError"
1302
+ $ref: "#/components/responses/NotImplemented"
1133
1303
 
1134
1304
  /projects/{projectName}/packages/{packageName}/schedules:
1135
1305
  get:
1136
1306
  tags:
1137
1307
  - schedules
1138
1308
  operationId: list-schedules
1139
- summary: Returns a list of running schedules.
1309
+ summary: List package schedules
1310
+ description: |
1311
+ Retrieves a list of all scheduled tasks associated with the specified package. These
1312
+ schedules define automated operations such as data refresh, report generation, or other
1313
+ recurring tasks. Each schedule includes timing information and execution status.
1140
1314
  parameters:
1141
1315
  - name: projectName
1142
1316
  in: path
1143
- description: Name of project
1317
+ description: Name of the project
1144
1318
  required: true
1145
1319
  schema:
1146
- type: string
1320
+ $ref: "#/components/schemas/IdentifierPattern"
1147
1321
  - name: packageName
1148
1322
  in: path
1149
- description: Name of package
1323
+ description: Name of the package
1150
1324
  required: true
1151
1325
  schema:
1152
- type: string
1326
+ $ref: "#/components/schemas/IdentifierPattern"
1153
1327
  - name: versionId
1154
1328
  in: query
1155
- description: Version ID
1329
+ description: Version identifier for the package
1156
1330
  required: false
1157
1331
  schema:
1158
- type: string
1332
+ $ref: "#/components/schemas/VersionIdPattern"
1159
1333
  responses:
1160
1334
  "200":
1161
- description: A list of running schedules.
1335
+ description: A list of scheduled tasks
1162
1336
  content:
1163
1337
  application/json:
1164
1338
  schema:
@@ -1166,20 +1340,24 @@ paths:
1166
1340
  items:
1167
1341
  $ref: "#/components/schemas/Schedule"
1168
1342
  "401":
1169
- $ref: "#/components/responses/UnauthorizedError"
1343
+ $ref: "#/components/responses/Unauthorized"
1170
1344
  "404":
1171
- $ref: "#/components/responses/NotFoundError"
1345
+ $ref: "#/components/responses/NotFound"
1172
1346
  "500":
1173
1347
  $ref: "#/components/responses/InternalServerError"
1174
1348
  "501":
1175
- $ref: "#/components/responses/NotImplementedError"
1349
+ $ref: "#/components/responses/NotImplemented"
1176
1350
 
1177
1351
  /watch-mode/status:
1178
1352
  get:
1179
1353
  tags:
1180
1354
  - watch-mode
1181
1355
  operationId: get-watch-status
1182
- summary: Returns the current watch mode status.
1356
+ summary: Get watch mode status
1357
+ description: |
1358
+ Retrieves the current status of the file watching system. This includes whether watch mode
1359
+ is enabled, which project is being watched, and the path being monitored. Useful for
1360
+ monitoring the development workflow and ensuring file changes are being detected.
1183
1361
  responses:
1184
1362
  "200":
1185
1363
  description: The current watch mode status.
@@ -1188,7 +1366,7 @@ paths:
1188
1366
  schema:
1189
1367
  $ref: "#/components/schemas/WatchStatus"
1190
1368
  "401":
1191
- $ref: "#/components/responses/UnauthorizedError"
1369
+ $ref: "#/components/responses/Unauthorized"
1192
1370
  "500":
1193
1371
  $ref: "#/components/responses/InternalServerError"
1194
1372
 
@@ -1197,7 +1375,11 @@ paths:
1197
1375
  tags:
1198
1376
  - watch-mode
1199
1377
  operationId: start-watching
1200
- summary: Starts watching a project for file changes.
1378
+ summary: Start file watching
1379
+ description: |
1380
+ Initiates file watching for the specified project. This enables real-time monitoring of
1381
+ file changes within the project directory, allowing for automatic reloading and updates
1382
+ during development. Only one project can be watched at a time.
1201
1383
  requestBody:
1202
1384
  required: true
1203
1385
  content:
@@ -1208,7 +1390,7 @@ paths:
1208
1390
  "200":
1209
1391
  description: Watch mode started successfully.
1210
1392
  "401":
1211
- $ref: "#/components/responses/UnauthorizedError"
1393
+ $ref: "#/components/responses/Unauthorized"
1212
1394
  "500":
1213
1395
  $ref: "#/components/responses/InternalServerError"
1214
1396
 
@@ -1217,296 +1399,325 @@ paths:
1217
1399
  tags:
1218
1400
  - watch-mode
1219
1401
  operationId: stop-watching
1220
- summary: Stops watching for file changes.
1402
+ summary: Stop file watching
1403
+ description: |
1404
+ Stops the current file watching session. This disables real-time monitoring of file changes
1405
+ and releases system resources. Use this when development is complete or when switching
1406
+ to a different project.
1221
1407
  responses:
1222
1408
  "200":
1223
1409
  description: Watch mode stopped successfully.
1224
1410
  "401":
1225
- $ref: "#/components/responses/UnauthorizedError"
1411
+ $ref: "#/components/responses/Unauthorized"
1226
1412
  "500":
1227
1413
  $ref: "#/components/responses/InternalServerError"
1228
1414
 
1229
1415
  components:
1230
1416
  responses:
1231
- InternalServerError:
1232
- description: The server encountered an internal error
1417
+ BadRequest:
1418
+ description: The request was malformed or cannot be performed given the current state of the system
1233
1419
  content:
1234
1420
  application/json:
1235
1421
  schema:
1236
1422
  $ref: "#/components/schemas/Error"
1237
- NotFoundError:
1238
- description: The specified resource was not found
1423
+ Unauthorized:
1424
+ description: Unauthorized - authentication required
1239
1425
  content:
1240
1426
  application/json:
1241
1427
  schema:
1242
1428
  $ref: "#/components/schemas/Error"
1243
- NotImplementedError:
1244
- description: Not implemented
1429
+ Forbidden:
1430
+ description: Forbidden - insufficient permissions to perform the operation
1245
1431
  content:
1246
1432
  application/json:
1247
1433
  schema:
1248
1434
  $ref: "#/components/schemas/Error"
1249
- UnauthorizedError:
1250
- description: Unauthorized
1435
+ NotFound:
1436
+ description: The specified resource was not found
1251
1437
  content:
1252
1438
  application/json:
1253
1439
  schema:
1254
1440
  $ref: "#/components/schemas/Error"
1255
- BadRequestError:
1256
- description: Bad request
1441
+ InternalServerError:
1442
+ description: The server encountered an internal error
1443
+ content:
1444
+ application/json:
1445
+ schema:
1446
+ $ref: "#/components/schemas/Error"
1447
+ NotImplemented:
1448
+ description: The requested operation is not implemented
1257
1449
  content:
1258
1450
  application/json:
1259
1451
  schema:
1260
1452
  $ref: "#/components/schemas/Error"
1261
1453
  ModelCompilationError:
1262
- description: Model compilation error
1454
+ description: Model compilation failed due to syntax or semantic errors
1263
1455
  content:
1264
1456
  application/json:
1265
1457
  schema:
1266
1458
  $ref: "#/components/schemas/Error"
1267
1459
 
1268
1460
  schemas:
1461
+ IdentifierPattern:
1462
+ type: string
1463
+ pattern: "^[a-zA-Z0-9_-]+$"
1464
+ description: Standard identifier pattern for resource names
1465
+
1466
+ VersionIdPattern:
1467
+ type: string
1468
+ pattern: "^[a-zA-Z0-9_.-]+$"
1469
+ description: Version identifier pattern supporting dots and dashes
1470
+
1471
+ PathPattern:
1472
+ type: string
1473
+ pattern: "^[a-zA-Z0-9_/.-]+$"
1474
+ description: Path pattern supporting slashes, dots, and dashes
1475
+
1269
1476
  ServerStatus:
1270
1477
  type: object
1478
+ description: Current server status and health information
1271
1479
  properties:
1272
1480
  timestamp:
1273
1481
  type: number
1482
+ description: Unix timestamp of the status check
1274
1483
  projects:
1275
1484
  type: array
1485
+ description: List of available projects
1276
1486
  items:
1277
- $ref: '#/components/schemas/Project'
1487
+ $ref: "#/components/schemas/Project"
1278
1488
  initialized:
1279
1489
  type: boolean
1280
- description: Whether the server is initialized.
1490
+ description: Whether the server is fully initialized and ready to serve requests
1281
1491
 
1282
1492
  Project:
1283
1493
  type: object
1494
+ description: Represents a Malloy project containing packages, connections, and other resources
1284
1495
  properties:
1285
1496
  resource:
1286
1497
  type: string
1287
- description: Resource path to the project.
1498
+ description: Resource path to the project
1288
1499
  name:
1289
1500
  type: string
1290
- description: Project name.
1501
+ description: Project name
1291
1502
  readme:
1292
1503
  type: string
1293
- description: Project readme.
1504
+ description: Project README content
1294
1505
  location:
1295
1506
  type: string
1296
- description: Project location, it can be an absolute path or an URI (e.g. github, s3, gcs, etc.).
1507
+ description: Project location, can be an absolute path or URI (e.g. github, s3, gcs, etc.)
1297
1508
  connections:
1298
1509
  type: array
1510
+ description: List of database connections configured for this project
1299
1511
  items:
1300
- $ref: '#/components/schemas/Connection'
1512
+ $ref: "#/components/schemas/Connection"
1301
1513
  packages:
1302
1514
  type: array
1515
+ description: List of Malloy packages in this project
1303
1516
  items:
1304
- $ref: '#/components/schemas/Package'
1517
+ $ref: "#/components/schemas/Package"
1305
1518
 
1306
1519
  Package:
1307
1520
  type: object
1521
+ description: Represents a Malloy package containing models, notebooks, and embedded databases
1308
1522
  properties:
1309
1523
  resource:
1310
1524
  type: string
1311
- description: Resource path to the package.
1525
+ description: Resource path to the package
1312
1526
  name:
1313
1527
  type: string
1314
- description: Package name.
1528
+ description: Package name
1315
1529
  description:
1316
1530
  type: string
1317
- description: Package description.
1531
+ description: Package description
1318
1532
  location:
1319
1533
  type: string
1320
- description: Package location, it can be an absolute path or an URI (e.g. github, s3, gcs, etc.).
1534
+ description: Package location, can be an absolute path or URI (e.g. github, s3, gcs, etc.)
1321
1535
 
1322
1536
  Model:
1323
1537
  type: object
1324
- description: Malloy Model metadata
1538
+ description: Malloy model metadata and status information
1325
1539
  properties:
1326
1540
  resource:
1327
1541
  type: string
1328
- description: Resource path to the model.
1542
+ description: Resource path to the model
1329
1543
  packageName:
1330
1544
  type: string
1331
- description: Model's package Name
1545
+ description: Name of the package containing this model
1332
1546
  path:
1333
1547
  type: string
1334
- description: Model's relative path in its package directory.
1548
+ description: Relative path to the model file within its package directory
1335
1549
  error:
1336
1550
  type: string
1337
- description: Error message for this model object.
1551
+ description: Error message if the model failed to compile or load
1338
1552
 
1339
1553
  Notebook:
1340
1554
  type: object
1341
- description: Malloy Notebook metadata
1555
+ description: Malloy notebook metadata and status information
1342
1556
  properties:
1343
1557
  resource:
1344
1558
  type: string
1345
- description: Resource path to the notebook.
1559
+ description: Resource path to the notebook
1346
1560
  packageName:
1347
1561
  type: string
1348
- description: Notebook's package Name
1562
+ description: Name of the package containing this notebook
1349
1563
  path:
1350
1564
  type: string
1351
- description: Notebook's relative path in its package directory.
1565
+ description: Relative path to the notebook file within its package directory
1352
1566
  error:
1353
1567
  type: string
1354
- description: Error message for this notebook object.
1568
+ description: Error message if the notebook failed to compile or load
1355
1569
 
1356
1570
  CompiledNotebook:
1357
1571
  type: object
1358
- description: Malloy notebook def and result data. Malloy notebook def and result data is Malloy version depdendent.
1572
+ description: Compiled Malloy notebook with cells, results, and execution data
1359
1573
  properties:
1360
1574
  resource:
1361
1575
  type: string
1362
- description: Resource path to the notebook.
1576
+ description: Resource path to the notebook
1363
1577
  packageName:
1364
1578
  type: string
1365
- description: Notebook's package Name
1579
+ description: Name of the package containing this notebook
1366
1580
  path:
1367
1581
  type: string
1368
- description: Notebook's relative path in its package directory.
1582
+ description: Relative path to the notebook file within its package directory
1369
1583
  malloyVersion:
1370
1584
  type: string
1371
- description: Version of the Malloy compiler that generated the notebook def and results fields.
1585
+ description: Version of the Malloy compiler used to generate the notebook data
1372
1586
  notebookCells:
1373
1587
  type: array
1374
- description: Array of notebook cells.
1588
+ description: Array of notebook cells containing code, markdown, and execution results
1375
1589
  items:
1376
1590
  $ref: "#/components/schemas/NotebookCell"
1377
1591
 
1378
1592
  CompiledModel:
1379
1593
  type: object
1380
- description: Malloy model def and result data. Malloy model def and result data is Malloy version depdendent.
1594
+ description: Compiled Malloy model with sources, queries, and metadata
1381
1595
  properties:
1382
1596
  resource:
1383
1597
  type: string
1384
- description: Resource path to the model.
1598
+ description: Resource path to the model
1385
1599
  packageName:
1386
1600
  type: string
1387
- description: Model's package Name
1601
+ description: Name of the package containing this model
1388
1602
  path:
1389
1603
  type: string
1390
- description: Model's relative path in its package directory.
1604
+ description: Relative path to the model file within its package directory
1391
1605
  malloyVersion:
1392
1606
  type: string
1393
- description: Version of the Malloy compiler that generated the model def and results fields.
1607
+ description: Version of the Malloy compiler used to generate the model data
1394
1608
  modelInfo:
1395
1609
  type: string
1396
- description: JSON string of ModelInfo. See malloy/packages/malloy-interfaces/src/types.ts
1610
+ description: JSON string containing model metadata and structure information
1397
1611
  sourceInfos:
1398
1612
  type: array
1399
- description: Array of JSON string of SourceInfo. See malloy/packages/malloy-interfaces/src/types.ts
1613
+ description: Array of JSON strings containing source information for each data source
1400
1614
  items:
1401
1615
  type: string
1402
1616
  queries:
1403
1617
  type: array
1404
- descript: Array of named queries.
1618
+ description: Array of named queries defined in the model
1405
1619
  items:
1406
1620
  $ref: "#/components/schemas/Query"
1407
1621
 
1408
1622
  View:
1409
1623
  type: object
1410
- description: Named model view.
1624
+ description: Named model view definition
1411
1625
  properties:
1412
1626
  name:
1413
1627
  type: string
1414
- description: View's name.
1628
+ description: Name of the view
1415
1629
  annotations:
1416
1630
  type: array
1417
- description: Annotations attached to view.
1631
+ description: Annotations attached to the view
1418
1632
  items:
1419
1633
  type: string
1420
1634
 
1421
1635
  Query:
1422
1636
  type: object
1423
- description: Named model query.
1637
+ description: Named model query definition
1424
1638
  properties:
1425
1639
  name:
1426
1640
  type: string
1427
- description: Query's name.
1641
+ description: Name of the query
1428
1642
  sourceName:
1429
1643
  type: string
1430
- description: Source name.
1644
+ description: Name of the source this query operates on
1431
1645
  annotations:
1432
1646
  type: array
1433
- description: Annotations attached to query.
1647
+ description: Annotations attached to the query
1434
1648
  items:
1435
1649
  type: string
1436
1650
 
1437
1651
  NotebookCell:
1438
1652
  type: object
1439
- description: Notebook cell.
1653
+ description: Individual cell within a Malloy notebook
1440
1654
  properties:
1441
1655
  type:
1442
1656
  type: string
1443
1657
  enum: ["markdown", "code"]
1444
- description: Type of notebook cell.
1658
+ description: Type of notebook cell
1445
1659
  text:
1446
1660
  type: string
1447
- description: Text contents of the notebook cell.
1661
+ description: Text contents of the notebook cell
1448
1662
  result:
1449
1663
  type: string
1450
- description: JSON string of Malloy.Result. See malloy/packages/malloy-interfaces/src/types.ts
1664
+ description: JSON string containing the execution result for this cell
1451
1665
  newSources:
1452
1666
  type: array
1453
- description:
1454
- Array of JSON string of SourceInfo made available in the notebook cell. Only *new*
1455
- SourceInfos are returned. The complete list of SourceInfos is available be concatenating the prior
1456
- notebook cells. The SourceInfos are in the order they are made available in the notebook cell.
1667
+ description: Array of JSON strings containing SourceInfo objects made available in this cell
1457
1668
  items:
1458
1669
  type: string
1459
1670
 
1460
1671
  QueryResult:
1461
1672
  type: object
1462
- description: A Malloy query's results.
1673
+ description: Results from executing a Malloy query
1463
1674
  properties:
1464
1675
  result:
1465
1676
  type: string
1466
- description: JSON string of Malloy.Result. See malloy/packages/malloy-interfaces/src/types.ts
1677
+ description: JSON string containing the query results, metadata, and execution information
1467
1678
  resource:
1468
1679
  type: string
1469
- description: Resource path to the query result.
1680
+ description: Resource path to the query result
1470
1681
 
1471
1682
  Database:
1472
1683
  type: object
1473
- description: An in-memory DuckDB database embedded in the package.
1684
+ description: Embedded database within a Malloy package
1474
1685
  properties:
1475
1686
  resource:
1476
1687
  type: string
1477
- description: Resource path to the database.
1688
+ description: Resource path to the database
1478
1689
  path:
1479
1690
  type: string
1480
- description: Database's relative path in its package directory.
1691
+ description: Relative path to the database file within its package directory
1481
1692
  info:
1482
1693
  $ref: "#/components/schemas/TableDescription"
1483
1694
  type:
1484
1695
  type: string
1696
+ description: Type of embedded database
1485
1697
  enum: ["embedded", "materialized"]
1486
- description: Type of database.
1487
1698
 
1488
1699
  Schedule:
1489
1700
  type: object
1490
- description: A scheduled task.
1701
+ description: Scheduled task configuration and status
1491
1702
  properties:
1492
1703
  resource:
1493
1704
  type: string
1494
- description: Resource in the package that the schedule is attached to.
1705
+ description: Resource path in the package that the schedule is attached to
1495
1706
  schedule:
1496
1707
  type: string
1497
- description: Schedule (cron format) for executing task.
1708
+ description: Schedule expression in cron format for executing the task
1498
1709
  action:
1499
1710
  type: string
1500
- description: Action to execute.
1711
+ description: Action to execute when the schedule triggers
1501
1712
  connection:
1502
1713
  type: string
1503
- description: Connection to perform action on.
1714
+ description: Name of the connection to perform the action on
1504
1715
  lastRunTime:
1505
1716
  type: number
1506
- description: Timestamp in milliseconds of the last run.
1717
+ description: Unix timestamp in milliseconds of the last execution
1507
1718
  lastRunStatus:
1508
1719
  type: string
1509
- description: Status of the last run.
1720
+ description: Status of the last execution
1510
1721
 
1511
1722
  SchemaName:
1512
1723
  description: A schema name in a Connection.
@@ -1527,14 +1738,17 @@ components:
1527
1738
 
1528
1739
  Connection:
1529
1740
  type: object
1741
+ description: Database connection configuration and metadata
1530
1742
  properties:
1531
1743
  resource:
1532
1744
  type: string
1533
- description: Resource path to the connection.
1745
+ description: Resource path to the connection
1534
1746
  name:
1535
1747
  type: string
1748
+ description: Name of the connection
1536
1749
  type:
1537
1750
  type: string
1751
+ description: Type of database connection
1538
1752
  enum: [postgres, bigquery, snowflake, trino, mysql]
1539
1753
  attributes:
1540
1754
  $ref: "#/components/schemas/ConnectionAttributes"
@@ -1551,95 +1765,138 @@ components:
1551
1765
 
1552
1766
  ConnectionAttributes:
1553
1767
  type: object
1768
+ description: Connection capabilities and configuration attributes
1554
1769
  properties:
1555
1770
  dialectName:
1556
1771
  type: string
1772
+ description: SQL dialect name for the connection
1557
1773
  isPool:
1558
1774
  type: boolean
1775
+ description: Whether the connection uses connection pooling
1559
1776
  canPersist:
1560
1777
  type: boolean
1778
+ description: Whether the connection supports persistent storage operations
1561
1779
  canStream:
1562
1780
  type: boolean
1781
+ description: Whether the connection supports streaming query results
1563
1782
 
1564
1783
  PostgresConnection:
1565
1784
  type: object
1785
+ description: PostgreSQL database connection configuration
1566
1786
  properties:
1567
1787
  host:
1568
1788
  type: string
1789
+ description: PostgreSQL server hostname or IP address
1569
1790
  port:
1570
1791
  type: integer
1792
+ description: PostgreSQL server port number
1571
1793
  databaseName:
1572
1794
  type: string
1795
+ description: Name of the PostgreSQL database
1573
1796
  userName:
1574
1797
  type: string
1798
+ description: PostgreSQL username for authentication
1575
1799
  password:
1576
1800
  type: string
1801
+ description: PostgreSQL password for authentication
1577
1802
  connectionString:
1578
1803
  type: string
1804
+ description: Complete PostgreSQL connection string (alternative to individual parameters)
1579
1805
 
1580
1806
  MysqlConnection:
1581
1807
  type: object
1808
+ description: MySQL database connection configuration
1582
1809
  properties:
1583
1810
  host:
1584
1811
  type: string
1812
+ description: MySQL server hostname or IP address
1585
1813
  port:
1586
1814
  type: integer
1815
+ description: MySQL server port number
1587
1816
  database:
1588
1817
  type: string
1818
+ description: Name of the MySQL database
1589
1819
  user:
1590
1820
  type: string
1821
+ description: MySQL username for authentication
1591
1822
  password:
1592
1823
  type: string
1824
+ description: MySQL password for authentication
1593
1825
 
1594
1826
  BigqueryConnection:
1595
1827
  type: object
1828
+ description: Google BigQuery database connection configuration
1596
1829
  properties:
1597
1830
  defaultProjectId:
1598
1831
  type: string
1832
+ description: Default BigQuery project ID for queries
1599
1833
  billingProjectId:
1600
1834
  type: string
1835
+ description: BigQuery project ID for billing purposes
1601
1836
  location:
1602
1837
  type: string
1838
+ description: BigQuery dataset location/region
1603
1839
  serviceAccountKeyJson:
1604
1840
  type: string
1841
+ description: JSON string containing Google Cloud service account credentials
1605
1842
  maximumBytesBilled:
1606
1843
  type: string
1844
+ description: Maximum bytes to bill for query execution (prevents runaway costs)
1607
1845
  queryTimeoutMilliseconds:
1608
1846
  type: string
1847
+ description: Query timeout in milliseconds
1609
1848
 
1610
1849
  SnowflakeConnection:
1611
1850
  type: object
1851
+ description: Snowflake database connection configuration
1612
1852
  properties:
1613
1853
  account:
1614
1854
  type: string
1855
+ description: Snowflake account identifier
1615
1856
  username:
1616
1857
  type: string
1858
+ description: Snowflake username for authentication
1617
1859
  password:
1618
1860
  type: string
1861
+ description: Snowflake password for authentication
1619
1862
  warehouse:
1620
1863
  type: string
1864
+ description: Snowflake warehouse name
1621
1865
  database:
1622
1866
  type: string
1867
+ description: Snowflake database name
1623
1868
  schema:
1624
1869
  type: string
1870
+ description: Snowflake schema name
1871
+ role:
1872
+ type: string
1873
+ description: Snowflake role name
1625
1874
  responseTimeoutMilliseconds:
1626
1875
  type: integer
1876
+ description: Query response timeout in milliseconds
1627
1877
 
1628
1878
  TrinoConnection:
1629
1879
  type: object
1880
+ description: Trino database connection configuration
1630
1881
  properties:
1631
1882
  server:
1632
1883
  type: string
1884
+ description: Trino server hostname or IP address
1633
1885
  port:
1634
1886
  type: number
1887
+ description: Trino server port number
1635
1888
  catalog:
1636
1889
  type: string
1890
+ description: Trino catalog name
1637
1891
  schema:
1638
1892
  type: string
1893
+ description: Trino schema name
1639
1894
  user:
1640
1895
  type: string
1896
+ description: Trino username for authentication
1641
1897
  password:
1642
1898
  type: string
1899
+ description: Trino password for authentication
1643
1900
 
1644
1901
  SqlSource:
1645
1902
  type: object
@@ -1647,7 +1904,7 @@ components:
1647
1904
  resource:
1648
1905
  type: string
1649
1906
  description: Resource path to the sql source.
1650
- # Pass source as an opaque JSON string that is malloyVersion depdendent.
1907
+ # Pass source as an opaque JSON string that is malloyVersion dependent.
1651
1908
  source:
1652
1909
  type: string
1653
1910
 
@@ -1657,7 +1914,7 @@ components:
1657
1914
  resource:
1658
1915
  type: string
1659
1916
  description: Resource path to the table source.
1660
- # Pass source as an opaque JSON string that is malloyVersion depdendent.
1917
+ # Pass source as an opaque JSON string that is malloyVersion dependent.
1661
1918
  # TODO: Remove this once we update the Malloy Publisher connection.
1662
1919
  source:
1663
1920
  type: string
@@ -1673,7 +1930,7 @@ components:
1673
1930
  resource:
1674
1931
  type: string
1675
1932
  description: Resource path to the temporary table.
1676
- # Pass table as an opaque JSON string that is malloyVersion depdendent.
1933
+ # Pass table as an opaque JSON string that is malloyVersion dependent.
1677
1934
  table:
1678
1935
  type: string
1679
1936
 
@@ -1683,68 +1940,83 @@ components:
1683
1940
  resource:
1684
1941
  type: string
1685
1942
  description: Resource path to the query data.
1686
- # Pass result as an opaque JSON string that is malloyVersion depdendent.
1943
+ # Pass result as an opaque JSON string that is malloyVersion dependent.
1687
1944
  data:
1688
1945
  type: string
1689
1946
 
1690
1947
  Error:
1691
1948
  type: object
1949
+ description: Standard error response format
1692
1950
  properties:
1693
- code:
1694
- type: integer
1695
1951
  message:
1696
1952
  type: string
1953
+ description: Human-readable error message describing what went wrong
1954
+ details:
1955
+ type: string
1956
+ description: Additional error details or context
1957
+ required:
1958
+ - message
1697
1959
 
1698
1960
  Column:
1699
1961
  type: object
1962
+ description: Database column definition
1700
1963
  properties:
1701
1964
  name:
1702
1965
  type: string
1966
+ description: Name of the column
1703
1967
  type:
1704
1968
  type: string
1969
+ description: Data type of the column
1705
1970
 
1706
1971
  TableDescription:
1707
1972
  type: object
1973
+ description: Database table structure and metadata
1708
1974
  properties:
1709
1975
  name:
1710
1976
  type: string
1977
+ description: Name of the table
1711
1978
  rowCount:
1712
1979
  type: integer
1980
+ description: Number of rows in the table
1713
1981
  columns:
1714
1982
  type: array
1983
+ description: List of columns in the table
1715
1984
  items:
1716
1985
  $ref: "#/components/schemas/Column"
1717
1986
 
1718
1987
  WatchStatus:
1719
1988
  type: object
1720
- description: Current watch mode status
1989
+ description: Current file watching status and configuration
1721
1990
  properties:
1722
1991
  enabled:
1723
1992
  type: boolean
1724
- description: Whether watch mode is currently enabled
1993
+ description: Whether file watching is currently active
1725
1994
  projectName:
1726
1995
  type: string
1727
- description: Name of the project being watched
1996
+ description: Name of the project being watched for file changes
1728
1997
  watchingPath:
1729
1998
  type: string
1730
1999
  nullable: true
1731
- description: The path being watched, null if not watching
2000
+ description: The file system path being monitored for changes, null if not watching
1732
2001
 
1733
2002
  StartWatchRequest:
1734
2003
  type: object
1735
- description: Request to start watching a project
2004
+ description: Request to start file watching for a project
1736
2005
  properties:
1737
2006
  projectName:
1738
2007
  type: string
1739
- description: Name of the project to watch
2008
+ description: Name of the project to start watching for file changes
1740
2009
  required:
1741
2010
  - projectName
1742
2011
 
1743
2012
  ConnectionStatus:
1744
- type: object
1745
- properties:
1746
- status:
1747
- type: string
1748
- enum: ["ok", "failed"]
1749
- errorMessage:
1750
- type: string
2013
+ type: object
2014
+ description: Result of testing a database connection
2015
+ properties:
2016
+ status:
2017
+ type: string
2018
+ description: Connection test result status
2019
+ enum: ["ok", "failed"]
2020
+ errorMessage:
2021
+ type: string
2022
+ description: Error message if the connection test failed, null if successful