Skip to content

Commit 1e338f2

Browse files
authored
Merge pull request #857 from objectstack-ai/copilot/fix-ci-errors-one-more-time
2 parents e08efbc + 15a88e6 commit 1e338f2

17 files changed

Lines changed: 232 additions & 370 deletions

File tree

content/docs/references/ai/feedback-loop.mdx

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,13 @@ description: Feedback Loop protocol schemas
1212
## TypeScript Usage
1313

1414
```typescript
15-
import { FeedbackLoop, Issue, Resolution } from '@objectstack/spec/ai';
16-
import type { FeedbackLoop, Issue, Resolution } from '@objectstack/spec/ai';
15+
import { Issue } from '@objectstack/spec/ai';
16+
import type { Issue } from '@objectstack/spec/ai';
1717

1818
// Validate data
19-
const result = FeedbackLoop.parse(data);
19+
const result = Issue.parse(data);
2020
```
2121

22-
---
23-
24-
## FeedbackLoop
25-
26-
### Properties
27-
28-
| Property | Type | Required | Description |
29-
| :--- | :--- | :--- | :--- |
30-
| **issue** | `Object` || |
31-
| **analysis** | `string` | optional | AI analysis of the root cause |
32-
| **resolutions** | `Object[]` | optional | |
33-
| **status** | `Enum<'open' \| 'analyzing' \| 'resolved' \| 'ignored'>` || |
34-
35-
3622
---
3723

3824
## Issue
@@ -53,17 +39,3 @@ const result = FeedbackLoop.parse(data);
5339

5440
---
5541

56-
## Resolution
57-
58-
### Properties
59-
60-
| Property | Type | Required | Description |
61-
| :--- | :--- | :--- | :--- |
62-
| **issueId** | `string` || |
63-
| **reasoning** | `string` || Explanation of why this fix is needed |
64-
| **confidence** | `number` || |
65-
| **fix** | `Object \| Object` || |
66-
67-
68-
---
69-

content/docs/references/api/contract.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ const result = ApiError.parse(data);
154154
| **having** | `[__schema2](./__schema2)` | optional | HAVING clause for aggregation filtering |
155155
| **windowFunctions** | `Object[]` | optional | Window functions with OVER clause |
156156
| **distinct** | `boolean` | optional | SELECT DISTINCT flag |
157-
| **expand** | `Record<string, [__schema0](./__schema0)>` | optional | Recursive relation loading (nested queries) |
157+
| **expand** | `Record<string, [__schema0](./__schema0)>` | optional | Recursive relation loading map. Keys are lookup/master_detail field names; values are nested QueryAST objects that control select, filter, sort, and further expansion on the related object. The engine resolves expand via batch $in queries (driver-agnostic) with a default max depth of 3. |
158158

159159

160160
---

content/docs/references/api/metadata.mdx

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ the entire platform, including Hono, Next.js, and NestJS adapters.
5050
## TypeScript Usage
5151

5252
```typescript
53-
import { AppDefinitionResponse, ConceptListResponse, MetadataBulkResponse, MetadataBulkUnregisterRequest, MetadataDeleteResponse, MetadataDependenciesResponse, MetadataDependentsResponse, MetadataEffectiveResponse, MetadataExistsResponse, MetadataExportRequest, MetadataExportResponse, MetadataImportRequest, MetadataImportResponse, MetadataItemResponse, MetadataListResponse, MetadataNamesResponse, MetadataOverlayResponse, MetadataOverlaySaveRequest, MetadataQueryRequest, MetadataQueryResponse, MetadataRegisterRequest, MetadataTypeInfoResponse, MetadataTypesResponse, MetadataValidateRequest, MetadataValidateResponse, ObjectDefinitionResponse } from '@objectstack/spec/api';
54-
import type { AppDefinitionResponse, ConceptListResponse, MetadataBulkResponse, MetadataBulkUnregisterRequest, MetadataDeleteResponse, MetadataDependenciesResponse, MetadataDependentsResponse, MetadataEffectiveResponse, MetadataExistsResponse, MetadataExportRequest, MetadataExportResponse, MetadataImportRequest, MetadataImportResponse, MetadataItemResponse, MetadataListResponse, MetadataNamesResponse, MetadataOverlayResponse, MetadataOverlaySaveRequest, MetadataQueryRequest, MetadataQueryResponse, MetadataRegisterRequest, MetadataTypeInfoResponse, MetadataTypesResponse, MetadataValidateRequest, MetadataValidateResponse, ObjectDefinitionResponse } from '@objectstack/spec/api';
53+
import { AppDefinitionResponse, ConceptListResponse, MetadataBulkResponse, MetadataBulkUnregisterRequest, MetadataDeleteResponse, MetadataDependenciesResponse, MetadataDependentsResponse, MetadataEffectiveResponse, MetadataExistsResponse, MetadataExportRequest, MetadataExportResponse, MetadataImportRequest, MetadataImportResponse, MetadataItemResponse, MetadataListResponse, MetadataNamesResponse, MetadataOverlayResponse, MetadataOverlaySaveRequest, MetadataQueryRequest, MetadataQueryResponse, MetadataRegisterRequest, MetadataTypeInfoResponse, MetadataTypesResponse, MetadataValidateRequest, MetadataValidateResponse } from '@objectstack/spec/api';
54+
import type { AppDefinitionResponse, ConceptListResponse, MetadataBulkResponse, MetadataBulkUnregisterRequest, MetadataDeleteResponse, MetadataDependenciesResponse, MetadataDependentsResponse, MetadataEffectiveResponse, MetadataExistsResponse, MetadataExportRequest, MetadataExportResponse, MetadataImportRequest, MetadataImportResponse, MetadataItemResponse, MetadataListResponse, MetadataNamesResponse, MetadataOverlayResponse, MetadataOverlaySaveRequest, MetadataQueryRequest, MetadataQueryResponse, MetadataRegisterRequest, MetadataTypeInfoResponse, MetadataTypesResponse, MetadataValidateRequest, MetadataValidateResponse } from '@objectstack/spec/api';
5555

5656
// Validate data
5757
const result = AppDefinitionResponse.parse(data);
@@ -425,17 +425,3 @@ Metadata query with filtering, sorting, and pagination
425425

426426
---
427427

428-
## ObjectDefinitionResponse
429-
430-
### Properties
431-
432-
| Property | Type | Required | Description |
433-
| :--- | :--- | :--- | :--- |
434-
| **success** | `boolean` || Operation success status |
435-
| **error** | `Object` | optional | Error details if success is false |
436-
| **meta** | `Object` | optional | Response metadata |
437-
| **data** | `Object` || Full Object Schema |
438-
439-
440-
---
441-

content/docs/references/api/odata.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ const result = ODataConfig.parse(data);
226226
| **$orderby** | `string \| string[]` | optional | Sort order |
227227
| **$top** | `integer` | optional | Max results to return |
228228
| **$skip** | `integer` | optional | Results to skip |
229-
| **$expand** | `string \| string[]` | optional | Navigation properties to expand |
229+
| **$expand** | `string \| string[]` | optional | Navigation properties to expand (lookup/master_detail fields) |
230230
| **$count** | `boolean` | optional | Include total count |
231231
| **$search** | `string` | optional | Search expression |
232232
| **$format** | `Enum<'json' \| 'xml' \| 'atom'>` | optional | Response format |

content/docs/references/api/protocol.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ const result = AiChatRequest.parse(data);
395395
| **object** | `string` || The object name. |
396396
| **id** | `string` || The unique record identifier (primary key). |
397397
| **select** | `string[]` | optional | Fields to include in the response (allowlisted query param). |
398-
| **expand** | `string[]` | optional | Relations to eager-load (allowlisted query param). |
398+
| **expand** | `string[]` | optional | Lookup/master_detail field names to expand. The engine resolves these via batch $in queries, replacing foreign key IDs with full objects. |
399399

400400

401401
---
@@ -782,7 +782,7 @@ const result = AiChatRequest.parse(data);
782782
| **orderBy** | `string` | optional | Alias for sort (OData compatibility). |
783783
| **top** | `number` | optional | Max records to return (limit). |
784784
| **skip** | `number` | optional | Records to skip (offset). |
785-
| **expand** | `string` | optional | Comma-separated list of relations to eager-load. |
785+
| **expand** | `string` | optional | Comma-separated list of lookup/master_detail field names to expand. Resolved to populate array and passed to the engine for batch $in expansion. |
786786
| **search** | `string` | optional | Full-text search query. |
787787
| **distinct** | `boolean` | optional | SELECT DISTINCT flag. |
788788
| **count** | `boolean` | optional | Include total count in response. |

content/docs/references/data/field.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ const result = Address.parse(data);
115115
| **min** | `number` | optional | Minimum value |
116116
| **max** | `number` | optional | Maximum value |
117117
| **options** | `Object[]` | optional | Static options for select/multiselect |
118-
| **reference** | `string` | optional | Target Object Name |
118+
| **reference** | `string` | optional | Target object name (snake_case) for lookup/master_detail fields. Required for relationship types. Used by $expand to resolve foreign key IDs into full objects. |
119119
| **referenceFilters** | `string[]` | optional | Filters applied to lookup dialogs (e.g. "active = true") |
120120
| **writeRequiresMasterRead** | `boolean` | optional | If true, user needs read access to master record to edit this field |
121121
| **deleteBehavior** | `Enum<'set_null' \| 'cascade' \| 'restrict'>` || What happens if referenced record is deleted |

content/docs/references/data/object.mdx

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ API Operations Enum
1414
## TypeScript Usage
1515

1616
```typescript
17-
import { ApiMethod, CDCConfig, Index, Object, ObjectCapabilities, ObjectExtension, ObjectOwnershipEnum, PartitioningConfig, SoftDeleteConfig, TenancyConfig, VersioningConfig } from '@objectstack/spec/data';
18-
import type { ApiMethod, CDCConfig, Index, Object, ObjectCapabilities, ObjectExtension, ObjectOwnershipEnum, PartitioningConfig, SoftDeleteConfig, TenancyConfig, VersioningConfig } from '@objectstack/spec/data';
17+
import { ApiMethod, CDCConfig, Index, ObjectCapabilities, ObjectExtension, ObjectOwnershipEnum, PartitioningConfig, SoftDeleteConfig, TenancyConfig, VersioningConfig } from '@objectstack/spec/data';
18+
import type { ApiMethod, CDCConfig, Index, ObjectCapabilities, ObjectExtension, ObjectOwnershipEnum, PartitioningConfig, SoftDeleteConfig, TenancyConfig, VersioningConfig } from '@objectstack/spec/data';
1919

2020
// Validate data
2121
const result = ApiMethod.parse(data);
@@ -71,45 +71,6 @@ const result = ApiMethod.parse(data);
7171
| **partial** | `string` | optional | Partial index condition (SQL WHERE clause for conditional indexes) |
7272

7373

74-
---
75-
76-
## Object
77-
78-
### Properties
79-
80-
| Property | Type | Required | Description |
81-
| :--- | :--- | :--- | :--- |
82-
| **name** | `string` || Machine unique key (snake_case). Immutable. |
83-
| **label** | `string` | optional | Human readable singular label (e.g. "Account") |
84-
| **pluralLabel** | `string` | optional | Human readable plural label (e.g. "Accounts") |
85-
| **description** | `string` | optional | Developer documentation / description |
86-
| **icon** | `string` | optional | Icon name (Lucide/Material) for UI representation |
87-
| **tags** | `string[]` | optional | Categorization tags (e.g. "sales", "system", "reference") |
88-
| **active** | `boolean` || Is the object active and usable |
89-
| **isSystem** | `boolean` || Is system object (protected from deletion) |
90-
| **abstract** | `boolean` || Is abstract base object (cannot be instantiated) |
91-
| **datasource** | `string` || Target Datasource ID. "default" is the primary DB. |
92-
| **tableName** | `string` | optional | Physical table/collection name in the target datasource |
93-
| **fields** | `Record<string, Object>` || Field definitions map. Keys must be snake_case identifiers. |
94-
| **indexes** | `Object[]` | optional | Database performance indexes |
95-
| **tenancy** | `Object` | optional | Multi-tenancy configuration for SaaS applications |
96-
| **softDelete** | `Object` | optional | Soft delete (trash/recycle bin) configuration |
97-
| **versioning** | `Object` | optional | Record versioning and history tracking configuration |
98-
| **partitioning** | `Object` | optional | Table partitioning configuration for performance |
99-
| **cdc** | `Object` | optional | Change Data Capture (CDC) configuration for real-time data streaming |
100-
| **validations** | `[__schema0](./__schema0)[]` | optional | Object-level validation rules |
101-
| **stateMachines** | `Record<string, Object>` | optional | Named state machines for parallel lifecycles (e.g., status, payment, approval) |
102-
| **displayNameField** | `string` | optional | Field to use as the record display name (e.g., "name", "title"). Defaults to "name" if present. |
103-
| **recordName** | `Object` | optional | Record name generation configuration (Salesforce pattern) |
104-
| **titleFormat** | `string` | optional | Title expression (e.g. "`{name}` - `{code}`"). Overrides displayNameField. |
105-
| **compactLayout** | `string[]` | optional | Primary fields for hover/cards/lookups |
106-
| **search** | `Object` | optional | Search engine configuration |
107-
| **enable** | `Object` | optional | Enabled system features modules |
108-
| **recordTypes** | `string[]` | optional | Record type names for this object |
109-
| **sharingModel** | `Enum<'private' \| 'read' \| 'read_write' \| 'full'>` | optional | Default sharing model |
110-
| **keyPrefix** | `string` | optional | Short prefix for record IDs (e.g., "001" for Account) |
111-
112-
11374
---
11475

11576
## ObjectCapabilities

content/docs/references/data/query.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ Type: `string`
162162
| **having** | `[__schema1](./__schema1)` | optional | HAVING clause for aggregation filtering |
163163
| **windowFunctions** | `Object[]` | optional | Window functions with OVER clause |
164164
| **distinct** | `boolean` | optional | SELECT DISTINCT flag |
165-
| **expand** | `Record<string, [#](./#)>` | optional | Recursive relation loading (nested queries) |
165+
| **expand** | `Record<string, [#](./#)>` | optional | Recursive relation loading map. Keys are lookup/master_detail field names; values are nested QueryAST objects that control select, filter, sort, and further expansion on the related object. The engine resolves expand via batch $in queries (driver-agnostic) with a default max depth of 3. |
166166

167167

168168
---

content/docs/references/integration/meta.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"misc",
99
"object-storage",
1010
"offline",
11-
"tenant"
11+
"tenant",
12+
"translation"
1213
]
1314
}

content/docs/references/integration/misc.mdx

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ description: Misc protocol schemas
1212
## TypeScript Usage
1313

1414
```typescript
15-
import { AckMode, ApiVersionConfig, BuildConfig, CdcConfig, DatabaseConnector, DatabasePoolConfig, DatabaseTable, DeliveryGuarantee, DeploymentConfig, DlqConfig, DomainConfig, EdgeFunctionConfig, EnvironmentVariables, FileAccessPattern, FileFilterConfig, FileMetadataConfig, FileStorageConnector, FileStorageProvider, FileVersioningConfig, GitHubActionsWorkflow, GitHubCommitConfig, GitHubConnector, GitHubIssueTracking, GitHubProvider, GitHubPullRequestConfig, GitHubReleaseConfig, GitHubRepository, GitRepositoryConfig, MessageFormat, MessageQueueConnector, ProducerConfig, SaasConnector, SaasObjectType, SaasProvider, SslConfig, StorageBucket, TopicQueue, VercelConnector, VercelFramework, VercelMonitoring, VercelProject, VercelProvider, VercelTeam } from '@objectstack/spec/integration';
16-
import type { AckMode, ApiVersionConfig, BuildConfig, CdcConfig, DatabaseConnector, DatabasePoolConfig, DatabaseTable, DeliveryGuarantee, DeploymentConfig, DlqConfig, DomainConfig, EdgeFunctionConfig, EnvironmentVariables, FileAccessPattern, FileFilterConfig, FileMetadataConfig, FileStorageConnector, FileStorageProvider, FileVersioningConfig, GitHubActionsWorkflow, GitHubCommitConfig, GitHubConnector, GitHubIssueTracking, GitHubProvider, GitHubPullRequestConfig, GitHubReleaseConfig, GitHubRepository, GitRepositoryConfig, MessageFormat, MessageQueueConnector, ProducerConfig, SaasConnector, SaasObjectType, SaasProvider, SslConfig, StorageBucket, TopicQueue, VercelConnector, VercelFramework, VercelMonitoring, VercelProject, VercelProvider, VercelTeam } from '@objectstack/spec/integration';
15+
import { AckMode, ApiVersionConfig, BuildConfig, CdcConfig, DatabaseConnector, DatabasePoolConfig, DatabaseTable, DeliveryGuarantee, DeploymentConfig, DlqConfig, DomainConfig, EdgeFunctionConfig, EnvironmentVariables, FileAccessPattern, FileFilterConfig, FileMetadataConfig, FileStorageConnector, FileStorageProvider, FileVersioningConfig, GitHubActionsWorkflow, GitHubCommitConfig, GitHubConnector, GitHubIssueTracking, GitHubProvider, GitHubPullRequestConfig, GitHubReleaseConfig, GitHubRepository, GitRepositoryConfig, MessageQueueConnector, ProducerConfig, SaasConnector, SaasObjectType, SaasProvider, SslConfig, StorageBucket, TopicQueue, VercelConnector, VercelFramework, VercelMonitoring, VercelProject, VercelProvider, VercelTeam } from '@objectstack/spec/integration';
16+
import type { AckMode, ApiVersionConfig, BuildConfig, CdcConfig, DatabaseConnector, DatabasePoolConfig, DatabaseTable, DeliveryGuarantee, DeploymentConfig, DlqConfig, DomainConfig, EdgeFunctionConfig, EnvironmentVariables, FileAccessPattern, FileFilterConfig, FileMetadataConfig, FileStorageConnector, FileStorageProvider, FileVersioningConfig, GitHubActionsWorkflow, GitHubCommitConfig, GitHubConnector, GitHubIssueTracking, GitHubProvider, GitHubPullRequestConfig, GitHubReleaseConfig, GitHubRepository, GitRepositoryConfig, MessageQueueConnector, ProducerConfig, SaasConnector, SaasObjectType, SaasProvider, SslConfig, StorageBucket, TopicQueue, VercelConnector, VercelFramework, VercelMonitoring, VercelProject, VercelProvider, VercelTeam } from '@objectstack/spec/integration';
1717

1818
// Validate data
1919
const result = AckMode.parse(data);
@@ -521,22 +521,6 @@ GitHub provider type
521521
| **autoDeployPreview** | `boolean` || Auto-deploy preview branches |
522522

523523

524-
---
525-
526-
## MessageFormat
527-
528-
Message format/serialization
529-
530-
### Allowed Values
531-
532-
* `json`
533-
* `xml`
534-
* `protobuf`
535-
* `avro`
536-
* `text`
537-
* `binary`
538-
539-
540524
---
541525

542526
## MessageQueueConnector

0 commit comments

Comments
 (0)