Skip to content

[finding] reference/environment-variables.mdx lists OS_ARTIFACT_PATH as retired and boot-refusing, but the open-source runtime image presets it and os start reads it #251

Description

@hotlong

Found while fact-checking a self-hosting how-to for www.objectos.ai (issue #92 there) against shipping tooling. Filing unassigned — I only read this repo.

What the docs say

content/docs/reference/environment-variables.mdx, under Retired names:

| OS_ARTIFACT_PATH | OS_ARTIFACT_URL. The runtime image refuses a boot that carries a non-default OS_ARTIFACT_PATH, naming the replacement. Two spellings for "which artifact do I boot" is one dialect too many, and the retired one never carried an integrity pin. |

What ships in the open-source framework

In objectstack-ai/objectstack at origin/main:

  • docker/Dockerfile — the official open runtime image, ghcr.io/objectstack-ai/objectstack — sets it as a preset:
    ENV NODE_ENV=production OS_ARTIFACT_PATH=/srv/app/objectstack.json OS_PORT=8080
  • packages/cli/src/commands/start.ts resolves it as a normal input (~190 references to the name across packages/**).

Measured on this machine with @objectstack/cli@17.2.0 (the current npm latest), Node 22, PostgreSQL 16 — booting an artifact by path succeeds, with no deprecation notice and no refusal:

OS_ARTIFACT_PATH="$PWD/dist/objectstack.json" npx os start
...
📦 Artifact: dist/objectstack.json
  ✓ Server is ready
  Mode:    production
  Driver:  SqlDriver(pg)  → postgres://127.0.0.1:5432/osverify

Why this may be correct as written

The same page keys other rows to the enterprise deploy bundle (OS_EE_IMAGE, OS_LICENSE_KEY, OS_COMPOSED_ARTIFACT_URL), so "the runtime image" here plausibly means the ObjectOS EE image, not ghcr.io/objectstack-ai/objectstack. If so nothing is broken — but the page never says which image it means, and the variable is not scoped the way the licence/tenancy rows are.

Why it is still worth a look

A reader self-hosting the open runtime is the exact audience for a page titled "Environment Variables", and the sentence they meet tells them that a variable the open image itself presets is retired and will refuse their boot. The cheap fix is a scope qualifier on that row naming which image refuses, rather than any behaviour change.

No existing open issue mentions OS_ARTIFACT_PATH (checked the 14 open issues in this repo).


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions