You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Today:** the Artifact API endpoint is not yet built. Local artifacts can already
147
-
be bound to projects through `sys_project.metadata.artifact_path` and resolved
148
-
when a project kernel boots.
146
+
**Today (M3 built):**`GET /api/v1/cloud/projects/:projectId/artifact` is live — assembles the artifact from `sys_project.metadata.artifact_path` / `artifact_paths[]`, merges metadata bundles, and returns the `ProjectArtifact` envelope with `commitId` and `checksum`. `GET /api/v1/cloud/resolve-hostname` resolves a hostname to a project id. See [packages/services/service-cloud/src/cloud-artifact-api-plugin.ts](packages/services/service-cloud/src/cloud-artifact-api-plugin.ts).
147
+
**Phase 1 next step:** wire proper Project Versions so the endpoint returns `versionId` / `versionNumber` and ObjectOS can use them for ETag cache invalidation.
148
+
**Future:** the same endpoint can return a redirect or signed URL pointing at an
149
+
S3 object. The interface is stable; the backend swaps.
150
+
149
151
**Phase 1 target:** the control plane returns the Project's current Version
150
152
artifact. A pinned endpoint can later return a specific immutable version:
- ObjectOS app (target): [apps/server/objectstack.config.ts](apps/server/objectstack.config.ts) (currently hybrid; will be reduced to ObjectOS manifest)
-**Manifest scope enum trimmed.**`ManifestSchema.scope` accepts only `cloud`, `system`, and `project` - [packages/spec/src/kernel/manifest.zod.ts](packages/spec/src/kernel/manifest.zod.ts).
492
494
-**Canonical package manifest files.** Plugin/service packages now share a single `src/manifest.ts` between compile-time config and runtime registration, reducing object-list drift.
493
495
-**CLI `publish` link.** The end-to-end "local JSON -> remote server" wire is alive, even though the endpoint shape is wrong - [packages/cli/src/commands/publish.ts](packages/cli/src/commands/publish.ts).
496
+
-**`env_id` → `project_id` migration (M2).** All metadata tables (`sys_metadata`, `sys_metadata_history`, `sys_object`, `sys_view`, `sys_flow`, `sys_agent`, `sys_tool`) have been updated to use `project_id` as the partition key. Idempotent migration helper shipped at `@objectstack/metadata/migrations` - [packages/metadata/src/migrations/migrate-env-id-to-project-id.ts](packages/metadata/src/migrations/migrate-env-id-to-project-id.ts). `DatabaseLoader` filters by `project_id` - [packages/metadata/src/loaders/database-loader.ts](packages/metadata/src/loaders/database-loader.ts).
497
+
-**Artifact API endpoints (M3 + D2).**`GET /api/v1/cloud/projects/:id/artifact` returns the current artifact assembled from `sys_project.metadata.artifact_path`. `POST /api/v1/cloud/projects/:id/metadata` receives compiled JSON, persists it under `<artifactRoot>/<projectId>/artifact.json`, and updates the project metadata pointer — [packages/services/service-cloud/src/cloud-artifact-api-plugin.ts](packages/services/service-cloud/src/cloud-artifact-api-plugin.ts). `GET /api/v1/cloud/resolve-hostname` resolves a hostname to a project id.
498
+
-**CLI `publish` routes to project publish endpoint (D2).**`objectstack publish` now POSTs to `/api/v1/cloud/projects/:id/metadata`, accepts `--project` and `--server` flags, and returns `versionId`, `commitId`, and `checksum` — [packages/cli/src/commands/publish.ts](packages/cli/src/commands/publish.ts).
499
+
-**`apps/server` uses ObjectOS runtime mode (M4).**`apps/server/objectstack.config.ts` boots via `createBootStack({ runtime: { cloudUrl: ... } })`, separating the ObjectOS runtime from the control plane — [apps/server/objectstack.config.ts](apps/server/objectstack.config.ts).
500
+
-**`apps/cloud` is an independent control plane (D8).**`apps/cloud/objectstack.config.ts` boots via `createBootStack({ mode: 'cloud', ... })`, running the control plane independently without the ObjectOS runtime manifest — [apps/cloud/objectstack.config.ts](apps/cloud/objectstack.config.ts).
-**Project Version storage** - persist every publish as an immutable Project Version with artifact JSON or `payloadRef`, `versionId`, `versionNumber`, `commitId`, checksum, publish metadata, and summary indexes.
519
516
-**Current Version pointer** - add a project-level pointer that decides which Version ObjectOS serves; rollback/promote should update this pointer without mutating Version rows.
520
-
-**Project Artifact API** - `GET /api/v1/cloud/projects/:projectId/artifact` returns the current Version artifact as a single consumable blob, with content hash/ETag for cache validation; a pinned version endpoint can return a specific immutable Version.
521
-
-**ObjectOS Artifact API loader** - add the production HTTP fetch source for `MetadataPlugin` and local artifact cache durability across control-plane outages.
522
-
-**Project publish endpoint** - receives compiled JSON, validates with Zod, creates a Project Version, advances `current_version_id` in the simple auto-promote path, and returns `versionId`, `versionNumber`, `commitId`, and checksum.
523
517
-**Studio version/artifact viewer** - browse current version, publish history, artifact envelope, version id, commit id, checksum, logs, and runtime health. No metadata editing.
524
518
-**UI auto-generation** - artifact schemas -> Amis/React components without hand-wiring.
0 commit comments