@orizm/cli 3.1.0 → 3.3.0-beta.0

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 (379) hide show
  1. package/README.md +27 -1
  2. package/dist/agent-Kf8iuW2I.mjs +14 -0
  3. package/dist/agent-Kf8iuW2I.mjs.map +1 -0
  4. package/dist/agent-UZZtdOZS.cjs +14 -0
  5. package/dist/agent-UZZtdOZS.cjs.map +1 -0
  6. package/dist/auth-BnXPHgBU.cjs +18 -0
  7. package/dist/{auth-CNbONZuf.cjs.map → auth-BnXPHgBU.cjs.map} +1 -1
  8. package/dist/{auth-BGW072BP.mjs → auth-DHVtM0sF.mjs} +4 -4
  9. package/dist/{auth-BGW072BP.mjs.map → auth-DHVtM0sF.mjs.map} +1 -1
  10. package/dist/{bucket-mg5QQORh.cjs → bucket-CFaYmimY.cjs} +3 -3
  11. package/dist/{bucket-mg5QQORh.cjs.map → bucket-CFaYmimY.cjs.map} +1 -1
  12. package/dist/{bucket-DqW-WEYb.mjs → bucket-D-lu1xgZ.mjs} +3 -3
  13. package/dist/{bucket-DqW-WEYb.mjs.map → bucket-D-lu1xgZ.mjs.map} +1 -1
  14. package/dist/cli/main.cjs +14 -12
  15. package/dist/cli/main.cjs.map +1 -1
  16. package/dist/cli/main.mjs +14 -13
  17. package/dist/cli/main.mjs.map +1 -1
  18. package/dist/{cms-BJnovGYT.mjs → cms-8XZhxwsM.mjs} +8 -5
  19. package/dist/cms-8XZhxwsM.mjs.map +1 -0
  20. package/dist/{cms-Cnx-lDGu.cjs → cms-C4zEtppZ.cjs} +8 -5
  21. package/dist/cms-C4zEtppZ.cjs.map +1 -0
  22. package/dist/{codegen-BF5b-u46.cjs → codegen-Cypg4O3L.cjs} +3 -3
  23. package/dist/{codegen-BF5b-u46.cjs.map → codegen-Cypg4O3L.cjs.map} +1 -1
  24. package/dist/{codegen-DZOB4ttR.mjs → codegen-Dnjv7zfm.mjs} +3 -3
  25. package/dist/{codegen-DZOB4ttR.mjs.map → codegen-Dnjv7zfm.mjs.map} +1 -1
  26. package/dist/config/index.cjs +4 -2
  27. package/dist/config/index.cjs.map +1 -1
  28. package/dist/config/index.d.mts +8 -1
  29. package/dist/config/index.d.mts.map +1 -1
  30. package/dist/config/index.mjs +4 -2
  31. package/dist/config/index.mjs.map +1 -1
  32. package/dist/{config-loader-D8x32gEU.cjs → config-loader-CZfANHBf.cjs} +2 -2
  33. package/dist/config-loader-CZfANHBf.cjs.map +1 -0
  34. package/dist/{config-loader-BEgS869e.mjs → config-loader-CtbZOGjc.mjs} +3 -3
  35. package/dist/config-loader-CtbZOGjc.mjs.map +1 -0
  36. package/dist/{confirm-delete-B9o73U7B.cjs → confirm-delete-BX8bJrXZ.cjs} +3 -3
  37. package/dist/{confirm-delete-B9o73U7B.cjs.map → confirm-delete-BX8bJrXZ.cjs.map} +1 -1
  38. package/dist/{confirm-delete-CsWkW69-.mjs → confirm-delete-CcKLYuCB.mjs} +2 -2
  39. package/dist/{confirm-delete-CsWkW69-.mjs.map → confirm-delete-CcKLYuCB.mjs.map} +1 -1
  40. package/dist/{consumer-C4WiGHWG.mjs → consumer-BAM3E_68.mjs} +4 -4
  41. package/dist/{consumer-C4WiGHWG.mjs.map → consumer-BAM3E_68.mjs.map} +1 -1
  42. package/dist/{consumer-OF6Z_eTP.cjs → consumer-BSgriLn0.cjs} +4 -4
  43. package/dist/consumer-BSgriLn0.cjs.map +1 -0
  44. package/dist/consumer-D-Y6KJ8a.cjs +18 -0
  45. package/dist/{consumer-l-8wUK8E.cjs.map → consumer-D-Y6KJ8a.cjs.map} +1 -1
  46. package/dist/{consumer-pU2HyiyA.mjs → consumer-s8LnLw4e.mjs} +4 -4
  47. package/dist/consumer-s8LnLw4e.mjs.map +1 -0
  48. package/dist/content-ClRuLcGq.cjs +20 -0
  49. package/dist/{content-DMjSwor1.cjs.map → content-ClRuLcGq.cjs.map} +1 -1
  50. package/dist/content-DWnYo6ad.mjs +20 -0
  51. package/dist/{content-BOb6NC8M.mjs.map → content-DWnYo6ad.mjs.map} +1 -1
  52. package/dist/{create-DJY71sp9.cjs → create-B3d4CDel.cjs} +2 -2
  53. package/dist/{create-DJY71sp9.cjs.map → create-B3d4CDel.cjs.map} +1 -1
  54. package/dist/{create-CC814ixh.mjs → create-BD6iS4n6.mjs} +2 -2
  55. package/dist/{create-CC814ixh.mjs.map → create-BD6iS4n6.mjs.map} +1 -1
  56. package/dist/{create-B-PAOor6.mjs → create-BGV3F44O.mjs} +3 -3
  57. package/dist/{create-B-PAOor6.mjs.map → create-BGV3F44O.mjs.map} +1 -1
  58. package/dist/{create-Z-z3LXNW.cjs → create-BYDbsUvw.cjs} +3 -3
  59. package/dist/{create-Z-z3LXNW.cjs.map → create-BYDbsUvw.cjs.map} +1 -1
  60. package/dist/{create-Belwettw.mjs → create-BtuS23L3.mjs} +2 -2
  61. package/dist/{create-Belwettw.mjs.map → create-BtuS23L3.mjs.map} +1 -1
  62. package/dist/{create-CCsn7yp5.cjs → create-CNDCTpi0.cjs} +3 -3
  63. package/dist/{create-CCsn7yp5.cjs.map → create-CNDCTpi0.cjs.map} +1 -1
  64. package/dist/{create-BNYWcyuQ.cjs → create-DzRMGpm_.cjs} +2 -2
  65. package/dist/{create-BNYWcyuQ.cjs.map → create-DzRMGpm_.cjs.map} +1 -1
  66. package/dist/{create-B1ZBOqcV.mjs → create-fweRd0UB.mjs} +2 -2
  67. package/dist/{create-B1ZBOqcV.mjs.map → create-fweRd0UB.mjs.map} +1 -1
  68. package/dist/{create-D5suBd3J.mjs → create-m5fNBqQE.mjs} +3 -3
  69. package/dist/{create-D5suBd3J.mjs.map → create-m5fNBqQE.mjs.map} +1 -1
  70. package/dist/{create-CmOriwGo.cjs → create-tWGEtI3t.cjs} +2 -2
  71. package/dist/{create-CmOriwGo.cjs.map → create-tWGEtI3t.cjs.map} +1 -1
  72. package/dist/{delete-DhSU-Lx2.mjs → delete-B8VlzzCj.mjs} +3 -3
  73. package/dist/{delete-DhSU-Lx2.mjs.map → delete-B8VlzzCj.mjs.map} +1 -1
  74. package/dist/{delete-DVrafka1.cjs → delete-B9j8c8ln.cjs} +3 -3
  75. package/dist/{delete-DVrafka1.cjs.map → delete-B9j8c8ln.cjs.map} +1 -1
  76. package/dist/{delete-ZIifaG0i.mjs → delete-BhJK-8vE.mjs} +3 -3
  77. package/dist/{delete-ZIifaG0i.mjs.map → delete-BhJK-8vE.mjs.map} +1 -1
  78. package/dist/{delete-YYh_0khQ.mjs → delete-Bi6UhAhS.mjs} +3 -3
  79. package/dist/{delete-YYh_0khQ.mjs.map → delete-Bi6UhAhS.mjs.map} +1 -1
  80. package/dist/{delete-CCTiCYIL.cjs → delete-C_oxZa_p.cjs} +3 -3
  81. package/dist/{delete-CCTiCYIL.cjs.map → delete-C_oxZa_p.cjs.map} +1 -1
  82. package/dist/{delete-CSs5Czlo.mjs → delete-Ci7cq3mU.mjs} +3 -3
  83. package/dist/{delete-CSs5Czlo.mjs.map → delete-Ci7cq3mU.mjs.map} +1 -1
  84. package/dist/{delete-XWJRhBFs.mjs → delete-CiWkGnog.mjs} +3 -3
  85. package/dist/{delete-XWJRhBFs.mjs.map → delete-CiWkGnog.mjs.map} +1 -1
  86. package/dist/{delete-DozSxZQ7.cjs → delete-Cmk80aqF.cjs} +3 -3
  87. package/dist/{delete-DozSxZQ7.cjs.map → delete-Cmk80aqF.cjs.map} +1 -1
  88. package/dist/{delete-8yZ3j0vX.cjs → delete-CvtvB2Cr.cjs} +3 -3
  89. package/dist/{delete-8yZ3j0vX.cjs.map → delete-CvtvB2Cr.cjs.map} +1 -1
  90. package/dist/{delete-CIYY59v_.cjs → delete-DG825UwK.cjs} +4 -3
  91. package/dist/{delete-CIYY59v_.cjs.map → delete-DG825UwK.cjs.map} +1 -1
  92. package/dist/{delete-WpMIIvjj.cjs → delete-DGrSMqOt.cjs} +3 -3
  93. package/dist/{delete-WpMIIvjj.cjs.map → delete-DGrSMqOt.cjs.map} +1 -1
  94. package/dist/{delete-BOUObrDw.mjs → delete-Datr3Kqq.mjs} +3 -2
  95. package/dist/{delete-BOUObrDw.mjs.map → delete-Datr3Kqq.mjs.map} +1 -1
  96. package/dist/{delete-D4r1ve4v.cjs → delete-TTF4pIKw.cjs} +3 -3
  97. package/dist/{delete-D4r1ve4v.cjs.map → delete-TTF4pIKw.cjs.map} +1 -1
  98. package/dist/{delete-BSLIXrAh.mjs → delete-X8iVsETw.mjs} +3 -3
  99. package/dist/{delete-BSLIXrAh.mjs.map → delete-X8iVsETw.mjs.map} +1 -1
  100. package/dist/docs/features/cli/authentication.md +93 -0
  101. package/dist/docs/features/cli/commands/agent.md +49 -0
  102. package/dist/docs/features/cli/commands/auth.md +36 -0
  103. package/dist/docs/features/cli/commands/bucket.md +120 -0
  104. package/dist/docs/features/cli/commands/codegen.md +51 -0
  105. package/dist/docs/features/cli/commands/content.md +117 -0
  106. package/dist/docs/features/cli/commands/key.md +155 -0
  107. package/dist/docs/features/cli/commands/link.md +21 -0
  108. package/dist/docs/features/cli/commands/org.md +18 -0
  109. package/dist/docs/features/cli/commands/project-user.md +108 -0
  110. package/dist/docs/features/cli/commands/project.md +106 -0
  111. package/dist/docs/features/cli/commands/schema.md +108 -0
  112. package/dist/docs/features/cli/commands/webhook.md +110 -0
  113. package/dist/docs/features/cli/commands.md +110 -0
  114. package/dist/docs/features/cli/configuration.md +70 -0
  115. package/dist/docs/features/cli/output.md +53 -0
  116. package/dist/docs/features/cli/project-linking.md +58 -0
  117. package/dist/docs/features/cli/quickstart.md +83 -0
  118. package/dist/docs/features/cli.md +56 -0
  119. package/dist/docs/features/cms-sdk/account.md +122 -0
  120. package/dist/docs/features/cms-sdk/auth.md +122 -0
  121. package/dist/docs/features/cms-sdk/bucket.md +113 -0
  122. package/dist/docs/features/cms-sdk/cli.md +104 -0
  123. package/dist/docs/features/cms-sdk/fetch-contents.md +608 -0
  124. package/dist/docs/features/cms-sdk/install.md +98 -0
  125. package/dist/docs/features/cms-sdk/management-user.md +244 -0
  126. package/dist/docs/features/cms-sdk/migrate-to-v2.md +152 -0
  127. package/dist/docs/features/cms-sdk/mutation-contents.md +190 -0
  128. package/dist/docs/features/console/audit-logs.md +55 -0
  129. package/dist/docs/features/console/bucket.md +70 -0
  130. package/dist/docs/features/console/create-project.md +103 -0
  131. package/dist/docs/features/console/generate-api-key.md +103 -0
  132. package/dist/docs/features/console/invite-project-users.md +70 -0
  133. package/dist/docs/features/console/management-tables.md +131 -0
  134. package/dist/docs/features/console/organization-member-management.md +78 -0
  135. package/dist/docs/features/console/schema-history.md +29 -0
  136. package/dist/docs/features/console.md +15 -0
  137. package/dist/docs/features/consumer-sdk/cli.md +60 -0
  138. package/dist/docs/features/consumer-sdk/fetch-contents.md +603 -0
  139. package/dist/docs/features/consumer-sdk/install.md +90 -0
  140. package/dist/docs/features/consumer-sdk/migrate-to-v2.md +43 -0
  141. package/dist/docs/features/design-editor/about.md +36 -0
  142. package/dist/docs/features/design-editor/getting-started.md +244 -0
  143. package/dist/docs/features/design-editor/install.md +17 -0
  144. package/dist/docs/features/design-editor/prop-editor.md +83 -0
  145. package/dist/docs/features/design-editor/schema.md +279 -0
  146. package/dist/docs/features/dictionary.md +265 -0
  147. package/dist/docs/features/draft.md +241 -0
  148. package/dist/docs/features/form/about.md +83 -0
  149. package/dist/docs/features/form/editor.md +410 -0
  150. package/dist/docs/features/form/submission.md +94 -0
  151. package/dist/docs/features/full-text-search.md +114 -0
  152. package/dist/docs/features/history.md +152 -0
  153. package/dist/docs/features/schema/about.md +215 -0
  154. package/dist/docs/features/schema/authority.md +456 -0
  155. package/dist/docs/features/schema/bucket.md +142 -0
  156. package/dist/docs/features/schema/database.md +419 -0
  157. package/dist/docs/features/schema/table-module.md +140 -0
  158. package/dist/docs/features/webhook/revalidate-nextjs.md +185 -0
  159. package/dist/docs/features/webhook.md +295 -0
  160. package/dist/docs/get-started/add-model-starter.md +124 -0
  161. package/dist/docs/get-started/get-started-with-starter.md +218 -0
  162. package/dist/docs/index.md +89 -0
  163. package/dist/docs/introduction.md +140 -0
  164. package/dist/docs/manifest.json +6 -0
  165. package/dist/docs/resources/cli-migration-guide.md +82 -0
  166. package/dist/docs/resources/cli-v2-to-v3-migration-guide.md +138 -0
  167. package/dist/docs/resources/deploy-to-vercel.md +62 -0
  168. package/dist/docs/resources/limits.md +24 -0
  169. package/dist/docs/resources/private-registry.md +23 -0
  170. package/dist/docs/resources/status.md +22 -0
  171. package/dist/docs/resources/user-model.md +38 -0
  172. package/dist/{download-ogGbb3FU.cjs → download-BkzmfQXD.cjs} +2 -2
  173. package/dist/{download-ogGbb3FU.cjs.map → download-BkzmfQXD.cjs.map} +1 -1
  174. package/dist/{download-oFGzg30E.mjs → download-Dx1oyrMg.mjs} +2 -2
  175. package/dist/{download-oFGzg30E.mjs.map → download-Dx1oyrMg.mjs.map} +1 -1
  176. package/dist/{erd-zDoF6I_y.mjs → erd-BihhEfZ_.mjs} +3 -3
  177. package/dist/{erd-zDoF6I_y.mjs.map → erd-BihhEfZ_.mjs.map} +1 -1
  178. package/dist/{erd-lKC5NB2l.cjs → erd-DmnB1v2c.cjs} +3 -3
  179. package/dist/{erd-lKC5NB2l.cjs.map → erd-DmnB1v2c.cjs.map} +1 -1
  180. package/dist/{get-CgEgETQa.mjs → get-1TtxSEoT.mjs} +2 -2
  181. package/dist/{get-CgEgETQa.mjs.map → get-1TtxSEoT.mjs.map} +1 -1
  182. package/dist/{get-DjRyK0hJ.cjs → get-B5S1GfjR.cjs} +2 -2
  183. package/dist/{get-DjRyK0hJ.cjs.map → get-B5S1GfjR.cjs.map} +1 -1
  184. package/dist/{get-DDB89cOs.mjs → get-BLDHE_Zl.mjs} +2 -2
  185. package/dist/{get-DDB89cOs.mjs.map → get-BLDHE_Zl.mjs.map} +1 -1
  186. package/dist/{get-KdWfYINc.cjs → get-C5OH05Ka.cjs} +2 -2
  187. package/dist/{get-KdWfYINc.cjs.map → get-C5OH05Ka.cjs.map} +1 -1
  188. package/dist/{get-DwtzBjGV.cjs → get-CKZPn669.cjs} +2 -2
  189. package/dist/{get-DwtzBjGV.cjs.map → get-CKZPn669.cjs.map} +1 -1
  190. package/dist/{get-IOU__2RP.cjs → get-CdDZkUXV.cjs} +2 -2
  191. package/dist/{get-IOU__2RP.cjs.map → get-CdDZkUXV.cjs.map} +1 -1
  192. package/dist/{get-DB80UNSR.mjs → get-Cw4Dw5NG.mjs} +2 -2
  193. package/dist/{get-DB80UNSR.mjs.map → get-Cw4Dw5NG.mjs.map} +1 -1
  194. package/dist/{get-C7dKoSIc.mjs → get-Dy3AD4il.mjs} +2 -2
  195. package/dist/{get-C7dKoSIc.mjs.map → get-Dy3AD4il.mjs.map} +1 -1
  196. package/dist/{get-BBOKSXkh.cjs → get-PVsUGHBR.cjs} +2 -2
  197. package/dist/{get-BBOKSXkh.cjs.map → get-PVsUGHBR.cjs.map} +1 -1
  198. package/dist/{get-B6vBaq_D.mjs → get-Vo3yr12d.mjs} +2 -2
  199. package/dist/{get-B6vBaq_D.mjs.map → get-Vo3yr12d.mjs.map} +1 -1
  200. package/dist/{get-jwXRlIBJ.cjs → get-jaN2o0XY.cjs} +2 -2
  201. package/dist/{get-jwXRlIBJ.cjs.map → get-jaN2o0XY.cjs.map} +1 -1
  202. package/dist/{get-DBxhbN1G.mjs → get-qOKYAc46.mjs} +2 -2
  203. package/dist/{get-DBxhbN1G.mjs.map → get-qOKYAc46.mjs.map} +1 -1
  204. package/dist/init-BpKpTQ0z.mjs +425 -0
  205. package/dist/init-BpKpTQ0z.mjs.map +1 -0
  206. package/dist/init-BrZCChEG.cjs +427 -0
  207. package/dist/init-BrZCChEG.cjs.map +1 -0
  208. package/dist/{invite-DPygtCoO.cjs → invite-Tw3SMV0Q.cjs} +2 -2
  209. package/dist/{invite-DPygtCoO.cjs.map → invite-Tw3SMV0Q.cjs.map} +1 -1
  210. package/dist/{invite-D66DSMvq.mjs → invite-vzajkU2u.mjs} +2 -2
  211. package/dist/{invite-D66DSMvq.mjs.map → invite-vzajkU2u.mjs.map} +1 -1
  212. package/dist/{key-C71Ffll9.mjs → key-CyVxu3Uk.mjs} +3 -3
  213. package/dist/{key-C71Ffll9.mjs.map → key-CyVxu3Uk.mjs.map} +1 -1
  214. package/dist/{key-DQr7qRL2.cjs → key-tRYRqYNo.cjs} +3 -3
  215. package/dist/{key-DQr7qRL2.cjs.map → key-tRYRqYNo.cjs.map} +1 -1
  216. package/dist/{link-BluFyxEL.mjs → link-Bd55x5Zf.mjs} +2 -2
  217. package/dist/{link-BluFyxEL.mjs.map → link-Bd55x5Zf.mjs.map} +1 -1
  218. package/dist/{link-DYu1Vjlw.cjs → link-Cz7MX02S.cjs} +2 -2
  219. package/dist/{link-DYu1Vjlw.cjs.map → link-Cz7MX02S.cjs.map} +1 -1
  220. package/dist/{list-D5PSDMWw.mjs → list-2otVufvs.mjs} +3 -3
  221. package/dist/{list-D5PSDMWw.mjs.map → list-2otVufvs.mjs.map} +1 -1
  222. package/dist/{list-sQk00GV5.mjs → list-BMnBuZMr.mjs} +2 -2
  223. package/dist/{list-sQk00GV5.mjs.map → list-BMnBuZMr.mjs.map} +1 -1
  224. package/dist/{list-BwfpuhmJ.cjs → list-Bo8IMFd0.cjs} +2 -2
  225. package/dist/{list-BwfpuhmJ.cjs.map → list-Bo8IMFd0.cjs.map} +1 -1
  226. package/dist/{list-B0N4-Q-5.mjs → list-BtgAAUKm.mjs} +2 -2
  227. package/dist/{list-B0N4-Q-5.mjs.map → list-BtgAAUKm.mjs.map} +1 -1
  228. package/dist/{list-vbMaOiza.mjs → list-C0lq-gBZ.mjs} +2 -2
  229. package/dist/{list-vbMaOiza.mjs.map → list-C0lq-gBZ.mjs.map} +1 -1
  230. package/dist/{list-BsYYq9wT.mjs → list-CGZ3iT6J.mjs} +2 -2
  231. package/dist/{list-BsYYq9wT.mjs.map → list-CGZ3iT6J.mjs.map} +1 -1
  232. package/dist/{list-CFwW0G9f.cjs → list-CMWXO4nB.cjs} +2 -2
  233. package/dist/{list-CFwW0G9f.cjs.map → list-CMWXO4nB.cjs.map} +1 -1
  234. package/dist/{list-rAn3uOA7.mjs → list-Ccaec0cs.mjs} +2 -2
  235. package/dist/{list-rAn3uOA7.mjs.map → list-Ccaec0cs.mjs.map} +1 -1
  236. package/dist/{list-CU42ERNY.cjs → list-Cp_mHwbN.cjs} +2 -2
  237. package/dist/{list-CU42ERNY.cjs.map → list-Cp_mHwbN.cjs.map} +1 -1
  238. package/dist/{list-D0-QrWmn.cjs → list-Cs7kbAAi.cjs} +3 -3
  239. package/dist/{list-D0-QrWmn.cjs.map → list-Cs7kbAAi.cjs.map} +1 -1
  240. package/dist/{list-DlJssPwy.cjs → list-D5IaYurn.cjs} +2 -2
  241. package/dist/{list-DlJssPwy.cjs.map → list-D5IaYurn.cjs.map} +1 -1
  242. package/dist/{list-CbvEh7eA.mjs → list-DcIBInNA.mjs} +2 -2
  243. package/dist/{list-CbvEh7eA.mjs.map → list-DcIBInNA.mjs.map} +1 -1
  244. package/dist/{list-BzLraBnA.cjs → list-Dd3veD9Z.cjs} +2 -2
  245. package/dist/{list-BzLraBnA.cjs.map → list-Dd3veD9Z.cjs.map} +1 -1
  246. package/dist/{list-DexBclfb.cjs → list-DdVKKaDN.cjs} +2 -2
  247. package/dist/{list-DexBclfb.cjs.map → list-DdVKKaDN.cjs.map} +1 -1
  248. package/dist/{list-Br6Cmi9S.cjs → list-E1sjTZLe.cjs} +2 -2
  249. package/dist/{list-Br6Cmi9S.cjs.map → list-E1sjTZLe.cjs.map} +1 -1
  250. package/dist/{list-BRh59EqI.cjs → list-KI-7REC_.cjs} +2 -2
  251. package/dist/{list-BRh59EqI.cjs.map → list-KI-7REC_.cjs.map} +1 -1
  252. package/dist/{list-ocfd7631.mjs → list-MWD4huKP.mjs} +2 -2
  253. package/dist/{list-ocfd7631.mjs.map → list-MWD4huKP.mjs.map} +1 -1
  254. package/dist/{list-57TUfNFd.mjs → list-Pf5aAoaN.mjs} +2 -2
  255. package/dist/{list-57TUfNFd.mjs.map → list-Pf5aAoaN.mjs.map} +1 -1
  256. package/dist/{list-BHvURTWd.cjs → list-fG4zo8zz.cjs} +2 -2
  257. package/dist/{list-BHvURTWd.cjs.map → list-fG4zo8zz.cjs.map} +1 -1
  258. package/dist/{list-DrZYlidZ.mjs → list-r2UPz1zW.mjs} +2 -2
  259. package/dist/{list-DrZYlidZ.mjs.map → list-r2UPz1zW.mjs.map} +1 -1
  260. package/dist/{login-FE_dbWMo.mjs → login-Dq2L3bI7.mjs} +2 -2
  261. package/dist/{login-FE_dbWMo.mjs.map → login-Dq2L3bI7.mjs.map} +1 -1
  262. package/dist/{login-2XcHd4wn.cjs → login-M1IF2MdC.cjs} +2 -2
  263. package/dist/{login-2XcHd4wn.cjs.map → login-M1IF2MdC.cjs.map} +1 -1
  264. package/dist/{logout-DC5TMJ5_.cjs → logout-BCSfFgPz.cjs} +2 -2
  265. package/dist/{logout-DC5TMJ5_.cjs.map → logout-BCSfFgPz.cjs.map} +1 -1
  266. package/dist/{logout-BDbWrGBm.mjs → logout-DFzQCQKe.mjs} +2 -2
  267. package/dist/{logout-BDbWrGBm.mjs.map → logout-DFzQCQKe.mjs.map} +1 -1
  268. package/dist/management-C1p-Hm2Z.cjs +19 -0
  269. package/dist/{management-BGYcZB4c.cjs.map → management-C1p-Hm2Z.cjs.map} +1 -1
  270. package/dist/{management-DDACMgbU.mjs → management-h4yE09a6.mjs} +5 -5
  271. package/dist/{management-DDACMgbU.mjs.map → management-h4yE09a6.mjs.map} +1 -1
  272. package/dist/object-CZDLoc9L.cjs +20 -0
  273. package/dist/{object-DVqidsEc.cjs.map → object-CZDLoc9L.cjs.map} +1 -1
  274. package/dist/object-CqMsEkh9.mjs +20 -0
  275. package/dist/{object-qdBdEghr.mjs.map → object-CqMsEkh9.mjs.map} +1 -1
  276. package/dist/{org-CPhTRTks.mjs → org-Co-rjfr-.mjs} +2 -2
  277. package/dist/{org-CPhTRTks.mjs.map → org-Co-rjfr-.mjs.map} +1 -1
  278. package/dist/{org-C4cVovOM.cjs → org-Drj3VqIm.cjs} +2 -2
  279. package/dist/{org-C4cVovOM.cjs.map → org-Drj3VqIm.cjs.map} +1 -1
  280. package/dist/{org-context-Bewx2NEW.cjs → org-context-DKFnPH_o.cjs} +2 -2
  281. package/dist/{org-context-Bewx2NEW.cjs.map → org-context-DKFnPH_o.cjs.map} +1 -1
  282. package/dist/{org-context-D0dwWC2M.mjs → org-context-Df5McOiK.mjs} +2 -2
  283. package/dist/{org-context-D0dwWC2M.mjs.map → org-context-Df5McOiK.mjs.map} +1 -1
  284. package/dist/project-C7qWFjMV.mjs +20 -0
  285. package/dist/{project-CaXD3QBs.mjs.map → project-C7qWFjMV.mjs.map} +1 -1
  286. package/dist/project-Dm7nr5NV.cjs +20 -0
  287. package/dist/{project-BX7zvWB1.cjs.map → project-Dm7nr5NV.cjs.map} +1 -1
  288. package/dist/project-user-D9h_QBc0.mjs +20 -0
  289. package/dist/{project-user-Cp7i6orv.mjs.map → project-user-D9h_QBc0.mjs.map} +1 -1
  290. package/dist/project-user-wLFnHFwB.cjs +20 -0
  291. package/dist/{project-user-Dm0qR-sh.cjs.map → project-user-wLFnHFwB.cjs.map} +1 -1
  292. package/dist/prompt-C-XNDSNE.cjs +42 -0
  293. package/dist/prompt-C-XNDSNE.cjs.map +1 -0
  294. package/dist/prompt-Dr2Rkxun.mjs +25 -0
  295. package/dist/prompt-Dr2Rkxun.mjs.map +1 -0
  296. package/dist/{push-0u6PDz4E.cjs → push-BggkrD0g.cjs} +31 -12
  297. package/dist/push-BggkrD0g.cjs.map +1 -0
  298. package/dist/{push-D7co0keA.mjs → push-xWnD9oov.mjs} +30 -11
  299. package/dist/push-xWnD9oov.mjs.map +1 -0
  300. package/dist/{run-codegen-Ceeosw5x.cjs → run-codegen-B-90rvjk.cjs} +4 -4
  301. package/dist/run-codegen-B-90rvjk.cjs.map +1 -0
  302. package/dist/{run-codegen-DgaFaIQ1.mjs → run-codegen-CrO08jJT.mjs} +4 -4
  303. package/dist/run-codegen-CrO08jJT.mjs.map +1 -0
  304. package/dist/{run-with-context-CVhmzAFZ.mjs → run-with-context-B4DyI8Wo.mjs} +6 -26
  305. package/dist/run-with-context-B4DyI8Wo.mjs.map +1 -0
  306. package/dist/{run-with-context-DJNnEigg.cjs → run-with-context-D8pSrqD_.cjs} +7 -39
  307. package/dist/run-with-context-D8pSrqD_.cjs.map +1 -0
  308. package/dist/schema-CUVTXrHk.cjs +20 -0
  309. package/dist/{schema-B3iRqvYK.cjs.map → schema-CUVTXrHk.cjs.map} +1 -1
  310. package/dist/schema-DlUWHV_t.mjs +20 -0
  311. package/dist/{schema-exG250MU.mjs.map → schema-DlUWHV_t.mjs.map} +1 -1
  312. package/dist/{status-Dq_NJE71.cjs → status-CqPJTxeK.cjs} +2 -2
  313. package/dist/{status-Dq_NJE71.cjs.map → status-CqPJTxeK.cjs.map} +1 -1
  314. package/dist/{status-fWqXzV0P.mjs → status-D7nOW3R3.mjs} +2 -2
  315. package/dist/{status-fWqXzV0P.mjs.map → status-D7nOW3R3.mjs.map} +1 -1
  316. package/dist/{token-store--9GYVL7N.cjs → token-store-BgWGhqq0.cjs} +3 -3
  317. package/dist/{token-store--9GYVL7N.cjs.map → token-store-BgWGhqq0.cjs.map} +1 -1
  318. package/dist/{token-store-reCGF86F.mjs → token-store-C2r7cFA-.mjs} +2 -2
  319. package/dist/{token-store-reCGF86F.mjs.map → token-store-C2r7cFA-.mjs.map} +1 -1
  320. package/dist/{update-B4lv4dAz.mjs → update-8-sHFvNB.mjs} +2 -2
  321. package/dist/{update-B4lv4dAz.mjs.map → update-8-sHFvNB.mjs.map} +1 -1
  322. package/dist/{update-Dyo4vuZs.mjs → update-B5hKKw0K.mjs} +3 -3
  323. package/dist/{update-Dyo4vuZs.mjs.map → update-B5hKKw0K.mjs.map} +1 -1
  324. package/dist/{update-Do9HHWzs.cjs → update-BVaqURWE.cjs} +2 -2
  325. package/dist/{update-Do9HHWzs.cjs.map → update-BVaqURWE.cjs.map} +1 -1
  326. package/dist/{update-DRnN1kiu.cjs → update-BlUwNhLA.cjs} +2 -2
  327. package/dist/{update-DRnN1kiu.cjs.map → update-BlUwNhLA.cjs.map} +1 -1
  328. package/dist/{update-Cx_2GkQj.cjs → update-BqhLwuP7.cjs} +2 -2
  329. package/dist/{update-Cx_2GkQj.cjs.map → update-BqhLwuP7.cjs.map} +1 -1
  330. package/dist/{update-mEmULIau.mjs → update-DaYjh5VN.mjs} +2 -2
  331. package/dist/{update-mEmULIau.mjs.map → update-DaYjh5VN.mjs.map} +1 -1
  332. package/dist/{update-CJgEmSWJ.cjs → update-DcTzR54Z.cjs} +3 -3
  333. package/dist/{update-CJgEmSWJ.cjs.map → update-DcTzR54Z.cjs.map} +1 -1
  334. package/dist/{update-CIH6sSVk.cjs → update-Dne7g_0s.cjs} +2 -2
  335. package/dist/{update-CIH6sSVk.cjs.map → update-Dne7g_0s.cjs.map} +1 -1
  336. package/dist/{update-CQ4n4Xuf.mjs → update-Dy1BOnTB.mjs} +2 -2
  337. package/dist/{update-CQ4n4Xuf.mjs.map → update-Dy1BOnTB.mjs.map} +1 -1
  338. package/dist/{update-rzij1b_o.mjs → update-slz_X0mG.mjs} +2 -2
  339. package/dist/{update-rzij1b_o.mjs.map → update-slz_X0mG.mjs.map} +1 -1
  340. package/dist/{upload-DGgJ1TQk.mjs → upload-CDtzV9Wx.mjs} +3 -3
  341. package/dist/{upload-DGgJ1TQk.mjs.map → upload-CDtzV9Wx.mjs.map} +1 -1
  342. package/dist/{upload-C43ZXxyb.cjs → upload-DIln1QDA.cjs} +3 -3
  343. package/dist/{upload-C43ZXxyb.cjs.map → upload-DIln1QDA.cjs.map} +1 -1
  344. package/dist/{validate-BpxZ8LTl.cjs → validate-BH8jqdqq.cjs} +2 -2
  345. package/dist/{validate-BpxZ8LTl.cjs.map → validate-BH8jqdqq.cjs.map} +1 -1
  346. package/dist/{validate-Ca0CRo16.mjs → validate-COS4bfr0.mjs} +2 -2
  347. package/dist/{validate-Ca0CRo16.mjs.map → validate-COS4bfr0.mjs.map} +1 -1
  348. package/dist/webhook-BT3cHrq5.mjs +20 -0
  349. package/dist/{webhook-CpZ1-Ho5.mjs.map → webhook-BT3cHrq5.mjs.map} +1 -1
  350. package/dist/webhook-CQeuAqec.cjs +20 -0
  351. package/dist/{webhook-CbL4QaR5.cjs.map → webhook-CQeuAqec.cjs.map} +1 -1
  352. package/package.json +10 -9
  353. package/dist/auth-CNbONZuf.cjs +0 -18
  354. package/dist/cms-BJnovGYT.mjs.map +0 -1
  355. package/dist/cms-Cnx-lDGu.cjs.map +0 -1
  356. package/dist/config-loader-BEgS869e.mjs.map +0 -1
  357. package/dist/config-loader-D8x32gEU.cjs.map +0 -1
  358. package/dist/consumer-OF6Z_eTP.cjs.map +0 -1
  359. package/dist/consumer-l-8wUK8E.cjs +0 -18
  360. package/dist/consumer-pU2HyiyA.mjs.map +0 -1
  361. package/dist/content-BOb6NC8M.mjs +0 -20
  362. package/dist/content-DMjSwor1.cjs +0 -20
  363. package/dist/management-BGYcZB4c.cjs +0 -19
  364. package/dist/object-DVqidsEc.cjs +0 -20
  365. package/dist/object-qdBdEghr.mjs +0 -20
  366. package/dist/project-BX7zvWB1.cjs +0 -20
  367. package/dist/project-CaXD3QBs.mjs +0 -20
  368. package/dist/project-user-Cp7i6orv.mjs +0 -20
  369. package/dist/project-user-Dm0qR-sh.cjs +0 -20
  370. package/dist/push-0u6PDz4E.cjs.map +0 -1
  371. package/dist/push-D7co0keA.mjs.map +0 -1
  372. package/dist/run-codegen-Ceeosw5x.cjs.map +0 -1
  373. package/dist/run-codegen-DgaFaIQ1.mjs.map +0 -1
  374. package/dist/run-with-context-CVhmzAFZ.mjs.map +0 -1
  375. package/dist/run-with-context-DJNnEigg.cjs.map +0 -1
  376. package/dist/schema-B3iRqvYK.cjs +0 -20
  377. package/dist/schema-exG250MU.mjs +0 -20
  378. package/dist/webhook-CbL4QaR5.cjs +0 -20
  379. package/dist/webhook-CpZ1-Ho5.mjs +0 -20
@@ -0,0 +1,419 @@
1
+ <!-- source: docs/src/app/features/schema/database/page.mdx -->
2
+
3
+ # データベース
4
+
5
+ スキーマを通してデータベースの構造を定義します。
6
+
7
+ ## テーブル
8
+
9
+ テーブルはデータを保存するための入れ物です。
10
+ Excelのように行と列で構成され、行はレコード、列はカラムと呼ばれます。
11
+ 以下のテーブルは4つのカラムを持ち、3つのレコードが保存されています。
12
+
13
+ | id | name | description | color |
14
+ | --- | ------ | --------------------------------------------------------------------------- | ------ |
15
+ | 1 | Apple | It is said, “An apple a day keeps the doctor away.” | red |
16
+ | 2 | Orange | Born in the Assam region of India. | orange |
17
+ | 3 | Grape | It is said that there are more than 1,000 varieties of grapes in the world. | purple |
18
+
19
+ テーブルを設計する際には、カラムの定義が重要です。カラムによってテーブルのデータ構造が決まります。
20
+
21
+ スキーマでは、以下のようにテーブルを定義します。`columns` プロパティでカラムの定義を行います。カラムを定義する際は `type` プロパティでデータ型を指定します。
22
+
23
+ ```ts copy filename="orizm.config.ts" showLineNumbers
24
+ import { defineConfig } from "@orizm/cli/config";
25
+
26
+ export default defineConfig({
27
+ tables: {
28
+ blog: {
29
+ columns: {
30
+ title: {
31
+ type: "string",
32
+ },
33
+ body: {
34
+ type: "string",
35
+ },
36
+ },
37
+ },
38
+ },
39
+ });
40
+ ```
41
+
42
+ ## データ型
43
+
44
+ 以下のデータ型を使用できます。
45
+
46
+ - [string](#string)
47
+ - [number](#number)
48
+ - [boolean](#boolean)
49
+ - [json](#json)
50
+ - [reference](#reference)
51
+ - [module](#module)
52
+ - [module-array](#module-array)
53
+ - [storage](#storage)
54
+
55
+ ### string
56
+
57
+ テキストデータを扱う際に使用します。
58
+
59
+ 以下のオプションが設定できます。
60
+
61
+ | オプション | 説明 | 型 | デフォルト |
62
+ | ---------- | ---------------------------------------------- | ------- | ---------- |
63
+ | required | 必須項目であることを示します。 | boolean | false |
64
+ | readonly | 読み取り専用であることを示します。 | boolean | false |
65
+ | pattern | 正規表現を用いて文字列のパターンを指定します。 | string | - |
66
+ | minLength | 文字列の最小長を指定します。 | number | - |
67
+ | maxLength | 文字列の最大長を指定します。 | number | - |
68
+ | default | デフォルト値を指定します。 | string | - |
69
+
70
+ ```ts copy
71
+ {
72
+ type: "string",
73
+ required: true,
74
+ readOnly: true,
75
+ pattern: "^[a-zA-Z]+$",
76
+ minLength: 1,
77
+ maxLength: 255,
78
+ default: "default value",
79
+ }
80
+ ```
81
+
82
+ TypeScriptの型は `string` です。
83
+
84
+ ### number
85
+
86
+ 数値データを扱う際に使用します。
87
+
88
+ 以下のオプションが設定できます。
89
+
90
+ | オプション | 説明 | 型 | デフォルト |
91
+ | ---------- | ---------------------------------- | ------- | ---------- |
92
+ | required | 必須項目であることを示します。 | boolean | false |
93
+ | readonly | 読み取り専用であることを示します。 | boolean | false |
94
+ | default | デフォルト値を指定します。 | number | - |
95
+
96
+ ```ts copy
97
+ {
98
+ type: "number",
99
+ required: true,
100
+ readOnly: true,
101
+ default: 0,
102
+ }
103
+ ```
104
+
105
+ TypeScriptの型は `number` です。
106
+
107
+ ### boolean
108
+
109
+ 真偽値を扱う際に使用します。
110
+
111
+ 以下のオプションが設定できます。
112
+
113
+ | オプション | 説明 | 型 | デフォルト |
114
+ | ---------- | ---------------------------------- | ------- | ---------- |
115
+ | required | 必須項目であることを示します。 | boolean | false |
116
+ | readonly | 読み取り専用であることを示します。 | boolean | false |
117
+ | default | デフォルト値を指定します。 | boolean | - |
118
+
119
+ ```ts copy
120
+ {
121
+ type: "boolean",
122
+ required: true,
123
+ readOnly: true,
124
+ default: false,
125
+ }
126
+ ```
127
+
128
+ TypeScriptの型は `boolean` です。
129
+
130
+ ### json
131
+
132
+ JSONデータを扱う際に使用します。
133
+
134
+ 以下のオプションが設定できます。
135
+
136
+ | オプション | 説明 | 型 | デフォルト |
137
+ | ---------- | ---------------------------------- | ------- | ---------- |
138
+ | required | 必須項目であることを示します。 | boolean | false |
139
+ | readonly | 読み取り専用であることを示します。 | boolean | false |
140
+ | default | デフォルト値を指定します。 | object | - |
141
+
142
+ ```ts copy
143
+ {
144
+ type: "json",
145
+ required: true,
146
+ readOnly: true,
147
+ default: {},
148
+ }
149
+ ```
150
+
151
+ TypeScriptの型は `unknown` です。
152
+ 定形データを扱う場合は、より型安全に扱うことのできる [module](./database.md#module) や [module-array](./database.md#module-array) の利用も検討してください。
153
+
154
+ ### reference
155
+
156
+ 他のテーブルのレコードを参照するためのデータ型です。リレーショナルデータベースにおける外部キーのように使用されます。
157
+
158
+ 以下のプロパティを設定する必要があります。
159
+
160
+ | オプション | 説明 | 型 |
161
+ | ----------- | -------------------------------------------------------------- | ------------------------------------- |
162
+ | tableName | 参照するテーブルの名前を指定します。 | string |
163
+ | includeName | 参照先のレコードにアクセスするためのプロパティ名を指定します。 | string |
164
+ | onDelete | 参照先のレコードが削除された際の挙動を指定します。 | "cascade" \| "set null" \| "restrict" |
165
+
166
+ reference型のカラムではSDKを利用してデータを取得する際に `include` プロパティを使用して参照先のデータを結合することができます。`includeName` で参照先のデータにアクセスするためのプロパティ名を指定します。これにより参照先のデータを取得する際に、より直感的な名前でアクセスできます。
167
+
168
+ 例えば以下のようにカラムを定義した場合、`authorId` で著者IDにアクセスできます。`includeName` で `author` と指定しているため、 `include` している場合は `author` で著者のデータにアクセスできます。
169
+
170
+ ```ts copy
171
+ /*
172
+ * テーブル定義
173
+ *
174
+ * article: {
175
+ * columns: {
176
+ * authorId:{
177
+ * type: "reference",
178
+ * tableName: "author",
179
+ * onDelete: "set null",
180
+ * includeName: "author",
181
+ * }
182
+ * }
183
+ * }
184
+ */
185
+
186
+ const data = client.tables.article.get(articleId, {
187
+ include: {
188
+ author: true,
189
+ },
190
+ });
191
+
192
+ // data.authorId で author の ID にアクセス可能
193
+ console.log(data.authorId);
194
+ // data.author で author のデータにアクセス可能
195
+ console.log(data.author);
196
+ ```
197
+
198
+ `onDelete` プロパティは以下の値から選択できます。
199
+
200
+ - **cascade**: 参照先のレコードが削除された際、自身のレコードも削除します。
201
+ - **set null**: 参照先のレコードが削除された際、カラムの値を `null` に設定します。
202
+ - **restrict**: 参照先のレコードの削除を拒否し、エラーとして処理します。
203
+
204
+ reference型のカラムには以下のオプションが設定できます。
205
+
206
+ | オプション | 説明 | 型 | デフォルト |
207
+ | ---------- | ---------------------------------------------------------------------------------- | ------- | ---------- |
208
+ | required | 必須項目であることを示します。onDelete が "set null" の場合、true にはできません。 | boolean | false |
209
+ | readonly | 読み取り専用であることを示します。 | boolean | false |
210
+
211
+ ```ts copy
212
+ {
213
+ type: "reference",
214
+ tableName: "referenceTable",
215
+ onDelete: "cascade",
216
+ required: true,
217
+ readOnly: true,
218
+ includeName: "refCol",
219
+ }
220
+ ```
221
+
222
+ TypeScriptの型は、`string | undefined` になり、参照先レコードのIDが格納されます。
223
+ `includeName` で指定したプロパティは、参照先のテーブルの型(T)を持つ `T | undefined` になります。
224
+
225
+ ### module
226
+
227
+ テーブルモジュールをカラムに対して 1:1 の関係で紐づける際に使用します。詳細は [テーブルモジュール](./table-module.md) を参照してください。
228
+
229
+ 以下のプロパティを設定する必要があります。
230
+
231
+ | オプション | 説明 | 型 |
232
+ | ---------- | ------------------------------ | ------ |
233
+ | moduleName | モジュールの名前を指定します。 | string |
234
+
235
+ ```ts copy
236
+ {
237
+ type: "module",
238
+ moduleName: "moduleA",
239
+ }
240
+ ```
241
+
242
+ TypeScriptの型は、テーブルモジュールのカラム定義に従った型になります。
243
+
244
+ ### module-array
245
+
246
+ テーブルモジュールをカラムに対して 1:N の関係で紐づける際に使用します。詳細は [テーブルモジュール](./table-module.md) を参照してください。
247
+
248
+ 以下のプロパティを設定する必要があります。
249
+
250
+ | オプション | 説明 | 型 |
251
+ | ---------- | ------------------------------ | ------ |
252
+ | moduleName | モジュールの名前を指定します。 | string |
253
+
254
+ ```ts copy
255
+ {
256
+ type: "module-array",
257
+ moduleName: "moduleA",
258
+ }
259
+ ```
260
+
261
+ TypeScriptの型は、テーブルモジュールのカラム定義に従った型を持つ配列になります。
262
+
263
+ ### storage
264
+
265
+ ファイルを扱う際に使用します。
266
+
267
+ storage型カラムとバケットはファイルを扱う点で似ていますが異なる点があります。バケットはシンプルなファイル置き場であるのに対し、storage型カラムはファイルをレコードに紐づけて扱います。例えば、ブログ記事にサムネイル画像を設定する場合、storage型カラムを使用して画像ファイルをレコードに紐づけることができます。
268
+
269
+ レコードが削除された場合、ファイルは30日後に自動で削除されます。削除前であれば、[編集履歴の管理機能](../history.md) を利用して復元することも可能です。
270
+
271
+ 以下のオプションが設定できます。
272
+
273
+ | オプション | 説明 | 型 | デフォルト |
274
+ | ---------- | ---------------------------------- | ------- | ---------- |
275
+ | readonly | 読み取り専用であることを示します。 | boolean | false |
276
+
277
+ ```ts copy
278
+ {
279
+ type: "storage",
280
+ readOnly: true,
281
+ }
282
+ ```
283
+
284
+ TypeScriptの型は `StorageItemType` です。
285
+
286
+ ```ts copy
287
+ type StorageItemType = {
288
+ /**
289
+ * ストレージアイテムを一意に識別するための識別子です。
290
+ * アップロードAPIから取得したハンドルをテーブルに書き込むことでリンクが確立され、
291
+ * アクセス可能なURLが発行されます。このフィールドは書き込み専用です。
292
+ */
293
+ handle?: string | null;
294
+ /**
295
+ * ストレージアイテムの公開URLです。
296
+ * 一般公開用に認証なしでアクセス可能なURLが発行されます。
297
+ */
298
+ _publicUrl?: string;
299
+ /**
300
+ * ストレージアイテムの保護されたURLです。
301
+ * API呼び出し元に対して署名されたURLです。
302
+ */
303
+ _protectedUrl?: string;
304
+ _attributes?: {
305
+ /** ファイルサイズ */
306
+ size: number;
307
+ /** ファイルのMIMEタイプ */
308
+ type: string;
309
+ /** 画像の横幅。画像の場合のみ設定されます。 */
310
+ width?: number;
311
+ /** 画像の縦幅。画像の場合のみ設定されます。 */
312
+ height?: number;
313
+ };
314
+ };
315
+ ```
316
+
317
+ storage型カラムにファイルを紐づけるにはCMS SDKを使用します。
318
+ 詳細は [storage型カラムにデータを保存](../cms-sdk/mutation-contents.md#storage型カラムにデータを保存) を参照してください。
319
+
320
+ ## 予約カラム
321
+
322
+ 以下のカラムは自動でテーブルに追加されます。
323
+
324
+ ### id
325
+
326
+ レコードを一意に識別するためのIDです。
327
+
328
+ ランダムな16文字の英数字で構成されます。(例: `MlKtexCT1v8CS4pR`)
329
+
330
+ id には自動で [インデックス](#インデックス) が作成されます。
331
+
332
+ ### createdAt
333
+
334
+ レコードが作成された日時です。
335
+
336
+ ISO 8601 形式の文字列で構成されます。(例: `2025-01-01T00:00:00.000Z`)
337
+
338
+ ### updatedAt
339
+
340
+ レコードが更新された日時です。
341
+
342
+ ISO 8601 形式の文字列で構成されます。(例: `2025-01-01T00:00:00.000Z`)
343
+
344
+ ### group
345
+
346
+ レコードの所属するグループです。[権限](./authority.md) の設定に使用します。
347
+
348
+ 任意の文字列を設定できます。デフォルトは `undefined` です。
349
+
350
+ ## インデックス
351
+
352
+ インデックスはデータの検索速度を向上させるための仕組みです。
353
+
354
+ > [!WARNING]
355
+ > 絞り込みや並び替えの速度が向上する反面、データの追加や更新、削除の速度は低下します。リレーショナルデータベースにおけるインデックス設計の一般的なベストプラクティスに従って、データの操作パターンを考慮して注意深く設計してください。
356
+
357
+ `id` カラムには自動でインデックスが作成されるため、追加の設定は不要です。
358
+
359
+ スキーマでは以下のようにテーブル定義の中で `indexes` プロパティを利用して設定します。
360
+
361
+ ```ts copy filename="orizm.config.ts" showLineNumbers {14-21}
362
+ import { defineConfig } from "@orizm/cli/config";
363
+
364
+ export default defineConfig({
365
+ tables: {
366
+ employee: {
367
+ columns: {
368
+ name: {
369
+ type: "string",
370
+ },
371
+ department: {
372
+ type: "string",
373
+ },
374
+ },
375
+ indexes: [
376
+ {
377
+ columns: ["name"],
378
+ },
379
+ {
380
+ columns: ["department", "name"],
381
+ },
382
+ ],
383
+ },
384
+ },
385
+ });
386
+ ```
387
+
388
+ ### unique
389
+
390
+ `unique` プロパティを `true` にすることで、ユニーク制約を設定できます。
391
+
392
+ ```ts copy filename="orizm.config.ts" showLineNumbers {14}
393
+ import { defineConfig } from "@orizm/cli/config";
394
+
395
+ export default defineConfig({
396
+ tables: {
397
+ blog: {
398
+ columns: {
399
+ slug: {
400
+ type: "string",
401
+ },
402
+ title: {
403
+ type: "string",
404
+ },
405
+ },
406
+ indexes: [{ columns: ["slug"], unique: true }],
407
+ },
408
+ },
409
+ });
410
+ ```
411
+
412
+ ## 高度な機能
413
+
414
+ テーブルでは以下のような高度な機能を設定できます。
415
+
416
+ - [下書き管理](../draft.md)
417
+ - [全文検索](../full-text-search.md)
418
+ - [編集履歴管理](../history.md)
419
+ - [フォーム管理](../form/about.md)
@@ -0,0 +1,140 @@
1
+ <!-- source: docs/src/app/features/schema/table-module/page.mdx -->
2
+
3
+ # テーブルモジュール
4
+
5
+ テーブルモジュール(以下、モジュール)は、データベースで複雑なデータ構造を表現するための機能です。
6
+
7
+ ## 基本概念
8
+
9
+ モジュールを利用すると、リレーショナルデータベースでは通常表現できない階層構造やリスト構造を表現できます。
10
+
11
+ モジュールは以下のデータ型のカラムで使用できます。
12
+
13
+ 1. **module型**: カラムに対して1つのデータを関連付けます。(1:1)
14
+ 1. **module-array型**: カラムに対して複数のデータを関連付けます。(1:N)
15
+
16
+ モジュールの特徴は以下の通りです。
17
+
18
+ - 再帰的にネスト可能
19
+ - テーブルと同様にreference型やインデックス、ユニーク制約を設定可能
20
+ - 検索条件としてモジュールのカラムを指定可能
21
+
22
+ ## スキーマの定義
23
+
24
+ まず、スキーマの `tableModules` プロパティでモジュールを定義します。モジュールはテーブルの定義と同様の構文で定義できます。定義方法については [データベース](./database.md) を参照してください。
25
+
26
+ モジュールを定義したら、テーブルのカラム定義で `module` または `module-array` 型を指定してモジュールを関連付けます。
27
+
28
+ > [!WARNING]
29
+ > **注意**
30
+ > カラム名とモジュール名を同じにすることはできません。
31
+ >
32
+
33
+ 以下は、画像ギャラリーを持つブログ記事を表現するスキーマの例です。
34
+
35
+ ```ts copy filename="orizm.config.ts" showLineNumbers
36
+ import { defineConfig } from "@orizm/cli/config";
37
+
38
+ // ① tableModules に imageWithCaption モジュールを定義
39
+ // ② tables に blog テーブルを定義
40
+ // ③ blog のカラム imageGallery に imageWithCaption モジュールを関連付け
41
+
42
+ export default defineConfig({
43
+ tableModules: {
44
+ // ①
45
+ imageWithCaption: {
46
+ columns: {
47
+ image: {
48
+ type: "storage",
49
+ },
50
+ caption: {
51
+ type: "string",
52
+ },
53
+ },
54
+ },
55
+ },
56
+ tables: {
57
+ // ②
58
+ blog: {
59
+ columns: {
60
+ title: {
61
+ type: "string",
62
+ required: true,
63
+ },
64
+ body: {
65
+ type: "string",
66
+ },
67
+ // ③
68
+ imageGallery: {
69
+ type: "module-array",
70
+ moduleName: "imageWithCaption",
71
+ },
72
+ },
73
+ },
74
+ },
75
+ });
76
+ ```
77
+
78
+ ## 予約カラム
79
+
80
+ `module` と `module-array` 型には以下の予約カラムがあります。
81
+
82
+ ### id
83
+
84
+ モジュールのデータを一意に識別するためのIDです。ランダムな16文字の英数字で構成されます。
85
+ (例: `MlKtexCT1v8CS4pR`)
86
+
87
+ `id` には自動で [インデックス](#インデックス) が作成されます。
88
+
89
+ ### \_parentId
90
+
91
+ 親レコードのIDを持ちます。
92
+
93
+ ### \_order
94
+
95
+ リストの並び順です。module-array型にのみ存在します。
96
+
97
+ ## フィルタ
98
+
99
+ SDKから `list()` でクエリする際、`module-array` 型のカラムに対して `some`、`every`、`none` 演算子を使用して配列要素を条件にフィルタリングできます。詳細は [CMS SDKのフィルタ](../cms-sdk/fetch-contents.md#module-array-のフィルタ) または [Consumer SDKのフィルタ](../consumer-sdk/fetch-contents.md#module-array-のフィルタ) を参照してください。
100
+
101
+ ## 注意事項
102
+
103
+ - カラム名とモジュール名を同じにすることはできません。
104
+ - SDKから `list()` でクエリする際、`order` パラメータでモジュールのカラムを指定できません。
105
+ - `module` と `module-array` 型は `required` の指定ができません。
106
+ - モジュールのデータには直接アクセスできません。必ずレコードを通してアクセスする必要があります。
107
+
108
+ ## reference型との違い
109
+
110
+ reference型は他のテーブルのレコードを参照する際に使用します。module型に近い性質を持ちますが、以下のような目的の違いがあります。
111
+
112
+ - **reference**: 異なるテーブルのレコードとの関連付け
113
+ - **module**: 1レコード内での階層構造やリスト構造の実現
114
+
115
+ モジュールにはテーブルとしての実体は無く、レコードの内部にデータを持ちます。reference型では参照先のレコードは独立して存在できますが、モジュールは親レコードが存在しないと自身も存在できません。
116
+
117
+ ![referenceとmoduleの違い](./reference-vs-module.png)
118
+
119
+ 以下のように使い分けることができます。
120
+
121
+ **reference型が適するケース**
122
+
123
+ - 一般的なリレーショナルデータベースのリレーションで表現したいケース
124
+ - 複数のテーブルから参照するケース
125
+
126
+ **module型が適するケース**
127
+
128
+ - NoSQLライクなドキュメント構造を型安全に表現したいケース
129
+ - 親レコードに従属するデータを表現したいケース
130
+
131
+ ## json型との違い
132
+
133
+ json型を使うことで、モジュールのような階層構造やリスト構造を持つデータを扱うことができます。
134
+
135
+ 異なる点として、json型は生成されるTypeScript型定義が `unknown` になるため、アプリケーション側で型定義やバリデーションを行う必要があります。モジュールはスキーマ定義に基づいて型定義が生成されるため、型安全にデータを扱うことができます。
136
+
137
+ 以下のように使い分けることができます。
138
+
139
+ - **複雑な型を手軽に扱いたい**: `json`
140
+ - **型安全にデータを扱いたい**: `module`, `module-array`