Changelog & Versionierung
Wie ObjectOS versioniert wird, was sich zwischen Releases ändert und was unterstützt wird.
Versionierungsrichtlinie
ObjectOS folgt Semantic Versioning: MAJOR.MINOR.PATCH.
| Versionssprung | Was es bedeutet | Was zu tun ist |
|---|---|---|
Patch (10.0.0 → 10.0.1) | Fehlerbehebungen, keine Verhaltensänderung | Aktualisieren, keine App-Änderungen nötig |
Minor (10.0 → 10.1) | Neue Funktionen, abwärtskompatibel | Aktualisieren, optional neue Funktionen übernehmen |
Major (9 → 10) | Breaking Changes, in den Release Notes dokumentiert | Lesen Sie den Migrationsleitfaden vor dem Upgrade |
Alle @objectstack/*-Pakete werden gemeinsam mit einer synchronisierten
Versionsnummer veröffentlicht — sie werden als Matrix getestet, nicht einzeln.
Kompatibilitätsmatrix
| Komponente | Kompatibilitätsregel |
|---|---|
| ObjectOS-Image ↔ kompiliertes Artefakt | Gleiche Minor-Version. Ein 10.2.x-Image führt ein 10.2.x-Artefakt aus; ein 10.2-Artefakt kann Funktionen nutzen, die in einem 10.0-Image nicht verfügbar sind. |
| ObjectOS ↔ CLI | Gleiche Minor-Version empfohlen. Die per npm i -g installierte CLI erzeugt Scaffolds, die auf ihre eigene Version gepinnt sind. |
| ObjectOS ↔ Datenbanktreiber | Treiber durch den Image-Build gepinnt; prüfen Sie Postgres ≥ 13 / MongoDB ≥ 5 / Turso (jede aktuelle Version). |
| Node.js | 20 LTS oder neuer. 22 LTS empfohlen für neue Deployments. |
Support-Zeiträume
| Branch | Status | Bis |
|---|---|---|
| 10.x (aktuell) | Aktive Entwicklung; neue Funktionen und Fixes | Mindestens 12 Monate nach dem Erscheinen von 11.0 |
| 9.x | Nur Sicherheitsfixes | EOL mit dem Release von 11.0 |
| ≤ 8.x | Nicht unterstützt | Bereits EOL |
Kritische Sicherheitsfixes werden auf den aktuellen und den vorherigen
Major-Branch zurückportiert. Alles andere landet auf main.
Release Notes
Veröffentlichte ObjectOS-Versionen und ihre CHANGELOG-Einträge werden hier publiziert:
- npm:
@objectstack/runtime - GitHub: github.com/objectstack-ai/objectos/releases
- Quell-CHANGELOG:
CHANGELOG.md - Ausführliche Release Notes:
RELEASE_NOTES.md
Abonnieren Sie Releases auf GitHub, um benachrichtigt zu werden.
Aktuelle Highlights
10.x — aktueller Release-Zug
ObjectOS One und der gebündelte Server laufen jetzt auf @objectstack 10.2.0.
Trotz des Major-Sprungs ist der Runtime-Boot-Vertrag unverändert —
createStandaloneStack nimmt weiterhin dieselben Artefakt-, Umgebungs- und
Datenbankeinstellungen entgegen — und jeder Breaking Change landet in der
Multi-Org-Mandantenschicht, sodass ein single-tenant ObjectOS-Deployment (der
Standard) ohne Konfigurationsänderungen von 9.x weiterrollt. Was sich bewegt hat:
- Zeilenbezogenes Org-Scoping in ein eigenes Plugin ausgelagert (10.0, Breaking) —
das automatische Stempeln von
organization_id, das Pro-Org-Seed-Replay und der Default-Org-Bootstrap wurden aus@objectstack/plugin-securityin das optionale@objectstack/plugin-org-scopingverschoben. Single-Org-Deployments sind schlanker (kein Wildcard-RLS, das bei jeder Abfrage entfernt werden muss), undOS_MULTI_TENANT=trueregistriert das Plugin weiterhin automatisch vorplugin-security, sodass per CLI gesteuerte Projekte keine Codeänderungen benötigen. Laut ADR-0002 ist ein Tenant physische Isolation (eine Umgebung = eine Datenbank);organization_idist logisches Scoping innerhalb einer DB und verdient daher sein eigenes Plugin. - Keine automatischen persönlichen Workspaces mehr (10.0, Breaking) —
plugin-securityerstellt nicht mehr für jeden neuen Benutzer eine „<User>'s Workspace"-Org. Benutzer nehmen jetzt eine Einladung an oder erstellen explizit ihre erste Organisation (das Slack-/Linear-/GitHub-Orgs-Modell). Der erste registrierte Benutzer — automatisch zum Plattform-Admin befördert — erhält im Multi-Tenant-Modus weiterhin eine einzigeDefault Organization, damit seine Session RLS auflöst; single-tenant Deployments erstellen keine Orgs. record-Formularfeldtyp (ADR-0014) —Record<string, X>-Eigenschaften (etwa diefields-Map eines Objekts) sind jetzt als vollwertige Formularfelder in Studio editierbar, statt als rohes JSON durchzusickern, und der Objektvorschau-Bereich bindet den echtenObjectGrid-Renderer ein — was Sie in der Vorschau sehen, ist das, was ausgeliefert wird.- Steckbare Embeddings über
IEmbedder— ein neues Embedder-Protokoll plus@objectstack/embedder-openai; die Knowledge-/RAG-Adapter nutzen jetztIEmbedderund wurden umbenannt, um dasplugin--Präfix abzulegen. - Public Forms — anonyme Web-to-Lead-/Web-to-Case-Formulare, bereitgestellt unter
/f/:slug, eine einheitliche FormPage (öffentlich/f/:slug+ intern/forms/:name), einetype: 'form'-Aktionsvariante unddefaultDetailFormaufObjectSchema. - Cloud-Identitätstrennung —
os cloud loginist jetzt vonos logingetrennt, die Cloud-Control-Plane wurde in ein privates Repo verschoben (eine schlankere OSS-Runtime), undobjectstack initscaffoldet wieder ein Projekt, das baut und bootet.
9.x
Der 9.x-Zug lief auf @objectstack 9.0 – 9.11 vor dem 10.0-Umstieg.
Der Runtime-Boot-Vertrag ist gegenüber 8.0 unverändert — createStandaloneStack
nimmt weiterhin dieselben Artefakt-, Umgebungs- und Datenbankeinstellungen entgegen —,
sodass ein 8.0-Deployment ohne Konfigurationsänderungen weiterrollt. Was sich
bewegt hat, ist die autorenseitige Oberfläche:
- Analytics-Datasets sind die einzige Autorenoberfläche (9.0, Breaking) —
Dashboard-Widgets, Berichte und Listen-Charts binden jetzt ein semantisches
dataset(defineDataset(...)) und wählen Dimensionen/Maße per Name. Die alten Inline-Abfragefelder (object/valueField/aggregatean Widgets,objectName/columns/groupingsDownan Berichten,xAxisField/yAxisFieldsan Listen-Charts) wurden entfernt. Migration: Verschieben Sie die Inline-Abfrage in eindefineDatasetund referenzieren Sie es per Name.ChartTypeSchemahat außerdem 8 Varianttypen verworfen, die nur als ihr Basistyp gerendert wurden (stacked-bar→bar,spline→line,bubble→scatter, …). - Strengere Validierung zur Build-Zeit (9.6–9.7) —
os compilescheitert jetzt an blanken Feldreferenzen (amountstattrecord.amount), unbekannten CEL-Funktionen und falscher Interpolationssyntax für Flow-Werte, jeweils mit einem „Meinten Sie"-Hinweis. Ein Stack, der zuvor „baute, aber stillschweigend falsch war", scheitert jetzt lautstark — führen Sieos compilenach dem Upgrade erneut aus und beheben Sie, was es bemängelt. - Zahlenfeld-Formeln berechnen gemischte Arithmetik (9.7) —
record.amount / 100undrecord.price * 2werten jetzt aus, statt stillschweigendnullzu liefern; der/ 100.0-Float-Literal-Workaround ist nicht mehr nötig. - REST-Gating auf Objektebene, jetzt durchgesetzt (ADR-0049) —
apiEnabled: falseeines Objekts entfernt es aus der REST-Oberfläche, und eineapiMethods-Whitelist schränkt ein, welche Operationen erreichbar sind. Zuvor geparst, aber nicht durchgesetzt. - Paketdokumentation als Metadaten +
book-Navigation (9.3–9.6) —src/docs/*.mdregistrieren sich alsdoc-Metadaten; dasbook-Element (ADR-0046) deklariert eine Navigationsachse mit abgeleiteter Mitgliedschaft, bereitgestellt unterGET /api/v1/meta/book/:name/treemit Audience-Gating. os package install(9.3) — installiert ein Paket in eine laufende Runtime aus einer Katalog-ID oder einem Inline-Artefakt für Air-Gap-Umgebungen, authentifiziert mit--email/--password.- Genehmigungen (9.3) — Zurücksenden zur Überarbeitung (
maxRevisions, Standard 3), jobs-gestützte SLA-Auto-Eskalation, Listensuche/Paginierung und sitzungsfreie zweisprachige Bestätigungslinks zum Genehmigen/Ablehnen. - Eingehende Webhook-Flow-Trigger (9.3) — ein
type: 'api'-Flow stellt einen HMAC-verifiziertenPOST /api/v1/automation/hooks/:flowName/:hookId-Endpunkt mit idempotenter, queue-gestützter Aufnahme bereit. - Aufbewahrung von Benachrichtigungen standardmäßig aktiv (9.5) — der
Benachrichtigungsverlauf wird automatisch nach 90 Tagen bereinigt; setzen Sie
die Messaging-Einstellung
retentionDays: 0, um den Verlauf dauerhaft zu behalten. - CLI bündelt AI-Provider-SDKs (9.0) — OpenAI-kompatible Provider (DeepSeek, DashScope, SiliconFlow, OpenRouter, Cloudflare) funktionieren auf einer global installierten CLI sofort.
Eine zu beachtende Verhaltensänderung beim Flow-Authoring: Der outputVariable
eines create_record-Knotens hält jetzt das erstellte Datensatzobjekt (zuvor
die blanke ID), aktualisieren Sie also {var}-Referenzen, die eine ID erwarteten,
auf {var.id}.
8.0.x
ObjectOS One und der gebündelte Server liefen auf @objectstack 8.0.1.
- MCP über Streamable HTTP — jede Bereitstellung kann als netzwerkerreichbarer
Model-Context-Protocol-Server fungieren.
Aktivierung über
OS_MCP_SERVER_ENABLED=true; der Endpunkt liegt unter/api/v1/mcpmit fail-closed-Authentifizierung (anonyme Anfragen werden abgelehnt). Das Plugin wurde von@objectstack/plugin-mcp-serverzu@objectstack/mcpumbenannt. - Self-Service-API-Keys —
POST /api/v1/keyserzeugt einen nur einmal angezeigtensys_api_key. Die REST-Daten- und Metadaten-APIs (/api/v1/data,/api/v1/meta) authentifizieren API-Keys jetzt über denselben Verifier wie MCP und laufen mit den Berechtigungen und der Datensatz-Sicherheit des Key-Inhabers. - Feldbezogene Bedingungsregeln —
visibleWhen,readonlyWhenundrequiredWhenwerden serverseitig von ObjectQL durchgesetzt, nicht nur in der Formular-UI. - Wiederverwendbarer RLS-Lesefilter —
security.getReadFilter(object, context)stellt den Datensatzzugriffs-Lesebereich bereit; Analytics-Datasets, Dashboards und Berichte greifen darauf zu und schließen fail-closed, wenn der Bereich nicht sicher angewendet werden kann. - Standalone-Host-Stack — die Runtime liefert einen single-tenant
createStandaloneStack-Host; der cloud-verbundene, hostname-geroutetecreateObjectOSStack-Wrapper aus 7.x wurde entfernt. Eine Cloud-Bereitstellung verweistOS_ARTIFACT_FILEjetzt auf eine veröffentlichte Artifact-URL.
5.0 — Umbenennung project → environment (veröffentlicht)
Das Runtime-Konzept, das früher Project hieß, wurde durchgängig in Environment umbenannt. Betroffen waren:
- CLI-Flags:
--environment/-e - HTTP-Pfade:
/api/v1/environments/:environmentId/... - Header:
X-Environment-Id - Umgebungsvariablen:
OS_ENVIRONMENT_ID(OS_PROJECT_IDbleibt als veralteter Alias erhalten) - DB-Spalten:
environment_id - JSON-Schemas:
EnvironmentArtifact
Upgrade
Siehe Upgrade und Rollback für die konkreten Schritte. Vorab-Prüfung:
- Lesen Sie den CHANGELOG-Eintrag für jede Minor-Version zwischen Ihrer aktuellen und der Zielversion.
- Führen Sie
os diff <old-artifact> <new-artifact>aus, um Breaking Schema-Änderungen aufzudecken. - Führen Sie
os doctorgegen die Zielversion aus. - Bringen Sie eine Canary-Instanz hoch, bevor Sie die gesamte Flotte ausrollen.
- Halten Sie einen Rollback-Plan sowohl für das Image-Tag als auch für die Artefakt-Version bereit (sie werden unabhängig voneinander ausgerollt).
Regressionen melden
Wenn ein Patch oder eine Minor-Version etwas zuvor Funktionierendes bricht, melden Sie einen Bug unter github.com/objectstack-ai/objectos/issues mit der Version, von der / auf die Sie aktualisiert haben. Wir behandeln Regressionen als die höchstpriorisierte Fehlerklasse.