Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
4c93e10
docs(i18n): translate the entry path into ja (index, why, start, edit…
zhuangjianguo Oct 29, 2026
408661e
docs(i18n): translate build/ and build/data/ into ja (#388, PR 1 of 7)
zhuangjianguo Oct 29, 2026
e897011
Merge the merged #387 branch head so the push fast-forwards
zhuangjianguo Oct 29, 2026
9613e53
Merge main (#389 landed) so the push fast-forwards
zhuangjianguo Oct 29, 2026
38384aa
docs(i18n): translate build/automation/ and build/interface/ into ja …
zhuangjianguo Oct 29, 2026
577b635
fix(search): keep one locale index and read search text from build ou…
zhuangjianguo Oct 29, 2026
6434c3f
Merge the landed #390 branch head so the push fast-forwards
zhuangjianguo Oct 29, 2026
d0ad718
docs(i18n): re-land build/automation/ and build/interface/ ja pages (…
zhuangjianguo Oct 29, 2026
ace646b
Merge the landed #394 branch head so the push fast-forwards
zhuangjianguo Oct 29, 2026
3fd7047
fix(worker): stop bundling every docs page twice (#395)
zhuangjianguo Oct 29, 2026
6769cd3
Merge the landed #396 branch head so the push fast-forwards
zhuangjianguo Oct 29, 2026
fadc71d
Merge the landed #397 branch head so the push fast-forwards
zhuangjianguo Oct 29, 2026
8688a48
docs(i18n): translate configure/ into ja (#388, PR 3 of 7)
zhuangjianguo Oct 29, 2026
c881844
Merge the landed #398 branch head so the push fast-forwards
zhuangjianguo Oct 29, 2026
8fdcd28
docs(i18n): translate configure/permissions/ and cloud/ into ja (#388…
zhuangjianguo Oct 29, 2026
216f90a
Merge the landed #399 branch head so the push fast-forwards
zhuangjianguo Oct 29, 2026
c74c76a
docs(i18n): translate deploy/ and operate/ into ja (#388, PR 5 of 7)
zhuangjianguo Oct 29, 2026
2a5fa2b
Merge the landed #400 branch head so the push fast-forwards
zhuangjianguo Oct 29, 2026
3df88d4
docs(i18n): translate reference/, architecture and ontology into ja (…
zhuangjianguo Oct 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 137 additions & 0 deletions content/docs/architecture.ja.mdx

Large diffs are not rendered by default.

62 changes: 62 additions & 0 deletions content/docs/ontology.ja.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: ObjectOS におけるあなたのオントロジー
seoTitle: "ObjectOS におけるあなたのオントロジー:コア、プロジェクション、置き場所"
description: ObjectOS におけるあなたのオントロジーとは何か。ランタイムが実行するコア、その横で作成されるプロジェクション、置き場所、そしてオントロジーでないものを説明します。
editions: [community, cloud, enterprise]
translation:
source_sha: 89b7e2e2e35db3cfc1e321a759eade603c86bbf958670a2c0abd7952bb51a8ab
guide_rev: 1
mode: auto
---

**オントロジーこそがソフトウェアです。** ObjectOS において、*あなたのオントロジー*とは、ランタイムが実行するビジネスの定義です。型付けされ、バージョン管理されたひとまとまりの ObjectStack メタデータです。ランタイムはそこからデータベーススキーマ、REST API、Console、MCP ツールを導出し、すべての呼び出しでそれを強制します。このページはこの言葉をこのサイトに対応付けます。完全な説明は、ObjectStack ドキュメントの [Business Ontology](https://objectstack.ai/docs/concepts/ontology) にあります。

## コア [#the-core]

オントロジーそのものは 6 種類のものから成ります。

| コア | 宣言するもの | このサイトでは |
|---|---|---|
| **オブジェクトとフィールド** | ビジネスのエンティティと、その型付きの属性 | [データモデル](/docs/build/data)、[フィールドタイプ](/docs/reference/field-types) |
| **リレーション** | オブジェクト間のルックアップと主従関係のリンク | [リレーションシップ](/docs/build/data/relationships) |
| **アクション** | ユーザー(または、作成者が公開した場合はエージェント)がレコードに対して呼び出せる操作 | [アクション](/docs/build/interface/actions) |
| **権限** | 誰が何を読み、作成し、編集し、削除できるか:権限セット、レコードアクセス、フィールドレベルのセキュリティ | [権限](/docs/configure/permissions) |
| **フロー** | ビジネスプロセス:フロー、レコードトリガー、スケジュール、承認、ワークフロー | [自動化](/docs/build/automation) |
| **エージェントとツールの定義** | アプリに付属する AI エージェント、そのスキル、エージェントが呼び出せるツール | [エージェント](/docs/build/agents) |

## プロジェクション [#the-projections]

ビュー、ダッシュボード、アプリ、翻訳もメタデータとして作成され、同じ検証ゲートを通過しますが、これらはオントロジーの一部ではなく、オントロジーの**プロジェクション**です。コアを変更すればそれらは追従し、1 つを削除しても、それが表示していたビジネスは変わりません。

| プロジェクション | 投影するもの | このサイトでは |
|---|---|---|
| **ビュー** | オブジェクトのフィールドと権限を、リスト、フォーム、カンバン、カレンダーに | [ビュー](/docs/build/interface/views)、[フォーム](/docs/build/interface/forms) |
| **ダッシュボード** | オブジェクトに対するクエリをグラフに | [ダッシュボード](/docs/build/interface/dashboards) |
| **アプリ** | オブジェクト、ビュー、アクションを、ナビゲーションできる製品にまとめたもの | [アプリ](/docs/build/interface/apps) |
| **翻訳** | すべてのラベルを、あるロケールに | [ローカライズ](/docs/configure/localization) |

## ObjectOS での置き場所 [#where-it-lives-on-objectos]

ひとつの定義が、3 つの形で存在します。

| 形 | 内容 |
|---|---|
| **テナントのメタデータ** | [AI Builder](/docs/build/ai-builder) と Studio が書き込むもの:デプロイメント内の稼働中のメタデータ。AI Builder による変更は、適用される前に人の承認待ちのキューに入ります |
| **リポジトリのソース** | 開発者とそのコーディングエージェントが [AI スキル](/docs/build/ai-skills)を使って書くもの:`objectstack.config.ts` とそのメタデータファイル。プルリクエストとしてレビューされます |
| **コンパイル済みアーティファクト** | `os compile` が生成するもの:デプロイメントが起動に使う `objectstack.json`。[起動モード](/docs/architecture#boot-modes)を参照してください。公開したものはすべて保管してください([バックアップ](/docs/operate/backup)) |

どの形で作成しても、メタデータは実行される前に同じ[検証ゲート](/docs/resources/glossary#validation-gate)を通過します。どちらのエディションでも、オントロジーはあなたのものです。通常の ObjectStack メタデータであり、エクスポートしてオープンソースの ObjectStack ランタイムで実行できます。

## オントロジーでないもの [#what-it-is-not]

- **知識オントロジーではありません。** クラスの継承も、公理も、推論器もありません。定義は検証され、そして実行されます。
- **既存システムの上のセマンティックレイヤーではありません。** セマンティックレイヤーは、自らが実行しないビジネスを記述します。あなたのオントロジーはシステムそのものです。データベース、API、UI、エージェントのツールはそこから導出されます。すでに運用しているデータベースを接続することは可能ですが、デフォルトでは読み取り専用で、まだ初期段階です。[既存システムの拡張](/docs/build/extend-existing-systems)を参照してください。

## さらに読む [#read-further]

このサイトはランタイムを説明しています。概念は ObjectStack のサイトが扱います。

- [Business Ontology](https://objectstack.ai/docs/concepts/ontology):この言葉の意味と、ランタイムがそれをどう実行するか
- [How ObjectStack compares](https://objectstack.ai/docs/concepts/compare):知識オントロジー、セマンティックレイヤー、メタデータプラットフォーム、AI によるコード生成との比較
- [When to use ObjectStack](https://objectstack.ai/docs/concepts/when-to-use):現時点で適している場面と、適していない場面
- [The Ontology Is the Software](https://objectstack.ai/blog/the-ontology-is-the-software):長文の解説
92 changes: 92 additions & 0 deletions content/docs/reference/cel.ja.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
title: CEL 式
seoTitle: "CEL 式:数式、述語、テンプレート"
description: 数式フィールド、検証ルール、表示条件、共有、フローの条件を支える式言語です。ObjectOS での使いどころ、いくつかの例、そして objectstack.ai にある言語の完全な説明を紹介します。
editions: [community, cloud, enterprise]
translation:
source_sha: ba57e518fc6626502da8e3012659d4218d65c7703dcb70c1834432e11a711d17
guide_rev: 1
mode: auto
---

**完全な仕様:** [objectstack.ai の Expressions (CEL)](https://objectstack.ai/docs/data-modeling/formulas)。このページはその要約です。ObjectOS での使いどころと、いくつかの例を示します。

ObjectOS は、定義に小さく安全な式が必要な場所で [CEL](https://github.com/google/cel-spec)(Common Expression Language)を使います。CEL には副作用も I/O もなく、サーバー上で評価されます。式からは、評価対象のレコードが `record`(その以前の状態が `previous`)として見え、実行ユーザーがいる場合はそのユーザーが `current_user` として見えます。

## ObjectOS での使いどころ [#where-objectos-uses-it]

| 場所 | 式が決めること |
|:--|:--|
| 数式フィールド | レコードから導出されるフィールドの値 |
| フィールドの `requiredWhen`、`visibleWhen`、`readonlyWhen` | このレコードでフィールドが必須か、表示されるか、編集できるか |
| 検証ルール | 書き込みが拒否されるかどうか([検証ルール](/docs/build/data/validation-rules)) |
| 共有ルール | ユーザーのグループにどのレコードが付与されるか([レコードアクセス](/docs/configure/permissions/record-access)) |
| アクションの `visible` / `disabled` | ボタンが表示されるかどうか |
| フローの開始条件とその分岐 | フローが実行されるかどうか、どちらに進むか([フローと自動化](/docs/build/automation/flows)) |
| フィールドの `defaultValue` | 新しいレコードの初期値 |

## 例 [#examples]

**数式フィールド**:明細行の合計:

```ts
subtotal: Field.formula({
label: 'Subtotal',
expression: F`record.quantity * record.unit_price`,
}),
```

**検証**:完了日は未来でなければならない。`script` ルールの `condition` は*無効な*レコードを記述します。これが true のとき、書き込みは拒否されます。

```ts
// One validation rule, an entry of the object's `validations`
{
type: 'script',
name: 'close_date_in_future',
message: 'Close date must be in the future',
condition: P`record.close_date <= today()`,
}
```

**表示条件**:商談が成立してから初めてフィールドを表示する:

```ts
close_reason: Field.textarea({
label: 'Close reason',
visibleWhen: P`record.stage == 'closed_won'`,
}),
```

**フローの条件**:金額が大きい場合だけ、レコード変更フローを開始する:

```ts
// The `config` of a `start` node; the rest of the flow is omitted (see Flows).
config: {
objectName: 'opportunity',
triggerType: 'record-after-update',
condition: P`record.amount >= 1000`,
}
```

## 権限のチェック [#permission-checks]

ObjectStack 17.5 以降、`current_user.can(object, verb)` は、実行ユーザーがオブジェクト権限を持っているかを尋ね、そのユーザーの実効的な権限に基づいて答えます。

```ts
discount: Field.percent({
label: 'Discount',
defaultValue: cel`current_user.can('crm_quote', 'edit') ? 10 : 0`,
}),
```

サーバーは、選択肢の `visibleWhen`(ユーザーが選べない選択肢は `invalid_option` で拒否されます)、数式フィールド、CEL の `defaultValue` でこれに答えます。評価に権限のデータが伴わない場所(検証ルールがその一例です)では、`can()` は推測されるのではなく拒否され、式は失敗します。

## 式が間違っているとき [#when-an-expression-is-wrong]

黙って失敗することはありません。形式が不正な式や、オブジェクトにないフィールドを指定する式は、場所と「もしかして」のヒントを示して `os compile` で失敗します。実行時には、不正な式は `null` や `false` に評価されるのではなく、原因を特定したエラーを投げます。そのため、数式の値やガードの判断を黙って壊すのではなく、ログと監査証跡に失敗が表れます。

## 関連項目 [#see-also]

- [数式](/docs/build/data/formulas):アプリにおける数式フィールド
- [検証ルール](/docs/build/data/validation-rules):書き込みを拒否する述語
- [フィールドタイプ](./field-types):数式フィールドと条件付きのプロパティ
Loading
Loading