Skip to content

chore(objectos): bump @objectstack 10.2 → 12.1 so the runtime image ships latest#35

Merged
baozhoutao merged 2 commits into
mainfrom
chore/bump-objectstack-12.1
Jul 5, 2026
Merged

chore(objectos): bump @objectstack 10.2 → 12.1 so the runtime image ships latest#35
baozhoutao merged 2 commits into
mainfrom
chore/bump-objectstack-12.1

Conversation

@baozhoutao

@baozhoutao baozhoutao commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Why

apps/objectos pinned all @objectstack/* deps at ^10.2.0. Combined with the --frozen-lockfile install in docker/Dockerfile, the ghcr image kept building at framework 10.2 on every push — even though upstream is now at 12.1.0. Bumping the deps + regenerating the lockfile is what actually moves the published image forward.

Changes

  • apps/objectos/package.json: all 10 @objectstack/* deps ^10.2.0^12.1.0.
  • pnpm-lock.yaml: regenerated (resolves to 12.1.0).
  • apps/objectos/objectstack.config.ts: work around a 12.1 standalone inconsistency — createStandaloneStack hard-codes api.projectResolution: 'none', but the 12.1 protocol validator's api.projectResolution enum only accepts required|optional|auto (the field is optional). Standalone runs with enableProjectScoping: false, so we drop the field so compile/validate passes.
  • docker/docker-compose.yml: flag OS_SECRET_KEY / OS_AUTH_SECRET as required-in-production (header block + inline markers) — see verification note below.

Verification

Source level (local):

  • pnpm --filter @objectos/server build (objectstack compile) → ✓ Build complete, artifact written.
  • objectstack serve on sqlite: / → 302, /_console/ → 200, ✓ Server is ready.
  • objectstack serve on postgres 17: Driver: SqlDriver(pg), 59 system tables created, zero errors.

Image level (local docker build of the Dockerfile, run against postgres 17):

  • Build OK (in-container pnpm install --frozen-lockfile + objectstack compile).
  • Container healthy; / → 302, /_console/ → 200; Driver: SqlDriver(pg); 28 plugins; 59 tables created in postgres; no error lines.
  • ⚠️ Finding: the production image refuses to boot without OS_SECRET_KEY (LocalCryptoProvider: Refusing to start in production without a stable encryption key). The compose already passed it through but with an empty default, so a bare docker compose up crashes mid-boot with no obvious hint. Documented in docker/docker-compose.yml. (Pre-existing requirement, surfaced by image-level testing — the smaller plugin set in a plain source serve doesn't reach the crypto guard.)

Note on staying current

This is a one-time bump; the caret + committed lockfile keep the image reproducible at 12.1 until the next intentional bump. If we want the image to track upstream automatically, add Renovate/Dependabot for the @objectstack/* group rather than floating the range.

@baozhoutao baozhoutao merged commit c43d376 into main Jul 5, 2026
1 check passed
…ships latest

- apps/objectos deps pinned at ^10.2.0 + frozen lockfile kept the ghcr image
  stuck at framework 10.2 even though CI runs on every push.
- Bump all @objectstack/* to ^12.1.0 and regenerate pnpm-lock.yaml.
- Work around a 12.1 standalone inconsistency: createStandaloneStack emits
  api.projectResolution:'none', which the 12.1 validator rejects (enum:
  required|optional|auto, field optional). Standalone has scoping disabled, so
  drop the field in objectstack.config.ts.

Verified: objectstack compile passes; serve boots (/ -> 302, /_console/ -> 200,
SqlDriver loaded, 22 plugins).
…uction

Image-level verification of the 12.1 build against postgres showed the
container refuses to boot without OS_SECRET_KEY (LocalCryptoProvider guards
sys_secret/datasource credentials in production). The compose already passed
these through but with empty defaults, so a bare `docker compose up` crashes
mid-boot with no obvious hint. Add a header block + inline REQUIRED markers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant