@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.
- package/README.md +27 -1
- package/dist/agent-Kf8iuW2I.mjs +14 -0
- package/dist/agent-Kf8iuW2I.mjs.map +1 -0
- package/dist/agent-UZZtdOZS.cjs +14 -0
- package/dist/agent-UZZtdOZS.cjs.map +1 -0
- package/dist/auth-BnXPHgBU.cjs +18 -0
- package/dist/{auth-CNbONZuf.cjs.map → auth-BnXPHgBU.cjs.map} +1 -1
- package/dist/{auth-BGW072BP.mjs → auth-DHVtM0sF.mjs} +4 -4
- package/dist/{auth-BGW072BP.mjs.map → auth-DHVtM0sF.mjs.map} +1 -1
- package/dist/{bucket-mg5QQORh.cjs → bucket-CFaYmimY.cjs} +3 -3
- package/dist/{bucket-mg5QQORh.cjs.map → bucket-CFaYmimY.cjs.map} +1 -1
- package/dist/{bucket-DqW-WEYb.mjs → bucket-D-lu1xgZ.mjs} +3 -3
- package/dist/{bucket-DqW-WEYb.mjs.map → bucket-D-lu1xgZ.mjs.map} +1 -1
- package/dist/cli/main.cjs +14 -12
- package/dist/cli/main.cjs.map +1 -1
- package/dist/cli/main.mjs +14 -13
- package/dist/cli/main.mjs.map +1 -1
- package/dist/{cms-BJnovGYT.mjs → cms-8XZhxwsM.mjs} +8 -5
- package/dist/cms-8XZhxwsM.mjs.map +1 -0
- package/dist/{cms-Cnx-lDGu.cjs → cms-C4zEtppZ.cjs} +8 -5
- package/dist/cms-C4zEtppZ.cjs.map +1 -0
- package/dist/{codegen-BF5b-u46.cjs → codegen-Cypg4O3L.cjs} +3 -3
- package/dist/{codegen-BF5b-u46.cjs.map → codegen-Cypg4O3L.cjs.map} +1 -1
- package/dist/{codegen-DZOB4ttR.mjs → codegen-Dnjv7zfm.mjs} +3 -3
- package/dist/{codegen-DZOB4ttR.mjs.map → codegen-Dnjv7zfm.mjs.map} +1 -1
- package/dist/config/index.cjs +4 -2
- package/dist/config/index.cjs.map +1 -1
- package/dist/config/index.d.mts +8 -1
- package/dist/config/index.d.mts.map +1 -1
- package/dist/config/index.mjs +4 -2
- package/dist/config/index.mjs.map +1 -1
- package/dist/{config-loader-D8x32gEU.cjs → config-loader-CZfANHBf.cjs} +2 -2
- package/dist/config-loader-CZfANHBf.cjs.map +1 -0
- package/dist/{config-loader-BEgS869e.mjs → config-loader-CtbZOGjc.mjs} +3 -3
- package/dist/config-loader-CtbZOGjc.mjs.map +1 -0
- package/dist/{confirm-delete-B9o73U7B.cjs → confirm-delete-BX8bJrXZ.cjs} +3 -3
- package/dist/{confirm-delete-B9o73U7B.cjs.map → confirm-delete-BX8bJrXZ.cjs.map} +1 -1
- package/dist/{confirm-delete-CsWkW69-.mjs → confirm-delete-CcKLYuCB.mjs} +2 -2
- package/dist/{confirm-delete-CsWkW69-.mjs.map → confirm-delete-CcKLYuCB.mjs.map} +1 -1
- package/dist/{consumer-C4WiGHWG.mjs → consumer-BAM3E_68.mjs} +4 -4
- package/dist/{consumer-C4WiGHWG.mjs.map → consumer-BAM3E_68.mjs.map} +1 -1
- package/dist/{consumer-OF6Z_eTP.cjs → consumer-BSgriLn0.cjs} +4 -4
- package/dist/consumer-BSgriLn0.cjs.map +1 -0
- package/dist/consumer-D-Y6KJ8a.cjs +18 -0
- package/dist/{consumer-l-8wUK8E.cjs.map → consumer-D-Y6KJ8a.cjs.map} +1 -1
- package/dist/{consumer-pU2HyiyA.mjs → consumer-s8LnLw4e.mjs} +4 -4
- package/dist/consumer-s8LnLw4e.mjs.map +1 -0
- package/dist/content-ClRuLcGq.cjs +20 -0
- package/dist/{content-DMjSwor1.cjs.map → content-ClRuLcGq.cjs.map} +1 -1
- package/dist/content-DWnYo6ad.mjs +20 -0
- package/dist/{content-BOb6NC8M.mjs.map → content-DWnYo6ad.mjs.map} +1 -1
- package/dist/{create-DJY71sp9.cjs → create-B3d4CDel.cjs} +2 -2
- package/dist/{create-DJY71sp9.cjs.map → create-B3d4CDel.cjs.map} +1 -1
- package/dist/{create-CC814ixh.mjs → create-BD6iS4n6.mjs} +2 -2
- package/dist/{create-CC814ixh.mjs.map → create-BD6iS4n6.mjs.map} +1 -1
- package/dist/{create-B-PAOor6.mjs → create-BGV3F44O.mjs} +3 -3
- package/dist/{create-B-PAOor6.mjs.map → create-BGV3F44O.mjs.map} +1 -1
- package/dist/{create-Z-z3LXNW.cjs → create-BYDbsUvw.cjs} +3 -3
- package/dist/{create-Z-z3LXNW.cjs.map → create-BYDbsUvw.cjs.map} +1 -1
- package/dist/{create-Belwettw.mjs → create-BtuS23L3.mjs} +2 -2
- package/dist/{create-Belwettw.mjs.map → create-BtuS23L3.mjs.map} +1 -1
- package/dist/{create-CCsn7yp5.cjs → create-CNDCTpi0.cjs} +3 -3
- package/dist/{create-CCsn7yp5.cjs.map → create-CNDCTpi0.cjs.map} +1 -1
- package/dist/{create-BNYWcyuQ.cjs → create-DzRMGpm_.cjs} +2 -2
- package/dist/{create-BNYWcyuQ.cjs.map → create-DzRMGpm_.cjs.map} +1 -1
- package/dist/{create-B1ZBOqcV.mjs → create-fweRd0UB.mjs} +2 -2
- package/dist/{create-B1ZBOqcV.mjs.map → create-fweRd0UB.mjs.map} +1 -1
- package/dist/{create-D5suBd3J.mjs → create-m5fNBqQE.mjs} +3 -3
- package/dist/{create-D5suBd3J.mjs.map → create-m5fNBqQE.mjs.map} +1 -1
- package/dist/{create-CmOriwGo.cjs → create-tWGEtI3t.cjs} +2 -2
- package/dist/{create-CmOriwGo.cjs.map → create-tWGEtI3t.cjs.map} +1 -1
- package/dist/{delete-DhSU-Lx2.mjs → delete-B8VlzzCj.mjs} +3 -3
- package/dist/{delete-DhSU-Lx2.mjs.map → delete-B8VlzzCj.mjs.map} +1 -1
- package/dist/{delete-DVrafka1.cjs → delete-B9j8c8ln.cjs} +3 -3
- package/dist/{delete-DVrafka1.cjs.map → delete-B9j8c8ln.cjs.map} +1 -1
- package/dist/{delete-ZIifaG0i.mjs → delete-BhJK-8vE.mjs} +3 -3
- package/dist/{delete-ZIifaG0i.mjs.map → delete-BhJK-8vE.mjs.map} +1 -1
- package/dist/{delete-YYh_0khQ.mjs → delete-Bi6UhAhS.mjs} +3 -3
- package/dist/{delete-YYh_0khQ.mjs.map → delete-Bi6UhAhS.mjs.map} +1 -1
- package/dist/{delete-CCTiCYIL.cjs → delete-C_oxZa_p.cjs} +3 -3
- package/dist/{delete-CCTiCYIL.cjs.map → delete-C_oxZa_p.cjs.map} +1 -1
- package/dist/{delete-CSs5Czlo.mjs → delete-Ci7cq3mU.mjs} +3 -3
- package/dist/{delete-CSs5Czlo.mjs.map → delete-Ci7cq3mU.mjs.map} +1 -1
- package/dist/{delete-XWJRhBFs.mjs → delete-CiWkGnog.mjs} +3 -3
- package/dist/{delete-XWJRhBFs.mjs.map → delete-CiWkGnog.mjs.map} +1 -1
- package/dist/{delete-DozSxZQ7.cjs → delete-Cmk80aqF.cjs} +3 -3
- package/dist/{delete-DozSxZQ7.cjs.map → delete-Cmk80aqF.cjs.map} +1 -1
- package/dist/{delete-8yZ3j0vX.cjs → delete-CvtvB2Cr.cjs} +3 -3
- package/dist/{delete-8yZ3j0vX.cjs.map → delete-CvtvB2Cr.cjs.map} +1 -1
- package/dist/{delete-CIYY59v_.cjs → delete-DG825UwK.cjs} +4 -3
- package/dist/{delete-CIYY59v_.cjs.map → delete-DG825UwK.cjs.map} +1 -1
- package/dist/{delete-WpMIIvjj.cjs → delete-DGrSMqOt.cjs} +3 -3
- package/dist/{delete-WpMIIvjj.cjs.map → delete-DGrSMqOt.cjs.map} +1 -1
- package/dist/{delete-BOUObrDw.mjs → delete-Datr3Kqq.mjs} +3 -2
- package/dist/{delete-BOUObrDw.mjs.map → delete-Datr3Kqq.mjs.map} +1 -1
- package/dist/{delete-D4r1ve4v.cjs → delete-TTF4pIKw.cjs} +3 -3
- package/dist/{delete-D4r1ve4v.cjs.map → delete-TTF4pIKw.cjs.map} +1 -1
- package/dist/{delete-BSLIXrAh.mjs → delete-X8iVsETw.mjs} +3 -3
- package/dist/{delete-BSLIXrAh.mjs.map → delete-X8iVsETw.mjs.map} +1 -1
- package/dist/docs/features/cli/authentication.md +93 -0
- package/dist/docs/features/cli/commands/agent.md +49 -0
- package/dist/docs/features/cli/commands/auth.md +36 -0
- package/dist/docs/features/cli/commands/bucket.md +120 -0
- package/dist/docs/features/cli/commands/codegen.md +51 -0
- package/dist/docs/features/cli/commands/content.md +117 -0
- package/dist/docs/features/cli/commands/key.md +155 -0
- package/dist/docs/features/cli/commands/link.md +21 -0
- package/dist/docs/features/cli/commands/org.md +18 -0
- package/dist/docs/features/cli/commands/project-user.md +108 -0
- package/dist/docs/features/cli/commands/project.md +106 -0
- package/dist/docs/features/cli/commands/schema.md +108 -0
- package/dist/docs/features/cli/commands/webhook.md +110 -0
- package/dist/docs/features/cli/commands.md +110 -0
- package/dist/docs/features/cli/configuration.md +70 -0
- package/dist/docs/features/cli/output.md +53 -0
- package/dist/docs/features/cli/project-linking.md +58 -0
- package/dist/docs/features/cli/quickstart.md +83 -0
- package/dist/docs/features/cli.md +56 -0
- package/dist/docs/features/cms-sdk/account.md +122 -0
- package/dist/docs/features/cms-sdk/auth.md +122 -0
- package/dist/docs/features/cms-sdk/bucket.md +113 -0
- package/dist/docs/features/cms-sdk/cli.md +104 -0
- package/dist/docs/features/cms-sdk/fetch-contents.md +608 -0
- package/dist/docs/features/cms-sdk/install.md +98 -0
- package/dist/docs/features/cms-sdk/management-user.md +244 -0
- package/dist/docs/features/cms-sdk/migrate-to-v2.md +152 -0
- package/dist/docs/features/cms-sdk/mutation-contents.md +190 -0
- package/dist/docs/features/console/audit-logs.md +55 -0
- package/dist/docs/features/console/bucket.md +70 -0
- package/dist/docs/features/console/create-project.md +103 -0
- package/dist/docs/features/console/generate-api-key.md +103 -0
- package/dist/docs/features/console/invite-project-users.md +70 -0
- package/dist/docs/features/console/management-tables.md +131 -0
- package/dist/docs/features/console/organization-member-management.md +78 -0
- package/dist/docs/features/console/schema-history.md +29 -0
- package/dist/docs/features/console.md +15 -0
- package/dist/docs/features/consumer-sdk/cli.md +60 -0
- package/dist/docs/features/consumer-sdk/fetch-contents.md +603 -0
- package/dist/docs/features/consumer-sdk/install.md +90 -0
- package/dist/docs/features/consumer-sdk/migrate-to-v2.md +43 -0
- package/dist/docs/features/design-editor/about.md +36 -0
- package/dist/docs/features/design-editor/getting-started.md +244 -0
- package/dist/docs/features/design-editor/install.md +17 -0
- package/dist/docs/features/design-editor/prop-editor.md +83 -0
- package/dist/docs/features/design-editor/schema.md +279 -0
- package/dist/docs/features/dictionary.md +265 -0
- package/dist/docs/features/draft.md +241 -0
- package/dist/docs/features/form/about.md +83 -0
- package/dist/docs/features/form/editor.md +410 -0
- package/dist/docs/features/form/submission.md +94 -0
- package/dist/docs/features/full-text-search.md +114 -0
- package/dist/docs/features/history.md +152 -0
- package/dist/docs/features/schema/about.md +215 -0
- package/dist/docs/features/schema/authority.md +456 -0
- package/dist/docs/features/schema/bucket.md +142 -0
- package/dist/docs/features/schema/database.md +419 -0
- package/dist/docs/features/schema/table-module.md +140 -0
- package/dist/docs/features/webhook/revalidate-nextjs.md +185 -0
- package/dist/docs/features/webhook.md +295 -0
- package/dist/docs/get-started/add-model-starter.md +124 -0
- package/dist/docs/get-started/get-started-with-starter.md +218 -0
- package/dist/docs/index.md +89 -0
- package/dist/docs/introduction.md +140 -0
- package/dist/docs/manifest.json +6 -0
- package/dist/docs/resources/cli-migration-guide.md +82 -0
- package/dist/docs/resources/cli-v2-to-v3-migration-guide.md +138 -0
- package/dist/docs/resources/deploy-to-vercel.md +62 -0
- package/dist/docs/resources/limits.md +24 -0
- package/dist/docs/resources/private-registry.md +23 -0
- package/dist/docs/resources/status.md +22 -0
- package/dist/docs/resources/user-model.md +38 -0
- package/dist/{download-ogGbb3FU.cjs → download-BkzmfQXD.cjs} +2 -2
- package/dist/{download-ogGbb3FU.cjs.map → download-BkzmfQXD.cjs.map} +1 -1
- package/dist/{download-oFGzg30E.mjs → download-Dx1oyrMg.mjs} +2 -2
- package/dist/{download-oFGzg30E.mjs.map → download-Dx1oyrMg.mjs.map} +1 -1
- package/dist/{erd-zDoF6I_y.mjs → erd-BihhEfZ_.mjs} +3 -3
- package/dist/{erd-zDoF6I_y.mjs.map → erd-BihhEfZ_.mjs.map} +1 -1
- package/dist/{erd-lKC5NB2l.cjs → erd-DmnB1v2c.cjs} +3 -3
- package/dist/{erd-lKC5NB2l.cjs.map → erd-DmnB1v2c.cjs.map} +1 -1
- package/dist/{get-CgEgETQa.mjs → get-1TtxSEoT.mjs} +2 -2
- package/dist/{get-CgEgETQa.mjs.map → get-1TtxSEoT.mjs.map} +1 -1
- package/dist/{get-DjRyK0hJ.cjs → get-B5S1GfjR.cjs} +2 -2
- package/dist/{get-DjRyK0hJ.cjs.map → get-B5S1GfjR.cjs.map} +1 -1
- package/dist/{get-DDB89cOs.mjs → get-BLDHE_Zl.mjs} +2 -2
- package/dist/{get-DDB89cOs.mjs.map → get-BLDHE_Zl.mjs.map} +1 -1
- package/dist/{get-KdWfYINc.cjs → get-C5OH05Ka.cjs} +2 -2
- package/dist/{get-KdWfYINc.cjs.map → get-C5OH05Ka.cjs.map} +1 -1
- package/dist/{get-DwtzBjGV.cjs → get-CKZPn669.cjs} +2 -2
- package/dist/{get-DwtzBjGV.cjs.map → get-CKZPn669.cjs.map} +1 -1
- package/dist/{get-IOU__2RP.cjs → get-CdDZkUXV.cjs} +2 -2
- package/dist/{get-IOU__2RP.cjs.map → get-CdDZkUXV.cjs.map} +1 -1
- package/dist/{get-DB80UNSR.mjs → get-Cw4Dw5NG.mjs} +2 -2
- package/dist/{get-DB80UNSR.mjs.map → get-Cw4Dw5NG.mjs.map} +1 -1
- package/dist/{get-C7dKoSIc.mjs → get-Dy3AD4il.mjs} +2 -2
- package/dist/{get-C7dKoSIc.mjs.map → get-Dy3AD4il.mjs.map} +1 -1
- package/dist/{get-BBOKSXkh.cjs → get-PVsUGHBR.cjs} +2 -2
- package/dist/{get-BBOKSXkh.cjs.map → get-PVsUGHBR.cjs.map} +1 -1
- package/dist/{get-B6vBaq_D.mjs → get-Vo3yr12d.mjs} +2 -2
- package/dist/{get-B6vBaq_D.mjs.map → get-Vo3yr12d.mjs.map} +1 -1
- package/dist/{get-jwXRlIBJ.cjs → get-jaN2o0XY.cjs} +2 -2
- package/dist/{get-jwXRlIBJ.cjs.map → get-jaN2o0XY.cjs.map} +1 -1
- package/dist/{get-DBxhbN1G.mjs → get-qOKYAc46.mjs} +2 -2
- package/dist/{get-DBxhbN1G.mjs.map → get-qOKYAc46.mjs.map} +1 -1
- package/dist/init-BpKpTQ0z.mjs +425 -0
- package/dist/init-BpKpTQ0z.mjs.map +1 -0
- package/dist/init-BrZCChEG.cjs +427 -0
- package/dist/init-BrZCChEG.cjs.map +1 -0
- package/dist/{invite-DPygtCoO.cjs → invite-Tw3SMV0Q.cjs} +2 -2
- package/dist/{invite-DPygtCoO.cjs.map → invite-Tw3SMV0Q.cjs.map} +1 -1
- package/dist/{invite-D66DSMvq.mjs → invite-vzajkU2u.mjs} +2 -2
- package/dist/{invite-D66DSMvq.mjs.map → invite-vzajkU2u.mjs.map} +1 -1
- package/dist/{key-C71Ffll9.mjs → key-CyVxu3Uk.mjs} +3 -3
- package/dist/{key-C71Ffll9.mjs.map → key-CyVxu3Uk.mjs.map} +1 -1
- package/dist/{key-DQr7qRL2.cjs → key-tRYRqYNo.cjs} +3 -3
- package/dist/{key-DQr7qRL2.cjs.map → key-tRYRqYNo.cjs.map} +1 -1
- package/dist/{link-BluFyxEL.mjs → link-Bd55x5Zf.mjs} +2 -2
- package/dist/{link-BluFyxEL.mjs.map → link-Bd55x5Zf.mjs.map} +1 -1
- package/dist/{link-DYu1Vjlw.cjs → link-Cz7MX02S.cjs} +2 -2
- package/dist/{link-DYu1Vjlw.cjs.map → link-Cz7MX02S.cjs.map} +1 -1
- package/dist/{list-D5PSDMWw.mjs → list-2otVufvs.mjs} +3 -3
- package/dist/{list-D5PSDMWw.mjs.map → list-2otVufvs.mjs.map} +1 -1
- package/dist/{list-sQk00GV5.mjs → list-BMnBuZMr.mjs} +2 -2
- package/dist/{list-sQk00GV5.mjs.map → list-BMnBuZMr.mjs.map} +1 -1
- package/dist/{list-BwfpuhmJ.cjs → list-Bo8IMFd0.cjs} +2 -2
- package/dist/{list-BwfpuhmJ.cjs.map → list-Bo8IMFd0.cjs.map} +1 -1
- package/dist/{list-B0N4-Q-5.mjs → list-BtgAAUKm.mjs} +2 -2
- package/dist/{list-B0N4-Q-5.mjs.map → list-BtgAAUKm.mjs.map} +1 -1
- package/dist/{list-vbMaOiza.mjs → list-C0lq-gBZ.mjs} +2 -2
- package/dist/{list-vbMaOiza.mjs.map → list-C0lq-gBZ.mjs.map} +1 -1
- package/dist/{list-BsYYq9wT.mjs → list-CGZ3iT6J.mjs} +2 -2
- package/dist/{list-BsYYq9wT.mjs.map → list-CGZ3iT6J.mjs.map} +1 -1
- package/dist/{list-CFwW0G9f.cjs → list-CMWXO4nB.cjs} +2 -2
- package/dist/{list-CFwW0G9f.cjs.map → list-CMWXO4nB.cjs.map} +1 -1
- package/dist/{list-rAn3uOA7.mjs → list-Ccaec0cs.mjs} +2 -2
- package/dist/{list-rAn3uOA7.mjs.map → list-Ccaec0cs.mjs.map} +1 -1
- package/dist/{list-CU42ERNY.cjs → list-Cp_mHwbN.cjs} +2 -2
- package/dist/{list-CU42ERNY.cjs.map → list-Cp_mHwbN.cjs.map} +1 -1
- package/dist/{list-D0-QrWmn.cjs → list-Cs7kbAAi.cjs} +3 -3
- package/dist/{list-D0-QrWmn.cjs.map → list-Cs7kbAAi.cjs.map} +1 -1
- package/dist/{list-DlJssPwy.cjs → list-D5IaYurn.cjs} +2 -2
- package/dist/{list-DlJssPwy.cjs.map → list-D5IaYurn.cjs.map} +1 -1
- package/dist/{list-CbvEh7eA.mjs → list-DcIBInNA.mjs} +2 -2
- package/dist/{list-CbvEh7eA.mjs.map → list-DcIBInNA.mjs.map} +1 -1
- package/dist/{list-BzLraBnA.cjs → list-Dd3veD9Z.cjs} +2 -2
- package/dist/{list-BzLraBnA.cjs.map → list-Dd3veD9Z.cjs.map} +1 -1
- package/dist/{list-DexBclfb.cjs → list-DdVKKaDN.cjs} +2 -2
- package/dist/{list-DexBclfb.cjs.map → list-DdVKKaDN.cjs.map} +1 -1
- package/dist/{list-Br6Cmi9S.cjs → list-E1sjTZLe.cjs} +2 -2
- package/dist/{list-Br6Cmi9S.cjs.map → list-E1sjTZLe.cjs.map} +1 -1
- package/dist/{list-BRh59EqI.cjs → list-KI-7REC_.cjs} +2 -2
- package/dist/{list-BRh59EqI.cjs.map → list-KI-7REC_.cjs.map} +1 -1
- package/dist/{list-ocfd7631.mjs → list-MWD4huKP.mjs} +2 -2
- package/dist/{list-ocfd7631.mjs.map → list-MWD4huKP.mjs.map} +1 -1
- package/dist/{list-57TUfNFd.mjs → list-Pf5aAoaN.mjs} +2 -2
- package/dist/{list-57TUfNFd.mjs.map → list-Pf5aAoaN.mjs.map} +1 -1
- package/dist/{list-BHvURTWd.cjs → list-fG4zo8zz.cjs} +2 -2
- package/dist/{list-BHvURTWd.cjs.map → list-fG4zo8zz.cjs.map} +1 -1
- package/dist/{list-DrZYlidZ.mjs → list-r2UPz1zW.mjs} +2 -2
- package/dist/{list-DrZYlidZ.mjs.map → list-r2UPz1zW.mjs.map} +1 -1
- package/dist/{login-FE_dbWMo.mjs → login-Dq2L3bI7.mjs} +2 -2
- package/dist/{login-FE_dbWMo.mjs.map → login-Dq2L3bI7.mjs.map} +1 -1
- package/dist/{login-2XcHd4wn.cjs → login-M1IF2MdC.cjs} +2 -2
- package/dist/{login-2XcHd4wn.cjs.map → login-M1IF2MdC.cjs.map} +1 -1
- package/dist/{logout-DC5TMJ5_.cjs → logout-BCSfFgPz.cjs} +2 -2
- package/dist/{logout-DC5TMJ5_.cjs.map → logout-BCSfFgPz.cjs.map} +1 -1
- package/dist/{logout-BDbWrGBm.mjs → logout-DFzQCQKe.mjs} +2 -2
- package/dist/{logout-BDbWrGBm.mjs.map → logout-DFzQCQKe.mjs.map} +1 -1
- package/dist/management-C1p-Hm2Z.cjs +19 -0
- package/dist/{management-BGYcZB4c.cjs.map → management-C1p-Hm2Z.cjs.map} +1 -1
- package/dist/{management-DDACMgbU.mjs → management-h4yE09a6.mjs} +5 -5
- package/dist/{management-DDACMgbU.mjs.map → management-h4yE09a6.mjs.map} +1 -1
- package/dist/object-CZDLoc9L.cjs +20 -0
- package/dist/{object-DVqidsEc.cjs.map → object-CZDLoc9L.cjs.map} +1 -1
- package/dist/object-CqMsEkh9.mjs +20 -0
- package/dist/{object-qdBdEghr.mjs.map → object-CqMsEkh9.mjs.map} +1 -1
- package/dist/{org-CPhTRTks.mjs → org-Co-rjfr-.mjs} +2 -2
- package/dist/{org-CPhTRTks.mjs.map → org-Co-rjfr-.mjs.map} +1 -1
- package/dist/{org-C4cVovOM.cjs → org-Drj3VqIm.cjs} +2 -2
- package/dist/{org-C4cVovOM.cjs.map → org-Drj3VqIm.cjs.map} +1 -1
- package/dist/{org-context-Bewx2NEW.cjs → org-context-DKFnPH_o.cjs} +2 -2
- package/dist/{org-context-Bewx2NEW.cjs.map → org-context-DKFnPH_o.cjs.map} +1 -1
- package/dist/{org-context-D0dwWC2M.mjs → org-context-Df5McOiK.mjs} +2 -2
- package/dist/{org-context-D0dwWC2M.mjs.map → org-context-Df5McOiK.mjs.map} +1 -1
- package/dist/project-C7qWFjMV.mjs +20 -0
- package/dist/{project-CaXD3QBs.mjs.map → project-C7qWFjMV.mjs.map} +1 -1
- package/dist/project-Dm7nr5NV.cjs +20 -0
- package/dist/{project-BX7zvWB1.cjs.map → project-Dm7nr5NV.cjs.map} +1 -1
- package/dist/project-user-D9h_QBc0.mjs +20 -0
- package/dist/{project-user-Cp7i6orv.mjs.map → project-user-D9h_QBc0.mjs.map} +1 -1
- package/dist/project-user-wLFnHFwB.cjs +20 -0
- package/dist/{project-user-Dm0qR-sh.cjs.map → project-user-wLFnHFwB.cjs.map} +1 -1
- package/dist/prompt-C-XNDSNE.cjs +42 -0
- package/dist/prompt-C-XNDSNE.cjs.map +1 -0
- package/dist/prompt-Dr2Rkxun.mjs +25 -0
- package/dist/prompt-Dr2Rkxun.mjs.map +1 -0
- package/dist/{push-0u6PDz4E.cjs → push-BggkrD0g.cjs} +31 -12
- package/dist/push-BggkrD0g.cjs.map +1 -0
- package/dist/{push-D7co0keA.mjs → push-xWnD9oov.mjs} +30 -11
- package/dist/push-xWnD9oov.mjs.map +1 -0
- package/dist/{run-codegen-Ceeosw5x.cjs → run-codegen-B-90rvjk.cjs} +4 -4
- package/dist/run-codegen-B-90rvjk.cjs.map +1 -0
- package/dist/{run-codegen-DgaFaIQ1.mjs → run-codegen-CrO08jJT.mjs} +4 -4
- package/dist/run-codegen-CrO08jJT.mjs.map +1 -0
- package/dist/{run-with-context-CVhmzAFZ.mjs → run-with-context-B4DyI8Wo.mjs} +6 -26
- package/dist/run-with-context-B4DyI8Wo.mjs.map +1 -0
- package/dist/{run-with-context-DJNnEigg.cjs → run-with-context-D8pSrqD_.cjs} +7 -39
- package/dist/run-with-context-D8pSrqD_.cjs.map +1 -0
- package/dist/schema-CUVTXrHk.cjs +20 -0
- package/dist/{schema-B3iRqvYK.cjs.map → schema-CUVTXrHk.cjs.map} +1 -1
- package/dist/schema-DlUWHV_t.mjs +20 -0
- package/dist/{schema-exG250MU.mjs.map → schema-DlUWHV_t.mjs.map} +1 -1
- package/dist/{status-Dq_NJE71.cjs → status-CqPJTxeK.cjs} +2 -2
- package/dist/{status-Dq_NJE71.cjs.map → status-CqPJTxeK.cjs.map} +1 -1
- package/dist/{status-fWqXzV0P.mjs → status-D7nOW3R3.mjs} +2 -2
- package/dist/{status-fWqXzV0P.mjs.map → status-D7nOW3R3.mjs.map} +1 -1
- package/dist/{token-store--9GYVL7N.cjs → token-store-BgWGhqq0.cjs} +3 -3
- package/dist/{token-store--9GYVL7N.cjs.map → token-store-BgWGhqq0.cjs.map} +1 -1
- package/dist/{token-store-reCGF86F.mjs → token-store-C2r7cFA-.mjs} +2 -2
- package/dist/{token-store-reCGF86F.mjs.map → token-store-C2r7cFA-.mjs.map} +1 -1
- package/dist/{update-B4lv4dAz.mjs → update-8-sHFvNB.mjs} +2 -2
- package/dist/{update-B4lv4dAz.mjs.map → update-8-sHFvNB.mjs.map} +1 -1
- package/dist/{update-Dyo4vuZs.mjs → update-B5hKKw0K.mjs} +3 -3
- package/dist/{update-Dyo4vuZs.mjs.map → update-B5hKKw0K.mjs.map} +1 -1
- package/dist/{update-Do9HHWzs.cjs → update-BVaqURWE.cjs} +2 -2
- package/dist/{update-Do9HHWzs.cjs.map → update-BVaqURWE.cjs.map} +1 -1
- package/dist/{update-DRnN1kiu.cjs → update-BlUwNhLA.cjs} +2 -2
- package/dist/{update-DRnN1kiu.cjs.map → update-BlUwNhLA.cjs.map} +1 -1
- package/dist/{update-Cx_2GkQj.cjs → update-BqhLwuP7.cjs} +2 -2
- package/dist/{update-Cx_2GkQj.cjs.map → update-BqhLwuP7.cjs.map} +1 -1
- package/dist/{update-mEmULIau.mjs → update-DaYjh5VN.mjs} +2 -2
- package/dist/{update-mEmULIau.mjs.map → update-DaYjh5VN.mjs.map} +1 -1
- package/dist/{update-CJgEmSWJ.cjs → update-DcTzR54Z.cjs} +3 -3
- package/dist/{update-CJgEmSWJ.cjs.map → update-DcTzR54Z.cjs.map} +1 -1
- package/dist/{update-CIH6sSVk.cjs → update-Dne7g_0s.cjs} +2 -2
- package/dist/{update-CIH6sSVk.cjs.map → update-Dne7g_0s.cjs.map} +1 -1
- package/dist/{update-CQ4n4Xuf.mjs → update-Dy1BOnTB.mjs} +2 -2
- package/dist/{update-CQ4n4Xuf.mjs.map → update-Dy1BOnTB.mjs.map} +1 -1
- package/dist/{update-rzij1b_o.mjs → update-slz_X0mG.mjs} +2 -2
- package/dist/{update-rzij1b_o.mjs.map → update-slz_X0mG.mjs.map} +1 -1
- package/dist/{upload-DGgJ1TQk.mjs → upload-CDtzV9Wx.mjs} +3 -3
- package/dist/{upload-DGgJ1TQk.mjs.map → upload-CDtzV9Wx.mjs.map} +1 -1
- package/dist/{upload-C43ZXxyb.cjs → upload-DIln1QDA.cjs} +3 -3
- package/dist/{upload-C43ZXxyb.cjs.map → upload-DIln1QDA.cjs.map} +1 -1
- package/dist/{validate-BpxZ8LTl.cjs → validate-BH8jqdqq.cjs} +2 -2
- package/dist/{validate-BpxZ8LTl.cjs.map → validate-BH8jqdqq.cjs.map} +1 -1
- package/dist/{validate-Ca0CRo16.mjs → validate-COS4bfr0.mjs} +2 -2
- package/dist/{validate-Ca0CRo16.mjs.map → validate-COS4bfr0.mjs.map} +1 -1
- package/dist/webhook-BT3cHrq5.mjs +20 -0
- package/dist/{webhook-CpZ1-Ho5.mjs.map → webhook-BT3cHrq5.mjs.map} +1 -1
- package/dist/webhook-CQeuAqec.cjs +20 -0
- package/dist/{webhook-CbL4QaR5.cjs.map → webhook-CQeuAqec.cjs.map} +1 -1
- package/package.json +10 -9
- package/dist/auth-CNbONZuf.cjs +0 -18
- package/dist/cms-BJnovGYT.mjs.map +0 -1
- package/dist/cms-Cnx-lDGu.cjs.map +0 -1
- package/dist/config-loader-BEgS869e.mjs.map +0 -1
- package/dist/config-loader-D8x32gEU.cjs.map +0 -1
- package/dist/consumer-OF6Z_eTP.cjs.map +0 -1
- package/dist/consumer-l-8wUK8E.cjs +0 -18
- package/dist/consumer-pU2HyiyA.mjs.map +0 -1
- package/dist/content-BOb6NC8M.mjs +0 -20
- package/dist/content-DMjSwor1.cjs +0 -20
- package/dist/management-BGYcZB4c.cjs +0 -19
- package/dist/object-DVqidsEc.cjs +0 -20
- package/dist/object-qdBdEghr.mjs +0 -20
- package/dist/project-BX7zvWB1.cjs +0 -20
- package/dist/project-CaXD3QBs.mjs +0 -20
- package/dist/project-user-Cp7i6orv.mjs +0 -20
- package/dist/project-user-Dm0qR-sh.cjs +0 -20
- package/dist/push-0u6PDz4E.cjs.map +0 -1
- package/dist/push-D7co0keA.mjs.map +0 -1
- package/dist/run-codegen-Ceeosw5x.cjs.map +0 -1
- package/dist/run-codegen-DgaFaIQ1.mjs.map +0 -1
- package/dist/run-with-context-CVhmzAFZ.mjs.map +0 -1
- package/dist/run-with-context-DJNnEigg.cjs.map +0 -1
- package/dist/schema-B3iRqvYK.cjs +0 -20
- package/dist/schema-exG250MU.mjs +0 -20
- package/dist/webhook-CbL4QaR5.cjs +0 -20
- 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
|
+

|
|
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`
|