Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion apps/objectos-one/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@objectos/one",
"version": "8.0.1",
"version": "9.7.0",
"private": true,
"license": "Apache-2.0",
"description": "ObjectOS One — all-in-one local distribution (Tauri shell + bundled Node runtime + DB).",
Expand Down
2 changes: 1 addition & 1 deletion apps/objectos-one/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/objectos-one/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "objectos-one"
version = "8.0.1"
version = "9.7.0"
description = "ObjectOS One shell"
edition = "2021"
rust-version = "1.77"
Expand Down
2 changes: 1 addition & 1 deletion apps/objectos-one/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "ObjectOS",
"version": "8.0.1",
"version": "9.7.0",
"identifier": "ai.objectstack.objectos",
"build": {
"frontendDist": "../src",
Expand Down
16 changes: 8 additions & 8 deletions apps/objectos/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@
"type-check": "tsc --noEmit"
},
"dependencies": {
"@objectstack/cli": "^8.0.1",
"@objectstack/core": "^8.0.1",
"@objectstack/driver-memory": "^8.0.1",
"@objectstack/driver-sql": "^8.0.1",
"@objectstack/metadata": "^8.0.1",
"@objectstack/objectql": "^8.0.1",
"@objectstack/runtime": "^8.0.1",
"@objectstack/spec": "^8.0.1"
"@objectstack/cli": "^9.7.0",
"@objectstack/core": "^9.7.0",
"@objectstack/driver-memory": "^9.7.0",
"@objectstack/driver-sql": "^9.7.0",
"@objectstack/metadata": "^9.7.0",
"@objectstack/objectql": "^9.7.0",
"@objectstack/runtime": "^9.7.0",
"@objectstack/spec": "^9.7.0"
},
"devDependencies": {
"@types/node": "^25.9.1",
Expand Down
8 changes: 4 additions & 4 deletions content/docs/build/data-model.de.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,16 @@ ObjectStack liefert ~25 Feldtypen. Die am häufigsten verwendeten:

| Typ | Was es speichert |
|---|---|
| `attachment` | Eine Datei über den Speicherdienst |
| `image` | Bildanhang mit Vorschau |
| `file` | Eine Datei über den Speicherdienst |
| `image` | Bilddatei mit Vorschau |

### Berechnet / abgeleitet

| Typ | Verhalten |
|---|---|
| `formula` | Beim Lesen aus einem CEL-Ausdruck berechnet |
| `rollup` | Aggregat verknüpfter Datensätze (Summe/Anzahl/Durchschnitt) |
| `autoNumber` | Sequenz (`INV-{000001}`) |
| `summary` | Aggregat verknüpfter Datensätze (Summe/Anzahl/Durchschnitt) |
| `autonumber` | Sequenz (`INV-{000001}`) |
| `created`, `lastModified` | Systemgepflegte Zeitstempel |
| `createdBy`, `lastModifiedBy` | Systemgepflegte Benutzerreferenzen |

Expand Down
8 changes: 4 additions & 4 deletions content/docs/build/data-model.es.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -118,16 +118,16 @@ ObjectStack incluye unos 25 tipos de campo. Los más usados:

| Tipo | Qué almacena |
|---|---|
| `attachment` | Un archivo mediante el servicio de almacenamiento |
| `image` | Adjunto de imagen con vista previa |
| `file` | Un archivo mediante el servicio de almacenamiento |
| `image` | Archivo de imagen con vista previa |

### Calculados / derivados

| Tipo | Comportamiento |
|---|---|
| `formula` | Calculado en el momento de la lectura a partir de una expresión CEL |
| `rollup` | Agregado de registros relacionados (suma/recuento/promedio) |
| `autoNumber` | Secuencia (`INV-{000001}`) |
| `summary` | Agregado de registros relacionados (suma/recuento/promedio) |
| `autonumber` | Secuencia (`INV-{000001}`) |
| `created`, `lastModified` | Marcas de tiempo mantenidas por el sistema |
| `createdBy`, `lastModifiedBy` | Referencias de usuario mantenidas por el sistema |

Expand Down
8 changes: 4 additions & 4 deletions content/docs/build/data-model.fr.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,16 @@ ObjectStack fournit environ 25 types de champs. Les plus utilisés :

| Type | Ce qu'il stocke |
|---|---|
| `attachment` | Un fichier via le service de stockage |
| `image` | Pièce jointe image avec aperçu |
| `file` | Un fichier via le service de stockage |
| `image` | Fichier image avec aperçu |

### Calculé / dérivé

| Type | Comportement |
|---|---|
| `formula` | Calculé à la lecture à partir d'une expression CEL |
| `rollup` | Agrégat d'enregistrements liés (somme/nombre/moyenne) |
| `autoNumber` | Séquence (`INV-{000001}`) |
| `summary` | Agrégat d'enregistrements liés (somme/nombre/moyenne) |
| `autonumber` | Séquence (`INV-{000001}`) |
| `created`, `lastModified` | Horodatages gérés par le système |
| `createdBy`, `lastModifiedBy` | Références utilisateur gérées par le système |

Expand Down
8 changes: 4 additions & 4 deletions content/docs/build/data-model.ja.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,16 @@ ObjectStack には約 25 種類のフィールドタイプが付属します。

| タイプ | 格納する内容 |
|---|---|
| `attachment` | ストレージサービス経由の単一ファイル |
| `image` | プレビュー付きの画像添付 |
| `file` | ストレージサービス経由の単一ファイル |
| `image` | プレビュー付きの画像ファイル |

### 計算 / 派生

| タイプ | 動作 |
|---|---|
| `formula` | CEL 式から読み取り時に計算 |
| `rollup` | 関連レコードの集計(sum/count/avg) |
| `autoNumber` | シーケンス(`INV-{000001}`) |
| `summary` | 関連レコードの集計(sum/count/avg) |
| `autonumber` | シーケンス(`INV-{000001}`) |
| `created`, `lastModified` | システムが保守するタイムスタンプ |
| `createdBy`, `lastModifiedBy` | システムが保守するユーザー参照 |

Expand Down
8 changes: 4 additions & 4 deletions content/docs/build/data-model.ko.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -117,16 +117,16 @@ ObjectStack은 약 25가지 필드 타입을 제공합니다. 가장 많이 사

| 타입 | 저장하는 것 |
|---|---|
| `attachment` | 스토리지 서비스를 통한 단일 파일 |
| `image` | 미리보기가 있는 이미지 첨부 |
| `file` | 스토리지 서비스를 통한 단일 파일 |
| `image` | 미리보기가 있는 이미지 파일 |

### 계산 / 파생

| 타입 | 동작 |
|---|---|
| `formula` | CEL 표현식으로부터 읽기 시점에 계산됨 |
| `rollup` | 연관 레코드의 집계 (합계/개수/평균) |
| `autoNumber` | 시퀀스 (`INV-{000001}`) |
| `summary` | 연관 레코드의 집계 (합계/개수/평균) |
| `autonumber` | 시퀀스 (`INV-{000001}`) |
| `created`, `lastModified` | 시스템이 관리하는 타임스탬프 |
| `createdBy`, `lastModifiedBy` | 시스템이 관리하는 사용자 참조 |

Expand Down
8 changes: 4 additions & 4 deletions content/docs/build/data-model.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -117,16 +117,16 @@ ObjectStack ships ~25 field types. The most-used ones:

| Type | What it stores |
|---|---|
| `attachment` | One file via the storage service |
| `image` | Image attachment with preview |
| `file` | One file via the storage service |
| `image` | Image file with preview |

### Computed / derived

| Type | Behavior |
|---|---|
| `formula` | Computed at read time from a CEL expression |
| `rollup` | Aggregate of related records (sum/count/avg) |
| `autoNumber` | Sequence (`INV-{000001}`) |
| `summary` | Aggregate of related records (sum/count/avg) |
| `autonumber` | Sequence (`INV-{000001}`) |
| `created`, `lastModified` | System-maintained timestamps |
| `createdBy`, `lastModifiedBy` | System-maintained user refs |

Expand Down
8 changes: 4 additions & 4 deletions content/docs/build/data-model.zh-Hans.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -109,16 +109,16 @@ ObjectStack 自带约 25 种字段类型。最常用的:

| 类型 | 存什么 |
|---|---|
| `attachment` | 通过存储服务保存的一个文件 |
| `image` | 带预览的图片附件 |
| `file` | 通过存储服务保存的一个文件 |
| `image` | 带预览的图片文件 |

### 计算 / 派生

| 类型 | 行为 |
|---|---|
| `formula` | 读时按 CEL 表达式计算 |
| `rollup` | 关联记录的聚合(sum/count/avg) |
| `autoNumber` | 序列号(`INV-{000001}`) |
| `summary` | 关联记录的聚合(sum/count/avg) |
| `autonumber` | 序列号(`INV-{000001}`) |
| `created`、`lastModified` | 系统维护的时间戳 |
| `createdBy`、`lastModifiedBy` | 系统维护的用户引用 |

Expand Down
13 changes: 13 additions & 0 deletions content/docs/configure/api-access.de.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,19 @@ Wichtige Schnittstellen:
Das Präfix lautet standardmäßig `/api/v1` (der API-`basePath` von `/api` plus
die `version` `v1`) und ist im ObjectOS-Stack konfigurierbar.

## Steuern, was offengelegt wird

Die API-Offenlegung wird pro Objekt im Artefakt gesteuert, nicht am Gateway:

- Setzen Sie `apiEnabled: false` auf einem Objekt, um es vollständig von der
REST-Oberfläche fernzuhalten (seine Routen liefern 404).
- Setzen Sie eine `apiMethods`-Whitelist (z. B. `['get', 'list']`), um ein
Objekt schreibgeschützt zu machen oder anderweitig einzuschränken, welche
Operationen erreichbar sind.

Beide werden auf der REST-Ebene durchgesetzt — siehe
[REST-API → API-Oberfläche einschränken](/docs/reference/rest-api#restricting-the-api-surface).

## Authentifizierungsoptionen

Aufrufer können sich auf drei Arten authentifizieren:
Expand Down
14 changes: 14 additions & 0 deletions content/docs/configure/api-access.es.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,20 @@ Superficies destacadas:
El prefijo es `/api/v1` de forma predeterminada (el `basePath` de la API,
`/api`, más la `version`, `v1`) y es configurable en el stack de ObjectOS.

## Controlar qué se expone

La exposición de la API se gobierna por objeto en el artefacto, no en la puerta
de enlace:

- Establece `apiEnabled: false` en un objeto para mantenerlo fuera de la
superficie REST por completo (sus rutas devuelven 404).
- Establece una lista blanca `apiMethods` (p. ej. `['get', 'list']`) para hacer
un objeto de solo lectura o restringir de otro modo qué operaciones son
accesibles.

Ambos se aplican en la capa REST; consulta
[API REST → Restringir la superficie de la API](/docs/reference/rest-api#restricting-the-api-surface).

## Opciones de autenticación

Los clientes pueden autenticarse de tres maneras:
Expand Down
14 changes: 14 additions & 0 deletions content/docs/configure/api-access.fr.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,20 @@ Surfaces notables :
Le préfixe est `/api/v1` par défaut (le `basePath` de l'API `/api` plus la
`version` `v1`) et il est configurable sur la stack ObjectOS.

## Contrôler ce qui est exposé

L'exposition de l'API est gouvernée par objet dans l'artefact, et non au niveau
de la passerelle :

- Définissez `apiEnabled: false` sur un objet pour le garder entièrement hors de
la surface REST (ses routes renvoient 404).
- Définissez une liste blanche `apiMethods` (par ex. `['get', 'list']`) pour
rendre un objet en lecture seule ou restreindre autrement les opérations
accessibles.

Les deux sont appliqués au niveau de la couche REST — voir
[API REST → Restreindre la surface d'API](/docs/reference/rest-api#restricting-the-api-surface).

## Options d'authentification

Les appelants peuvent s'authentifier de trois façons :
Expand Down
12 changes: 12 additions & 0 deletions content/docs/configure/api-access.ja.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,18 @@ https://<project-domain>/api/v1
プレフィックスのデフォルトは `/api/v1`(API の `basePath` である `/api` と
`version` である `v1` の組み合わせ)で、ObjectOS スタック上で構成可能です。

## 公開範囲の制御

API の公開はゲートウェイではなく、アーティファクト内のオブジェクト単位で制御されます:

- オブジェクトに `apiEnabled: false` を設定すると、REST 表面から完全に外れます
(そのルートは 404 になります)。
- `apiMethods` ホワイトリスト(例: `['get', 'list']`)を設定すると、オブジェクトを
読み取り専用にしたり、到達可能な操作を制限したりできます。

どちらも REST レイヤーで強制適用されます。
[REST API → API 表面の制限](/docs/reference/rest-api#restricting-the-api-surface) を参照してください。

## 認証オプション

呼び出し元は次の 3 つの方法で認証できます:
Expand Down
13 changes: 13 additions & 0 deletions content/docs/configure/api-access.ko.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,19 @@ https://<project-domain>/api/v1
접두사는 기본적으로 `/api/v1`(API `basePath`인 `/api`에 `version`인 `v1`을
더한 값)이며 ObjectOS 스택에서 구성할 수 있습니다.

## 노출 대상 제어

API 노출은 게이트웨이가 아니라 아티팩트 안에서 객체 단위로 제어됩니다:

- 객체에 `apiEnabled: false`를 설정하면 REST 표면에서 완전히 제외됩니다(해당
라우트는 404).
- `apiMethods` 화이트리스트(예: `['get', 'list']`)를 설정하면 객체를 읽기 전용으로
만들거나 도달 가능한 작업을 그 밖의 방식으로 제한할 수 있습니다.

이 둘은 REST 계층에서 강제됩니다 —
[REST API → Restricting the API surface](/docs/reference/rest-api#restricting-the-api-surface)을
참조하세요.

## 인증 옵션

호출자는 세 가지 방식으로 인증할 수 있습니다.
Expand Down
12 changes: 12 additions & 0 deletions content/docs/configure/api-access.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,18 @@ Notable surfaces:
The prefix defaults to `/api/v1` (the API `basePath` of `/api` plus the
`version` of `v1`) and is configurable on the ObjectOS stack.

## Controlling what's exposed

API exposure is governed per object in the artifact, not at the gateway:

- Set `apiEnabled: false` on an object to keep it off the REST surface
entirely (its routes 404).
- Set an `apiMethods` whitelist (e.g. `['get', 'list']`) to make an object
read-only or otherwise restrict which operations are reachable.

Both are enforced at the REST layer — see
[REST API → Restricting the API surface](/docs/reference/rest-api#restricting-the-api-surface).

## Authentication options

Callers can authenticate in three ways:
Expand Down
10 changes: 10 additions & 0 deletions content/docs/configure/api-access.zh-Hans.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ https://<project-domain>/api/v1

前缀默认为 `/api/v1`(即 API 的 `basePath` `/api` 加上 `version` `v1`),并且可在 ObjectOS stack 上配置。

## 控制暴露的内容

API 暴露在 artifact 中按对象逐个治理,而不是在网关层:

- 在对象上设置 `apiEnabled: false`,使其完全不出现在 REST 面上(其路由返回 404)。
- 设置 `apiMethods` 白名单(例如 `['get', 'list']`),将对象设为只读或以其他方式限制哪些操作可达。

两者都在 REST 层强制执行 —— 参见
[REST API → 限制 API 暴露面](/docs/reference/rest-api#restricting-the-api-surface)。

## 身份验证方式

调用方可以通过三种方式进行身份验证:
Expand Down
2 changes: 1 addition & 1 deletion content/docs/configure/storage.de.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ in Standalone- und Projekt-Boots standardmäßig aktiviert.
|---|---|
| Console Datei-/Bildfelder | Der Browser lädt über vorab signierte URLs direkt in den Speicher hoch |
| REST `/api/v1/storage/*` | Programmatische Upload-/Download-Endpunkte |
| Objektfelder `attachment` / `image` | Werden als Upload-Widgets gerendert; Metadaten bleiben in `sys_file` erhalten |
| Objektfelder `file` / `image` | Werden als Upload-Widgets gerendert; Metadaten bleiben in `sys_file` erhalten |

Dateien werden im Systemobjekt `sys_file` nachverfolgt — niemals als
rohe Pfade in Ihren Datensätzen. Das entkoppelt Ihr Datenmodell vom
Expand Down
2 changes: 1 addition & 1 deletion content/docs/configure/storage.es.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ habilitado de forma predeterminada en los arranques standalone y de proyecto.
|---|---|
| Campos de archivo/imagen de Console | El navegador carga directamente al almacenamiento mediante URLs prefirmadas |
| REST `/api/v1/storage/*` | Endpoints de carga/descarga programáticos |
| Campos `attachment` / `image` de objetos | Se renderizan como widgets de carga; los metadatos persisten en `sys_file` |
| Campos `file` / `image` de objetos | Se renderizan como widgets de carga; los metadatos persisten en `sys_file` |

Los archivos se rastrean en el objeto de sistema `sys_file` — nunca como rutas
sin procesar en tus registros. Eso desacopla tu modelo de datos del
Expand Down
2 changes: 1 addition & 1 deletion content/docs/configure/storage.fr.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ défaut lors des démarrages autonomes et de projet.
|---|---|
| Champs de fichier/image de la Console | Le navigateur téléverse directement vers le stockage via des URL présignées |
| REST `/api/v1/storage/*` | Points de terminaison programmatiques de téléversement/téléchargement |
| Champs `attachment` / `image` d'objet | Rendus sous forme de widgets de téléversement ; les métadonnées sont conservées dans `sys_file` |
| Champs `file` / `image` d'objet | Rendus sous forme de widgets de téléversement ; les métadonnées sont conservées dans `sys_file` |

Les fichiers sont suivis dans l'objet système `sys_file` — jamais sous forme
de chemins bruts dans vos enregistrements. Cela découple votre modèle de
Expand Down
2 changes: 1 addition & 1 deletion content/docs/configure/storage.ja.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ ObjectOS のファイル(添付ファイル、アップロード、生成さ
|---|---|
| Console のファイル / 画像フィールド | ブラウザが署名付き URL を介してストレージへ直接アップロード |
| REST `/api/v1/storage/*` | プログラムによるアップロード / ダウンロードのエンドポイント |
| オブジェクトの `attachment` / `image` フィールド | アップロードウィジェットとして描画され、メタデータは `sys_file` に永続化される |
| オブジェクトの `file` / `image` フィールド | アップロードウィジェットとして描画され、メタデータは `sys_file` に永続化される |

ファイルは `sys_file` システムオブジェクトで追跡されます。レコード内に
生のパスとして保存されることはありません。これにより、データモデルが
Expand Down
2 changes: 1 addition & 1 deletion content/docs/configure/storage.ko.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ standalone 및 프로젝트 부팅 시 기본적으로 활성화됩니다.
|---|---|
| Console 파일/이미지 필드 | 브라우저가 presigned URL을 통해 스토리지로 직접 업로드 |
| REST `/api/v1/storage/*` | 프로그래밍 방식의 업로드/다운로드 엔드포인트 |
| 객체 `attachment` / `image` 필드 | 업로드 위젯으로 렌더링되며, 메타데이터는 `sys_file`에 유지됨 |
| 객체 `file` / `image` 필드 | 업로드 위젯으로 렌더링되며, 메타데이터는 `sys_file`에 유지됨 |

파일은 레코드에 원시 경로로 저장되는 것이 아니라 `sys_file` 시스템 객체에서 추적됩니다.
이를 통해 데이터 모델이 스토리지 백엔드로부터 분리됩니다.
Expand Down
2 changes: 1 addition & 1 deletion content/docs/configure/storage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ enabled by default in standalone and project boots.
|---|---|
| Console file/image fields | Browser uploads directly to storage via presigned URLs |
| REST `/api/v1/storage/*` | Programmatic upload/download endpoints |
| Object `attachment` / `image` fields | Render as upload widgets; metadata persists in `sys_file` |
| Object `file` / `image` fields | Render as upload widgets; metadata persists in `sys_file` |

Files are tracked in the `sys_file` system object — never as raw paths
in your records. That decouples your data model from the storage
Expand Down
Loading
Loading