@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,265 @@
|
|
|
1
|
+
<!-- source: docs/src/app/features/dictionary/page.mdx -->
|
|
2
|
+
|
|
3
|
+
# 検索辞書
|
|
4
|
+
|
|
5
|
+
検索辞書を使用すると、社内の俗称や型番の表記ゆれを検索に教え込めます。開発コード「マニ丸」で検索した人に正式名称「全熱交換型換気システム」の記事を返す、といった言い換えを、コンテンツ本文を書き換えずに実現できます。
|
|
6
|
+
|
|
7
|
+
検索辞書は以下の機能を提供します。
|
|
8
|
+
|
|
9
|
+
- 同義語による検索クエリの言い換え(表記ゆれ・俗称の吸収)
|
|
10
|
+
- 用語そのものの解説を検索結果に返す
|
|
11
|
+
- プロジェクト全体に効く語彙管理(テーブルごとの設定は不要)
|
|
12
|
+
- エントリを削除せずに一時的に無効化
|
|
13
|
+
|
|
14
|
+
> [!WARNING]
|
|
15
|
+
> 検索辞書が検索に効くのは [セマンティック検索](./full-text-search.md)
|
|
16
|
+
> を有効にしたプロジェクトで、`mode` に `semantic` または `hybrid`
|
|
17
|
+
> を指定した検索だけです。`mode` を省略した検索(`keyword`)には効きません。
|
|
18
|
+
>
|
|
19
|
+
> セマンティック検索が利用できるかどうかは、プロジェクトの設定に加えてシステム側の設定でも決まります。システム側で有効になっていない環境では、辞書の登録・更新は成功しても検索には反映されません(`semantic` / `hybrid` がエラーになるか、`keyword` と同じ結果に劣化して返ります)。利用中の環境で使えるかは管理者に確認してください。
|
|
20
|
+
>
|
|
21
|
+
|
|
22
|
+
## ユースケース例
|
|
23
|
+
|
|
24
|
+
### 社内の俗称・略称で検索できるようにする
|
|
25
|
+
|
|
26
|
+
製品名や部署名には、正式名称のほかに現場でしか使われない呼び方があります。検索辞書に正式名称を見出し語、俗称を同義語として登録しておくと、どちらで検索しても同じコンテンツに当たります。コンテンツ側に俗称を書き足す必要はありません。
|
|
27
|
+
|
|
28
|
+
### 型番の表記ゆれを吸収する
|
|
29
|
+
|
|
30
|
+
`ORZ-1200X` のような型番は、全角で入力される・ハイフンが別の記号になるといった揺れが生まれます。この種の違いは [正規化](#表記の同一視) で自動的に吸収されますが、`ORZ 1200X` のように語の途中に空白が入る表記や、`オリズム1200` のようにまったく別の呼び方は吸収されないため、同義語として登録します。
|
|
31
|
+
|
|
32
|
+
### 用語集として検索結果に出す
|
|
33
|
+
|
|
34
|
+
説明を付けて登録したエントリは、それ自体が検索対象になります。編集者が社内用語で検索したときに、コンテンツの一覧と一緒に用語の解説を出せます。
|
|
35
|
+
|
|
36
|
+
## 前提
|
|
37
|
+
|
|
38
|
+
検索辞書そのものはプロジェクト単位の語彙で、辞書を登録するためのテーブルごとの設定はありません。ただし辞書が効くのは `semantic` / `hybrid` で検索できるテーブルに対してだけです。`orizm.config.ts` にプロジェクトの `semanticSearch` を宣言し、検索したいテーブルに `enableSearch: true` を付けて `orizm schema push` してください。
|
|
39
|
+
|
|
40
|
+
```ts copy filename="orizm.config.ts" showLineNumbers {4,8}
|
|
41
|
+
import { defineConfig } from "@orizm/cli/config";
|
|
42
|
+
|
|
43
|
+
export default defineConfig({
|
|
44
|
+
semanticSearch: { enabled: true },
|
|
45
|
+
tables: {
|
|
46
|
+
blog: {
|
|
47
|
+
columns: {},
|
|
48
|
+
enableSearch: true,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
> [!NOTE]
|
|
55
|
+
> 検索辞書の操作は CMS SDK(および Management API)で行います。Orizm Console /
|
|
56
|
+
> Project Console には検索辞書の画面はありません。
|
|
57
|
+
|
|
58
|
+
## 2つの効き方
|
|
59
|
+
|
|
60
|
+
検索辞書は 2 つの経路で検索に作用します。エントリの内容によって、どちらが効くかが変わります。
|
|
61
|
+
|
|
62
|
+
| 経路 | 効く条件 | 反映タイミング |
|
|
63
|
+
| ---------------------------- | --------------------------------------------------------- | -------------- |
|
|
64
|
+
| 同義語によるクエリの言い換え | `hybrid` 検索。同義語が 1 つ以上あるエントリ | 即時 |
|
|
65
|
+
| 用語解説を検索結果に返す | CMS SDK の `semantic` / `hybrid` 検索。説明があるエントリ | 非同期 |
|
|
66
|
+
|
|
67
|
+
どちらも `enabled: false` のエントリには効きません。
|
|
68
|
+
|
|
69
|
+
### 同義語によるクエリの言い換え
|
|
70
|
+
|
|
71
|
+
`hybrid` で検索すると、クエリの中に辞書の表記が含まれていた場合に、それを同じエントリの別表記へ置き換えた「変種クエリ」が検索に足されます。置き換えは見出し語と同義語の双方向で、見出し語で検索すれば各同義語に、同義語で検索すれば見出し語と他の同義語に置き換わります。
|
|
72
|
+
|
|
73
|
+
例えば見出し語 `ORZ-1200X`、同義語 `オリズム1200` / `1200X` のエントリがある場合、`オリズム1200 の仕様` というクエリからは `orz-1200x の仕様` と `1200x の仕様` が足されます。
|
|
74
|
+
|
|
75
|
+
元のクエリは必ず検索対象として残るので、辞書を登録して検索に一致しなくなるコンテンツはありません。ただし順位は変わります。`hybrid` は上位 100 件までの窓で順位を融合して返すため、言い換えで新たに一致したコンテンツが加わるとその分だけ既存のヒットの順位が下がり、一致の多いクエリでは窓から外れて表示されなくなることがあります。
|
|
76
|
+
|
|
77
|
+
この経路は Consumer SDK の `hybrid` 検索でも同じように効きます。ただしどのエントリが効いたのかは検索結果に現れません。
|
|
78
|
+
|
|
79
|
+
ベクトル検索側の障害やシステム側の停止でキーワード検索に劣化したリクエストでは、言い換えも効きません(劣化した応答は `keyword` で検索したときと同じ結果になります)。
|
|
80
|
+
|
|
81
|
+
> [!NOTE]
|
|
82
|
+
> 照合はクエリ文字列に対する部分一致で、単語の区切りは見ません。短い表記を登録すると、それを含む別の語にも言い換えが起きます。
|
|
83
|
+
>
|
|
84
|
+
> 1 つの変種クエリで置き換えるのは 1 エントリの 1 表記だけです。クエリの中の 2
|
|
85
|
+
> 語がどちらも別表記で書かれているコンテンツは拾えないことがあります。
|
|
86
|
+
>
|
|
87
|
+
> 1 回の検索で足される変種クエリは最大 20 件です。また言い換えに使われるのは、同義語を持つ有効なエントリのうち登録が古い順に
|
|
88
|
+
> 5,000 件までで、これを超える分は効きません(説明だけのエントリはこの数に含まれません)。
|
|
89
|
+
>
|
|
90
|
+
|
|
91
|
+
### 用語解説を検索結果に返す
|
|
92
|
+
|
|
93
|
+
説明(`description`)を付けたエントリは、それ自体が検索対象になります。CMS SDK で `semantic` または `hybrid` の検索をすると、検索結果に `_dictionary` が付き、クエリに近いものから最大 3 件の用語解説が返ります。
|
|
94
|
+
|
|
95
|
+
```ts copy
|
|
96
|
+
const result = await cmsClient.tables.blog.search({
|
|
97
|
+
query: "熱を回収する換気",
|
|
98
|
+
mode: "hybrid",
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
console.log(result.contents); // コンテンツのヒット
|
|
102
|
+
console.log(result._dictionary); // 辞書のヒット(最大 3 件)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
`_dictionary` の各要素は以下のフィールドを持ちます。
|
|
106
|
+
|
|
107
|
+
| フィールド | 説明 |
|
|
108
|
+
| ------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
109
|
+
| `id` | エントリの ID。`get()` / `update()` / `delete()` にそのまま渡せます |
|
|
110
|
+
| `term` | 見出し語(登録した表記のまま) |
|
|
111
|
+
| `description` | 説明 |
|
|
112
|
+
| `score` | クエリと、見出し語・同義語・説明をつないだ文章との近さ。行の `_semantic.score` とは尺度が違うため比較できません |
|
|
113
|
+
|
|
114
|
+
照合に使われるのは説明だけではありません。見出し語と同義語も同じ文章に含めて突き合わせるため、説明に俗称を書かなくても、俗称で検索したときに当たりやすくなります。
|
|
115
|
+
|
|
116
|
+
辞書のヒットは `contents` とは別の枠で返り、`totalCount` にも含まれません。ページングもせず、`offset` を動かしても同じ内容が返ります。
|
|
117
|
+
|
|
118
|
+
辞書のヒットには近さの下限がありません。説明付きの有効なエントリが 3 件以上あるプロジェクトでは、辞書と関係の薄いクエリでも近い順に 3 件が埋まります。そのまま画面に出すと常に 3 件並ぶので、出すかどうかは `score` を見て呼び出し側で決めてください(`score` の目安になる値は埋め込みモデルによって変わるため、決め打ちのしきい値は用意していません)。
|
|
119
|
+
|
|
120
|
+
`_dictionary` は状態によって 3 通りになります。
|
|
121
|
+
|
|
122
|
+
- **キーが無い**: `keyword` 検索、キーワード検索への劣化時、有効な説明付きのエントリが 1 つも無いプロジェクト(反映待ちの間を含む)、辞書の検索が一時的に失敗したとき
|
|
123
|
+
- **空配列**: 辞書は引けたが返せるエントリが無かった(通常は起きません)
|
|
124
|
+
- **配列**: ヒットあり
|
|
125
|
+
|
|
126
|
+
キーの有無は設定だけで決まるものではないため、`_dictionary` は常に省略され得るものとして扱ってください。
|
|
127
|
+
|
|
128
|
+
> [!WARNING]
|
|
129
|
+
> 辞書のヒットにはグループによる権限のフィルタが掛かりません。特定のグループにだけ見せたい情報は説明に書かないでください。
|
|
130
|
+
>
|
|
131
|
+
> Consumer SDK の検索には `_dictionary`
|
|
132
|
+
> は付きません。辞書エントリには公開・下書きの区別が無いためです。
|
|
133
|
+
>
|
|
134
|
+
|
|
135
|
+
## 表記の同一視
|
|
136
|
+
|
|
137
|
+
エントリは見出し語を正規化した値で識別されます。表記が違っても正規化後に同じなら同じエントリで、検索時の照合にも同じ正規化が使われます。
|
|
138
|
+
|
|
139
|
+
以下の違いは同じ語として扱われます。
|
|
140
|
+
|
|
141
|
+
- 全角と半角(`ORZ-1200X` = `orz-1200x`)
|
|
142
|
+
- 大文字と小文字
|
|
143
|
+
- 半角カナと全角カナ(`オリズム` = `オリズム`)
|
|
144
|
+
- ハイフン・マイナス・ダッシュ類(`ORZ‐1200X` = `ORZ−1200X` = `orz-1200x`)
|
|
145
|
+
- 前後の空白、連続する空白、全角空白
|
|
146
|
+
- 貼り付けで紛れ込む不可視文字(ゼロ幅スペースなど)
|
|
147
|
+
|
|
148
|
+
長音記号 `ー` はハイフンに畳まないため、`コーヒー` と `コ-ヒ-` は別の語です。
|
|
149
|
+
|
|
150
|
+
見出し語と同義語は入力した表記のまま保存・返却され、正規化した値は検索の照合にだけ使われます。なお同義語のうち、正規化すると見出し語と同じになるもの・先に指定した同義語と同じになるものは、登録時に取り除かれます。
|
|
151
|
+
|
|
152
|
+
## 使い方
|
|
153
|
+
|
|
154
|
+
CMS SDK の `cmsClient.dictionary` から操作します。テーブルの配下ではなくクライアント直下にあります。
|
|
155
|
+
|
|
156
|
+
辞書の登録・更新・削除には、プロジェクト内のいずれかのテーブルへの書き込み権限が必要です([権限](./schema/authority.md) でどのテーブルにも書けないロールでは 403 になります)。一覧・取得は認証だけで行えます。
|
|
157
|
+
|
|
158
|
+
### エントリの登録
|
|
159
|
+
|
|
160
|
+
`add()` に登録したいエントリの配列を渡します。1 回のリクエストで複数のエントリを登録できます。
|
|
161
|
+
|
|
162
|
+
```ts copy
|
|
163
|
+
await cmsClient.dictionary.add([
|
|
164
|
+
{
|
|
165
|
+
term: "全熱交換型換気システム",
|
|
166
|
+
synonyms: ["マニ丸", "ロスナイ式"],
|
|
167
|
+
description: "熱交換素子で温度と湿度を回収しながら換気する第一種換気設備。",
|
|
168
|
+
},
|
|
169
|
+
]);
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
`description` と `synonyms` は省略できます。`enabled` を `false` にすると、登録はしても検索には効かない状態で作れます(既定は `true`)。
|
|
173
|
+
|
|
174
|
+
> [!WARNING]
|
|
175
|
+
> `add()` は、正規化した見出し語が既存のエントリと一致した場合そのエントリを**丸ごと置き換えます**。渡さなかったフィールドは前の値のままにはならず、初期値に戻ります(`synonyms`
|
|
176
|
+
> は `[]`、`description` は `null`、`enabled` は `true`)。
|
|
177
|
+
>
|
|
178
|
+
> 一部のフィールドだけを変えたいときは [`update()`](#エントリの部分更新)
|
|
179
|
+
> を使ってください。
|
|
180
|
+
>
|
|
181
|
+
> 置き換えになるので、同じ一覧を投入し直しても重複したエントリは作られません。ID
|
|
182
|
+
> も変わらないので、`_dictionary` などで受け取った ID
|
|
183
|
+
> は投入し直したあとも使えます。一方、1 回のリクエストに同じ見出し語を 2
|
|
184
|
+
> つ入れることはできません(エラーになります)。
|
|
185
|
+
>
|
|
186
|
+
|
|
187
|
+
### エントリの一覧取得
|
|
188
|
+
|
|
189
|
+
`list()` でエントリの一覧を取得します。登録が古い順に返り、`enabled: false` のエントリも含まれます。
|
|
190
|
+
|
|
191
|
+
```ts copy
|
|
192
|
+
const { contents, totalCount } = await cmsClient.dictionary.list();
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
`query` で絞り込み、`limit` と `offset` でページングできます。
|
|
196
|
+
|
|
197
|
+
```ts copy
|
|
198
|
+
await cmsClient.dictionary.list({ query: "換気", limit: 50, offset: 0 });
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
`query` の当たり方は見出し語と同義語で違います。見出し語は部分一致、同義語は完全一致です。どちらも正規化して突き合わせるので、半角で登録した語を全角で検索できます。正規化して空になる値(空白のみなど)は未指定と同じ扱いで、絞り込みません。
|
|
202
|
+
|
|
203
|
+
`limit` を指定しない場合は 100 件まで取得されます。
|
|
204
|
+
|
|
205
|
+
### エントリの取得
|
|
206
|
+
|
|
207
|
+
`get()` に ID を渡して 1 件を取得します。
|
|
208
|
+
|
|
209
|
+
```ts copy
|
|
210
|
+
const entry = await cmsClient.dictionary.get(entryId);
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### エントリの部分更新
|
|
214
|
+
|
|
215
|
+
`update()` は渡したフィールドだけを変更します。渡さなかったフィールドは変わりません。
|
|
216
|
+
|
|
217
|
+
```ts copy
|
|
218
|
+
await cmsClient.dictionary.update(entryId, { synonyms: ["マニ丸", "1200X"] });
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
`description` に `null` を渡すと説明を消せます。説明が無くなったエントリは検索結果に返らなくなりますが、同義語による言い換えは引き続き効きます。
|
|
222
|
+
|
|
223
|
+
```ts copy
|
|
224
|
+
await cmsClient.dictionary.update(entryId, { description: null });
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
一時的に効果を止めたいときは `enabled` を `false` にします。削除せずに両方の経路を止められます。
|
|
228
|
+
|
|
229
|
+
```ts copy
|
|
230
|
+
await cmsClient.dictionary.update(entryId, { enabled: false });
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
`term` を変えると、エントリを識別する値も一緒に変わります。変更後の表記が既にある別のエントリと同じになる場合はエラーになります。このとき同義語も組み直されるため、新しい見出し語と同じになる同義語は(`synonyms` を渡していなくても)取り除かれます。
|
|
234
|
+
|
|
235
|
+
### エントリの削除
|
|
236
|
+
|
|
237
|
+
`delete()` に ID を渡します。
|
|
238
|
+
|
|
239
|
+
```ts copy
|
|
240
|
+
await cmsClient.dictionary.delete(entryId);
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## 検索への反映タイミング
|
|
244
|
+
|
|
245
|
+
同義語による言い換えは、登録・更新した直後の検索から効きます。
|
|
246
|
+
|
|
247
|
+
用語解説の検索対象化(`_dictionary`)は非同期です。エントリを変更すると裏で辞書の索引が作り直され、それが終わってから検索結果に現れます。所要時間は説明付きのエントリの件数によって変わります。無効化・削除で検索結果から消える場合も同じ経路を通ります。
|
|
248
|
+
|
|
249
|
+
説明付きの有効なエントリが 1 つも無くなると辞書の索引自体が削除され、以降の検索では `_dictionary` が付かなくなります。
|
|
250
|
+
|
|
251
|
+
## 上限値
|
|
252
|
+
|
|
253
|
+
| 対象 | 上限 |
|
|
254
|
+
| ------------------------------------- | ------------------ |
|
|
255
|
+
| 1 回の `add()` で登録できるエントリ数 | 500 件(1 件以上) |
|
|
256
|
+
| 見出し語・同義語 1 つあたりの文字数 | 200 文字 |
|
|
257
|
+
| 1 エントリの同義語の数 | 50 個 |
|
|
258
|
+
| 説明の文字数 | 2000 文字 |
|
|
259
|
+
| `list()` の `limit` | 500(既定 100) |
|
|
260
|
+
|
|
261
|
+
見出し語・同義語・説明には制御文字を含められません(タブ・改行・復帰は除きます。説明は複数行で登録できます。見出し語・同義語では空白に畳まれます)。また空白だけの見出し語・同義語・説明は登録できません。
|
|
262
|
+
|
|
263
|
+
## 監査ログ
|
|
264
|
+
|
|
265
|
+
エントリの登録・更新・削除は [監査ログ](./console/audit-logs.md) に記録されます。
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
<!-- source: docs/src/app/features/draft/page.mdx -->
|
|
2
|
+
|
|
3
|
+
# 下書き管理
|
|
4
|
+
|
|
5
|
+
下書き管理機能を使用すると、コンテンツを公開前に下書きとして保存し、編集・確認してから公開できます。この機能はコンテンツの品質管理やワークフロー管理に役立ちます。
|
|
6
|
+
|
|
7
|
+
以下の機能を提供します。
|
|
8
|
+
|
|
9
|
+
- コンテンツを下書き状態で保存
|
|
10
|
+
- コンテンツの公開ステータスを管理
|
|
11
|
+
- 下書きと公開コンテンツを並行管理
|
|
12
|
+
- 公開、非公開をスケジュール予約
|
|
13
|
+
|
|
14
|
+
## ユースケース例
|
|
15
|
+
|
|
16
|
+
### コンテンツの事前作成
|
|
17
|
+
|
|
18
|
+
下書き管理機能を活用すれば、リリース情報やシステムメンテナンスなどの重要なお知らせを事前に準備し、指定日時に自動公開できます。
|
|
19
|
+
|
|
20
|
+
### 期間限定コンテンツの管理
|
|
21
|
+
|
|
22
|
+
下書き管理機能の公開・非公開スケジュール設定を組み合わせることで、季節的なキャンペーンやセール、イベント情報など、特定の期間だけ表示したいコンテンツを効率的に管理できます。
|
|
23
|
+
|
|
24
|
+
1. 事前に下書きとしてコンテンツを作成
|
|
25
|
+
1. キャンペーン開始日時に自動公開
|
|
26
|
+
1. 終了日時に自動的に非公開
|
|
27
|
+
1. 翌年も使用できるコンテンツは下書き状態で保存し、必要に応じて更新や複製して再利用
|
|
28
|
+
|
|
29
|
+
### コンテンツの承認ワークフロー
|
|
30
|
+
|
|
31
|
+
コンテンツ公開前に品質管理のための承認プロセスが必要な場合があります。下書き管理機能を使用すると、コンテンツ制作者とレビュワーが効率的に協働できるワークフローを構築できます。
|
|
32
|
+
|
|
33
|
+
例えば企業ブログでは、マーケティングチームのライターが記事を下書きとして作成し、編集者や法務担当者がレビューします。修正が必要な場合は下書き状態のままコンテンツを更新できるため、公開サイトに影響を与えることなく何度でも編集可能です。承認が得られたら下書きコンテンツを公開できます。
|
|
34
|
+
|
|
35
|
+
## 機能の有効化
|
|
36
|
+
|
|
37
|
+
スキーマで [テーブル](./schema/database.md) ごとに有効化できます。`enableDrafts` プロパティを `true` に設定します。
|
|
38
|
+
|
|
39
|
+
```ts copy filename="orizm.config.ts" showLineNumbers {7}
|
|
40
|
+
import { defineConfig } from "@orizm/cli/config";
|
|
41
|
+
|
|
42
|
+
export default defineConfig({
|
|
43
|
+
tables: {
|
|
44
|
+
blog: {
|
|
45
|
+
columns: {},
|
|
46
|
+
enableDrafts: true,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 予約カラム
|
|
53
|
+
|
|
54
|
+
下書き管理機能を有効化すると、テーブルに予約カラムが追加されます。
|
|
55
|
+
|
|
56
|
+
### \_draft
|
|
57
|
+
|
|
58
|
+
コンテンツがドラフトかどうかを示すフラグです。
|
|
59
|
+
|
|
60
|
+
`true` の場合は下書き、`false` の場合は公開コンテンツです。
|
|
61
|
+
|
|
62
|
+
直接書き換えることはできません。
|
|
63
|
+
|
|
64
|
+
### \_published
|
|
65
|
+
|
|
66
|
+
コンテンツが公開中かどうかを示すフラグです。
|
|
67
|
+
|
|
68
|
+
`true` の場合は公開中、`false` の場合は非公開です。公開されていれば下書きデータに対しても `true` になります。
|
|
69
|
+
|
|
70
|
+
直接書き換えることはできません。
|
|
71
|
+
|
|
72
|
+
### publishedAt
|
|
73
|
+
|
|
74
|
+
コンテンツがはじめて公開状態になった日時です。
|
|
75
|
+
|
|
76
|
+
ISO 8601 形式の文字列で構成されます。(例: `2025-01-01T00:00:00.000Z`)
|
|
77
|
+
|
|
78
|
+
### scheduledPublishAt
|
|
79
|
+
|
|
80
|
+
コンテンツを公開する予定の日時です。
|
|
81
|
+
|
|
82
|
+
ISO 8601 形式の文字列で構成されます。(例: `2025-01-01T00:00:00.000Z`)
|
|
83
|
+
|
|
84
|
+
このカラムに値を設定すると、指定した日時に自動で公開されます。
|
|
85
|
+
|
|
86
|
+
### scheduledUnpublishAt
|
|
87
|
+
|
|
88
|
+
コンテンツを非公開にする予定の日時です。
|
|
89
|
+
|
|
90
|
+
ISO 8601 形式の文字列で構成されます。(例: `2025-01-01T00:00:00.000Z`)
|
|
91
|
+
|
|
92
|
+
このカラムに値を設定すると、指定した日時に自動で非公開になります。
|
|
93
|
+
|
|
94
|
+
## 使い方
|
|
95
|
+
|
|
96
|
+
SDKを使った下書き管理機能の使い方を説明します。
|
|
97
|
+
|
|
98
|
+
### コンテンツの作成
|
|
99
|
+
|
|
100
|
+
コンテンツを作成するにはCMS SDKを使用します。
|
|
101
|
+
|
|
102
|
+
下書きコンテンツとして作成するには `create()` の第二引数のオブジェクトに `draft: true` を指定します。
|
|
103
|
+
|
|
104
|
+
```ts copy
|
|
105
|
+
await cmsClient.tables.blog.create(content, { draft: true });
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
公開コンテンツとして作成するには `create()` の第二引数を省略するか、オブジェクトに `draft: false` を指定します。
|
|
109
|
+
|
|
110
|
+
```ts copy
|
|
111
|
+
await cmsClient.tables.blog.create(content);
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### コンテンツの更新
|
|
115
|
+
|
|
116
|
+
コンテンツを更新するにはCMS SDKを使用します。
|
|
117
|
+
|
|
118
|
+
以下のケースでは `update()` の第三引数のオブジェクトに `draft: true` を指定します。
|
|
119
|
+
|
|
120
|
+
- すでに公開されているコンテンツに下書きを作成したい
|
|
121
|
+
- 下書きコンテンツを更新したい
|
|
122
|
+
|
|
123
|
+
```ts copy
|
|
124
|
+
await cmsClient.tables.blog.update(id, content, { draft: true });
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
公開コンテンツを更新するには `update()` の第三引数を省略するか、オブジェクトに `draft: false` を指定します。
|
|
128
|
+
|
|
129
|
+
```ts copy
|
|
130
|
+
await cmsClient.tables.blog.update(id, content);
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
> [!NOTE]
|
|
134
|
+
> update()
|
|
135
|
+
> では下書きコンテンツを更新しつつ、公開状態にすることはできません。代わりに、下書きコンテンツに対して
|
|
136
|
+
> `publish()` を使用します。
|
|
137
|
+
|
|
138
|
+
### 下書きの公開
|
|
139
|
+
|
|
140
|
+
下書きコンテンツを公開するにはCMS SDKの `publish()` を使用します。
|
|
141
|
+
|
|
142
|
+
```ts copy
|
|
143
|
+
await cmsClient.tables.blog.publish(id);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
第二引数にコンテンツのデータを渡すことで、更新と同時に公開することもできます。
|
|
147
|
+
|
|
148
|
+
```ts copy
|
|
149
|
+
await cmsClient.tables.blog.publish(id, content);
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### コンテンツの非公開化
|
|
153
|
+
|
|
154
|
+
コンテンツを非公開にするにはCMS SDKの `unpublish()` を使用します。
|
|
155
|
+
|
|
156
|
+
```ts copy
|
|
157
|
+
await cmsClient.tables.blog.unpublish(id);
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### コンテンツの削除
|
|
161
|
+
|
|
162
|
+
コンテンツを削除するにはCMS SDKを使用します。
|
|
163
|
+
|
|
164
|
+
下書きコンテンツを削除するには `delete()` の第二引数のオブジェクトに `draft: true` を指定します。
|
|
165
|
+
|
|
166
|
+
```ts copy
|
|
167
|
+
await cmsClient.tables.blog.delete(id, { draft: true });
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
コンテンツを完全に削除するには `delete()` の第二引数を省略するか、オブジェクトに `draft: false` を指定します。
|
|
171
|
+
|
|
172
|
+
```ts copy
|
|
173
|
+
await cmsClient.tables.blog.delete(id);
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### コンテンツの取得
|
|
177
|
+
|
|
178
|
+
コンテンツを取得するにはCMSではCMS SDKを使用します。ConsumerではConsumer SDKを使用します。
|
|
179
|
+
|
|
180
|
+
#### CMS SDK
|
|
181
|
+
|
|
182
|
+
CMS SDKでは以下のメソッドで下書きコンテンツの取得が可能です。
|
|
183
|
+
|
|
184
|
+
- **`get()`**: 第二引数で `draft: true` を指定
|
|
185
|
+
- **`getByUnique()`**: `get()` と同様に第二引数で `draft: true` を指定
|
|
186
|
+
- **`list()`**: 第一引数で `draft: true` を指定
|
|
187
|
+
|
|
188
|
+
CMS SDKでは特に指定しなくても `draft: true` がデフォルトです。
|
|
189
|
+
|
|
190
|
+
```ts copy
|
|
191
|
+
await cmsClient.tables.blog.get(id, { draft: true });
|
|
192
|
+
await cmsClient.tables.blog.getByUnique({ slug: "example" }, { draft: true });
|
|
193
|
+
await cmsClient.tables.blog.list({ draft: true });
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
#### Consumer SDK
|
|
197
|
+
|
|
198
|
+
Consumer SDKでは以下のメソッドで下書きコンテンツの取得が可能です。
|
|
199
|
+
|
|
200
|
+
- **`get()`**: 第二引数で `draft: true` を指定
|
|
201
|
+
- **`getByUnique()`**: `get()` と同様に第二引数で `draft: true` を指定
|
|
202
|
+
- **`list()`**: 第一引数で `draft: true` を指定
|
|
203
|
+
|
|
204
|
+
Consumer SDKで下書きコンテンツを取得するには `draft: true` を指定する必要があります。
|
|
205
|
+
|
|
206
|
+
```ts copy
|
|
207
|
+
await consumerClient.tables.blog.get(id, { draft: true });
|
|
208
|
+
await consumerClient.tables.blog.getByUnique(
|
|
209
|
+
{ slug: "example" },
|
|
210
|
+
{ draft: true },
|
|
211
|
+
);
|
|
212
|
+
await consumerClient.tables.blog.list({ draft: true });
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 下書きコンテンツの公開予約
|
|
216
|
+
|
|
217
|
+
下書きコンテンツを公開予約するにはCMS SDKの `update()` で下書きデータに対して、`scheduledPublishAt` に公開予約日時を設定します。
|
|
218
|
+
|
|
219
|
+
```ts copy
|
|
220
|
+
await cmsClient.tables.blog.update(
|
|
221
|
+
id,
|
|
222
|
+
{
|
|
223
|
+
scheduledPublishAt: "2025-01-01T00:00:00.000Z",
|
|
224
|
+
},
|
|
225
|
+
{ draft: true },
|
|
226
|
+
);
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
公開処理が完了すると `scheduledPublishAt` に設定されていた値はクリアされます。
|
|
230
|
+
|
|
231
|
+
### 公開コンテンツの非公開予約
|
|
232
|
+
|
|
233
|
+
公開コンテンツを非公開予約するにはCMS SDKの `update()` で公開データに対して、`scheduledUnpublishAt` に非公開予約日時を設定します。
|
|
234
|
+
|
|
235
|
+
```ts copy
|
|
236
|
+
await cmsClient.tables.blog.update(id, {
|
|
237
|
+
scheduledUnpublishAt: "2025-01-01T00:00:00.000Z",
|
|
238
|
+
});
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
非公開処理が完了すると `scheduledUnpublishAt` に設定されていた値はクリアされます。
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<!-- source: docs/src/app/features/form/about/page.mdx -->
|
|
2
|
+
|
|
3
|
+
# フォーム管理の概要
|
|
4
|
+
|
|
5
|
+
フォーム管理機能を使用すると、WEBサイトにお問い合わせや資料請求などのフォームを簡単に設置できます。フォームの設定やデザインをカスタマイズし、送信されたデータを管理できます。
|
|
6
|
+
|
|
7
|
+
以下の特徴があります。
|
|
8
|
+
|
|
9
|
+
- Webサイトにフォームを設置
|
|
10
|
+
- [フォームエディター](./editor.md) で構成を直感的に編集
|
|
11
|
+
- フォームのデザインをカスタマイズ可能
|
|
12
|
+
- フォームから送信されたデータを管理
|
|
13
|
+
|
|
14
|
+
## 機能の有効化
|
|
15
|
+
|
|
16
|
+
スキーマで [テーブル](../schema/database.md) ごとに有効化できます。`enableForm` プロパティを `true` に設定します。`formOptions` プロパティでフォームのオプション設定ができます。
|
|
17
|
+
|
|
18
|
+
```ts copy filename="orizm.config.ts" showLineNumbers {21-34}
|
|
19
|
+
import { defineConfig } from "@orizm/cli/config";
|
|
20
|
+
|
|
21
|
+
export default defineConfig({
|
|
22
|
+
tables: {
|
|
23
|
+
form: {
|
|
24
|
+
columns: {
|
|
25
|
+
key: {
|
|
26
|
+
type: "string",
|
|
27
|
+
required: true,
|
|
28
|
+
pattern: "^[0-9a-z-]+$",
|
|
29
|
+
},
|
|
30
|
+
displayName: {
|
|
31
|
+
type: "string",
|
|
32
|
+
required: true,
|
|
33
|
+
},
|
|
34
|
+
body: {
|
|
35
|
+
type: "json",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
indexes: [{ columns: ["key"], unique: true }],
|
|
39
|
+
enableForm: true,
|
|
40
|
+
formOptions: {
|
|
41
|
+
submissionColumns: {
|
|
42
|
+
status: {
|
|
43
|
+
type: "string",
|
|
44
|
+
pattern: /^(open|in_progress|closed|trashed)$/,
|
|
45
|
+
default: "open",
|
|
46
|
+
required: true,
|
|
47
|
+
},
|
|
48
|
+
memo: {
|
|
49
|
+
type: "string",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
この `form` テーブルには、フォームに関するメタデータを保存します。`key` カラムにはフォームを特定するための一意なキーを設定し、`body` カラムにはフォームの構造をJSON形式で保存します。
|
|
59
|
+
|
|
60
|
+
### submissionColumns
|
|
61
|
+
|
|
62
|
+
フォーム機能では、フォームから送信されたデータ(以下、受信データ)も管理できます。これを利用してCMSに受信箱機能を実装できます。
|
|
63
|
+
|
|
64
|
+
`formOptions.submissionColumns` で受信箱に任意のカラムを追加できます。先の例では、受信データを管理するための `status` と `memo` カラムを追加しています。
|
|
65
|
+
|
|
66
|
+
- **statusカラム**: 受信データのステータスを保存する
|
|
67
|
+
- **memoカラム**: 受信データに対するメモを保存する
|
|
68
|
+
|
|
69
|
+
## 予約カラム
|
|
70
|
+
|
|
71
|
+
フォーム管理機能を有効化すると、テーブルに予約カラムが追加されます。
|
|
72
|
+
|
|
73
|
+
### formSchema
|
|
74
|
+
|
|
75
|
+
フォームの項目やバリデーションルールなどのスキーマです。JSON形式で保存されます。
|
|
76
|
+
|
|
77
|
+
[フォームエディター](./editor.md) と組み合わせて使用します。
|
|
78
|
+
|
|
79
|
+
## 次のステップ
|
|
80
|
+
|
|
81
|
+
フォーム管理機能を使うには、フォームエディターを導入する必要があります。次のステップでは、フォームエディターの導入方法と実装方法を説明します。
|
|
82
|
+
|
|
83
|
+
- [フォームエディター](./editor.md)
|