diff --git a/.github/scripts/check-positioning.mjs b/.github/scripts/check-positioning.mjs index ba46a0c..d77c906 100644 --- a/.github/scripts/check-positioning.mjs +++ b/.github/scripts/check-positioning.mjs @@ -41,6 +41,7 @@ const STALE = [ /[Dd]oes\s+not\s+phone\s+home/, /ObjectOS\s+is\s+distributed\s+under\s+the\s+Apache/, // ObjectOS only: the open ObjectStack runtime is, and may say so /[Cc]ustomer-hosted\s+runtime/, + /[Cc]ommercial\s+runtime\s+environment/, // the two-edition definition objectstack#26148 retired (#341, #417) ]; const OPEN_SOURCE = /Open[\s-]+source,\s+Apache-2\.0/i; // checked inside the glossary's ObjectOS entry only @@ -166,7 +167,7 @@ const A_BAD = { }; const B_BAD = ['ObjectStack Protocol', 'ObjectStack Documentation', 'Object OS', 'objectOS', 'ObjectOs']; const C_OK = 'No seats, no license server. Does ObjectOS phone home?\n\n```\nObjectOS is a self-hosted runtime\n```\n\n{/* was: never phones home */}\n'; -const C_BAD = 'ObjectOS is a self-hosted\nruntime. It never phones home, does not call home, never calls home.\n\nNo license server. Fully\nself-contained, inside your firewall.\n'; +const C_BAD = 'ObjectOS is a self-hosted\nruntime. It never phones home, does not call home, never calls home.\n\nNo license server. Fully\nself-contained, inside your firewall. The commercial runtime\nenvironment built on the framework.\n'; const LEGAL_OK = "const content = {\n en: {\n text: 'ObjectOS Cloud is hosted. The open-source ObjectStack runtime has no telemetry, no license check, and no update ping.',\n },\n 'zh-Hans': {\n text: 'customer-hosted runtime; does not phone home',\n },\n};\n"; const LEGAL_BAD = " en: {\n text: 'ObjectOS is distributed under the Apache License 2.0. ObjectOS is a customer-hosted\nruntime that does not phone home.',\n },\n"; const glossary = (entry) => [GLOSSARY, `### ObjectOS\n\n${entry}\n\n### ObjectStack\n\nOpen source, Apache-2.0.\n`]; @@ -176,7 +177,7 @@ const CASES = [ ['(b) ObjectOS, the host and the package scope', () => ruleB([['a.html', 'Intro | ObjectOS, docs.objectos.ai, @objectos/docs']]), 0], ['(b) the five wrong spellings, one file each', () => ruleB(B_BAD.map((s, i) => [`${i}.html`, `

${s} boots.

`])), 5], ['(c) list form, a question, a fenced quote, a comment', () => ruleC([glossary('Commercial. Not open source.'), ['a.mdx', C_OK]]), 0], - ['(c) the eight stale sentences, three wrapped', () => ruleC([glossary('The runtime. Open\nsource, Apache-2.0.'), ['a.mdx', C_BAD]]), 8], + ['(c) the nine stale sentences, four wrapped', () => ruleC([glossary('The runtime. Open\nsource, Apache-2.0.'), ['a.mdx', C_BAD]]), 9], ['(c) a legal page: a true en entry; its stale zh-Hans entry is not read', () => ruleC([glossary('Commercial.'), [LEGAL[0], englishEntry(LEGAL_OK)]]), 0], ['(c) a legal page: the three licence sentences, one wrapped; a page with no en entry', () => ruleC([glossary('Commercial.'), [LEGAL[0], englishEntry(LEGAL_BAD)], [LEGAL[1], englishEntry('export default 1;\n')]]), 4], ]; diff --git a/content/docs/architecture.ja.mdx b/content/docs/architecture.ja.mdx index 0b2b36f..e5a88fa 100644 --- a/content/docs/architecture.ja.mdx +++ b/content/docs/architecture.ja.mdx @@ -4,7 +4,7 @@ seoTitle: "アーキテクチャ:何が動き、データがどこにあるか description: 実際に何を動かすことになるのか。導入するかどうかを評価しているエンジニアのために。 editions: [community, cloud, enterprise] translation: - source_sha: 9292459ed8a30885f3b5c660fb772187d5d1edb8ead66c12839ab7900dcbef3f + source_sha: 2ba24bbe881fd5788bce400a2ab8042ab41ee849a2af902d99573d2b2cfdb083 guide_rev: 1 mode: auto --- @@ -96,7 +96,7 @@ ObjectOS runtime |---|---|---| | **フレームワーク**(`@objectstack/*`) | オープンソースのカーネル、ObjectQL、プラグイン、ドライバー | npm。ビルド時に取り込まれます | | **コントロールプレーン**(任意) | コンパイル済みの `objectstack.json` アーティファクトを公開します。ホスト型の ObjectOS Cloud を使うことも、自前で運用することも、まったく使わないこともできます | あなたの CI、私たちのクラウド、またはあなたのノートパソコン | -| **ObjectOS** | フレームワーク上に構築された商用ランタイム環境 | **ObjectOS Cloud**(私たちが運用)または**あなたのインフラストラクチャ**(ObjectOS Enterprise) | +| **ObjectOS** | ObjectOS Community は無料のセルフホスト版、ObjectOS Cloud はホスト型のエディション、ObjectOS Enterprise はセルフマネージドのライセンス制のエディションです | セルフホスト(**ObjectOS Community**)、ホスト型(**ObjectOS Cloud**)、またはセルフマネージド(**ObjectOS Enterprise**) | 単一のアプリを出荷するなら、コントロールプレーンは不要です。CI で `objectstack.config.ts → dist/objectstack.json` をコンパイルし、その JSON をイメージに入れて出荷します。複数のデプロイメントがインストールするアプリを公開する場合は、コントロールプレーンがそのカタログの置き場所になります。 diff --git a/content/docs/architecture.mdx b/content/docs/architecture.mdx index 753b407..9510db4 100644 --- a/content/docs/architecture.mdx +++ b/content/docs/architecture.mdx @@ -134,7 +134,7 @@ want to know where the artifact comes from: |---|---|---| | **Framework** (`@objectstack/*`) | Open-source kernel, ObjectQL, plugins, drivers | npm — pulled in at build time | | **Control plane** (optional) | Publishes compiled `objectstack.json` artifacts; you can use the hosted ObjectOS Cloud, run your own, or skip it entirely | Your CI, our cloud, or your laptop | -| **ObjectOS** | The commercial runtime environment built on the framework | **ObjectOS Cloud** (we operate it) or **your infrastructure** (ObjectOS Enterprise) | +| **ObjectOS** | ObjectOS Community is free and self-hosted, ObjectOS Cloud the hosted edition, ObjectOS Enterprise the self-managed, licensed one | Self-hosted (**ObjectOS Community**), hosted (**ObjectOS Cloud**) or self-managed (**ObjectOS Enterprise**) | If you're shipping a single app, you don't need a control plane — compile `objectstack.config.ts → dist/objectstack.json` in your CI and diff --git a/content/docs/architecture.zh-Hans.mdx b/content/docs/architecture.zh-Hans.mdx index 4abfcff..ed327ad 100644 --- a/content/docs/architecture.zh-Hans.mdx +++ b/content/docs/architecture.zh-Hans.mdx @@ -4,7 +4,7 @@ seoTitle: "架构:运行什么,数据在哪里" description: 你实际在运行的是什么 —— 写给正在评估是否引入它的工程师。 editions: [community, cloud, enterprise] translation: - source_sha: 9292459ed8a30885f3b5c660fb772187d5d1edb8ead66c12839ab7900dcbef3f + source_sha: 2ba24bbe881fd5788bce400a2ab8042ab41ee849a2af902d99573d2b2cfdb083 guide_rev: 1 mode: auto --- @@ -126,7 +126,7 @@ API 密钥进行认证,同样的权限检查约束着它的工具调用能读 |---|---|---| | **框架**(`@objectstack/*`) | 开源的内核、ObjectQL、插件、驱动 | npm —— 在构建时引入 | | **控制平面**(可选) | 发布编译好的 `objectstack.json` 产物;你可以使用托管的 ObjectOS Cloud、自己运行一个,或者完全不用 | 你的 CI、我们的云,或者你的笔记本 | -| **ObjectOS** | 构建在框架之上的商业运行时环境 | **ObjectOS Cloud**(由我们运维)或**你的基础设施**(ObjectOS Enterprise) | +| **ObjectOS** | ObjectOS Community 免费且自托管,ObjectOS Cloud 是托管版本,ObjectOS Enterprise 是自管理、需许可的版本 | 自托管(**ObjectOS Community**)、托管(**ObjectOS Cloud**)或自管理(**ObjectOS Enterprise**) | 如果你只交付一个应用,就不需要控制平面 —— 在你的 CI 中把 `objectstack.config.ts → dist/objectstack.json` 编译好,然后把 JSON 放进 diff --git a/content/docs/architecture.zh-Hant.mdx b/content/docs/architecture.zh-Hant.mdx index 6cad326..b804fb2 100644 --- a/content/docs/architecture.zh-Hant.mdx +++ b/content/docs/architecture.zh-Hant.mdx @@ -5,7 +5,7 @@ seoTitle: "架構:執行什麼,資料在哪裡" description: 你實際在執行的是什麼 —— 寫給正在評估是否引入它的工程師。 editions: [community, cloud, enterprise] translation: - source_sha: 9292459ed8a30885f3b5c660fb772187d5d1edb8ead66c12839ab7900dcbef3f + source_sha: 2ba24bbe881fd5788bce400a2ab8042ab41ee849a2af902d99573d2b2cfdb083 guide_rev: 1 mode: auto --- @@ -127,7 +127,7 @@ API 金鑰進行認證,同樣的許可權檢查約束著它的工具呼叫能 |---|---|---| | **框架**(`@objectstack/*`) | 開源的核心、ObjectQL、外掛、驅動 | npm —— 在構建時引入 | | **控制平面**(可選) | 釋出編譯好的 `objectstack.json` 產物;你可以使用託管的 ObjectOS Cloud、自己執行一個,或者完全不用 | 你的 CI、我們的雲,或者你的筆記本 | -| **ObjectOS** | 構建在框架之上的商業執行時環境 | **ObjectOS Cloud**(由我們運維)或**你的基礎設施**(ObjectOS Enterprise) | +| **ObjectOS** | ObjectOS Community 免費且自託管,ObjectOS Cloud 是託管版本,ObjectOS Enterprise 是自管理、需許可的版本 | 自託管(**ObjectOS Community**)、託管(**ObjectOS Cloud**)或自管理(**ObjectOS Enterprise**) | 如果你只交付一個應用,就不需要控制平面 —— 在你的 CI 中把 `objectstack.config.ts → dist/objectstack.json` 編譯好,然後把 JSON 放進