Introduction

Introduction

Orizm は CMS構築を強力にサポートするための BaaS (Backend as a Service) とライブラリの集合です。

Orizm を使ってCMSを構築することで、CMS利用者に対して、SaaS型のヘッドレスCMSよりも最適化された編集体験を提供することができます。

また、開発者は、フルスクラッチでCMSを構築する場合と比べて、より短時間でCMSの開発が行えます。また、データベース、フォーム、検索システムなど、サイト構築に必要なリソースを一箇所に集約することができます。

Orizmのアーキテクチャ

Orizmは、複数のアプリケーションが連携して動作するシステムです。以下に主要なアプリケーションとその関係性を説明します。

Orizm (BaaS)

Orizmの中核となるバックエンドサービスです。以下の機能を提供します。

  • Database: コンテンツを保存するためのテーブル
  • Bucket: 画像やファイルを保存するためのストレージ
  • Auth: ユーザー認証・認可機能
  • Webhook: コンテンツ更新時の通知機能
  • 全文検索: コンテンツの検索機能

開発者は orizm.config.ts でスキーマ(テーブル構造、バケット、権限など)を定義し、CLIを使ってOrizmに適用します。

Console(開発者コンソール)

開発者コンソールは、開発者向けの管理ツールです。

主な機能:

  • プロジェクトの作成・管理
  • スキーマ(テーブル・バケット)の確認
  • APIキーの発行・管理
  • CMS利用者アカウントの管理

開発者コンソールは技術者向けのツールであり、CMS利用者が直接使用することは想定されていません。

CMS(編集画面)

CMSは、コンテンツ編集者(CMS利用者)向けのWebアプリケーションです。開発者がカスタマイズして構築します。

主な機能:

  • コンテンツの作成・編集・削除
  • 下書き・公開のワークフロー管理
  • 画像・ファイルのアップロード
  • CMS利用者の管理(権限がある場合)

使用するSDK: @orizm/cms-sdk

使用するAPI: Management API

CMS SDKは認証されたCMS利用者のセッション、またはManagement API Keyを使ってOrizmにアクセスします。コンテンツの読み取りだけでなく、作成・更新・削除も可能です。

Consumer(公開サイト)

Consumerは、一般のサイト閲覧者向けに公開コンテンツを配信するWebサイトやアプリケーションです。

主な機能:

  • 公開済みコンテンツの表示
  • 全文検索
  • フォームからのデータ送信

使用するSDK: @orizm/consumer-sdk

使用するAPI: Consumer API

Consumer SDKはConsumer API Keyを使ってOrizmにアクセスします。コンテンツの読み取り専用であり、更新機能はありません。これにより、万が一APIキーが露出した場合でも、コンテンツが改ざんされるリスクを軽減できます。

CMS SDKとConsumer SDKの違い

項目CMS SDKConsumer SDK
パッケージ名@orizm/cms-sdk@orizm/consumer-sdk
対象ユーザーCMS利用者(編集者)サイト閲覧者
認証方法ユーザーセッション or Management API KeyConsumer API Key
下書きコンテンツデフォルトで取得可能オプションで取得可能(要権限)
コンテンツの作成・更新可能不可
用途CMS編集画面公開サイト

ユーザーモデル

Orizmでは、開発者アカウントとCMS利用者アカウントを完全に分離して管理しています。これにより、複雑な権限管理を避けて高いセキュリティを実現しています。

詳細はユーザーモデルを参照してください。

スターターキット

Orizmでは、SDKを利用してCMSやConsumerを0から開発することも可能ですが、CMSやConsumer開発に必要なセットアップが完了した状態のスターターキットを利用して開発することができます。 スターターキットの利用を公式では推奨しています。

詳細はスターターキットを参照してください。

このドキュメントの目的

このドキュメントは、Orizmを利用してCMSやサイトを構築する 開発者 のガイドとなることを目的としています。

Starterプロジェクトを使って最初のOrizmベースのCMSと、サイトを立ち上げる手順を示します。その他、よりカスタマイズするために、各機能の詳細を解説しています。