@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,456 @@
1
+ <!-- source: docs/src/app/features/schema/authority/page.mdx -->
2
+
3
+ # 権限
4
+
5
+ このドキュメントでは、スキーマを通してCMSユーザー(以下、ユーザー)のアクセス権限を定義する方法を説明します。
6
+
7
+ ## コンセプト
8
+
9
+ ロール、グループ、ルールの3つの概念を組み合わせることで、柔軟なアクセス制御を実現します。
10
+
11
+ ### ロールとグループ
12
+
13
+ 権限は **ロール** と **グループ** に紐づきます。ユーザーをロールやグループに所属させることで権限を付与します。
14
+
15
+ 例えば、以下のようにロールと権限を紐付けます。
16
+
17
+ - **管理者**: すべてのリソースに対して読み取りと書き込みができる
18
+ - **編集者**: コンテンツのリソースに対して読み取りと書き込みができる
19
+ - **閲覧者**: コンテンツのリソースに対して読み取りができる
20
+
21
+ ### グループとマルチテナント
22
+
23
+ ユーザーとデータをグループに紐付けることで、マルチテナントに適したアクセス制御を実現します。
24
+
25
+ 異なるグループに属するデータは論理的に分離されます。同じグループに所属するユーザーでなければアクセスできません。
26
+
27
+ 例えば、**店舗A**、**店舗B** の2つのグループがあるとします。
28
+ このとき店舗Aに属するデータは、店舗Aに属するユーザーのみアクセスでき、店舗Bに属するユーザーはアクセスできません。全店舗を管理するユーザーには、グループを横断してアクセスできる権限を設定できます。
29
+
30
+ ### ルール
31
+
32
+ ルールはどのリソースに対して、どのような操作ができるかを定義します。
33
+
34
+ リソースとは以下を指します。
35
+
36
+ - **テーブル**
37
+ - **バケット**
38
+
39
+ それぞれのリソースに対して、以下の操作を定義できます。
40
+
41
+ - **読み取り権限**: リソースの読み取りができるかどうか
42
+ - **書き込み権限**: リソースの書き込みができるかどうか
43
+
44
+ 権限は **許可** と **拒否** の2つの方法で制御できます。
45
+
46
+ ## 権限の定義
47
+
48
+ 権限を定義する際には、`authorities` プロパティを使用します。
49
+
50
+ 以下の例では、`editor` ロールに対して、`blog` テーブルと `photo` バケットに対する読み書きを許可しています。また、ユーザー管理の操作を拒否しています。
51
+
52
+ ```ts copy filename="orizm.config.ts" showLineNumbers
53
+ import { defineConfig } from "@orizm/cli/config";
54
+
55
+ export default defineConfig({
56
+ authorities: [
57
+ {
58
+ match: { role: "editor" },
59
+ allowTables: ["blog"],
60
+ allowBuckets: ["photo"],
61
+ denyUserManagement: true,
62
+ },
63
+ ],
64
+ });
65
+ ```
66
+
67
+ ### match
68
+
69
+ `match` プロパティで、グループとロールに対して紐付けます。
70
+
71
+ グループまたはロールのどちらかのみ指定することも、両方を指定することもできます。指定がない場合は、全てのユーザーに対してルールが適用されます。
72
+
73
+ ```ts copy
74
+ {
75
+ match: {
76
+ group: "storeA",
77
+ role: "editor",
78
+ },
79
+ }
80
+ ```
81
+
82
+ ### allow / deny
83
+
84
+ `allow(許可)` と `deny(拒否)` プロパティで権限を定義します。使用できるルールは [ルール一覧](#ルール一覧) を参照してください。
85
+
86
+ ```ts copy
87
+ {
88
+ allowTables: ["blog"],
89
+ allowBuckets: ["photo"],
90
+ denyUserManagement: true,
91
+ }
92
+ ```
93
+
94
+ ### どのように適用されるか
95
+
96
+ 適用される権限は以下のように決まります。
97
+
98
+ #### 同一オブジェクト内では `deny` が優先される
99
+
100
+ 同一オブジェクト内で `allow` と `deny` が両方定義されている場合、`deny` が優先されます。
101
+
102
+ 例えば以下の例では、最終的に `blog` テーブルへのアクセスは **拒否** されます。
103
+
104
+ ```ts copy
105
+ [
106
+ {
107
+ allowTables: ["blog"],
108
+ denyTables: ["blog"],
109
+ },
110
+ ];
111
+ ```
112
+
113
+ #### 同一オブジェクト内では詳細度の高いルールが優先される
114
+
115
+ テーブルに関するルールを例に挙げると、以下の通り上から順に優先されます。
116
+
117
+ 1. `denyReadTables` / `denyWriteTables`
118
+ 1. `allowReadTables` / `allowWriteTables`
119
+ 1. `denyTables`
120
+ 1. `allowTables`
121
+ 1. `denyAllTables`
122
+ 1. `allowAllTables`
123
+
124
+ 以下の例では、最終的に `blog` テーブルへの **読み取り** のみが **許可** されます。
125
+
126
+ ```ts copy
127
+ [
128
+ {
129
+ allowReadTables: ["blog"],
130
+ denyWriteTables: ["blog"],
131
+ allowTables: ["blog"],
132
+ denyAllTables: true,
133
+ },
134
+ ];
135
+ ```
136
+
137
+ #### `authorities` 配列の後で定義されたルールが優先される
138
+
139
+ authorities プロパティの定義は先頭から順に評価されます。後で定義されたルールにマッチした場合、それまでのルールを上書きします。
140
+
141
+ 例えば以下の例では、最終的に `blog` テーブルへの読み書きは **許可** されます。
142
+
143
+ ```ts copy
144
+ [
145
+ {
146
+ denyTables: ["blog"],
147
+ },
148
+ {
149
+ allowTables: ["blog"],
150
+ },
151
+ ];
152
+ ```
153
+
154
+ ## 権限定義の例
155
+
156
+ ### 全ユーザーに全権限を付与
157
+
158
+ ```ts copy
159
+ [
160
+ {
161
+ allowAllTables: true,
162
+ allowAllBuckets: true,
163
+ allowUserManagement: true,
164
+ allowAllGroups: true,
165
+ },
166
+ ];
167
+ ```
168
+
169
+ ### 読み取りと書き込みのロールを分離
170
+
171
+ ```ts copy
172
+ [
173
+ {
174
+ // ロールなしのユーザーはアクセス拒否
175
+ denyAllTables: true,
176
+ denyAllBuckets: true,
177
+ denyUserManagement: true,
178
+ allowAllGroups: true,
179
+ },
180
+ {
181
+ // 閲覧者ロールは読み込みのみ許可
182
+ match: { role: "viewer" },
183
+ allowReadTables: ["blog"],
184
+ allowReadBuckets: ["photo"],
185
+ },
186
+ {
187
+ // 編集者ロールは読み込みと書き込みを許可
188
+ match: { role: "editor" },
189
+ allowAllTables: true,
190
+ allowAllBuckets: true,
191
+ },
192
+ {
193
+ // 管理者ロールは全権限を許可
194
+ match: { role: "admin" },
195
+ allowAllTables: true,
196
+ allowAllBuckets: true,
197
+ allowUserManagement: true,
198
+ },
199
+ ];
200
+ ```
201
+
202
+ ### マルチテナント
203
+
204
+ ```ts copy
205
+ [
206
+ {
207
+ // ロールなしのユーザーはアクセス拒否
208
+ denyAllTables: true,
209
+ denyAllBuckets: true,
210
+ denyUserManagement: true,
211
+ },
212
+ {
213
+ // 閲覧者ロール
214
+ // 所属するグループのブログコンテンツの読み込みのみ許可
215
+ match: { role: "viewer" },
216
+ allowReadTables: ["blog"],
217
+ allowReadBuckets: ["photo"],
218
+ },
219
+ {
220
+ // 編集者ロール
221
+ // 所属するグループのブログコンテンツの読み書きを許可
222
+ match: { role: "editor" },
223
+ allowTables: ["blog"],
224
+ allowBuckets: ["photo"],
225
+ },
226
+ {
227
+ // テナント管理者
228
+ // 所属するグループのブログコンテンツの読み書きと
229
+ // ユーザー管理を許可
230
+ match: { role: "manager" },
231
+ allowTables: ["blog"],
232
+ allowBuckets: ["photo"],
233
+ allowUserManagement: true,
234
+ },
235
+ {
236
+ // 全権限を持つ管理者
237
+ match: { group: "admin" },
238
+ allowAllTables: true,
239
+ allowAllBuckets: true,
240
+ allowUserManagement: true,
241
+ allowAllGroups: true,
242
+ },
243
+ ];
244
+ ```
245
+
246
+ ## ルール一覧
247
+
248
+ - [allowAllTables](#allowAllTables)
249
+ - [denyAllTables](#denyAllTables)
250
+ - [allowTables](#allowTables)
251
+ - [denyTables](#denyTables)
252
+ - [allowReadTables](#allowReadTables)
253
+ - [denyReadTables](#denyReadTables)
254
+ - [allowWriteTables](#allowWriteTables)
255
+ - [denyWriteTables](#denyWriteTables)
256
+ - [allowAllBuckets](#allowAllBuckets)
257
+ - [denyAllBuckets](#denyAllBuckets)
258
+ - [allowBuckets](#allowBuckets)
259
+ - [denyBuckets](#denyBuckets)
260
+ - [allowReadBuckets](#allowReadBuckets)
261
+ - [denyReadBuckets](#denyReadBuckets)
262
+ - [allowWriteBuckets](#allowWriteBuckets)
263
+ - [denyWriteBuckets](#denyWriteBuckets)
264
+ - [allowUserManagement](#allowUserManagement)
265
+ - [denyUserManagement](#denyUserManagement)
266
+ - [allowAllGroups](#allowAllGroups)
267
+
268
+ ### allowAllTables
269
+
270
+ すべてのテーブルに対して **読み取りと書き込み** を **許可** します。
271
+
272
+ ```ts copy
273
+ {
274
+ allowAllTables: true,
275
+ }
276
+ ```
277
+
278
+ ### denyAllTables
279
+
280
+ すべてのテーブルに対して **読み取りと書き込み** を **拒否** します。
281
+
282
+ ```ts copy
283
+ {
284
+ denyAllTables: true,
285
+ }
286
+ ```
287
+
288
+ ### allowTables
289
+
290
+ 指定したテーブルに対して **読み取りと書き込み** を **許可** します。
291
+
292
+ ```ts copy
293
+ {
294
+ allowTables: ["blog", "category", "tag"],
295
+ }
296
+ ```
297
+
298
+ ### denyTables
299
+
300
+ 指定したテーブルに対して **読み取りと書き込み** を **拒否** します。
301
+
302
+ ```ts copy
303
+ {
304
+ denyTables: ["blog", "category", "tag"],
305
+ }
306
+ ```
307
+
308
+ ### allowReadTables
309
+
310
+ 指定したテーブルの **読み取り** を **許可** します。
311
+
312
+ ```ts copy
313
+ {
314
+ allowReadTables: ["blog", "category", "tag"],
315
+ }
316
+ ```
317
+
318
+ ### denyReadTables
319
+
320
+ 指定したテーブルの **読み取り** を **拒否** します。
321
+
322
+ ```ts copy
323
+ {
324
+ denyReadTables: ["blog", "category", "tag"],
325
+ }
326
+ ```
327
+
328
+ ### allowWriteTables
329
+
330
+ 指定したテーブルの **書き込み** を **許可** します。
331
+
332
+ ```ts copy
333
+ {
334
+ allowWriteTables: ["blog", "category", "tag"],
335
+ }
336
+ ```
337
+
338
+ ### denyWriteTables
339
+
340
+ 指定したテーブルの **書き込み** を **拒否** します。
341
+
342
+ ```ts copy
343
+ {
344
+ denyWriteTables: ["blog", "category", "tag"],
345
+ }
346
+ ```
347
+
348
+ ### allowAllBuckets
349
+
350
+ すべてのバケットに対して **読み取りと書き込み** を **許可** します。
351
+
352
+ ```ts copy
353
+ {
354
+ allowAllBuckets: true,
355
+ }
356
+ ```
357
+
358
+ ### denyAllBuckets
359
+
360
+ すべてのバケットに対して **読み取りと書き込み** を **拒否** します。
361
+
362
+ ```ts copy
363
+ {
364
+ denyAllBuckets: true,
365
+ }
366
+ ```
367
+
368
+ ### allowBuckets
369
+
370
+ 指定したバケットに対して **読み取りと書き込み** を **許可** します。
371
+
372
+ ```ts copy
373
+ {
374
+ allowBuckets: ["photo", "video", "audio"],
375
+ }
376
+ ```
377
+
378
+ ### denyBuckets
379
+
380
+ 指定したバケットに対して **読み取りと書き込み** を **拒否** します。
381
+
382
+ ```ts copy
383
+ {
384
+ denyBuckets: ["photo", "video", "audio"],
385
+ }
386
+ ```
387
+
388
+ ### allowReadBuckets
389
+
390
+ 指定したバケットの **読み取り** を **許可** します。
391
+
392
+ ```ts copy
393
+ {
394
+ allowReadBuckets: ["photo", "video", "audio"],
395
+ }
396
+ ```
397
+
398
+ ### denyReadBuckets
399
+
400
+ 指定したバケットの **読み取り** を **拒否** します。
401
+
402
+ ```ts copy
403
+ {
404
+ denyReadBuckets: ["photo", "video", "audio"],
405
+ }
406
+ ```
407
+
408
+ ### allowWriteBuckets
409
+
410
+ 指定したバケットの **書き込み** を **許可** します。
411
+
412
+ ```ts copy
413
+ {
414
+ allowWriteBuckets: ["photo", "video", "audio"],
415
+ }
416
+ ```
417
+
418
+ ### denyWriteBuckets
419
+
420
+ 指定したバケットの **書き込み** を **拒否** します。
421
+
422
+ ```ts copy
423
+ {
424
+ denyWriteBuckets: ["photo", "video", "audio"],
425
+ }
426
+ ```
427
+
428
+ ### allowUserManagement
429
+
430
+ ユーザー管理の操作を **許可** します。
431
+
432
+ ```ts copy
433
+ {
434
+ allowUserManagement: true,
435
+ }
436
+ ```
437
+
438
+ ### denyUserManagement
439
+
440
+ ユーザー管理の操作を **拒否** します。
441
+
442
+ ```ts copy
443
+ {
444
+ denyUserManagement: true,
445
+ }
446
+ ```
447
+
448
+ ### allowAllGroups
449
+
450
+ すべてのグループのリソースに対してアクセスを許可します。
451
+
452
+ ```ts copy
453
+ {
454
+ allowAllGroups: true,
455
+ }
456
+ ```
@@ -0,0 +1,142 @@
1
+ <!-- source: docs/src/app/features/schema/bucket/page.mdx -->
2
+
3
+ # バケット
4
+
5
+ バケットは画像、動画、PDFなどのファイルを保存・配信するためのファイルストレージです。
6
+
7
+ 例えば、Webサイトで使用する画像をバケットに保存し、配信することができます。バケットにアップロードすると、アクセスするためのURLが発行されます。WebサイトではこのURLを `<img>` タグの `src` 属性に指定することで画像を表示できます。
8
+
9
+ このドキュメントでは、バケット機能の概要とスキーマを通してバケットを定義する方法を説明します。
10
+
11
+ ## バケットの定義
12
+
13
+ バケットを定義するには `buckets` プロパティを使用します。
14
+
15
+ 以下の例では、誰でもアクセスできる `publicFiles` バケットと、アクセスに認証が必要な `privateFiles` バケットを定義しています。
16
+
17
+ ```ts copy filename="orizm.config.ts" showLineNumbers
18
+ import { defineConfig } from "@orizm/cli/config";
19
+
20
+ export default defineConfig({
21
+ buckets: {
22
+ publicFiles: { accessControl: "public" },
23
+ privateFiles: { accessControl: "private" },
24
+ },
25
+ });
26
+ ```
27
+
28
+ ### accessControl
29
+
30
+ `accessControl` プロパティでバケットのアクセス制御を設定できます。指定しない場合は `public` になります。
31
+
32
+ - **public**: 誰でもアクセスできる(公開バケット)
33
+ - **private**: [署名付きURL](#署名付きurl) を知っているユーザーのみアクセスできる(非公開バケット)
34
+
35
+ ## 公開バケットへのアクセス
36
+
37
+ アップロードされたファイルごとに、アクセスするためのURLが生成されます。
38
+
39
+ ```
40
+ https://app.orizm.com/buckets/{プロジェクト名}/{バケット名}/{オブジェクトキー}
41
+ ```
42
+
43
+ このURLを取得するには、CMS SDKでバケットに対して `list()` または `get()` を使用してファイルのメタデータを取得します。
44
+
45
+ ```ts copy
46
+ // filesバケットのファイル一覧を取得
47
+ const { contents } = await cmsClient.buckets.files.list();
48
+
49
+ console.log(contents);
50
+ // [
51
+ // {
52
+ // id: 1,
53
+ // key: 'zl9XQ3KeKX89Ttf3.png',
54
+ // size: 25667,
55
+ // type: 'image/png',
56
+ // width: 1024,
57
+ // height: 672,
58
+ // group: null,
59
+ // originalFilename: 'image.png',
60
+ // bucketName: 'files',
61
+ // projectName: 'demo-project',
62
+ // publicUrl: 'https://app.orizm.com/buckets/demo-project/files/zl9XQ3KeKX89Ttf3.png',
63
+ // protectedUrl: 'https://app.orizm.com/buckets-protected/demo-project/files/zl9XQ3KeKX89Ttf3.png?token={トークン}',
64
+ // createdAt: '2025-01-01T00:00:00.000Z',
65
+ // updatedAt: '2025-01-01T00:00:00.000Z'
66
+ // }
67
+ // ]
68
+ ```
69
+
70
+ レスポンスされた `publicUrl` プロパティにアクセス用のURLが含まれています。
71
+
72
+ ```
73
+ https://app.orizm.com/buckets/demo-project/files/zl9XQ3KeKX89Ttf3.png
74
+ ```
75
+
76
+ ## 非公開バケットへのアクセス
77
+
78
+ 非公開バケットへアクセスするためのURLを取得するには、CMS SDKでバケットに対して `list()` または `get()` を使用してファイルのメタデータを取得します。
79
+
80
+ ```ts copy
81
+ // systemFilesバケットのファイル一覧を取得
82
+ const { contents } = await cmsClient.buckets.systemFiles.list();
83
+
84
+ console.log(contents);
85
+ // [
86
+ // {
87
+ // id: 1,
88
+ // key: 'zl9XQ3KeKX89Ttf3.png',
89
+ // size: 25667,
90
+ // type: 'image/png',
91
+ // width: 1024,
92
+ // height: 672,
93
+ // group: null,
94
+ // originalFilename: 'image.png',
95
+ // bucketName: 'systemFiles',
96
+ // projectName: 'demo-project',
97
+ // publicUrl: 'https://app.orizm.com/buckets/demo-project/systemFiles/zl9XQ3KeKX89Ttf3.png',
98
+ // protectedUrl: 'https://app.orizm.com/buckets-protected/demo-project/systemFiles/zl9XQ3KeKX89Ttf3.png?token={トークン}',
99
+ // createdAt: '2025-01-01T00:00:00.000Z',
100
+ // updatedAt: '2025-01-01T00:00:00.000Z'
101
+ // }
102
+ // ]
103
+ ```
104
+
105
+ レスポンスされた `protectedUrl` プロパティにアクセス用のURLが含まれています。
106
+
107
+ このURLは署名付きURLと呼ばれ、アクセスするためのJWTトークンが含まれています。このトークンは `最大15分間有効` です。トークンの期限が切れた場合は、再度 `list()` または `get()` でデータを取得することで新しいURLを取得できます。
108
+
109
+ ```
110
+ https://app.orizm.com/buckets-protected/demo-project/systemFiles/zl9XQ3KeKX89Ttf3.png?token={トークン}
111
+ ```
112
+
113
+ > [!WARNING]
114
+ > `publicUrl`
115
+ > プロパティのURLでアクセスした場合は、認証エラーとしてステータスコード `401`
116
+ > が返されます。
117
+
118
+ ## ファイルのアップロード
119
+
120
+ ファイルをアップロードするにはCMS SDKの `upload()` メソッドを使用します。
121
+
122
+ ```ts copy
123
+ // 引数 file はFile型オブジェクト
124
+ await cmsClient.buckets.files.upload(file);
125
+ ```
126
+
127
+ ## ファイルの削除
128
+
129
+ ファイルを削除するにはCMS SDKの `delete()` メソッドを使用します。
130
+
131
+ ```ts copy
132
+ const fileKey = "zl9XQ3KeKX89Ttf3.png";
133
+ await cmsClient.buckets.files.delete(fileKey);
134
+ ```
135
+
136
+ ## storage型カラム
137
+
138
+ データベースで使用できる [storage型カラム](./database.md#storage) もファイルストレージとして類似した機能を持っています。
139
+
140
+ storage型カラムとバケットはファイルを扱う点で似ていますが異なる点があります。バケットはシンプルなファイル置き場であるのに対し、storage型カラムはファイルをレコードに紐づけて扱えます。例えば、ブログ記事にサムネイル画像を設定する場合、storage型カラムを使用して画像ファイルをレコードに紐づけることができます。
141
+
142
+ レコードが削除された場合、ファイルは30日後に自動で削除されます。削除前であれば、[編集履歴の管理機能](../history.md) を利用して復元することも可能です。